Search in sources :

Example 6 with Digest

use of org.demoiselle.signer.cryptography.Digest in project signer by demoiselle.

the class RevocationRefs method makeOcspResponsesID.

/**
 * make OcspResponsesID from BasicOCSPResp
 *
 * @param ocspResp
 * @return OcspResponsesID
 * @throws NoSuchAlgorithmException
 * @throws OCSPException
 * @throws IOException
 */
@SuppressWarnings("unused")
private OcspResponsesID makeOcspResponsesID(BasicOCSPResp ocspResp) throws NoSuchAlgorithmException, OCSPException, IOException {
    Digest digest = DigestFactory.getInstance().factoryDefault();
    digest.setAlgorithm(DigestAlgorithmEnum.SHA_256);
    byte[] digestValue = digest.digest(ocspResp.getEncoded());
    OtherHash hash = new OtherHash(digestValue);
    OcspResponsesID ocsprespid = new OcspResponsesID(new OcspIdentifier(ocspResp.getResponderId().toASN1Object(), new DERGeneralizedTime(ocspResp.getProducedAt())), hash);
    return ocsprespid;
}
Also used : OcspResponsesID(org.bouncycastle.asn1.esf.OcspResponsesID) DERGeneralizedTime(org.bouncycastle.asn1.DERGeneralizedTime) Digest(org.demoiselle.signer.cryptography.Digest) OcspIdentifier(org.bouncycastle.asn1.esf.OcspIdentifier) OtherHash(org.bouncycastle.asn1.esf.OtherHash)

Example 7 with Digest

use of org.demoiselle.signer.cryptography.Digest in project signer by demoiselle.

the class TimeStampOperator method createRequest.

/**
 * Creates a time stamp request, signed with the users's certificate.
 *
 * @param privateKey private key to sign with
 * @param certificates certificate chain
 * @param content  set null if signing only hash
 * @param hash  set null if signing content
 * @return A time stamp request
 * @throws CertificateCoreException exception
 */
public byte[] createRequest(PrivateKey privateKey, Certificate[] certificates, byte[] content, byte[] hash) throws CertificateCoreException {
    try {
        logger.info(timeStampMessagesBundle.getString("info.timestamp.digest"));
        Digest digest = DigestFactory.getInstance().factoryDefault();
        digest.setAlgorithm(DigestAlgorithmEnum.SHA_256);
        byte[] hashedMessage = null;
        if (content != null) {
            hashedMessage = digest.digest(content);
        // logger.info(Base64.toBase64String(hashedMessage));
        } else {
            hashedMessage = hash;
        }
        logger.info(timeStampMessagesBundle.getString("info.timestamp.prepare.request"));
        TimeStampRequestGenerator timeStampRequestGenerator = new TimeStampRequestGenerator();
        timeStampRequestGenerator.setReqPolicy(new ASN1ObjectIdentifier(TimeStampConfig.getInstance().getTSPOid()));
        timeStampRequestGenerator.setCertReq(true);
        BigInteger nonce = BigInteger.valueOf(100);
        timeStampRequest = timeStampRequestGenerator.generate(new ASN1ObjectIdentifier(TSPAlgorithms.SHA256.getId()), hashedMessage, nonce);
        byte[] request = timeStampRequest.getEncoded();
        logger.info(timeStampMessagesBundle.getString("info.timestamp.sign.request"));
        RequestSigner requestSigner = new RequestSigner();
        byte[] signedRequest = requestSigner.signRequest(privateKey, certificates, request, "SHA256withRSA");
        return signedRequest;
    } catch (IOException ex) {
        throw new CertificateCoreException(ex.getMessage());
    }
}
Also used : Digest(org.demoiselle.signer.cryptography.Digest) BigInteger(java.math.BigInteger) TimeStampRequestGenerator(org.bouncycastle.tsp.TimeStampRequestGenerator) IOException(java.io.IOException) ASN1ObjectIdentifier(org.bouncycastle.asn1.ASN1ObjectIdentifier) CertificateCoreException(org.demoiselle.signer.core.exception.CertificateCoreException) RequestSigner(org.demoiselle.signer.timestamp.signer.RequestSigner)

Aggregations

Digest (org.demoiselle.signer.cryptography.Digest)7 ASN1ObjectIdentifier (org.bouncycastle.asn1.ASN1ObjectIdentifier)5 ASN1Integer (org.bouncycastle.asn1.ASN1Integer)4 X500Name (org.bouncycastle.asn1.x500.X500Name)4 CertificateEncodingException (java.security.cert.CertificateEncodingException)3 X509Certificate (java.security.cert.X509Certificate)3 DERSequence (org.bouncycastle.asn1.DERSequence)3 DERSet (org.bouncycastle.asn1.DERSet)3 Attribute (org.bouncycastle.asn1.cms.Attribute)3 AlgorithmIdentifier (org.bouncycastle.asn1.x509.AlgorithmIdentifier)3 GeneralName (org.bouncycastle.asn1.x509.GeneralName)3 GeneralNames (org.bouncycastle.asn1.x509.GeneralNames)3 IssuerSerial (org.bouncycastle.asn1.x509.IssuerSerial)3 SignerException (org.demoiselle.signer.policy.impl.cades.SignerException)3 IOException (java.io.IOException)2 BigInteger (java.math.BigInteger)2 OtherHash (org.bouncycastle.asn1.esf.OtherHash)2 CertificateCoreException (org.demoiselle.signer.core.exception.CertificateCoreException)2 SignedAttribute (org.demoiselle.signer.policy.impl.cades.pkcs7.attribute.SignedAttribute)2 CertificateException (java.security.cert.CertificateException)1