Example usage for org.bouncycastle.asn1.esf OcspResponsesID OcspResponsesID

List of usage examples for org.bouncycastle.asn1.esf OcspResponsesID OcspResponsesID

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.esf OcspResponsesID OcspResponsesID.

Prototype

public OcspResponsesID(OcspIdentifier ocspIdentifier, OtherHash ocspRepHash) 

Source Link

Usage

From source file:eu.europa.ec.markt.dss.signature.cades.CAdESProfileC.java

License:Open Source License

/**
 * Create a reference on a OCSPResp//  w  w  w .  j a va2  s  .co m
 * 
 * @param ocspResp
 * @return
 * @throws NoSuchAlgorithmException
 * @throws OCSPException
 * @throws IOException
 */
private OcspResponsesID makeOcspResponsesID(BasicOCSPResp ocspResp)
        throws NoSuchAlgorithmException, OCSPException, IOException {
    /*
     * We hash the complete response, this is not clear in the TS but the issue was addressed here:
     * http://lists.iaik.tugraz.at/pipermail/jce-general/2007-January/005914.html
     */
    MessageDigest sha1digest = MessageDigest.getInstance(X509ObjectIdentifiers.id_SHA1.getId(),
            new BouncyCastleProvider());

    byte[] digestValue = sha1digest.digest(ocspResp.getEncoded());
    OtherHash hash = new OtherHash(digestValue);

    OcspResponsesID ocsprespid = new OcspResponsesID(new OcspIdentifier(
            ocspResp.getResponderId().toASN1Object(), new DERGeneralizedTime(ocspResp.getProducedAt())), hash);

    LOG.info("Incorporate OcspResponseId[hash=" + Hex.encodeHexString(digestValue) + ",producedAt="
            + ocspResp.getProducedAt());

    return ocsprespid;
}