List of usage examples for org.bouncycastle.util.io.pem PemReader PemReader
public PemReader(Reader reader)
From source file:org.neo4j.bolt.security.ssl.Certificates.java
License:Open Source License
public PrivateKey loadPrivateKey(File privateKeyFile) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException { try (PemReader r = new PemReader(new FileReader(privateKeyFile))) { PemObject pemObject = r.readPemObject(); if (pemObject != null) { byte[] encodedKey = pemObject.getContent(); KeySpec keySpec = new PKCS8EncodedKeySpec(encodedKey); try { return KeyFactory.getInstance("RSA").generatePrivate(keySpec); } catch (InvalidKeySpecException ignore) { try { return KeyFactory.getInstance("DSA").generatePrivate(keySpec); } catch (InvalidKeySpecException ignore2) { try { return KeyFactory.getInstance("EC").generatePrivate(keySpec); } catch (InvalidKeySpecException e) { throw new InvalidKeySpecException("Neither RSA, DSA nor EC worked", e); }//from ww w. java 2 s . co m } } } } // Ok, failed to read as PEM file, try and read it as a raw binary private key try (DataInputStream in = new DataInputStream(new FileInputStream(privateKeyFile))) { byte[] keyBytes = new byte[(int) privateKeyFile.length()]; in.readFully(keyBytes); KeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes); return KeyFactory.getInstance(DEFAULT_ENCRYPTION).generatePrivate(keySpec); } }
From source file:org.opencps.pki.PdfSignerTest.java
License:Open Source License
public void testSign() throws IOException, OperatorCreationException, PKCSException, GeneralSecurityException, DocumentException {/*from w ww. ja va2 s . co m*/ signer.setSignatureGraphic(signImagePath); byte[] hash = signer.computeHash(); assertTrue(hash.length > 0); PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(keyPath))); PemObject pemObject = pemReader.readPemObject(); PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(pemObject.getContent()); KeyFactory factory = KeyFactory.getInstance("RSA", "BC"); PrivateKey privateKey = factory.generatePrivate(privKeySpec); pemReader.close(); PrivateKeySignature signature = new PrivateKeySignature(privateKey, signer.getHashAlgorithm().toString(), "BC"); byte[] extSignature = signature.sign(hash); assertTrue(signer.sign(extSignature)); }
From source file:org.opencps.pki.PdfVerifierTest.java
License:Open Source License
protected void setUp() throws IOException, OperatorCreationException, PKCSException, GeneralSecurityException { cf = CertificateFactory.getInstance("X.509"); cert = (X509Certificate) cf.generateCertificate(new FileInputStream(new File(certPath))); signer = new PdfSigner(pdfPath, cert); verifier = new PdfVerifier(); signer.setSignatureGraphic(signImagePath); signer.setHashAlgorithm(HashAlgorithm.SHA1); byte[] hash = signer.computeHash(); Security.addProvider(new BouncyCastleProvider()); PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(keyPath))); PemObject pemObject = pemReader.readPemObject(); PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(pemObject.getContent()); KeyFactory factory = KeyFactory.getInstance("RSA", "BC"); PrivateKey privateKey = factory.generatePrivate(privKeySpec); pemReader.close();//from w w w . ja v a 2 s .com PrivateKeySignature signature = new PrivateKeySignature(privateKey, signer.getHashAlgorithm().toString(), "BC"); byte[] extSignature = signature.sign(hash); signer.sign(extSignature); }
From source file:org.opencps.pki.Pkcs7GenerateSignatureContainerTest.java
License:Open Source License
public void testSignatureContainer() throws GeneralSecurityException, IOException { CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) cf.generateCertificate(new FileInputStream(new File(certPath))); PdfSigner signer = new PdfSigner(pdfPath, cert); PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(keyPath))); PemObject pemObject = pemReader.readPemObject(); PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(pemObject.getContent()); KeyFactory factory = KeyFactory.getInstance("RSA", "BC"); PrivateKey privateKey = factory.generatePrivate(privKeySpec); pemReader.close();//from w w w.jav a 2 s . co m PrivateKeySignature signature = new PrivateKeySignature(privateKey, signer.getHashAlgorithm().toString(), "BC"); byte[] extSignature = signature.sign(signer.computeHash()); PdfReader reader = new PdfReader(signer.getTempFilePath()); AcroFields af = reader.getAcroFields(); PdfDictionary v = af.getSignatureDictionary(signer.getSignatureFieldName()); PdfArray b = v.getAsArray(PdfName.BYTERANGE); long[] gaps = b.asLongArray(); RandomAccessSource readerSource = reader.getSafeFile().createSourceView(); @SuppressWarnings("resource") InputStream rg = new RASInputStream(new RandomAccessSourceFactory().createRanged(readerSource, gaps)); ExternalSignatureContainer container = new Pkcs7GenerateSignatureContainer(signer, extSignature); assertTrue(container.sign(rg).length > 0); }
From source file:org.opencps.pki.Pkcs7GenerateSignatureContainerTest.java
License:Open Source License
public void testSignatureContainerWithInvalidSignature() throws IOException, SignatureException, GeneralSecurityException { CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) cf.generateCertificate(new FileInputStream(new File(certPath))); PdfSigner signer = new PdfSigner(pdfPath, cert); PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(keyPath))); PemObject pemObject = pemReader.readPemObject(); PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(pemObject.getContent()); KeyFactory factory = KeyFactory.getInstance("RSA", "BC"); PrivateKey privateKey = factory.generatePrivate(privKeySpec); pemReader.close();/*from w ww.j av a2s. c o m*/ PrivateKeySignature signature = new PrivateKeySignature(privateKey, signer.getHashAlgorithm().toString(), "BC"); byte[] extSignature = signature.sign(signer.computeHash()); ExternalSignatureContainer container = new Pkcs7GenerateSignatureContainer(signer, extSignature); try { container.sign(mock(InputStream.class)); fail("Missing exception"); } catch (Exception ex) { assertEquals("Signature is not correct", ex.getMessage()); } }
From source file:org.opendaylight.capwap.dtls.DtlsUtils.java
License:Open Source License
static PemObject loadPemResource(String resource) throws IOException { // InputStream s = TlsTestUtils.class.getResourceAsStream(resource); InputStream s = new FileInputStream(resource); PemReader p = new PemReader(new InputStreamReader(s)); PemObject o = p.readPemObject();/*from ww w. j a v a2 s .co m*/ p.close(); return o; }
From source file:org.restcomm.media.rtp.crypto.TlsUtils.java
License:Open Source License
static PemObject loadPemResource(String resource) throws IOException { InputStream s = new FileInputStream(resource); try (PemReader p = new PemReader(new InputStreamReader(s))) { PemObject o = p.readPemObject(); return o; }/*from w w w . j av a 2 s . c o m*/ }
From source file:org.soulwing.credo.service.pem.bc.BcPemObjectBuilderTest.java
License:Apache License
@Test public void testConfigureAndBuild() throws Exception { byte[] content = { 0, 1, 2, 3 }; BcPemObjectBuilder builder = new BcPemObjectBuilder(); builder.setType("SOME TYPE"); builder.setHeader("Some-Header", "Some-Value"); builder.append(content);/* w w w. ja v a 2 s .co m*/ PemObjectWrapper wrapper = builder.build(); StringReader reader = new StringReader(wrapper.getEncoded()); PemReader pemReader = new PemReader(reader); PemObject obj = pemReader.readPemObject(); assertThat(pemReader.readPemObject(), is(nullValue())); pemReader.close(); assertThat(obj.getHeaders().size(), is(equalTo(1))); PemHeader header = (PemHeader) obj.getHeaders().get(0); assertThat(header.getName(), is(equalTo("Some-Header"))); assertThat(header.getValue(), is(equalTo("Some-Value"))); assertThat(obj.getContent(), is(equalTo(content))); }
From source file:org.soulwing.credo.service.pem.bc.BcPemObjectFactory.java
License:Apache License
/** * {@inheritDoc}//from ww w .j a v a 2s . co m */ @Override public PemObjectWrapper newPemObject(String encoded) { try (PemReader reader = new PemReader(new StringReader(encoded))) { PemObject obj = reader.readPemObject(); if (obj == null) { throw new IllegalArgumentException("not a PEM object"); } return new BcPemObjectWrapper(obj); } catch (PEMException ex) { throw new IllegalArgumentException("illegal PEM object", ex); } catch (IOException ex) { throw new RuntimeException(ex); } }
From source file:org.soulwing.credo.service.pem.bc.BcPemObjectWrapperTest.java
License:Apache License
@Test public void testWriteContent() throws Exception { StringWriter writer = new StringWriter(); wrapper.writeContent(writer);/*w w w.j av a2s .c om*/ PemReader reader = new PemReader(new StringReader(writer.toString())); PemObject obj = reader.readPemObject(); assertThat(obj, is(not(nullValue()))); assertThat(reader.readPemObject(), is(nullValue())); reader.close(); assertThat(obj.getType(), is(equalTo(type))); assertThat(obj.getContent(), is(equalTo(content))); }