Methods Summary |
---|
static java.security.PrivateKey | createPrivateKeyFromDERStream(byte[] in)create a private key from the given DER encoded input stream.
return createPrivateKeyFromPrivateKeyInfo(
new PrivateKeyInfo((ASN1Sequence)(new ASN1InputStream(in).readObject())));
|
static java.security.PrivateKey | createPrivateKeyFromPrivateKeyInfo(org.bouncycastle.asn1.pkcs.PrivateKeyInfo info)create a private key from the given public key info object.
DERObjectIdentifier algOid = info.getAlgorithmId().getObjectId();
if (RSAUtil.isRsaOid(algOid))
{
return new JCERSAPrivateCrtKey(info);
}
else if (algOid.equals(PKCSObjectIdentifiers.dhKeyAgreement))
{
return new JCEDHPrivateKey(info);
}
// BEGIN android-removed
// else if (algOid.equals(OIWObjectIdentifiers.elGamalAlgorithm))
// {
// return new JCEElGamalPrivateKey(info);
// }
// END android-removed
else if (algOid.equals(X9ObjectIdentifiers.id_dsa))
{
return new JDKDSAPrivateKey(info);
}
// BEGIN android-removed
// else if (algOid.equals(X9ObjectIdentifiers.id_ecPublicKey))
// {
// return new JCEECPrivateKey(info);
// }
// else if (algOid.equals(CryptoProObjectIdentifiers.gostR3410_94))
// {
// return new JDKGOST3410PrivateKey(info);
// }
// else if (algOid.equals(CryptoProObjectIdentifiers.gostR3410_2001))
// {
// return new JCEECPrivateKey(info);
// }
// END android-removed
else
{
throw new RuntimeException("algorithm identifier " + algOid + " in key not recognised");
}
|
static java.security.PublicKey | createPublicKeyFromDERStream(byte[] in)create a public key from the given DER encoded input stream.
return createPublicKeyFromPublicKeyInfo(
new SubjectPublicKeyInfo((ASN1Sequence)(new ASN1InputStream(in).readObject())));
|
static java.security.PublicKey | createPublicKeyFromPublicKeyInfo(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo info)create a public key from the given public key info object.
DERObjectIdentifier algOid = info.getAlgorithmId().getObjectId();
if (RSAUtil.isRsaOid(algOid))
{
return new JCERSAPublicKey(info);
}
else if (algOid.equals(PKCSObjectIdentifiers.dhKeyAgreement))
{
return new JCEDHPublicKey(info);
}
else if (algOid.equals(X9ObjectIdentifiers.dhpublicnumber))
{
return new JCEDHPublicKey(info);
}
// BEGIN android-removed
// else if (algOid.equals(OIWObjectIdentifiers.elGamalAlgorithm))
// {
// return new JCEElGamalPublicKey(info);
// }
// END android-removed
else if (algOid.equals(X9ObjectIdentifiers.id_dsa))
{
return new JDKDSAPublicKey(info);
}
else if (algOid.equals(OIWObjectIdentifiers.dsaWithSHA1))
{
return new JDKDSAPublicKey(info);
}
// BEGIN android-removed
// else if (algOid.equals(X9ObjectIdentifiers.id_ecPublicKey))
// {
// return new JCEECPublicKey(info);
// }
// else if (algOid.equals(CryptoProObjectIdentifiers.gostR3410_94))
// {
// return new JDKGOST3410PublicKey(info);
// }
// else if (algOid.equals(CryptoProObjectIdentifiers.gostR3410_2001))
// {
// return new JCEECPublicKey(info);
// }
else
{
throw new RuntimeException("algorithm identifier " + algOid + " in key not recognised");
}
|
protected java.security.spec.KeySpec | engineGetKeySpec(java.security.Key key, java.lang.Class spec)
if (spec.isAssignableFrom(PKCS8EncodedKeySpec.class) && key.getFormat().equals("PKCS#8"))
{
return new PKCS8EncodedKeySpec(key.getEncoded());
}
else if (spec.isAssignableFrom(X509EncodedKeySpec.class) && key.getFormat().equals("X.509"))
{
return new X509EncodedKeySpec(key.getEncoded());
}
else if (spec.isAssignableFrom(RSAPublicKeySpec.class) && key instanceof RSAPublicKey)
{
RSAPublicKey k = (RSAPublicKey)key;
return new RSAPublicKeySpec(k.getModulus(), k.getPublicExponent());
}
else if (spec.isAssignableFrom(RSAPrivateKeySpec.class) && key instanceof RSAPrivateKey)
{
RSAPrivateKey k = (RSAPrivateKey)key;
return new RSAPrivateKeySpec(k.getModulus(), k.getPrivateExponent());
}
else if (spec.isAssignableFrom(RSAPrivateCrtKeySpec.class) && key instanceof RSAPrivateCrtKey)
{
RSAPrivateCrtKey k = (RSAPrivateCrtKey)key;
return new RSAPrivateCrtKeySpec(
k.getModulus(), k.getPublicExponent(),
k.getPrivateExponent(),
k.getPrimeP(), k.getPrimeQ(),
k.getPrimeExponentP(), k.getPrimeExponentQ(),
k.getCrtCoefficient());
}
else if (spec.isAssignableFrom(DHPrivateKeySpec.class) && key instanceof DHPrivateKey)
{
DHPrivateKey k = (DHPrivateKey)key;
return new DHPrivateKeySpec(k.getX(), k.getParams().getP(), k.getParams().getG());
}
else if (spec.isAssignableFrom(DHPublicKeySpec.class) && key instanceof DHPublicKey)
{
DHPublicKey k = (DHPublicKey)key;
return new DHPublicKeySpec(k.getY(), k.getParams().getP(), k.getParams().getG());
}
throw new RuntimeException("not implemented yet " + key + " " + spec);
|
protected java.security.Key | engineTranslateKey(java.security.Key key)
if (key instanceof RSAPublicKey)
{
return new JCERSAPublicKey((RSAPublicKey)key);
}
else if (key instanceof RSAPrivateCrtKey)
{
return new JCERSAPrivateCrtKey((RSAPrivateCrtKey)key);
}
else if (key instanceof RSAPrivateKey)
{
return new JCERSAPrivateKey((RSAPrivateKey)key);
}
else if (key instanceof DHPublicKey)
{
// BEGIN android-removed
// if (elGamalFactory)
// {
// return new JCEElGamalPublicKey((DHPublicKey)key);
// }
// else
// {
// END android-removed
return new JCEDHPublicKey((DHPublicKey)key);
// BEGIN android-removed
// }
// END android-removed
}
else if (key instanceof DHPrivateKey)
{
// BEGIN android-removed
// if (elGamalFactory)
// {
// return new JCEElGamalPrivateKey((DHPrivateKey)key);
// }
// else
// {
// END android-removed
return new JCEDHPrivateKey((DHPrivateKey)key);
// BEGIN android-removed
// }
// END android-removed
}
else if (key instanceof DSAPublicKey)
{
return new JDKDSAPublicKey((DSAPublicKey)key);
}
else if (key instanceof DSAPrivateKey)
{
return new JDKDSAPrivateKey((DSAPrivateKey)key);
}
// BEGIN android-removed
// else if (key instanceof ElGamalPublicKey)
// {
// return new JCEElGamalPublicKey((ElGamalPublicKey)key);
// }
// else if (key instanceof ElGamalPrivateKey)
// {
// return new JCEElGamalPrivateKey((ElGamalPrivateKey)key);
// }
// END android-removed
throw new InvalidKeyException("key type unknown");
|