Example usage for org.bouncycastle.openssl.jcajce JcaPEMKeyConverter getPublicKey

List of usage examples for org.bouncycastle.openssl.jcajce JcaPEMKeyConverter getPublicKey

Introduction

In this page you can find the example usage for org.bouncycastle.openssl.jcajce JcaPEMKeyConverter getPublicKey.

Prototype

public PublicKey getPublicKey(SubjectPublicKeyInfo publicKeyInfo) throws PEMException 

Source Link

Usage

From source file:org.metaeffekt.dcc.commons.pki.KeyUtils.java

License:Apache License

public static PublicKey loadPublicKeyFromKeyPair(String file) throws IOException {
    PEMParser parser = new PEMParser(new FileReader(file));
    try {//from w  w w .ja v  a2s. co  m
        PEMKeyPair pemObject = (PEMKeyPair) parser.readObject();
        SubjectPublicKeyInfo info = pemObject.getPublicKeyInfo();
        JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
        return converter.getPublicKey(info);
    } finally {
        IOUtils.closeQuietly(parser);
    }
}

From source file:uk.co.develop4.security.utils.decoders.DecoderUtils.java

License:Apache License

private static KeyPair getKeyPairFromOpenSslPemFile(String fileName, String passphrase, String providerName)
        throws IOException {
    Reader fRd = null;//from w  ww. j  av  a2s  .  com
    PEMParser pemParser = null;
    KeyPair keypair = null;
    try {
        JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider(providerName);
        PEMDecryptorProvider pemProv = new JcePEMDecryptorProviderBuilder().setProvider(providerName)
                .build(passphrase.toCharArray());
        InputDecryptorProvider pkcs8Prov = new JceOpenSSLPKCS8DecryptorProviderBuilder()
                .build(passphrase.toCharArray());
        //res = this.getClass().getResourceAsStream(fileName);
        File file = DecoderUtils.isFile(fileName);
        FileReader fr = new FileReader(file);
        fRd = new BufferedReader(fr);
        pemParser = new PEMParser(fRd);
        Object obj = pemParser.readObject();

        if (obj instanceof PEMEncryptedKeyPair) {
            keypair = converter.getKeyPair(((PEMEncryptedKeyPair) obj).decryptKeyPair(pemProv));
        } else if (obj instanceof PKCS8EncryptedPrivateKeyInfo) {
            keypair = new KeyPair(null, converter
                    .getPrivateKey(((PKCS8EncryptedPrivateKeyInfo) obj).decryptPrivateKeyInfo(pkcs8Prov)));
        } else if (obj instanceof SubjectPublicKeyInfo) {
            keypair = new KeyPair((PublicKey) converter.getPublicKey((SubjectPublicKeyInfo) obj), null);
        } else if (obj instanceof X509CertificateHolder) {
            SubjectPublicKeyInfo sub = (SubjectPublicKeyInfo) ((X509CertificateHolder) obj)
                    .getSubjectPublicKeyInfo();
            keypair = new KeyPair((PublicKey) converter.getPublicKey((SubjectPublicKeyInfo) sub), null);
        } else {
            keypair = converter.getKeyPair((PEMKeyPair) obj);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        pemParser.close();
    }
    return keypair;
}