Example usage for org.bouncycastle.asn1.pkcs RSAPrivateKey getInstance

List of usage examples for org.bouncycastle.asn1.pkcs RSAPrivateKey getInstance

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.pkcs RSAPrivateKey getInstance.

Prototype

public static RSAPrivateKey getInstance(Object obj) 

Source Link

Usage

From source file:com.codename1.payments.GooglePlayValidator.java

/**
 * Generates a private key from a PKCS#8 encoded string.
 * @param key//from   w w  w.jav  a  2  s. co m
 * @return 
 */
private RSAPrivateKey getRSAPrivateKey(String key) {

    String privKeyPEM = key.replace("-----BEGIN PRIVATE KEY-----\n", "").replace("-----END PRIVATE KEY-----",
            "");
    try {
        byte[] encodedPrivateKey = Base64.decode(privKeyPEM.getBytes("UTF-8"));
        ASN1Sequence primitive = (ASN1Sequence) ASN1Sequence.fromByteArray(encodedPrivateKey);
        Enumeration<?> e = primitive.getObjects();
        BigInteger v = ((ASN1Integer) e.nextElement()).getValue();

        int version = v.intValue();
        if (version != 0 && version != 1) {
            throw new IllegalArgumentException("wrong version for RSA private key");
        }
        e.nextElement();
        DEROctetString octetString = (DEROctetString) e.nextElement();

        encodedPrivateKey = octetString.getOctets();
        primitive = (ASN1Sequence) ASN1Sequence.fromByteArray(encodedPrivateKey);
        return RSAPrivateKey.getInstance(primitive);

    } catch (Exception e2) {
        throw new RuntimeException(e2);
    }

}

From source file:com.foilen.smalltools.crypt.bouncycastle.asymmetric.RSACrypt.java

License:Open Source License

@Override
public AsymmetricKeys loadKeysPemFromString(String... pems) {
    RSAKeyDetails keyDetails = new RSAKeyDetails();
    PemReader reader = null;/*from  ww w.  j a v  a2 s. c o m*/
    try {
        for (String pem : pems) {
            if (pem == null) {
                continue;
            }
            reader = new PemReader(new StringReader(pem));
            PemObject pemObject;
            while ((pemObject = reader.readPemObject()) != null) {
                switch (pemObject.getType()) {
                case "RSA PRIVATE KEY":
                    RSAPrivateKey rsaPrivateKey = RSAPrivateKey.getInstance(pemObject.getContent());
                    keyDetails.setModulus(rsaPrivateKey.getModulus());
                    keyDetails.setPrivateExponent(rsaPrivateKey.getPrivateExponent());
                    keyDetails.setPublicExponent(rsaPrivateKey.getPublicExponent());

                    if (CollectionsTools.isAnyItemNotNull(rsaPrivateKey.getPrime1(), rsaPrivateKey.getPrime2(),
                            rsaPrivateKey.getExponent1(), rsaPrivateKey.getExponent2(),
                            rsaPrivateKey.getCoefficient())) {
                        keyDetails.setCrt(true);
                        keyDetails.setPrimeP(rsaPrivateKey.getPrime1());
                        keyDetails.setPrimeQ(rsaPrivateKey.getPrime2());
                        keyDetails.setPrimeExponentP(rsaPrivateKey.getExponent1());
                        keyDetails.setPrimeExponentQ(rsaPrivateKey.getExponent2());
                        keyDetails.setCrtCoefficient(rsaPrivateKey.getCoefficient());
                    }
                    break;
                case "PUBLIC KEY":
                    KeyFactory kf = KeyFactory.getInstance("RSA");
                    X509EncodedKeySpec keySpec = new X509EncodedKeySpec(pemObject.getContent());
                    RSAPublicKey rsaPublicKey = (RSAPublicKey) kf.generatePublic(keySpec);
                    keyDetails.setModulus(rsaPublicKey.getModulus());
                    keyDetails.setPublicExponent(rsaPublicKey.getPublicExponent());
                    break;
                }
            }
        }
        return createKeyPair(keyDetails);
    } catch (Exception e) {
        throw new SmallToolsException("Problem loading the keys", e);
    } finally {
        CloseableTools.close(reader);
    }
}

From source file:com.github.autermann.sockets.ssl.SSLUtils.java

License:Apache License

private static PrivateKey createPrivateKey(PemObject privatePemObject)
        throws IOException, InvalidKeySpecException, NoSuchAlgorithmException {
    AlgorithmIdentifier algId = new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE);
    RSAPrivateKey instance = RSAPrivateKey.getInstance(privatePemObject.getContent());
    PrivateKeyInfo privateKeyInfo = new PrivateKeyInfo(algId, instance);
    return createKeyFromDER(privateKeyInfo.toASN1Primitive().getEncoded());
}

From source file:io.apigee.trireme.crypto.algorithms.RsaKeyPairProvider.java

License:Open Source License

private KeyPair convertKeyPair(PEMKeyPair kp) throws CryptoException, IOException {
    RSAPrivateKey rsa = RSAPrivateKey.getInstance(kp.getPrivateKeyInfo().parsePrivateKey());

    try {//from w w w . j  a  v a2s .c o  m
        KeyFactory factory = KeyFactory.getInstance("RSA");

        RSAPublicKeySpec pubSpec = new RSAPublicKeySpec(rsa.getModulus(), rsa.getPublicExponent());
        PublicKey pub = factory.generatePublic(pubSpec);

        RSAPrivateCrtKeySpec keySpec = new RSAPrivateCrtKeySpec(rsa.getModulus(), rsa.getPublicExponent(),
                rsa.getPrivateExponent(), rsa.getPrime1(), rsa.getPrime2(), rsa.getExponent1(),
                rsa.getExponent2(), rsa.getCoefficient());
        PrivateKey key = factory.generatePrivate(keySpec);

        return new KeyPair(pub, key);

    } catch (GeneralSecurityException gse) {
        throw new CryptoException(gse);
    }
}

From source file:io.apigee.trireme.crypto.RSAConverter.java

License:Open Source License

public static KeyPair convertKeyPair(PEMKeyPair kp) throws CryptoException, IOException {
    RSAPrivateKey rsa = RSAPrivateKey.getInstance(kp.getPrivateKeyInfo().parsePrivateKey());

    try {/*w w  w .j  ava2  s.com*/
        KeyFactory factory = KeyFactory.getInstance("RSA");

        RSAPublicKeySpec pubSpec = new RSAPublicKeySpec(rsa.getModulus(), rsa.getPublicExponent());
        PublicKey pub = factory.generatePublic(pubSpec);

        RSAPrivateCrtKeySpec keySpec = new RSAPrivateCrtKeySpec(rsa.getModulus(), rsa.getPublicExponent(),
                rsa.getPrivateExponent(), rsa.getPrime1(), rsa.getPrime2(), rsa.getExponent1(),
                rsa.getExponent2(), rsa.getCoefficient());
        PrivateKey key = factory.generatePrivate(keySpec);

        return new KeyPair(pub, key);

    } catch (GeneralSecurityException gse) {
        throw new CryptoException(gse);
    }
}

From source file:jazmin.server.relay.udp.webrtc.TlsUtils.java

License:Open Source License

static AsymmetricKeyParameter loadPrivateKeyResource(String resource) throws IOException {
    PemObject pem = loadPemResource(resource);
    if (pem.getType().endsWith("RSA PRIVATE KEY")) {
        RSAPrivateKey rsa = RSAPrivateKey.getInstance(pem.getContent());
        return new RSAPrivateCrtKeyParameters(rsa.getModulus(), rsa.getPublicExponent(),
                rsa.getPrivateExponent(), rsa.getPrime1(), rsa.getPrime2(), rsa.getExponent1(),
                rsa.getExponent2(), rsa.getCoefficient());
    }//from w  w w. j a v  a2s  .  com
    if (pem.getType().endsWith("PRIVATE KEY")) {
        return PrivateKeyFactory.createKey(pem.getContent());
    }
    throw new IllegalArgumentException("'resource' doesn't specify a valid private key");
}

From source file:org.restcomm.sbc.media.dtls.TlsUtils.java

License:Open Source License

static AsymmetricKeyParameter loadPrivateKeyResource(String resource) throws IOException {
    PemObject pem = loadPemResource(resource);
    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("load Private key =" + resource);
        LOGGER.trace("type             =" + pem.getType());
    }// ww  w. j  av  a 2s . c o m
    if (pem.getType().endsWith("RSA PRIVATE KEY")) {
        RSAPrivateKey rsa = RSAPrivateKey.getInstance(pem.getContent());
        return new RSAPrivateCrtKeyParameters(rsa.getModulus(), rsa.getPublicExponent(),
                rsa.getPrivateExponent(), rsa.getPrime1(), rsa.getPrime2(), rsa.getExponent1(),
                rsa.getExponent2(), rsa.getCoefficient());
    }
    if (pem.getType().endsWith("PRIVATE KEY")) {
        AsymmetricKeyParameter pKey = PrivateKeyFactory.createKey(pem.getContent());
        if (LOGGER.isTraceEnabled()) {
            LOGGER.trace("key =" + pKey.isPrivate());
            LOGGER.trace(pKey.toString());
        }
        return pKey;
    }
    throw new IllegalArgumentException("'resource' doesn't specify a valid private key");
}

From source file:org.usrz.libs.crypto.pem.PEMFactory.java

License:Apache License

public PrivateKey getPrivateKey(PrivateKeyInfo keyInfo)
        throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException {

    final Object algorithmId = keyInfo.getPrivateKeyAlgorithm().getAlgorithm();
    final ASN1Encodable encodable;
    try {//from   w  ww .  j  av  a  2 s  . c o m
        encodable = keyInfo.parsePrivateKey();
    } catch (IOException exception) {
        throw new InvalidKeyException("Unable to parse private key structure", exception);
    }

    /* DSA keys */
    if (algorithmId.equals(X9ObjectIdentifiers.id_dsa)) {
        final ASN1Encodable encodedParams = keyInfo.getPrivateKeyAlgorithm().getParameters();
        final DSAParameter params = DSAParameter.getInstance(encodedParams);
        final BigInteger x = ASN1Integer.getInstance(encodable).getValue();
        return getDSAKeyFactory()
                .generatePrivate(new DSAPrivateKeySpec(x, params.getP(), params.getQ(), params.getG()));
    }

    /* RSA keys */
    if (algorithmId.equals(PKCSObjectIdentifiers.rsaEncryption)) {
        final RSAPrivateKey privateKey = RSAPrivateKey.getInstance(encodable);
        return getRSAKeyFactory().generatePrivate(
                new RSAPrivateCrtKeySpec(privateKey.getModulus(), privateKey.getPublicExponent(),
                        privateKey.getPrivateExponent(), privateKey.getPrime1(), privateKey.getPrime2(),
                        privateKey.getExponent1(), privateKey.getExponent2(), privateKey.getCoefficient()));
    }

    /* Others? */
    throw new NoSuchAlgorithmException("Unsupported algorithm for private key: " + algorithmId);

}

From source file:org.xipki.security.bcext.BCRSAPrivateCrtKey.java

License:Open Source License

/**
 * construct an RSA key from a private key info object.
 *//* w  w w  .  j  av a2s  .  c  o m*/
public BCRSAPrivateCrtKey(final PrivateKeyInfo info) throws IOException {
    this(RSAPrivateKey.getInstance(info.parsePrivateKey()));
}