Example usage for org.bouncycastle.openssl PEMParser readObject

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

Introduction

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

Prototype

public Object readObject() throws IOException 

Source Link

Document

Read the next PEM object attempting to interpret the header and create a higher level object from the content.

Usage

From source file:pv181.jca.Globals.java

/**
 * Basic PEM file parser, returns parsed object.
 * @param s/*  ww  w .ja  v a 2s  .c om*/
 * @return
 * @throws IOException 
 */
public static Object readPEM(InputStream s) throws IOException {
    // initialize buffered reader of input stream
    Reader fRd = new BufferedReader(new InputStreamReader(s));

    // PEM parser from Bouncy castle library
    PEMParser parser = new PEMParser(fRd);

    // Parse given PEM file, decide if it is X509Certificate
    return parser.readObject();
}

From source file:ru.pflb.samlsampler.SamlSampler.java

private static PrivateKey getEPMPrivateKey(String pathToPemPrivateKey) {
    PEMParser pEMParser;
    try {/*  w  w w.  j  av a2s.  c o m*/
        pEMParser = new PEMParser(new InputStreamReader(new FileInputStream(pathToPemPrivateKey)));
        Object privateKeyObject = pEMParser.readObject();
        byte[] keyBytes = PrivateKeyInfo.getInstance(privateKeyObject).getEncoded();
        PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes);
        KeyFactory kf = KeyFactory.getInstance("RSA");
        PrivateKey pk = kf.generatePrivate(spec);

        return pk;
    } catch (Exception ePEM) {
        java.io.StringWriter stringWriter = new java.io.StringWriter();
        ePEM.printStackTrace(new java.io.PrintWriter(stringWriter));
        PrivateKey pk = null;
        return pk;
    }
}

From source file:shiver.me.timbers.spring.security.keys.BouncyCastlePemKeyPairs.java

License:Apache License

@Override
public KeyPair createPair(String secret) throws IOException {
    final PEMParser pemParser = new PEMParser(
            new InputStreamReader(new ByteArrayInputStream(secret.getBytes())));
    return new JcaPEMKeyConverter().setProvider("BC").getKeyPair((PEMKeyPair) pemParser.readObject());
}

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  w  w . ja va2s .c  om
    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;
}