List of usage examples for org.bouncycastle.asn1.pkcs RSAPrivateKey getInstance
public static RSAPrivateKey getInstance(Object obj)
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())); }