Example usage for org.bouncycastle.asn1.pkcs CertificationRequest getSignature

List of usage examples for org.bouncycastle.asn1.pkcs CertificationRequest getSignature

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.pkcs CertificationRequest getSignature.

Prototype

public DERBitString getSignature() 

Source Link

Usage

From source file:org.opendaylight.snbi.southplugin.CertificateMgmt.java

License:Open Source License

public static X509Certificate signCSR(CertificationRequest inputCSR, PrivateKey caPrivate, KeyPair pair)
        throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, SignatureException,
        IOException, OperatorCreationException, CertException {

    PKCS10CertificationRequest pk10Holder = new PKCS10CertificationRequest(inputCSR);
    X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE);
    //        builder.addRDN(BCStyle.C, defaults.get("COUNTRY"));
    //        builder.addRDN(BCStyle.O, defaults.get("ORGANIZATION"));
    //builder.addRDN(BCStyle.ST, defaults.get("STATE"));
    // builder.addRDN(BCStyle.T, defaults.get("TITLE"));
    builder.addRDN(BCStyle.CN, inputCSR.getSignature());
    Calendar now = Calendar.getInstance();
    Date notBefore = now.getTime();
    now.add(Calendar.YEAR, 3);//ww  w.java  2s. com
    Date notAfter = now.getTime();
    BigInteger serial = BigInteger.valueOf(System.currentTimeMillis());
    X509v3CertificateBuilder certGen = new JcaX509v3CertificateBuilder(builder.build(), serial, notBefore,
            notAfter, builder.build(), pair.getPublic());
    ContentSigner sigGen = new JcaContentSignerBuilder(
            CertManagerConstants.CERT_ALGORITHM.SHA1withRSA.toString()).setProvider(CertManagerConstants.BC)
                    .build(pair.getPrivate());
    X509CertificateHolder holder = certGen.build(sigGen);
    Certificate eeX509CertificateStructure = holder.toASN1Structure();
    CertificateFactory cf = null;
    try {
        cf = CertificateFactory.getInstance(CertManagerConstants.CERT_TYPE.X509.toString(),
                CertManagerConstants.BC);
    } catch (CertificateException e) {
        e.printStackTrace();
    }
    // Read Certificate
    InputStream is1 = new ByteArrayInputStream(eeX509CertificateStructure.getEncoded());
    X509Certificate theCert = null;
    try {
        theCert = (X509Certificate) cf.generateCertificate(is1);
    } catch (CertificateException e) {
        e.printStackTrace();
    }
    is1.close();
    return theCert;
}