Example usage for org.bouncycastle.asn1.cms SignerInfo getDigestEncryptionAlgorithm

List of usage examples for org.bouncycastle.asn1.cms SignerInfo getDigestEncryptionAlgorithm

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.cms SignerInfo getDigestEncryptionAlgorithm.

Prototype

public AlgorithmIdentifier getDigestEncryptionAlgorithm() 

Source Link

Usage

From source file:eu.europa.ec.markt.dss.validation102853.cades.CAdESSignature.java

License:Open Source License

/**
 * Copied from org.bouncycastle.asn1.cms.SignerInfo#toASN1Object() and adapted to be able to use the custom unauthenticatedAttributes
 *
 * @param signerInfo//  www.  ja va2s .  c om
 * @param unauthenticatedAttributes
 * @return
 */
private ASN1Sequence getSignerInfoEncoded(SignerInfo signerInfo, ASN1Encodable unauthenticatedAttributes) {

    ASN1EncodableVector v = new ASN1EncodableVector();

    v.add(signerInfo.getVersion());
    v.add(signerInfo.getSID());
    v.add(signerInfo.getDigestAlgorithm());

    if (signerInfo.getAuthenticatedAttributes() != null) {
        v.add(new DERTaggedObject(false, 0, signerInfo.getAuthenticatedAttributes()));
    }

    v.add(signerInfo.getDigestEncryptionAlgorithm());
    v.add(signerInfo.getEncryptedDigest());

    if (unauthenticatedAttributes != null) {
        v.add(new DERTaggedObject(false, 1, unauthenticatedAttributes));
    }

    return new DERSequence(v);
}

From source file:eu.europa.esig.dss.cades.signature.CadesLevelBaselineLTATimestampExtractor.java

License:Open Source License

/**
 * 3) Fields version, sid, digestAlgorithm, signedAttrs, signatureAlgorithm, and
 * signature within the SignedData.signerInfoss item corresponding to the signature being archive
 * time-stamped, in their order of appearance.
 *
 * @param signerInformation// w w  w. ja v  a  2 s  .c o  m
 * @return
 */
private byte[] getSignedFields(final SignerInformation signerInformation) {

    final SignerInfo signerInfo = signerInformation.toASN1Structure();
    final ASN1Integer version = signerInfo.getVersion();
    final SignerIdentifier sid = signerInfo.getSID();
    final AlgorithmIdentifier digestAlgorithm = signerInfo.getDigestAlgorithm();
    final DERTaggedObject signedAttributes = CMSUtils.getDERSignedAttributes(signerInformation);
    final AlgorithmIdentifier digestEncryptionAlgorithm = signerInfo.getDigestEncryptionAlgorithm();
    final ASN1OctetString encryptedDigest = signerInfo.getEncryptedDigest();

    final byte[] derEncodedVersion = DSSASN1Utils.getDEREncoded(version);
    final byte[] derEncodedSid = DSSASN1Utils.getDEREncoded(sid);
    final byte[] derEncodedDigestAlgorithm = DSSASN1Utils.getDEREncoded(digestAlgorithm);
    final byte[] derEncodedSignedAttributes = DSSASN1Utils.getDEREncoded(signedAttributes);
    final byte[] derEncodedDigestEncryptionAlgorithm = DSSASN1Utils.getDEREncoded(digestEncryptionAlgorithm);
    final byte[] derEncodedEncryptedDigest = DSSASN1Utils.getDEREncoded(encryptedDigest);
    if (LOG.isDebugEnabled()) {

        LOG.debug("getSignedFields Version={}", Base64.decodeBase64(derEncodedVersion));
        LOG.debug("getSignedFields Sid={}", Base64.decodeBase64(derEncodedSid));
        LOG.debug("getSignedFields DigestAlgorithm={}", Base64.decodeBase64(derEncodedDigestAlgorithm));
        LOG.debug("getSignedFields SignedAttributes={}", Hex.encodeHexString(derEncodedSignedAttributes));
        LOG.debug("getSignedFields DigestEncryptionAlgorithm={}",
                Base64.decodeBase64(derEncodedDigestEncryptionAlgorithm));
        LOG.debug("getSignedFields EncryptedDigest={}", Base64.decodeBase64(derEncodedEncryptedDigest));
    }
    final byte[] concatenatedArrays = DSSUtils.concatenate(derEncodedVersion, derEncodedSid,
            derEncodedDigestAlgorithm, derEncodedSignedAttributes, derEncodedDigestEncryptionAlgorithm,
            derEncodedEncryptedDigest);
    return concatenatedArrays;
}

From source file:eu.europa.esig.dss.cades.validation.CAdESSignature.java

License:Open Source License

/**
 * Copied from org.bouncycastle.asn1.cms.SignerInfo#toASN1Object() and
 * adapted to be able to use the custom unauthenticatedAttributes
 *
 * @param signerInfo/*w w  w.java  2  s . c o m*/
 * @param signerInfo
 * @param unauthenticatedAttributes
 * @return
 */
private ASN1Sequence getSignerInfoEncoded(final SignerInfo signerInfo,
        final ASN1Encodable unauthenticatedAttributes) {

    ASN1EncodableVector v = new ASN1EncodableVector();

    v.add(signerInfo.getVersion());
    v.add(signerInfo.getSID());
    v.add(signerInfo.getDigestAlgorithm());

    final DERTaggedObject signedAttributes = CMSUtils.getDERSignedAttributes(signerInformation);
    if (signedAttributes != null) {
        v.add(signedAttributes);
    }

    v.add(signerInfo.getDigestEncryptionAlgorithm());
    v.add(signerInfo.getEncryptedDigest());

    if (unauthenticatedAttributes != null) {
        v.add(new DERTaggedObject(false, 1, unauthenticatedAttributes));
    }

    return new DERSequence(v);
}

From source file:org.jmrtd.lds.SignedDataUtil.java

License:Open Source License

public static String getDigestEncryptionAlgorithm(SignedData signedData) {
    try {/*from   ww  w. ja va  2 s.c om*/
        SignerInfo signerInfo = getSignerInfo(signedData);
        String digestEncryptionAlgorithmOID = signerInfo.getDigestEncryptionAlgorithm().getAlgorithm().getId();
        if (digestEncryptionAlgorithmOID == null) {
            return null;
        }
        return SignedDataUtil.lookupMnemonicByOID(digestEncryptionAlgorithmOID);
    } catch (NoSuchAlgorithmException nsae) {
        LOGGER.severe("Exception: " + nsae.getMessage());
        return null; // throw new IllegalStateException(nsae.toString());
    }
}