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

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

Introduction

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

Prototype

public OtherHashAlgAndValue(AlgorithmIdentifier hashAlgorithm, ASN1OctetString hashValue) 

Source Link

Usage

From source file:br.gov.frameworkdemoiselle.certificate.signer.pkcs7.bc.attribute.BCSignaturePolicyIdentifier.java

License:Open Source License

/**
 * TODO: Implementar a converso do tipo SigPolicyQualifierInfoUserNotice
 * para BC./*w  ww  .j a  va  2 s. c  o  m*/
 *
 * @return
 */
@Override
public ASN1Set getValue() {
    if (super.getAttribute() == null) {
        org.bouncycastle.asn1.esf.SignaturePolicyIdentifier signaturePolicyIdentifier = new org.bouncycastle.asn1.esf.SignaturePolicyIdentifier();
        return new DERSet(signaturePolicyIdentifier);
    }
    SignaturePolicyId signaturePolicyId = ((SignaturePolicyIdentifier) super.getAttribute())
            .getSignaturePolicyId();
    if (signaturePolicyId != null) {
        DERObjectIdentifier objectIdentifier = new DERObjectIdentifier(signaturePolicyId.getSigPolicyId());
        OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(
                new AlgorithmIdentifier(signaturePolicyId.getHashAlgorithm()),
                new DEROctetString(signaturePolicyId.getHash()));
        SigPolicyQualifiers sigPolicyQualifiers = null;
        if (signaturePolicyId.getSigPolicyQualifiers() != null
                && signaturePolicyId.getSigPolicyQualifiers().size() > 0) {
            List<SigPolicyQualifierInfo> sigPolicyQualifierInfos = new ArrayList<SigPolicyQualifierInfo>();
            for (br.gov.frameworkdemoiselle.certificate.signer.pkcs7.attribute.SigPolicyQualifierInfo sigPolicyQualifierInfo : signaturePolicyId
                    .getSigPolicyQualifiers()) {
                if (sigPolicyQualifierInfo instanceof SigPolicyQualifierInfoURL) {
                    SigPolicyQualifierInfoURL sigPolicyQualifierInfoURL = (SigPolicyQualifierInfoURL) sigPolicyQualifierInfo;
                    DERObjectIdentifier oi = new DERObjectIdentifier(sigPolicyQualifierInfoURL.getOID());
                    DERIA5String url = new DERIA5String(sigPolicyQualifierInfoURL.getValue());
                    SigPolicyQualifierInfo bcSigPolicyQualifierInfo = new SigPolicyQualifierInfo(oi, url);
                    sigPolicyQualifierInfos.add(bcSigPolicyQualifierInfo);
                }
            }
            sigPolicyQualifiers = new SigPolicyQualifiers(
                    sigPolicyQualifierInfos.toArray(new SigPolicyQualifierInfo[] {}));
        }
        org.bouncycastle.asn1.esf.SignaturePolicyId bcSignaturePolicyId = new org.bouncycastle.asn1.esf.SignaturePolicyId(
                objectIdentifier, otherHashAlgAndValue, sigPolicyQualifiers);
        org.bouncycastle.asn1.esf.SignaturePolicyIdentifier signaturePolicyIdentifier = new org.bouncycastle.asn1.esf.SignaturePolicyIdentifier(
                bcSignaturePolicyId);
        return new DERSet(signaturePolicyIdentifier);
    }
    return new DERSet(new DERNull());
}

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

License:Open Source License

SignaturePolicyIdentifier toSignaturePolicyIdentifier() {
    String algId = DigestAlgorithms.getAllowedDigest(this.policyDigestAlgorithm);

    if (algId == null || algId.length() == 0) {
        throw new IllegalArgumentException("Invalid policy hash algorithm");
    }/*from  w  ww  .  j  a v a  2s .c  om*/

    SignaturePolicyIdentifier signaturePolicyIdentifier = null;
    SigPolicyQualifierInfo spqi = null;

    if (this.policyUri != null && this.policyUri.length() > 0) {
        spqi = new SigPolicyQualifierInfo(PKCSObjectIdentifiers.id_spq_ets_uri,
                new DERIA5String(this.policyUri));
    }

    signaturePolicyIdentifier = new SignaturePolicyIdentifier(new SignaturePolicyId(
            DERObjectIdentifier
                    .getInstance(new DERObjectIdentifier(this.policyIdentifier.replace("urn:oid:", ""))),
            new OtherHashAlgAndValue(new AlgorithmIdentifier(algId), new DEROctetString(this.policyHash)),
            SignUtils.createSigPolicyQualifiers(spqi)));

    return signaturePolicyIdentifier;
}

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

License:Open Source License

private void addSignaturePolicyId(final SignatureParameters parameters,
        final ASN1EncodableVector signedAttributes) {

    Policy policy = parameters.bLevel().getSignaturePolicy();
    if (policy != null && policy.getId() != null) {

        final String policyId = policy.getId();
        SignaturePolicyIdentifier sigPolicy = null;
        if (!"".equals(policyId)) { // explicit

            final ASN1ObjectIdentifier derOIPolicyId = new ASN1ObjectIdentifier(policyId);
            final ASN1ObjectIdentifier oid = policy.getDigestAlgorithm().getOid();
            final AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(oid);
            OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(algorithmIdentifier,
                    new DEROctetString(policy.getDigestValue()));
            sigPolicy = new SignaturePolicyIdentifier(
                    new SignaturePolicyId(derOIPolicyId, otherHashAlgAndValue));
        } else {// implicit
            sigPolicy = new SignaturePolicyIdentifier();
        }/*from  w  w w .ja v  a  2  s .c o m*/
        final DERSet attrValues = new DERSet(sigPolicy);
        final Attribute attribute = new Attribute(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId, attrValues);
        signedAttributes.add(attribute);
    }
}

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

License:Open Source License

@Override
public Hashtable<ASN1ObjectIdentifier, ASN1Encodable> getSignedAttributes(SignatureParameters parameters) {

    try {//from   w w w.j  ava 2  s . co  m

        Hashtable<ASN1ObjectIdentifier, ASN1Encodable> signedAttrs = super.getSignedAttributes(parameters);

        Attribute policy = null;
        SignaturePolicyIdentifier sigPolicy = null;
        switch (parameters.getSignaturePolicy()) {
        case EXPLICIT:
            sigPolicy = new SignaturePolicyIdentifier(
                    new SignaturePolicyId(new DERObjectIdentifier(parameters.getSignaturePolicyId()),
                            new OtherHashAlgAndValue(
                                    new AlgorithmIdentifier(DigestAlgorithm
                                            .getByName(parameters.getSignaturePolicyHashAlgo()).getOid()),
                                    new DEROctetString(parameters.getSignaturePolicyHashValue()))));
            policy = new Attribute(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId, new DERSet(sigPolicy));
            signedAttrs.put(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId, policy);
            break;
        case IMPLICIT:
            sigPolicy = new SignaturePolicyIdentifier();
            sigPolicy.isSignaturePolicyImplied();
            policy = new Attribute(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId, new DERSet(sigPolicy));
            signedAttrs.put(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId, policy);
            break;
        case NO_POLICY:
            break;
        }

        return signedAttrs;
    } catch (NoSuchAlgorithmException ex) {
        throw new ProfileException(ex.getMessage());
    }

}

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

License:Open Source License

private void addSignaturePolicyId(final CAdESSignatureParameters parameters,
        final ASN1EncodableVector signedAttributes) {

    Policy policy = parameters.bLevel().getSignaturePolicy();
    if (policy != null) {

        final String policyId = policy.getId();
        SignaturePolicyIdentifier sigPolicy = null;

        if (StringUtils.isEmpty(policyId)) {// implicit
            sigPolicy = new SignaturePolicyIdentifier();
        } else { // explicit
            final ASN1ObjectIdentifier derOIPolicyId = new ASN1ObjectIdentifier(policyId);
            final ASN1ObjectIdentifier oid = new ASN1ObjectIdentifier(policy.getDigestAlgorithm().getOid());
            final AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(oid);
            OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(algorithmIdentifier,
                    new DEROctetString(policy.getDigestValue()));

            if (StringUtils.isNotEmpty(policy.getSpuri())) {
                SigPolicyQualifierInfo policyQualifierInfo = new SigPolicyQualifierInfo(
                        PKCSObjectIdentifiers.id_spq_ets_uri, new DERUTF8String(policy.getSpuri()));
                SigPolicyQualifierInfo[] qualifierInfos = new SigPolicyQualifierInfo[] { policyQualifierInfo };
                SigPolicyQualifiers qualifiers = new SigPolicyQualifiers(qualifierInfos);

                sigPolicy = new SignaturePolicyIdentifier(
                        new SignaturePolicyId(derOIPolicyId, otherHashAlgAndValue, qualifiers));
            } else {
                sigPolicy = new SignaturePolicyIdentifier(
                        new SignaturePolicyId(derOIPolicyId, otherHashAlgAndValue));
            }/*  ww w.  ja  va  2 s.  c om*/
        }

        final DERSet attrValues = new DERSet(sigPolicy);
        final Attribute attribute = new Attribute(id_aa_ets_sigPolicyId, attrValues);
        signedAttributes.add(attribute);
    }
}

From source file:org.demoiselle.signer.policy.engine.asn1.icpb.v2.PolicyInfo.java

License:Open Source License

@Override
public void parse(ASN1Primitive primitive) {
    ASN1Sequence sequence1 = ASN1Object.getDERSequence(primitive);
    this.signingPeriod = new SigningPeriod();
    this.signingPeriod.parse(sequence1.getObjectAt(0).toASN1Primitive());
    int indice = 2;

    ASN1Primitive secondObject = sequence1.getObjectAt(1).toASN1Primitive();
    if (secondObject instanceof ASN1ObjectIdentifier) {
        indice = 1;/*w  ww .ja  v a 2 s . com*/
    }
    if (indice == 2) {
        this.revocationDate = new GeneralizedTime();
        this.revocationDate.parse(secondObject);
    }
    this.policyOID = new ObjectIdentifier();
    this.policyOID.parse(sequence1.getObjectAt(indice).toASN1Primitive());
    DERIA5String policyURI = (DERIA5String) sequence1.getObjectAt(indice + 1);
    this.policyURI = policyURI.getString();

    ASN1Primitive policyDigest = sequence1.getObjectAt(indice + 2).toASN1Primitive();
    ASN1Sequence sequence2 = ASN1Sequence.getInstance(policyDigest);

    DEROctetString derOctetString = (DEROctetString) sequence2.getObjectAt(1).toASN1Primitive();
    ASN1Sequence sequence3 = ASN1Object.getDERSequence(sequence2.getObjectAt(0).toASN1Primitive());
    ASN1ObjectIdentifier objectIdentifier = (ASN1ObjectIdentifier) sequence3.getObjectAt(0).toASN1Primitive();
    AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(objectIdentifier);
    this.policyDigest = new OtherHashAlgAndValue(algorithmIdentifier, derOctetString);
}

From source file:org.demoiselle.signer.policy.impl.cades.pkcs7.attribute.impl.IdSigningPolicy.java

License:Open Source License

/**
 * org.bouncycastle.asn1.ASN1ObjectIdentifier sigPolicyId
 * org.bouncycastle.asn1.esf.OtherHashAlgAndValue sigPolicyHash
 * List&lt;org.bouncycastle.asn1.esf.SigPolicyQualifierInfo&gt; sigPolicyQualifierInfos
 *//*from w  ww .  j a va  2s. c om*/
@Override
public Attribute getValue() {

    //Atributo 1
    ASN1ObjectIdentifier sigPolicyId = new ASN1ObjectIdentifier(
            signaturePolicy.getSignPolicyInfo().getSignPolicyIdentifier().getValue());

    //Atributo 2
    OtherHashAlgAndValue sigPolicyHash = new OtherHashAlgAndValue(
            new AlgorithmIdentifier(
                    new ASN1ObjectIdentifier(signaturePolicy.getSignPolicyHashAlg().getAlgorithm().getValue())),
            signaturePolicy.getSignPolicyHash().getDerOctetString());

    //Atributo 3
    List<SigPolicyQualifierInfo> sigPolicyQualifierInfos = new ArrayList<SigPolicyQualifierInfo>();

    ASN1ObjectIdentifier sigPolicyQualifierId = new ASN1ObjectIdentifier("1.2.840.113549.1.9.16.5.1");
    DERIA5String sigQualifier = new DERIA5String(signaturePolicy.getSignPolicyURI());
    SigPolicyQualifierInfo bcSigPolicyQualifierInfo = new SigPolicyQualifierInfo(sigPolicyQualifierId,
            sigQualifier);
    sigPolicyQualifierInfos.add(bcSigPolicyQualifierInfo);

    SigPolicyQualifiers sigPolicyQualifiers = new SigPolicyQualifiers(
            sigPolicyQualifierInfos.toArray(new SigPolicyQualifierInfo[] {}));

    SignaturePolicyId signaturePolicyId = new SignaturePolicyId(sigPolicyId, sigPolicyHash,
            sigPolicyQualifiers);
    return new Attribute(new ASN1ObjectIdentifier(oid), new DERSet(signaturePolicyId));

}

From source file:org.demoiselle.signer.policy.impl.cades.pkcs7.attribute.impl.RevocationRefs.java

License:Open Source License

/**
 * /*from  w  ww . j a  v  a 2s  .  c  o  m*/
 * 
 * @param extract
 *            CrlValidatedID from X509CRL
 * @return a CrlValidatedID
 * @throws NoSuchAlgorithmException
 * @throws CRLException
 */

private CrlValidatedID makeCrlValidatedID(X509CRL crl) throws NoSuchAlgorithmException, CRLException {

    Digest digest = DigestFactory.getInstance().factoryDefault();
    digest.setAlgorithm(DigestAlgorithmEnum.SHA_256);

    OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(
            new AlgorithmIdentifier(NISTObjectIdentifiers.id_sha256),
            new DEROctetString(digest.digest(crl.getEncoded())));

    OtherHash hash = new OtherHash(otherHashAlgAndValue);

    BigInteger crlnumber;
    CrlIdentifier crlid;
    if (crl.getExtensionValue("2.5.29.20") != null) {
        ASN1Integer varASN1Integer = new ASN1Integer(crl.getExtensionValue("2.5.29.20"));
        crlnumber = varASN1Integer.getPositiveValue();

        crlid = new CrlIdentifier(new X500Name(crl.getIssuerX500Principal().getName()),
                new DERUTCTime(crl.getThisUpdate()), crlnumber);
    } else {
        crlid = new CrlIdentifier(new X500Name(crl.getIssuerX500Principal().getName()),
                new DERUTCTime(crl.getThisUpdate()));
    }

    CrlValidatedID crlvid = new CrlValidatedID(hash, crlid);

    return crlvid;
}