Example usage for org.bouncycastle.openssl PEMParser PEMParser

List of usage examples for org.bouncycastle.openssl PEMParser PEMParser

Introduction

In this page you can find the example usage for org.bouncycastle.openssl PEMParser PEMParser.

Prototype

public PEMParser(Reader reader) 

Source Link

Document

Create a new PEMReader

Usage

From source file:org.apache.james.jmap.crypto.PublicKeyReader.java

License:Apache License

Optional<PublicKey> fromPEM(Optional<String> pemKey) {

    return pemKey.map(k -> new PEMParser(new PemReader(new StringReader(k)))).flatMap(this::publicKeyFrom);
}

From source file:org.apache.james.jwt.PublicKeyReader.java

License:Apache License

Optional<PublicKey> fromPEM(Optional<String> pemKey) {
    return pemKey.map(k -> new PEMParser(new PemReader(new StringReader(k)))).flatMap(this::publicKeyFrom);
}

From source file:org.apache.nifi.toolkit.tls.util.TlsHelper.java

License:Apache License

public static JcaPKCS10CertificationRequest parseCsr(String pemEncodedCsr) throws IOException {
    try (PEMParser pemParser = new PEMParser(new StringReader(pemEncodedCsr))) {
        Object o = pemParser.readObject();
        if (!PKCS10CertificationRequest.class.isInstance(o)) {
            throw new IOException(
                    "Expecting instance of " + PKCS10CertificationRequest.class + " but got " + o);
        }/*from   w w  w  .ja v a2s  .  co m*/
        return new JcaPKCS10CertificationRequest((PKCS10CertificationRequest) o);
    }
}

From source file:org.apache.nifi.toolkit.tls.util.TlsHelper.java

License:Apache License

public static <T> T parsePem(Class<T> clazz, Reader pemReader) throws IOException {
    try (PEMParser pemParser = new PEMParser(pemReader)) {
        Object object = pemParser.readObject();
        if (!clazz.isInstance(object)) {
            throw new IOException("Expected " + clazz);
        }//from   w  ww.  jav  a  2s  .  co  m
        return (T) object;
    }
}

From source file:org.apache.nifi.toolkit.tls.util.TlsHelperTest.java

License:Apache License

public static KeyPair loadKeyPair(Reader reader) throws IOException {
    try (PEMParser pemParser = new PEMParser(reader)) {
        Object object = pemParser.readObject();
        assertEquals(PEMKeyPair.class, object.getClass());
        return new JcaPEMKeyConverter().getKeyPair((PEMKeyPair) object);
    }/*  w  ww  .  j  a  v  a2 s . c o  m*/
}

From source file:org.apache.nifi.toolkit.tls.util.TlsHelperTest.java

License:Apache License

public static X509Certificate loadCertificate(Reader reader) throws IOException, CertificateException {
    try (PEMParser pemParser = new PEMParser(reader)) {
        Object object = pemParser.readObject();
        assertEquals(X509CertificateHolder.class, object.getClass());
        return new JcaX509CertificateConverter().setProvider(BouncyCastleProvider.PROVIDER_NAME)
                .getCertificate((X509CertificateHolder) object);
    }/*from ww  w.  j av a  2 s  .c  o  m*/
}

From source file:org.apache.pulsar.client.impl.MessageCrypto.java

License:Apache License

private PrivateKey loadPrivateKey(byte[] keyBytes) throws Exception {

    Reader keyReader = new StringReader(new String(keyBytes));
    PrivateKey privateKey = null;
    try (PEMParser pemReader = new PEMParser(keyReader)) {
        X9ECParameters ecParam = null;/*from   w  w w.j a  v a  2 s  .  c o m*/

        Object pemObj = pemReader.readObject();

        if (pemObj instanceof ASN1ObjectIdentifier) {

            // make sure this is EC Parameter we're handling. In which case
            // we'll store it and read the next object which should be our
            // EC Private Key

            ASN1ObjectIdentifier ecOID = (ASN1ObjectIdentifier) pemObj;
            ecParam = ECNamedCurveTable.getByOID(ecOID);
            if (ecParam == null) {
                throw new PEMException("Unable to find EC Parameter for the given curve oid: " + ecOID.getId());
            }

            pemObj = pemReader.readObject();

        } else if (pemObj instanceof X9ECParameters) {

            ecParam = (X9ECParameters) pemObj;
            pemObj = pemReader.readObject();
        }

        if (pemObj instanceof PEMKeyPair) {

            PrivateKeyInfo pKeyInfo = ((PEMKeyPair) pemObj).getPrivateKeyInfo();
            JcaPEMKeyConverter pemConverter = new JcaPEMKeyConverter();
            privateKey = pemConverter.getPrivateKey(pKeyInfo);

        }

        // if our private key is EC type and we have parameters specified
        // then we need to set it accordingly

        if (ecParam != null && ECDSA.equals(privateKey.getAlgorithm())) {
            ECParameterSpec ecSpec = new ECParameterSpec(ecParam.getCurve(), ecParam.getG(), ecParam.getN(),
                    ecParam.getH(), ecParam.getSeed());
            KeyFactory keyFactory = KeyFactory.getInstance(ECDSA, BouncyCastleProvider.PROVIDER_NAME);
            ECPrivateKeySpec keySpec = new ECPrivateKeySpec(((BCECPrivateKey) privateKey).getS(), ecSpec);
            privateKey = (PrivateKey) keyFactory.generatePrivate(keySpec);
        }

    } catch (IOException e) {
        throw new Exception(e);
    }
    return privateKey;
}

From source file:org.apache.sshd.common.util.security.bouncycastle.BouncyCastleKeyPairResourceParser.java

License:Apache License

public static KeyPair loadKeyPair(String resourceKey, InputStream inputStream, FilePasswordProvider provider)
        throws IOException, GeneralSecurityException {
    try (PEMParser r = new PEMParser(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
        Object o = r.readObject();

        JcaPEMKeyConverter pemConverter = new JcaPEMKeyConverter();
        pemConverter.setProvider(SecurityUtils.BOUNCY_CASTLE);
        if (o instanceof PEMEncryptedKeyPair) {
            ValidateUtils.checkNotNull(provider, "No password provider for resource=%s", resourceKey);

            String password = ValidateUtils.checkNotNullAndNotEmpty(provider.getPassword(resourceKey),
                    "No password provided for resource=%s", resourceKey);
            JcePEMDecryptorProviderBuilder decryptorBuilder = new JcePEMDecryptorProviderBuilder();
            PEMDecryptorProvider pemDecryptor = decryptorBuilder.build(password.toCharArray());
            o = ((PEMEncryptedKeyPair) o).decryptKeyPair(pemDecryptor);
        }/*ww  w .  j a  v  a  2 s. c o  m*/

        if (o instanceof PEMKeyPair) {
            return pemConverter.getKeyPair((PEMKeyPair) o);
        } else if (o instanceof KeyPair) {
            return (KeyPair) o;
        } else {
            throw new IOException("Failed to read " + resourceKey + " - unknown result object: " + o);
        }
    }
}

From source file:org.apache.sshd.server.keyprovider.PEMHostKeyProvider.java

License:Apache License

protected KeyPair doReadKeyPair(InputStream is) throws Exception {
    try (PEMParser r = new PEMParser(new InputStreamReader(is))) {
        return jcaHelper.getKeyPair((PEMKeyPair) r.readObject());
    }//from  w  ww  .ja  va2s . c o  m
}

From source file:org.appenders.log4j2.elasticsearch.tls.KeyReader.java

License:Open Source License

public PKCS8EncodedKeySpec readPrivateKey(FileInputStream fis, Optional<String> keyPassword)
        throws IOException {
    PEMParser keyReader = new PEMParser(new InputStreamReader(fis));

    PEMDecryptorProvider decryptorProvider = new JcePEMDecryptorProviderBuilder()
            .build(keyPassword.get().toCharArray());

    Object keyPair = keyReader.readObject();
    keyReader.close();//  w w w  . ja  va 2 s. c o m

    PrivateKeyInfo keyInfo;

    if (keyPair instanceof PEMEncryptedKeyPair) {
        PEMKeyPair decryptedKeyPair = ((PEMEncryptedKeyPair) keyPair).decryptKeyPair(decryptorProvider);
        keyInfo = decryptedKeyPair.getPrivateKeyInfo();
    } else {
        keyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo();
    }

    return new PKCS8EncodedKeySpec(keyInfo.getEncoded());
}