Java 类org.bouncycastle.asn1.pkcs.RSAPrivateKey 实例源码

项目:ipack    文件:KeyFactorySpi.java   
protected Key engineTranslateKey(
    Key key)
    throws InvalidKeyException
{
    if (key instanceof RSAPublicKey)
    {
        return new BCRSAPublicKey((RSAPublicKey)key);
    }
    else if (key instanceof RSAPrivateCrtKey)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKey)key);
    }
    else if (key instanceof java.security.interfaces.RSAPrivateKey)
    {
        return new BCRSAPrivateKey((java.security.interfaces.RSAPrivateKey)key);
    }

    throw new InvalidKeyException("key type unknown");
}
项目:Aki-SSL    文件:KeyFactorySpi.java   
protected Key engineTranslateKey(
    Key key)
    throws InvalidKeyException
{
    if (key instanceof RSAPublicKey)
    {
        return new BCRSAPublicKey((RSAPublicKey)key);
    }
    else if (key instanceof RSAPrivateCrtKey)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKey)key);
    }
    else if (key instanceof java.security.interfaces.RSAPrivateKey)
    {
        return new BCRSAPrivateKey((java.security.interfaces.RSAPrivateKey)key);
    }

    throw new InvalidKeyException("key type unknown");
}
项目:Aki-SSL    文件:KeyFactorySpi.java   
public PrivateKey generatePrivate(PrivateKeyInfo keyInfo)
    throws IOException
{
    ASN1ObjectIdentifier algOid = keyInfo.getPrivateKeyAlgorithm().getAlgorithm();

    if (RSAUtil.isRsaOid(algOid))
    {
        RSAPrivateKey rsaPrivKey = RSAPrivateKey.getInstance(keyInfo.parsePrivateKey());

        if (rsaPrivKey.getCoefficient().intValue() == 0)
        {
            return new BCRSAPrivateKey(rsaPrivKey);
        }
        else
        {
            return new BCRSAPrivateCrtKey(keyInfo);
        }
    }
    else
    {
        throw new IOException("algorithm identifier " + algOid + " in key not recognised");
    }
}
项目:animamea    文件:TerminalAuthenticationRSA.java   
/**
     * @param caDomainParamter
     */
    public TerminalAuthenticationRSA(DomainParameter caDomainParamter, AmRSAPublicKey taPublicKey, RSAPrivateKey taSecretKey) {
        super(caDomainParamter);
        //TODO id_TA mit RSA implementieren.
        throw new UnsupportedOperationException("Terminal Authentication with RSA not yet implemented!");

//      BigInteger modulus = taPublicKey.getModulus();
//      BigInteger pubExp = taPublicKey.getPublicExponent();
//      
//      if (taPublicKey.getOID().toString().equals(BSIObjectIdentifiers.id_TA_RSA_PSS_SHA_1.toString())) {
//          signingAlgorithm = "SHA1withRSA";
//      } else if (taPublicKey.getOID().toString().equals(BSIObjectIdentifiers.id_TA_RSA_PSS_SHA_256.toString())) {
//          signingAlgorithm = "SHA256withRSA";
//      } else if (taPublicKey.getOID().toString().equals(BSIObjectIdentifiers.id_TA_RSA_PSS_SHA_512.toString())) {
//          signingAlgorithm = "SHA512withRSA";
//      } else if (taPublicKey.getOID().toString().equals(BSIObjectIdentifiers.id_TA_RSA_v1_5_SHA_1.toString())) {
//          signingAlgorithm = "SHA1withRSA";
//      } else if (taPublicKey.getOID().toString().equals(BSIObjectIdentifiers.id_TA_RSA_v1_5_SHA_256.toString())) {
//          signingAlgorithm = "SHA256withRSA";
//      } else if (taPublicKey.getOID().toString().equals(BSIObjectIdentifiers.id_TA_RSA_v1_5_SHA_512.toString())) {
//          signingAlgorithm = "SHA512withRSA";
//      }
//      
//      this.terminalSK = taSecretKey;
    }
项目:PasswordSafe    文件:Crypto.java   
public static APrivateKey getRSAPrivateKey(byte[] b) throws Exception
{
    ASN1InputStream in = new ASN1InputStream(b);
    try
    {
        ASN1Primitive x = in.readObject();
        RSAPrivateKey k = RSAPrivateKey.getInstance(x);

        return new APrivateKey(new RSAPrivateCrtKeyParameters
        (
            k.getModulus(), 
            k.getPublicExponent(),
            k.getPrivateExponent(),
            k.getPrime1(),
            k.getPrime2(),
            k.getExponent1(),
            k.getExponent2(),
            k.getCoefficient()
        ));
    }
    finally
    {
        CKit.close(in);
    }
}
项目:subshare    文件:CryptoRegistry.java   
/**
 * <p>
 * Encode (serialise) a private key in order to store it or transport it over a network.
 * </p><p>
 * <b>Important: You should keep your private key secret!</b> Thus, you might want to encrypt the result before
 * storing it to a file or sending it somewhere!
 * </p>
 * @param privateKey the private key to be encoded; must not be <code>null</code>.
 * @return the encoded (serialised) form of the private key. Can be passed to {@link #decodePrivateKey(byte[])} to
 * reverse this method.
 * @see #decodePrivateKey(byte[])
 * @see #encodePublicKey(CipherParameters)
 */
public byte[] encodePrivateKey(final CipherParameters privateKey)
{
    if (privateKey == null)
        throw new IllegalArgumentException("privateKey == null");

    // TODO use a class-based map or similar registry!
    try {
        if (privateKey instanceof RSAPrivateCrtKeyParameters) {
            final RSAPrivateCrtKeyParameters rsaPrivateKey = (RSAPrivateCrtKeyParameters) privateKey;

            final PrivateKeyInfo info = new PrivateKeyInfo(
                    new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE),
                    new RSAPrivateKey(
                            rsaPrivateKey.getModulus(), rsaPrivateKey.getPublicExponent(), rsaPrivateKey.getExponent(),
                            rsaPrivateKey.getP(), rsaPrivateKey.getQ(), rsaPrivateKey.getDP(),
                            rsaPrivateKey.getDQ(), rsaPrivateKey.getQInv()).toASN1Primitive()
                    );
            return info.getEncoded();
        }
    } catch (final IOException x) {
        throw new RuntimeException(x);
    }

    throw new UnsupportedOperationException("privateKey.class=\"" + privateKey.getClass().getName() + "\" not yet supported!");
}
项目:CryptMeme    文件:KeyFactorySpi.java   
protected Key engineTranslateKey(
    Key key)
    throws InvalidKeyException
{
    if (key instanceof RSAPublicKey)
    {
        return new BCRSAPublicKey((RSAPublicKey)key);
    }
    else if (key instanceof RSAPrivateCrtKey)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKey)key);
    }
    else if (key instanceof java.security.interfaces.RSAPrivateKey)
    {
        return new BCRSAPrivateKey((java.security.interfaces.RSAPrivateKey)key);
    }

    throw new InvalidKeyException("key type unknown");
}
项目:irma_future_id    文件:TlsTestUtils.java   
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());
    }
    if (pem.getType().endsWith("PRIVATE KEY"))
    {
        return PrivateKeyFactory.createKey(pem.getContent());
    }
    throw new IllegalArgumentException("'resource' doesn't specify a valid private key");
}
项目:irma_future_id    文件:KeyFactorySpi.java   
protected Key engineTranslateKey(
    Key key)
    throws InvalidKeyException
{
    if (key instanceof RSAPublicKey)
    {
        return new BCRSAPublicKey((RSAPublicKey)key);
    }
    else if (key instanceof RSAPrivateCrtKey)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKey)key);
    }
    else if (key instanceof java.security.interfaces.RSAPrivateKey)
    {
        return new BCRSAPrivateKey((java.security.interfaces.RSAPrivateKey)key);
    }

    throw new InvalidKeyException("key type unknown");
}
项目:bc-java    文件:TlsTestUtils.java   
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());
    }
    if (pem.getType().endsWith("PRIVATE KEY"))
    {
        return PrivateKeyFactory.createKey(pem.getContent());
    }
    throw new IllegalArgumentException("'resource' doesn't specify a valid private key");
}
项目:bc-java    文件:KeyFactorySpi.java   
protected Key engineTranslateKey(
    Key key)
    throws InvalidKeyException
{
    if (key instanceof RSAPublicKey)
    {
        return new BCRSAPublicKey((RSAPublicKey)key);
    }
    else if (key instanceof RSAPrivateCrtKey)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKey)key);
    }
    else if (key instanceof java.security.interfaces.RSAPrivateKey)
    {
        return new BCRSAPrivateKey((java.security.interfaces.RSAPrivateKey)key);
    }

    throw new InvalidKeyException("key type unknown");
}
项目:ipack    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
JCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:ipack    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
JCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:ipack    文件:KeyFactorySpi.java   
protected PrivateKey engineGeneratePrivate(
    KeySpec keySpec)
    throws InvalidKeySpecException
{
    if (keySpec instanceof PKCS8EncodedKeySpec)
    {
        try
        {
            return generatePrivate(PrivateKeyInfo.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
        }
        catch (Exception e)
        {
            //
            // in case it's just a RSAPrivateKey object... -- openSSL produces these
            //
            try
            {
                return new BCRSAPrivateCrtKey(
                    RSAPrivateKey.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
            }
            catch (Exception ex)
            {
                throw new ExtendedInvalidKeySpecException("unable to process key spec: " + e.toString(), e);
            }
        }
    }
    else if (keySpec instanceof RSAPrivateCrtKeySpec)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKeySpec)keySpec);
    }
    else if (keySpec instanceof RSAPrivateKeySpec)
    {
        return new BCRSAPrivateKey((RSAPrivateKeySpec)keySpec);
    }

    throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());
}
项目:ipack    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
BCRSAPrivateCrtKey(
    PrivateKeyInfo info)
    throws IOException
{
    this(RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:ipack    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
BCRSAPrivateCrtKey(
    RSAPrivateKey key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:Aki-SSL    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
JCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:Aki-SSL    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
JCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:Aki-SSL    文件:KeyFactorySpi.java   
protected PrivateKey engineGeneratePrivate(
    KeySpec keySpec)
    throws InvalidKeySpecException
{
    if (keySpec instanceof PKCS8EncodedKeySpec)
    {
        try
        {
            return generatePrivate(PrivateKeyInfo.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
        }
        catch (Exception e)
        {
            //
            // in case it's just a RSAPrivateKey object... -- openSSL produces these
            //
            try
            {
                return new BCRSAPrivateCrtKey(
                    RSAPrivateKey.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
            }
            catch (Exception ex)
            {
                throw new ExtendedInvalidKeySpecException("unable to process key spec: " + e.toString(), e);
            }
        }
    }
    else if (keySpec instanceof RSAPrivateCrtKeySpec)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKeySpec)keySpec);
    }
    else if (keySpec instanceof RSAPrivateKeySpec)
    {
        return new BCRSAPrivateKey((RSAPrivateKeySpec)keySpec);
    }

    throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());
}
项目:Aki-SSL    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
BCRSAPrivateCrtKey(
    PrivateKeyInfo info)
    throws IOException
{
    this(RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:Aki-SSL    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
BCRSAPrivateCrtKey(
    RSAPrivateKey key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:PasswordSafe    文件:Crypto.java   
public static RSAPrivateKey toRSAPrivateKey(RSAPrivateCrtKeyParameters k) throws Exception
{
    // hope this is correct
    return new RSAPrivateKey
    (
        k.getModulus(), 
        k.getPublicExponent(),
        k.getExponent(),
        k.getP(),
        k.getQ(),
        k.getDP(),
        k.getDQ(),
        k.getQInv()
    );
}
项目:silvertunnel-monteux    文件:TempJCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
TempJCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:silvertunnel-monteux    文件:TempJCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
TempJCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:tor-research-framework    文件:TorServerSocket.java   
public void loadKeys() {
    try {
        FileInputStream idCertIS = new FileInputStream(new File("keys/identity.crt"));
        FileInputStream linkCertIS = new FileInputStream(new File("keys/link.crt"));
        FileInputStream authCertIS = new FileInputStream(new File("keys/auth.crt"));

        CertificateFactory cf = null;
        cf = CertificateFactory.getInstance("X.509");

        identityCert = (X509Certificate) cf.generateCertificate(idCertIS);
        log.info("Our Identity Cert Digest: " + Hex.toHexString(TorCrypto.getSHA1().digest(TorCrypto.publicKeyToASN1((RSAPublicKey) identityCert.getPublicKey()))));

        linkCert = (X509Certificate) cf.generateCertificate(linkCertIS);
        log.info("Our Link Cert Digest: " + Hex.toHexString(TorCrypto.getSHA1().digest(TorCrypto.publicKeyToASN1((RSAPublicKey) linkCert.getPublicKey()))));

        authCert = (X509Certificate) cf.generateCertificate(authCertIS);
        log.info("Our Auth Cert Digest: " + Hex.toHexString(TorCrypto.getSHA1().digest(TorCrypto.publicKeyToASN1((RSAPublicKey) authCert.getPublicKey()))));

        identityPubKey = (RSAPublicKey) identityCert.getPublicKey();

        FileReader in = new FileReader("keys/identity.key");
        identityPrivKey = RSAPrivateKey.getInstance(new PemReader(in).readPemObject().getContent());
    } catch (CertificateException | IOException e) {
        log.error("Unable to load server public key");
        System.exit(1);
    }
}
项目:CryptMeme    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
JCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:CryptMeme    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
JCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:CryptMeme    文件:KeyFactorySpi.java   
protected PrivateKey engineGeneratePrivate(
    KeySpec keySpec)
    throws InvalidKeySpecException
{
    if (keySpec instanceof PKCS8EncodedKeySpec)
    {
        try
        {
            return generatePrivate(PrivateKeyInfo.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
        }
        catch (Exception e)
        {
            //
            // in case it's just a RSAPrivateKey object... -- openSSL produces these
            //
            try
            {
                return new BCRSAPrivateCrtKey(
                    RSAPrivateKey.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
            }
            catch (Exception ex)
            {
                throw new ExtendedInvalidKeySpecException("unable to process key spec: " + e.toString(), e);
            }
        }
    }
    else if (keySpec instanceof RSAPrivateCrtKeySpec)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKeySpec)keySpec);
    }
    else if (keySpec instanceof RSAPrivateKeySpec)
    {
        return new BCRSAPrivateKey((RSAPrivateKeySpec)keySpec);
    }

    throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());
}
项目:CryptMeme    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
BCRSAPrivateCrtKey(
    PrivateKeyInfo info)
    throws IOException
{
    this(RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:CryptMeme    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
BCRSAPrivateCrtKey(
    RSAPrivateKey key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:silvertunnel-monteux    文件:TempJCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
TempJCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:silvertunnel-monteux    文件:TempJCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
TempJCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:irma_future_id    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
JCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:irma_future_id    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
JCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:irma_future_id    文件:KeyFactorySpi.java   
protected PrivateKey engineGeneratePrivate(
    KeySpec keySpec)
    throws InvalidKeySpecException
{
    if (keySpec instanceof PKCS8EncodedKeySpec)
    {
        try
        {
            return generatePrivate(PrivateKeyInfo.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
        }
        catch (Exception e)
        {
            //
            // in case it's just a RSAPrivateKey object... -- openSSL produces these
            //
            try
            {
                return new BCRSAPrivateCrtKey(
                    RSAPrivateKey.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
            }
            catch (Exception ex)
            {
                throw new ExtendedInvalidKeySpecException("unable to process key spec: " + e.toString(), e);
            }
        }
    }
    else if (keySpec instanceof RSAPrivateCrtKeySpec)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKeySpec)keySpec);
    }
    else if (keySpec instanceof RSAPrivateKeySpec)
    {
        return new BCRSAPrivateKey((RSAPrivateKeySpec)keySpec);
    }

    throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());
}
项目:irma_future_id    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
BCRSAPrivateCrtKey(
    PrivateKeyInfo info)
    throws IOException
{
    this(RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:irma_future_id    文件:BCRSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
BCRSAPrivateCrtKey(
    RSAPrivateKey key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:bc-java    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a private key info object.
 */
JCERSAPrivateCrtKey(
    PrivateKeyInfo  info)
    throws IOException
{
    this(org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(info.parsePrivateKey()));
}
项目:bc-java    文件:JCERSAPrivateCrtKey.java   
/**
 * construct an RSA key from a ASN.1 RSA private key object.
 */
JCERSAPrivateCrtKey(
    RSAPrivateKey  key)
{
    this.modulus = key.getModulus();
    this.publicExponent = key.getPublicExponent();
    this.privateExponent = key.getPrivateExponent();
    this.primeP = key.getPrime1();
    this.primeQ = key.getPrime2();
    this.primeExponentP = key.getExponent1();
    this.primeExponentQ = key.getExponent2();
    this.crtCoefficient = key.getCoefficient();
}
项目:bc-java    文件:KeyFactorySpi.java   
protected PrivateKey engineGeneratePrivate(
    KeySpec keySpec)
    throws InvalidKeySpecException
{
    if (keySpec instanceof PKCS8EncodedKeySpec)
    {
        try
        {
            return generatePrivate(PrivateKeyInfo.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
        }
        catch (Exception e)
        {
            //
            // in case it's just a RSAPrivateKey object... -- openSSL produces these
            //
            try
            {
                return new BCRSAPrivateCrtKey(
                    RSAPrivateKey.getInstance(((PKCS8EncodedKeySpec)keySpec).getEncoded()));
            }
            catch (Exception ex)
            {
                throw new ExtendedInvalidKeySpecException("unable to process key spec: " + e.toString(), e);
            }
        }
    }
    else if (keySpec instanceof RSAPrivateCrtKeySpec)
    {
        return new BCRSAPrivateCrtKey((RSAPrivateCrtKeySpec)keySpec);
    }
    else if (keySpec instanceof RSAPrivateKeySpec)
    {
        return new BCRSAPrivateKey((RSAPrivateKeySpec)keySpec);
    }

    throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());
}