List of usage examples for org.bouncycastle.asn1.pkcs PKCSObjectIdentifiers id_spq_ets_uri
ASN1ObjectIdentifier id_spq_ets_uri
To view the source code for org.bouncycastle.asn1.pkcs PKCSObjectIdentifiers id_spq_ets_uri.
Click Source Link
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"); }//w w w .j a v a2s. com 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:es.gob.afirma.envelopers.cades.SigPolicyQualifierInfo.java
License:Open Source License
/** Crea un nuevo <code>SigPolicyQualifierInfo</code> con su calificador * cPSuri./*from w ww . j a v a 2 s.co m*/ * @param cps * El CPS (certification practice statement) uri como <code>String</code>. */ SigPolicyQualifierInfo(final String cps) { this.sigPolicyQualifierId = PKCSObjectIdentifiers.id_spq_ets_uri; this.sigQualifier = new DERIA5String(cps); }
From source file:es.gob.afirma.signers.cades.AOSigPolicyQualifierInfo.java
License:Open Source License
/** Crea un nuevo <code>AOSigPolicyQualifierInfo</code> con su calificador * cPSuri./*from ww w.j a v a2s . c o m*/ * @param cps * El CPS (certification practice statement) uri como <code>String</code>. */ AOSigPolicyQualifierInfo(final String cps) { this.sigPolicyQualifierId = PKCSObjectIdentifiers.id_spq_ets_uri; this.sigQualifier = new DERIA5String(cps); }
From source file:eu.europa.ec.markt.dss.validation102853.cades.CAdESSignature.java
License:Open Source License
/** * 31 ETSI TS 101 733 V2.2.1 (2013-04)// w ww . j a v a 2 s. c om * <p/> * 5.8.1 signature-policy-identifier * The present document mandates that for CAdES-EPES, a reference to the signature policy is included in the * signedData. This reference is explicitly identified. A signature policy defines the rules for creation and validation of * an electronic signature, and is included as a signed attribute with every Explicit Policy-based Electronic Signature. The * signature-policy-identifier shall be a signed attribute. * <p/> * The following object identifier identifies the signature-policy-identifier attribute: * ... id-aa-ets-sigPolicyId OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) id-aa(2) 15 } * signature-policy-identifier attribute values have ASN.1 type SignaturePolicyIdentifier: * ... SignaturePolicyIdentifier ::=CHOICE{ * ...... signaturePolicyId ......... SignaturePolicyId, * ...... signaturePolicyImplied .... SignaturePolicyImplied -- not used in this version} * <p/> * ... SignaturePolicyId ::= SEQUENCE { * ...... sigPolicyId ......... SigPolicyId, * ...... sigPolicyHash ....... SigPolicyHash, * ...... sigPolicyQualifiers . SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL} * <p/> * ... SignaturePolicyImplied ::= NULL * <p/> * NOTE: {@code SignaturePolicyImplied} -- not used in this version * * @return */ @Override public SignaturePolicy getPolicyId() { final AttributeTable attributes = signerInformation.getSignedAttributes(); if (attributes == null) { return null; } final Attribute attribute = attributes.get(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId); if (attribute == null) { return null; } final ASN1Encodable attrValue = attribute.getAttrValues().getObjectAt(0); if (attrValue instanceof DERNull) { return null; } final SignaturePolicyId sigPolicy = SignaturePolicyId.getInstance(attrValue); if (sigPolicy == null) { return null; } final String policyId = sigPolicy.getSigPolicyId().getId(); final SignaturePolicy signaturePolicy = new SignaturePolicy(policyId); final OtherHashAlgAndValue hashAlgAndValue = sigPolicy.getSigPolicyHash(); final AlgorithmIdentifier digestAlgorithmIdentifier = hashAlgAndValue.getHashAlgorithm(); final String digestAlgorithmOID = digestAlgorithmIdentifier.getAlgorithm().getId(); final DigestAlgorithm digestAlgorithm = DigestAlgorithm.forOID(digestAlgorithmOID); signaturePolicy.setDigestAlgorithm(digestAlgorithm); final ASN1OctetString digestValue = hashAlgAndValue.getHashValue(); final byte[] digestValueBytes = digestValue.getOctets(); final String policyDigestHexValue = DSSUtils.toHex(digestValueBytes); signaturePolicy.setDigestValue(policyDigestHexValue); final SigPolicyQualifiers sigPolicyQualifiers = sigPolicy.getSigPolicyQualifiers(); if (sigPolicyQualifiers == null) { return signaturePolicy; } for (int ii = 0; ii < sigPolicyQualifiers.size(); ii++) { final SigPolicyQualifierInfo policyQualifierInfo = sigPolicyQualifiers.getInfoAt(ii); final ASN1ObjectIdentifier policyQualifierInfoId = policyQualifierInfo.getSigPolicyQualifierId(); final String policyQualifierInfoValue = policyQualifierInfo.getSigQualifier().toString(); if (PKCSObjectIdentifiers.id_spq_ets_unotice.equals(policyQualifierInfoId)) { signaturePolicy.setNotice(policyQualifierInfoValue); } else if (PKCSObjectIdentifiers.id_spq_ets_uri.equals(policyQualifierInfoId)) { signaturePolicy.setUrl(policyQualifierInfoValue); } else { LOG.error("Unknown signature policy qualifier id: " + policyQualifierInfoId + " with value: " + policyQualifierInfoValue); } } return signaturePolicy; }
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)); }/*from w ww . jav a2 s. co m*/ } final DERSet attrValues = new DERSet(sigPolicy); final Attribute attribute = new Attribute(id_aa_ets_sigPolicyId, attrValues); signedAttributes.add(attribute); } }
From source file:eu.europa.esig.dss.cades.validation.CAdESSignature.java
License:Open Source License
/** * 31 ETSI TS 101 733 V2.2.1 (2013-04)//w ww . j a v a2 s . co m * 5.8.1 signature-policy-identifier The present document mandates that for * CAdES-EPES, a reference to the signature policy is included in the * signedData. This reference is explicitly identified. A signature policy * defines the rules for creation and validation of an electronic signature, * and is included as a signed attribute with every Explicit Policy-based * Electronic Signature. The signature-policy-identifier shall be a signed * attribute. * The following object identifier identifies the * signature-policy-identifier attribute: ... id-aa-ets-sigPolicyId OBJECT * IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) * pkcs9(9) smime(16) id-aa(2) 15 } signature-policy-identifier attribute * values have ASN.1 type SignaturePolicyIdentifier: ... * SignaturePolicyIdentifier ::=CHOICE{ ...... signaturePolicyId ......... * SignaturePolicyId, ...... signaturePolicyImplied .... * SignaturePolicyImplied -- not used in this version} * ... SignaturePolicyId ::= SEQUENCE { ...... sigPolicyId ......... * SigPolicyId, ...... sigPolicyHash ....... SigPolicyHash, ...... * sigPolicyQualifiers . SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo * OPTIONAL} * ... SignaturePolicyImplied ::= NULL * NOTE: {@code SignaturePolicyImplied} -- not used in this version * * @return */ @Override public SignaturePolicy getPolicyId() { final AttributeTable attributes = signerInformation.getSignedAttributes(); if (attributes == null) { return null; } final Attribute attribute = attributes.get(PKCSObjectIdentifiers.id_aa_ets_sigPolicyId); if (attribute == null) { return null; } final ASN1Encodable attrValue = attribute.getAttrValues().getObjectAt(0); if (attrValue instanceof DERNull) { return null; } final SignaturePolicyId sigPolicy = SignaturePolicyId.getInstance(attrValue); if (sigPolicy == null) { return null; } final String policyId = sigPolicy.getSigPolicyId().getId(); final SignaturePolicy signaturePolicy = new SignaturePolicy(policyId); final OtherHashAlgAndValue hashAlgAndValue = sigPolicy.getSigPolicyHash(); final AlgorithmIdentifier digestAlgorithmIdentifier = hashAlgAndValue.getHashAlgorithm(); final String digestAlgorithmOID = digestAlgorithmIdentifier.getAlgorithm().getId(); final DigestAlgorithm digestAlgorithm = DigestAlgorithm.forOID(digestAlgorithmOID); signaturePolicy.setDigestAlgorithm(digestAlgorithm); final ASN1OctetString digestValue = hashAlgAndValue.getHashValue(); final byte[] digestValueBytes = digestValue.getOctets(); signaturePolicy.setDigestValue(digestValueBytes); final SigPolicyQualifiers sigPolicyQualifiers = sigPolicy.getSigPolicyQualifiers(); if (sigPolicyQualifiers == null) { return signaturePolicy; } for (int ii = 0; ii < sigPolicyQualifiers.size(); ii++) { final SigPolicyQualifierInfo policyQualifierInfo = sigPolicyQualifiers.getInfoAt(ii); final ASN1ObjectIdentifier policyQualifierInfoId = policyQualifierInfo.getSigPolicyQualifierId(); final String policyQualifierInfoValue = policyQualifierInfo.getSigQualifier().toString(); if (PKCSObjectIdentifiers.id_spq_ets_unotice.equals(policyQualifierInfoId)) { signaturePolicy.setNotice(policyQualifierInfoValue); } else if (PKCSObjectIdentifiers.id_spq_ets_uri.equals(policyQualifierInfoId)) { signaturePolicy.setUrl(policyQualifierInfoValue); } else { LOG.error("Unknown signature policy qualifier id: " + policyQualifierInfoId + " with value: " + policyQualifierInfoValue); } } return signaturePolicy; }