List of usage examples for org.bouncycastle.openssl PEMParser readObject
public Object readObject() throws IOException
From source file:com.github.khazrak.jdocker.ssl.KeyStoreUtil.java
License:Apache License
static <T> T loadPEM(String keyPath) throws IOException { try (BufferedReader reader = new BufferedReader(new FileReader(keyPath))) { PEMParser parser = new PEMParser(reader); return (T) parser.readObject(); }/* ww w. j a va 2 s.c om*/ }
From source file:com.google.examples.JOSEToolBase.java
License:Apache License
public static PrivateKey decodePrivateKey(String privateKeyString, String password) throws KeyParseException { try {/*w ww . j a v a 2 s .c o m*/ JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC"); privateKeyString = reformIndents(privateKeyString); PEMParser pemParser = new PEMParser(new StringReader(privateKeyString)); Object object = pemParser.readObject(); if (object == null) { throw new KeyParseException("unable to read anything when decoding private key"); } KeyPair kp = null; //LOGGER.info(String.format("decodePrivateKey, %s", object.getClass().getName())); if (object instanceof PKCS8EncryptedPrivateKeyInfo) { // produced by "openssl genpkey" or the series of commands reqd to sign an ec key //LOGGER.info("decodePrivateKey, encrypted PrivateKeyInfo"); PKCS8EncryptedPrivateKeyInfo pkcs8EncryptedPrivateKeyInfo = (PKCS8EncryptedPrivateKeyInfo) object; JceOpenSSLPKCS8DecryptorProviderBuilder decryptorProviderBuilder = new JceOpenSSLPKCS8DecryptorProviderBuilder(); InputDecryptorProvider decryptorProvider = decryptorProviderBuilder.build(password.toCharArray()); PrivateKeyInfo privateKeyInfo = pkcs8EncryptedPrivateKeyInfo .decryptPrivateKeyInfo(decryptorProvider); return (PrivateKey) converter.getPrivateKey(privateKeyInfo); } if (object instanceof PrivateKeyInfo) { // produced by openssl genpkey without encryption return (PrivateKey) converter.getPrivateKey((PrivateKeyInfo) object); } if (object instanceof PEMEncryptedKeyPair) { // produced by "openssl genrsa" or "openssl ec -genkey" // LOGGER.info("decodePrivateKey, encrypted keypair"); PEMEncryptedKeyPair encryptedKeyPair = (PEMEncryptedKeyPair) object; PEMDecryptorProvider decryptorProvider = new JcePEMDecryptorProviderBuilder() .build(password.toCharArray()); kp = converter.getKeyPair(encryptedKeyPair.decryptKeyPair(decryptorProvider)); } else if (object instanceof PEMKeyPair) { //LOGGER.info("decodePrivateKey, un-encrypted keypair"); PEMKeyPair unencryptedKeyPair = (PEMKeyPair) object; kp = converter.getKeyPair(unencryptedKeyPair); } else { //LOGGER.error("decodePrivateKey, unknown object type {}", object.getClass().getName()); throw new KeyParseException("unknown object type when decoding private key"); } return (PrivateKey) kp.getPrivate(); } catch (KeyParseException exc0) { throw exc0; } catch (Exception exc1) { throw new KeyParseException("cannot instantiate private key", exc1); } }
From source file:com.google.examples.JOSEToolBase.java
License:Apache License
public static PublicKey decodePublicKey(String publicKeyString) throws KeyParseException { try {/* w w w.j av a 2 s . c o m*/ JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC"); publicKeyString = reformIndents(publicKeyString); PEMParser pemParser = new PEMParser(new StringReader(publicKeyString)); Object object = pemParser.readObject(); if (object == null) { throw new KeyParseException("unable to read anything when decoding public key"); } return converter.getPublicKey((org.bouncycastle.asn1.x509.SubjectPublicKeyInfo) object); } catch (KeyParseException exc0) { throw exc0; } catch (Exception exc1) { throw new KeyParseException("cannot instantiate public key", exc1); } }
From source file:com.hurence.logisland.connect.opc.ua.OpcUaSourceTask.java
License:Apache License
private PrivateKey decodePemPrivateKey(String privateKey) { try {//from www . j a va 2 s.c o m PEMParser pemParser = new PEMParser(new StringReader(privateKey)); Object object = pemParser.readObject(); JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC"); if (object instanceof PEMEncryptedKeyPair) { throw new UnsupportedOperationException("Encrypted keys are not yet supported"); } PEMKeyPair ukp = (PEMKeyPair) object; KeyPair keyPair = converter.getKeyPair(ukp); return keyPair.getPrivate(); } catch (Exception e) { throw new IllegalArgumentException("Unable to decode private key", e); } }
From source file:com.hypersocket.certs.X509CertificateUtils.java
License:Open Source License
public static X509Certificate[] loadCertificateChainFromPEM(InputStream certfile) throws IOException, CertificateException, FileFormatException { List<X509Certificate> certs = new ArrayList<X509Certificate>(); PEMParser parser = new PEMParser(new InputStreamReader(certfile)); try {/*from w w w . ja va 2s . co m*/ Object obj = null; while ((obj = parser.readObject()) != null) { if (obj instanceof X509CertificateHolder) { certs.add(new JcaX509CertificateConverter().setProvider("BC") .getCertificate((X509CertificateHolder) obj)); } else { throw new FileFormatException("Failed to read X509Certificate from InputStream provided"); } } return certs.toArray(new X509Certificate[0]); } finally { parser.close(); } }
From source file:com.hypersocket.certs.X509CertificateUtils.java
License:Open Source License
public static X509Certificate loadCertificateFromPEM(InputStream certfile) throws IOException, CertificateException, FileFormatException { PEMParser parser = new PEMParser(new InputStreamReader(certfile)); try {/* w w w. ja va 2 s.c o m*/ Object obj = parser.readObject(); if (obj instanceof X509CertificateHolder) { return new JcaX509CertificateConverter().setProvider("BC") .getCertificate((X509CertificateHolder) obj); } else { throw new FileFormatException("Failed to read X509Certificate from InputStream provided"); } } finally { parser.close(); } }
From source file:com.hypersocket.certs.X509CertificateUtils.java
License:Open Source License
public static KeyPair loadKeyPairFromPEM(InputStream keyfile, char[] passphrase) throws InvalidPassphraseException, CertificateException, FileFormatException { PEMParser parser = new PEMParser(new InputStreamReader(keyfile)); JcaPEMKeyConverter converter = new JcaPEMKeyConverter(); try {//from w w w. ja v a 2 s .c om Object privatekey = parser.readObject(); if (privatekey instanceof PEMEncryptedKeyPair) { try { privatekey = ((PEMEncryptedKeyPair) privatekey) .decryptKeyPair(new JcePEMDecryptorProviderBuilder().build(passphrase)); } catch (Exception e) { throw new InvalidPassphraseException(e); } } else if (privatekey instanceof PKCS8EncryptedPrivateKeyInfo) { try { privatekey = converter .getPrivateKey(((PKCS8EncryptedPrivateKeyInfo) privatekey).decryptPrivateKeyInfo( new JceOpenSSLPKCS8DecryptorProviderBuilder().build(passphrase))); } catch (Exception e) { throw new InvalidPassphraseException(e); } } if (privatekey instanceof PEMKeyPair) { return loadKeyPair((PEMKeyPair) privatekey); } else if (privatekey instanceof RSAPrivateCrtKey) { return loadKeyPair((RSAPrivateCrtKey) privatekey); } else if (privatekey instanceof PrivateKeyInfo) { PrivateKeyInfo i = (PrivateKeyInfo) privatekey; PrivateKey prv = converter.getPrivateKey(i); if (prv instanceof RSAPrivateCrtKey) { return loadKeyPair((RSAPrivateCrtKey) prv); } else { throw new FileFormatException("Unsupported private key type"); } } else { throw new FileFormatException( "The file doesn't seem to have any supported key types obj=" + privatekey); } } catch (IOException ex) { throw new CertificateException("Failed to read from key file", ex); } finally { try { parser.close(); } catch (IOException e) { } } }
From source file:com.jcs_java_sdk.Utils.java
License:Open Source License
public static PrivateKey readPrivateKey(String privateKeyPath, String keyPassword) throws IOException { FileReader fileReader = new FileReader(privateKeyPath); PEMParser keyReader = new PEMParser(fileReader); JcaPEMKeyConverter converter = new JcaPEMKeyConverter(); PEMDecryptorProvider decryptionProv = new JcePEMDecryptorProviderBuilder().build(keyPassword.toCharArray()); Object keyPair = keyReader.readObject(); PrivateKeyInfo keyInfo;/*from w w w . j av a 2 s. c o m*/ if (keyPair instanceof PEMEncryptedKeyPair) { PEMKeyPair decryptedKeyPair = ((PEMEncryptedKeyPair) keyPair).decryptKeyPair(decryptionProv); keyInfo = decryptedKeyPair.getPrivateKeyInfo(); } else { keyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo(); } keyReader.close(); return converter.getPrivateKey(keyInfo); }
From source file:com.liferay.sync.engine.lan.util.LanPEMParserUtil.java
License:Open Source License
public static PrivateKey parsePrivateKey(String privateKey) throws Exception { StringBuilder sb = new StringBuilder(); sb.append("-----BEGIN PRIVATE KEY-----\n"); sb.append(privateKey);/* w w w .j a v a2 s . c om*/ if (!privateKey.endsWith("\n")) { sb.append("\n"); } sb.append("-----END PRIVATE KEY-----"); PEMParser pemParser = new PEMParser(new StringReader(sb.toString())); JcaPEMKeyConverter jcaPEMKeyConverter = new JcaPEMKeyConverter(); return jcaPEMKeyConverter.getPrivateKey((PrivateKeyInfo) pemParser.readObject()); }
From source file:com.liferay.sync.engine.lan.util.LanPEMParserUtil.java
License:Open Source License
public static X509Certificate parseX509Certificate(String certificate) throws Exception { StringBuilder sb = new StringBuilder(); sb.append("-----BEGIN CERTIFICATE-----\n"); sb.append(certificate);//from w w w. j a va 2s .co m if (!certificate.endsWith("\n")) { sb.append("\n"); } sb.append("-----END CERTIFICATE-----"); PEMParser pemParser = new PEMParser(new StringReader(sb.toString())); JcaX509CertificateConverter jcaX509CertificateConverter = new JcaX509CertificateConverter(); return jcaX509CertificateConverter.getCertificate((X509CertificateHolder) pemParser.readObject()); }