package org.keysupport.bc.scvp.asn1; import org.bouncycastle.asn1.ASN1EncodableVector; import org.bouncycastle.asn1.ASN1GeneralizedTime; import org.bouncycastle.asn1.ASN1Object; import org.bouncycastle.asn1.ASN1OctetString; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.DERTaggedObject; import org.bouncycastle.asn1.x509.Extensions; /* * Query ::= SEQUENCE { queriedCerts CertReferences, checks CertChecks, -- Note: tag [0] not used -- wantBack [1] WantBack OPTIONAL, validationPolicy ValidationPolicy, responseFlags ResponseFlags OPTIONAL, serverContextInfo [2] OCTET STRING OPTIONAL, validationTime [3] GeneralizedTime OPTIONAL, intermediateCerts [4] CertBundle OPTIONAL, revInfos [5] RevocationInfos OPTIONAL, producedAt [6] GeneralizedTime OPTIONAL, queryExtensions [7] Extensions OPTIONAL } */ public class Query extends ASN1Object { private CertReferences queriedCerts = null; private CertChecks checks = null; private WantBack wantBack = null; private ValidationPolicy validationPolicy = null; private ResponseFlags responseFlags = null; private ASN1OctetString serverContextInfo = null; private ASN1GeneralizedTime validationTime = null; private CertBundle intermediateCerts = null; private RevocationInfos revInfos = null; private ASN1GeneralizedTime producedAt = null; private Extensions queryExtensions = null; public Query(CertReferences queriedCerts, CertChecks checks, WantBack wantBack, ValidationPolicy validationPolicy, ResponseFlags responseFlags, ASN1OctetString serverContextInfo, ASN1GeneralizedTime validationTime, CertBundle intermediateCerts, RevocationInfos revInfos, ASN1GeneralizedTime producedAt, Extensions queryExtensions) { this.queriedCerts = queriedCerts; this.checks = checks; this.wantBack = wantBack; this.validationPolicy = validationPolicy; this.responseFlags = responseFlags; this.serverContextInfo = serverContextInfo; this.validationTime = validationTime; this.intermediateCerts = intermediateCerts; this.revInfos = revInfos; this.producedAt = producedAt; this.queryExtensions = queryExtensions; } @Override public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(queriedCerts); v.add(checks); if (wantBack != null) { v.add(new DERTaggedObject(false, 1, wantBack)); } v.add(validationPolicy); if (responseFlags != null) { v.add(responseFlags); } if (serverContextInfo != null) { v.add(new DERTaggedObject(false, 2, serverContextInfo)); } if (validationTime != null) { v.add(new DERTaggedObject(false, 3, validationTime)); } if (intermediateCerts != null) { v.add(new DERTaggedObject(false, 4, intermediateCerts)); } if (revInfos != null) { v.add(new DERTaggedObject(false, 5, revInfos)); } if (producedAt != null) { v.add(new DERTaggedObject(false, 6, producedAt)); } if (queryExtensions != null) { v.add(new DERTaggedObject(false, 7, queryExtensions)); } return new DERSequence(v); } }