Home | History | Annotate | Download | only in provider
      1 package org.bouncycastle.jce.provider;
      2 
      3 import java.security.interfaces.RSAPrivateCrtKey;
      4 import java.security.interfaces.RSAPrivateKey;
      5 import java.security.interfaces.RSAPublicKey;
      6 
      7 import org.bouncycastle.asn1.DERObjectIdentifier;
      8 import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
      9 import org.bouncycastle.asn1.x509.X509ObjectIdentifiers;
     10 import org.bouncycastle.crypto.params.RSAKeyParameters;
     11 import org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters;
     12 
     13 /**
     14  * utility class for converting java.security RSA objects into their
     15  * org.bouncycastle.crypto counterparts.
     16  */
     17 class RSAUtil
     18 {
     19     static boolean isRsaOid(
     20         DERObjectIdentifier algOid)
     21     {
     22         return algOid.equals(PKCSObjectIdentifiers.rsaEncryption)
     23             || algOid.equals(X509ObjectIdentifiers.id_ea_rsa)
     24             || algOid.equals(PKCSObjectIdentifiers.id_RSASSA_PSS)
     25             || algOid.equals(PKCSObjectIdentifiers.id_RSAES_OAEP);
     26     }
     27 
     28     static RSAKeyParameters generatePublicKeyParameter(
     29         RSAPublicKey    key)
     30     {
     31         return new RSAKeyParameters(false, key.getModulus(), key.getPublicExponent());
     32 
     33     }
     34 
     35     static RSAKeyParameters generatePrivateKeyParameter(
     36         RSAPrivateKey    key)
     37     {
     38         if (key instanceof RSAPrivateCrtKey)
     39         {
     40             RSAPrivateCrtKey    k = (RSAPrivateCrtKey)key;
     41 
     42             return new RSAPrivateCrtKeyParameters(k.getModulus(),
     43                 k.getPublicExponent(), k.getPrivateExponent(),
     44                 k.getPrimeP(), k.getPrimeQ(), k.getPrimeExponentP(),                            k.getPrimeExponentQ(), k.getCrtCoefficient());
     45         }
     46         else
     47         {
     48             RSAPrivateKey    k = key;
     49 
     50             return new RSAKeyParameters(true, k.getModulus(), k.getPrivateExponent());
     51         }
     52     }
     53 }
     54