Example usage for org.bouncycastle.cert.ocsp CertificateID CertificateID

List of usage examples for org.bouncycastle.cert.ocsp CertificateID CertificateID

Introduction

In this page you can find the example usage for org.bouncycastle.cert.ocsp CertificateID CertificateID.

Prototype

public CertificateID(CertID id) 

Source Link

Usage

From source file:org.jruby.ext.openssl.OCSPCertificateId.java

License:Common Public License

public CertificateID getBCCertificateID() {
    if (bcCertId == null)
        return null;
    return new CertificateID(bcCertId);
}

From source file:org.jruby.ext.openssl.OCSPRequest.java

License:Common Public License

@JRubyMethod(name = "add_certid")
public IRubyObject add_certid(IRubyObject certId) {
    Ruby runtime = getRuntime();// ww  w.  j ava2  s.c o m
    OCSPCertificateId rubyCertId = (OCSPCertificateId) certId;
    certificateIds.add(rubyCertId);

    OCSPReqBuilder builder = new OCSPReqBuilder();
    for (OCSPCertificateId certificateId : certificateIds) {
        builder.addRequest(new CertificateID(certificateId.getCertID()));
    }

    try {
        asn1bcReq = org.bouncycastle.asn1.ocsp.OCSPRequest.getInstance(builder.build().getEncoded());
    } catch (Exception e) {
        throw newOCSPError(runtime, e);
    }

    if (nonce != null) {
        addNonceImpl();
    }
    return this;
}

From source file:org.jruby.ext.openssl.OCSPRequest.java

License:Common Public License

@JRubyMethod(name = "sign", rest = true)
public IRubyObject sign(final ThreadContext context, IRubyObject[] args) {
    final Ruby runtime = context.runtime;

    int flag = 0;
    IRubyObject additionalCerts = context.nil;
    IRubyObject flags = context.nil;/* www.j  av a2 s . c  o m*/
    IRubyObject digest = context.nil;
    Digest digestInstance = new Digest(runtime, _Digest(runtime));
    IRubyObject nocerts = (RubyFixnum) _OCSP(runtime).getConstant(OCSP_NOCERTS);

    switch (Arity.checkArgumentCount(runtime, args, 2, 5)) {
    case 3:
        additionalCerts = args[2];
        break;
    case 4:
        additionalCerts = args[2];
        flags = args[3];
        break;
    case 5:
        additionalCerts = args[2];
        flags = args[3];
        digest = args[4];
        break;
    default:
        break;

    }

    if (digest.isNil())
        digest = digestInstance.initialize(context,
                new IRubyObject[] { RubyString.newString(runtime, "SHA1") });
    if (additionalCerts.isNil())
        flag |= RubyFixnum.fix2int(nocerts);
    if (!flags.isNil())
        flag = RubyFixnum.fix2int(flags);

    X509Cert signer = (X509Cert) args[0];
    PKey signerKey = (PKey) args[1];

    String keyAlg = signerKey.getAlgorithm();
    String digAlg = ((Digest) digest).getShortAlgorithm();

    JcaContentSignerBuilder signerBuilder = new JcaContentSignerBuilder(digAlg + "with" + keyAlg);
    signerBuilder.setProvider("BC");
    ContentSigner contentSigner = null;
    try {
        contentSigner = signerBuilder.build(signerKey.getPrivateKey());
    } catch (OperatorCreationException e) {
        throw newOCSPError(runtime, e);
    }

    OCSPReqBuilder builder = new OCSPReqBuilder();
    builder.setRequestorName(signer.getSubject().getX500Name());
    for (OCSPCertificateId certId : certificateIds) {
        builder.addRequest(new CertificateID(certId.getCertID()));
    }

    List<X509CertificateHolder> certChain = new ArrayList<X509CertificateHolder>();
    if (flag != RubyFixnum.fix2int(nocerts)) {
        try {
            certChain.add(new X509CertificateHolder(signer.getAuxCert().getEncoded()));
            if (!additionalCerts.isNil()) {
                Iterator<java.security.cert.Certificate> certIt = ((RubyArray) additionalCerts).iterator();
                while (certIt.hasNext()) {
                    certChain.add(new X509CertificateHolder(certIt.next().getEncoded()));
                }
            }
        } catch (Exception e) {
            throw newOCSPError(runtime, e);
        }
    }

    X509CertificateHolder[] chain = new X509CertificateHolder[certChain.size()];
    certChain.toArray(chain);

    try {
        asn1bcReq = org.bouncycastle.asn1.ocsp.OCSPRequest
                .getInstance(builder.build(contentSigner, chain).getEncoded());
    } catch (Exception e) {
        throw newOCSPError(runtime, e);
    }

    if (nonce != null) {
        addNonceImpl();
    }

    return this;
}