package org.keysupport.bc.scvp.asn1; import org.bouncycastle.asn1.ASN1Boolean; import org.bouncycastle.asn1.ASN1EncodableVector; import org.bouncycastle.asn1.ASN1Object; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.DERTaggedObject; /* * ValidationPolicy ::= SEQUENCE { validationPolRef ValidationPolRef, validationAlg [0] ValidationAlg OPTIONAL, userPolicySet [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL, inhibitPolicyMapping [2] BOOLEAN OPTIONAL, requireExplicitPolicy [3] BOOLEAN OPTIONAL, inhibitAnyPolicy [4] BOOLEAN OPTIONAL, trustAnchors [5] TrustAnchors OPTIONAL, keyUsages [6] SEQUENCE OF KeyUsage OPTIONAL, extendedKeyUsages [7] SEQUENCE OF KeyPurposeId OPTIONAL, specifiedKeyUsages [8] SEQUENCE OF KeyPurposeId OPTIONAL } */ public class ValidationPolicy extends ASN1Object { private ValidationPolRef validationPolRef = null; private ValidationAlg validationAlg = null; private UserPolicySet userPolicySet = null; private ASN1Boolean inhibitPolicyMapping = null; private ASN1Boolean requireExplicitPolicy = null; private ASN1Boolean inhibitAnyPolicy = null; private TrustAnchors trustAnchors = null; private KeyUsages keyUsages = null; private KeyPurposeIds extendedKeyUsages = null; private KeyPurposeIds specifiedKeyUsages = null; public ValidationPolicy(ValidationPolRef validationPolRef, ValidationAlg validationAlg, UserPolicySet userPolicySet, ASN1Boolean inhibitPolicyMapping, ASN1Boolean requireExplicitPolicy, ASN1Boolean inhibitAnyPolicy, TrustAnchors trustAnchors, KeyUsages keyUsages, KeyPurposeIds extendedKeyUsages, KeyPurposeIds specifiedKeyUsages) { this.validationPolRef = validationPolRef; this.validationAlg = validationAlg; this.userPolicySet = userPolicySet; this.inhibitPolicyMapping = inhibitPolicyMapping; this.requireExplicitPolicy = requireExplicitPolicy; this.inhibitAnyPolicy = inhibitAnyPolicy; this.trustAnchors = trustAnchors; this.keyUsages = keyUsages; this.extendedKeyUsages = extendedKeyUsages; this.specifiedKeyUsages = specifiedKeyUsages; } @Override public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(validationPolRef); if (validationAlg != null) { v.add(new DERTaggedObject(false, 0, validationAlg)); } if (userPolicySet != null) { v.add(new DERTaggedObject(false, 1, userPolicySet)); } if (inhibitPolicyMapping != null) { v.add(new DERTaggedObject(false, 2, inhibitPolicyMapping)); } if (requireExplicitPolicy != null) { v.add(new DERTaggedObject(false, 3, requireExplicitPolicy)); } if (inhibitAnyPolicy != null) { v.add(new DERTaggedObject(false, 4, inhibitAnyPolicy)); } if (trustAnchors != null) { v.add(new DERTaggedObject(false, 5, trustAnchors)); } if (keyUsages != null) { v.add(new DERTaggedObject(false, 6, keyUsages)); } if (extendedKeyUsages != null) { v.add(new DERTaggedObject(false, 7, extendedKeyUsages)); } if (specifiedKeyUsages != null) { v.add(new DERTaggedObject(false, 7, specifiedKeyUsages)); } return new DERSequence(v); } }