Example usage for org.bouncycastle.asn1.ocsp OCSPObjectIdentifiers id_pkix_ocsp_nonce

List of usage examples for org.bouncycastle.asn1.ocsp OCSPObjectIdentifiers id_pkix_ocsp_nonce

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.ocsp OCSPObjectIdentifiers id_pkix_ocsp_nonce.

Prototype

ASN1ObjectIdentifier id_pkix_ocsp_nonce

To view the source code for org.bouncycastle.asn1.ocsp OCSPObjectIdentifiers id_pkix_ocsp_nonce.

Click Source Link

Document

OID: 1.3.6.1.5.5.7.48.1.2

Usage

From source file:bluecrystal.bcdeps.helper.DerEncoder.java

License:Open Source License

public static OCSPReq GenOcspReq(X509Certificate nextCert, X509Certificate nextIssuer) throws OCSPException {

    OCSPReqGenerator ocspRequestGenerator = new OCSPReqGenerator();
    CertificateID certId = new CertificateID(CertificateID.HASH_SHA1, nextIssuer, nextCert.getSerialNumber());
    ocspRequestGenerator.addRequest(certId);

    BigInteger nonce = BigInteger.valueOf(System.currentTimeMillis());
    Vector<DERObjectIdentifier> oids = new Vector<DERObjectIdentifier>();
    Vector<X509Extension> values = new Vector<X509Extension>();

    oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
    values.add(new X509Extension(false, new DEROctetString(nonce.toByteArray())));

    ocspRequestGenerator.setRequestExtensions(new X509Extensions(oids, values));
    return ocspRequestGenerator.generate();
}

From source file:chapter7.OCSPClientExample.java

/**
 *
 * @param issuerCert//from  www .j  av a 2s. c  om
 * @param serialNumber
 * @return
 * @throws OCSPException
 */
public static OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws OCSPException {
    //1.- Generate the id for the certificate we are looking for
    CertificateID id = new CertificateID(CertificateID.HASH_SHA1, issuerCert, serialNumber);

    //2.- Basic request generation with nonce
    OCSPReqGenerator gen = new OCSPReqGenerator();

    gen.addRequest(id);

    //3.- Create details for nonce extension
    BigInteger nonce = BigInteger.valueOf(System.currentTimeMillis());
    Vector oids = new Vector();
    Vector values = new Vector();

    oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
    values.add(new X509Extension(false, new DEROctetString(nonce.toByteArray())));

    gen.setRequestExtensions(new X509Extensions(oids, values));

    return gen.generate();
}

From source file:chapter7.OCSPResponderExample.java

/**
 *
 * @param request/*w  ww .j a  v  a 2  s .c o  m*/
 * @param responderKey
 * @param pubKey
 * @param revokedID
 * @return
 * @throws NoSuchProviderException
 * @throws OCSPException
 */
public static OCSPResp generateOCSPResponse(final OCSPReq request, final PrivateKey responderKey,
        final PublicKey pubKey, final CertificateID revokedID) throws NoSuchProviderException, OCSPException {
    BasicOCSPRespGenerator basicRespGen = new BasicOCSPRespGenerator(pubKey);
    X509Extensions reqExtensions = request.getRequestExtensions();

    if (reqExtensions != null) {
        X509Extension ext = reqExtensions.getExtension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);

        if (ext != null) {
            Vector oids = new Vector();
            Vector values = new Vector();

            oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
            values.add(ext);

            basicRespGen.setResponseExtensions(new X509Extensions(oids, values));
        }
    }

    Req[] requests = request.getRequestList();

    for (Req x : requests) {
        CertificateID certID = x.getCertID();

        // This would normally be a lot more general!!
        if (certID.equals(revokedID)) {
            basicRespGen.addResponse(certID, new RevokedStatus(new Date(), CRLReason.privilegeWithdrawn));
        } else {
            basicRespGen.addResponse(certID, CertificateStatus.GOOD);
        }
    }

    BasicOCSPResp basicResp = basicRespGen.generate(CryptoDefs.Algorithm.SHA256withRSA.getName(), responderKey,
            null, new Date(), CryptoDefs.Provider.BC.getName());

    OCSPRespGenerator respGen = new OCSPRespGenerator();

    return respGen.generate(OCSPRespGenerator.SUCCESSFUL, basicResp);
}

From source file:chapter7.OCSPResponderExample.java

/**
 *
 * @param responderPair/*from w  w w . j av a 2s  .  c o  m*/
 * @param caCert
 * @param revokedSerialNumber
 * @param cert
 * @return
 * @throws Exception
 */
public static String getStatusMessage(final KeyPair responderPair, final X509Certificate caCert,
        final BigInteger revokedSerialNumber, final X509Certificate cert) throws Exception {
    OCSPReq request = OCSPClientExample.generateOCSPRequest(caCert, cert.getSerialNumber());

    CertificateID revokedID = new CertificateID(CertificateID.HASH_SHA1, caCert, revokedSerialNumber);

    OCSPResp response = generateOCSPResponse(request, responderPair.getPrivate(), responderPair.getPublic(),
            revokedID);

    BasicOCSPResp basicResponse = (BasicOCSPResp) response.getResponseObject();

    // Verify the response
    if (basicResponse.verify(responderPair.getPublic(), CryptoDefs.Provider.BC.getName())) {
        SingleResp[] responses = basicResponse.getResponses();

        byte[] reqNonce = request.getExtensionValue(OCSPObjectIdentifiers.id_pkix_ocsp_nonce.getId());
        byte[] respNonce = basicResponse.getExtensionValue(OCSPObjectIdentifiers.id_pkix_ocsp_nonce.getId());

        // Validate the nonce if it is present
        if (reqNonce == null || Arrays.equals(reqNonce, respNonce)) {
            String message = "";

            for (SingleResp x : responses) {
                message += " certificate number " + x.getCertID().getSerialNumber();

                if (x.getCertStatus() == CertificateStatus.GOOD) {
                    return message + " status: good";
                } else
                    return message + " status: revoked";
            }

            return message;
        } else
            return "response nonce failed to validate";
    } else
        return "response failed to verify";
}

From source file:cljpdf.text.pdf.OcspClientBouncyCastle.java

License:Mozilla Public License

/**
 * Generates an OCSP request using BouncyCastle.
 * @param issuerCert   certificate of the issues
 * @param serialNumber   serial number//from ww  w. ja  v  a 2  s .  c o  m
 * @return   an OCSP request
 * @throws OCSPException
 * @throws IOException
 */
private static OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws OCSPException, IOException {
    //Add provider BC
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

    // Generate the id for the certificate we are looking for
    CertificateID id = new CertificateID(CertificateID.HASH_SHA1, issuerCert, serialNumber);

    // basic request generation with nonce
    OCSPReqGenerator gen = new OCSPReqGenerator();

    gen.addRequest(id);

    // create details for nonce extension
    Vector oids = new Vector();
    Vector values = new Vector();

    oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);

    gen.setRequestExtensions(new X509Extensions(oids, values));

    return gen.generate();
}

From source file:com.itextpdf.signatures.SignUtils.java

License:Open Source License

static OCSPReq generateOcspRequestWithNonce(CertificateID id) throws IOException, OCSPException {
    OCSPReqBuilder gen = new OCSPReqBuilder();
    gen.addRequest(id);//from w  w  w.j  a  v a2  s .co  m

    Extension ext = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, false,
            new DEROctetString(new DEROctetString(PdfEncryption.generateNewDocumentId()).getEncoded()));
    gen.setRequestExtensions(new Extensions(new Extension[] { ext }));
    return gen.build();
}

From source file:com.itextpdf.text.pdf.OcspClientBouncyCastle.java

License:Open Source License

/**
 * Generates an OCSP request using BouncyCastle.
 * @param issuerCert   certificate of the issues
 * @param serialNumber   serial number//from  w  ww  .  j  av a  2  s.  c om
 * @return   an OCSP request
 * @throws OCSPException
 * @throws IOException
 */
private static OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws OCSPException, IOException {
    //Add provider BC
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

    // Generate the id for the certificate we are looking for
    CertificateID id = new CertificateID(CertificateID.HASH_SHA1, issuerCert, serialNumber);

    // basic request generation with nonce
    OCSPReqGenerator gen = new OCSPReqGenerator();

    gen.addRequest(id);

    // create details for nonce extension
    Vector<DERObjectIdentifier> oids = new Vector<DERObjectIdentifier>();
    Vector<X509Extension> values = new Vector<X509Extension>();

    oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
    values.add(new X509Extension(false,
            new DEROctetString(new DEROctetString(PdfEncryption.createDocumentId()).getEncoded())));

    gen.setRequestExtensions(new X509Extensions(oids, values));

    return gen.generate();
}

From source file:com.itextpdf.text.pdf.security.OcspClientBouncyCastle.java

License:Open Source License

/**
 * Generates an OCSP request using BouncyCastle.
 * @param issuerCert   certificate of the issues
 * @param serialNumber   serial number// www  .  j a  v a2  s  .c  o  m
 * @return   an OCSP request
 * @throws OCSPException
 * @throws IOException
 */
private static OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws OCSPException, IOException, OperatorException, CertificateEncodingException {
    //Add provider BC
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

    // Generate the id for the certificate we are looking for
    CertificateID id = new CertificateID(
            new JcaDigestCalculatorProviderBuilder().build().get(CertificateID.HASH_SHA1),
            new JcaX509CertificateHolder(issuerCert), serialNumber);

    // basic request generation with nonce
    OCSPReqBuilder gen = new OCSPReqBuilder();

    gen.addRequest(id);

    Extension ext = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, false,
            new DEROctetString(new DEROctetString(PdfEncryption.createDocumentId()).getEncoded()));
    gen.setRequestExtensions(new Extensions(new Extension[] { ext }));

    return gen.build();
}

From source file:com.spilowagie.text.pdf.OcspClientBouncyCastle.java

License:Mozilla Public License

/**
 * Generates an OCSP request using BouncyCastle.
 * @param issuerCert   certificate of the issues
 * @param serialNumber   serial number//  w w w. ja v a2  s  .  c  o  m
 * @return   an OCSP request
 * @throws OCSPException
 * @throws IOException
 */
private static OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws OCSPException, IOException {
    //Add provider BC
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

    // Generate the id for the certificate we are looking for
    CertificateID id = new CertificateID(CertificateID.HASH_SHA1, issuerCert, serialNumber);

    // basic request generation with nonce
    OCSPReqGenerator gen = new OCSPReqGenerator();

    gen.addRequest(id);

    // create details for nonce extension
    Vector oids = new Vector();
    Vector values = new Vector();

    oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
    values.add(new X509Extension(false,
            new DEROctetString(new DEROctetString(PdfEncryption.createDocumentId()).getEncoded())));

    gen.setRequestExtensions(new X509Extensions(oids, values));

    return gen.generate();
}

From source file:com.tremolosecurity.proxy.auth.ssl.OCSP.java

License:Apache License

private OCSPReq generateOcspRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws OCSPException, CertificateEncodingException, OperatorCreationException, IOException {

    BcDigestCalculatorProvider util = new BcDigestCalculatorProvider();

    // Generate the id for the certificate we are looking for
    CertificateID id = new CertificateID(util.get(CertificateID.HASH_SHA1),
            new X509CertificateHolder(issuerCert.getEncoded()), serialNumber);
    OCSPReqBuilder ocspGen = new OCSPReqBuilder();

    ocspGen.addRequest(id);//w  w  w  .ja v  a  2s .co m

    BigInteger nonce = BigInteger.valueOf(System.currentTimeMillis());
    Extension ext = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, true,
            new DEROctetString(nonce.toByteArray()));
    ocspGen.setRequestExtensions(new Extensions(new Extension[] { ext }));

    return ocspGen.build();
}