Example usage for org.bouncycastle.asn1.pkcs RSAPrivateKeyStructure getPrivateExponent

List of usage examples for org.bouncycastle.asn1.pkcs RSAPrivateKeyStructure getPrivateExponent

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.pkcs RSAPrivateKeyStructure getPrivateExponent.

Prototype

public BigInteger getPrivateExponent() 

Source Link

Usage

From source file:edu.syr.bytecast.javadocpublish.ReadPrivateKey.java

License:Open Source License

public void readPrivateKey(String filename) throws Exception {
    List<Byte> bytes = readFileBytes(filename);

    int start_length = "-----BEGIN RSA PRIVATE KEY-----\n".length();
    int end_length = "\n-----END RSA PRIVATE KEY-----".length();
    bytes = bytes.subList(start_length, bytes.size() - end_length);
    String b64encoded = "";
    for (Byte value : bytes) {
        b64encoded += (char) value.byteValue();
    }/*from www.  ja v  a2  s  .  co  m*/
    byte[] asn1PrivateKeyBytes = org.apache.commons.codec.binary.Base64
            .decodeBase64(b64encoded.getBytes("US-ASCII"));
    RSAPrivateKeyStructure asn1PrivKey = new RSAPrivateKeyStructure(
            (ASN1Sequence) ASN1Sequence.fromByteArray(asn1PrivateKeyBytes));
    RSAPrivateKeySpec rsaPrivKeySpec = new RSAPrivateKeySpec(asn1PrivKey.getModulus(),
            asn1PrivKey.getPrivateExponent());
    KeyFactory kf = KeyFactory.getInstance("RSA");
    m_privateKey = (RSAPrivateKey) kf.generatePrivate(rsaPrivKeySpec);
}

From source file:kr.ac.cau.mecs.cass.utils.AccessTokenUtil.java

private static PrivateKey getPrivateKeyPkcs1(byte[] key) {
    try {//from w ww .  j  a  v a 2s.co  m
        RSAPrivateKeyStructure asn1PrivKey = new RSAPrivateKeyStructure(
                (ASN1Sequence) ASN1Sequence.fromByteArray(key));
        RSAPrivateKeySpec rsaPrivKeySpec = new RSAPrivateKeySpec(asn1PrivKey.getModulus(),
                asn1PrivKey.getPrivateExponent());
        KeyFactory kf = KeyFactory.getInstance("RSA");
        PrivateKey privKey = (PrivateKey) kf.generatePrivate(rsaPrivKeySpec);

        return privKey;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

From source file:net.jradius.client.auth.EAPTLSAuthenticator.java

License:Open Source License

/**
 * Create a private key parameter from the passed in PKCS8 PrivateKeyInfo object.
 * /*from  ww w.j  av a 2  s.c  om*/
 * @param keyInfo the PrivateKeyInfo object containing the key material
 * @return a suitable private key parameter
 * @throws IOException on an error decoding the key
 */
public static AsymmetricKeyParameter createKey(PrivateKeyInfo keyInfo) throws IOException {
    AlgorithmIdentifier algId = keyInfo.getAlgorithmId();

    if (algId.getObjectId().equals(PKCSObjectIdentifiers.rsaEncryption)) {
        RSAPrivateKeyStructure keyStructure = new RSAPrivateKeyStructure(
                (ASN1Sequence) keyInfo.getPrivateKey());

        return new RSAPrivateCrtKeyParameters(keyStructure.getModulus(), keyStructure.getPublicExponent(),
                keyStructure.getPrivateExponent(), keyStructure.getPrime1(), keyStructure.getPrime2(),
                keyStructure.getExponent1(), keyStructure.getExponent2(), keyStructure.getCoefficient());
    } else if (algId.getObjectId().equals(PKCSObjectIdentifiers.dhKeyAgreement)) {
        DHParameter params = new DHParameter((ASN1Sequence) keyInfo.getAlgorithmId().getParameters());
        DERInteger derX = (DERInteger) keyInfo.getPrivateKey();

        BigInteger lVal = params.getL();
        int l = lVal == null ? 0 : lVal.intValue();
        DHParameters dhParams = new DHParameters(params.getP(), params.getG(), null, l);

        return new DHPrivateKeyParameters(derX.getValue(), dhParams);
    } else if (algId.getObjectId().equals(OIWObjectIdentifiers.elGamalAlgorithm)) {
        ElGamalParameter params = new ElGamalParameter((ASN1Sequence) keyInfo.getAlgorithmId().getParameters());
        DERInteger derX = (DERInteger) keyInfo.getPrivateKey();

        return new ElGamalPrivateKeyParameters(derX.getValue(),
                new ElGamalParameters(params.getP(), params.getG()));
    } else if (algId.getObjectId().equals(X9ObjectIdentifiers.id_dsa)) {
        DERInteger derX = (DERInteger) keyInfo.getPrivateKey();
        DEREncodable de = keyInfo.getAlgorithmId().getParameters();

        DSAParameters parameters = null;
        if (de != null) {
            DSAParameter params = DSAParameter.getInstance(de.getDERObject());
            parameters = new DSAParameters(params.getP(), params.getQ(), params.getG());
        }

        return new DSAPrivateKeyParameters(derX.getValue(), parameters);
    } else if (algId.getObjectId().equals(X9ObjectIdentifiers.id_ecPublicKey)) {
        X962Parameters params = new X962Parameters((DERObject) keyInfo.getAlgorithmId().getParameters());
        ECDomainParameters dParams = null;

        if (params.isNamedCurve()) {
            DERObjectIdentifier oid = (DERObjectIdentifier) params.getParameters();
            X9ECParameters ecP = X962NamedCurves.getByOID(oid);

            if (ecP == null) {
                ecP = SECNamedCurves.getByOID(oid);

                if (ecP == null) {
                    ecP = NISTNamedCurves.getByOID(oid);

                    if (ecP == null) {
                        ecP = TeleTrusTNamedCurves.getByOID(oid);
                    }
                }
            }

            dParams = new ECDomainParameters(ecP.getCurve(), ecP.getG(), ecP.getN(), ecP.getH(), ecP.getSeed());
        } else {
            X9ECParameters ecP = new X9ECParameters((ASN1Sequence) params.getParameters());
            dParams = new ECDomainParameters(ecP.getCurve(), ecP.getG(), ecP.getN(), ecP.getH(), ecP.getSeed());
        }

        ECPrivateKeyStructure ec = new ECPrivateKeyStructure((ASN1Sequence) keyInfo.getPrivateKey());

        return new ECPrivateKeyParameters(ec.getKey(), dParams);
    } else {
        throw new RuntimeException("algorithm identifier in key not recognised");
    }
}

From source file:org.jclouds.crypto.pem.PKCS1EncodedPrivateKeySpec.java

License:Apache License

/**
 * Decode PKCS#1 encoded private key into RSAPrivateCrtKeySpec.
 * /*  ww w.  j a  va2 s .  c o  m*/
 * @param keyBytes
 *           Encoded PKCS#1 rsa key.
 */
private void decode(final byte[] keyBytes) throws IOException {
    ASN1Sequence seq = (ASN1Sequence) ASN1Object.fromByteArray(keyBytes);
    RSAPrivateKeyStructure rsa = new RSAPrivateKeyStructure(seq);

    BigInteger mod = rsa.getModulus();
    BigInteger pubExp = rsa.getPublicExponent();
    BigInteger privExp = rsa.getPrivateExponent();
    BigInteger p1 = rsa.getPrime1();
    BigInteger p2 = rsa.getPrime2();
    BigInteger exp1 = rsa.getExponent1();
    BigInteger exp2 = rsa.getExponent2();
    BigInteger crtCoef = rsa.getCoefficient();

    keySpec = new RSAPrivateCrtKeySpec(mod, pubExp, privExp, p1, p2, exp1, exp2, crtCoef);
}