| package org.bouncycastle.asn1.dvcs; |
| |
| import org.bouncycastle.asn1.ASN1EncodableVector; |
| import org.bouncycastle.asn1.ASN1Integer; |
| import org.bouncycastle.asn1.ASN1Sequence; |
| import org.bouncycastle.asn1.ASN1Set; |
| import org.bouncycastle.asn1.DERSequence; |
| import org.bouncycastle.asn1.DERTaggedObject; |
| import org.bouncycastle.asn1.cmp.PKIStatusInfo; |
| import org.bouncycastle.asn1.x509.DigestInfo; |
| import org.bouncycastle.asn1.x509.Extensions; |
| import org.bouncycastle.asn1.x509.PolicyInformation; |
| |
| /** |
| * <pre> |
| * DVCSCertInfo::= SEQUENCE { |
| * version Integer DEFAULT 1 , |
| * dvReqInfo DVCSRequestInformation, |
| * messageImprint DigestInfo, |
| * serialNumber Integer, |
| * responseTime DVCSTime, |
| * dvStatus [0] PKIStatusInfo OPTIONAL, |
| * policy [1] PolicyInformation OPTIONAL, |
| * reqSignature [2] SignerInfos OPTIONAL, |
| * certs [3] SEQUENCE SIZE (1..MAX) OF |
| * TargetEtcChain OPTIONAL, |
| * extensions Extensions OPTIONAL |
| * } |
| * </pre> |
| */ |
| |
| public class DVCSCertInfoBuilder |
| { |
| |
| private int version = DEFAULT_VERSION; |
| private DVCSRequestInformation dvReqInfo; |
| private DigestInfo messageImprint; |
| private ASN1Integer serialNumber; |
| private DVCSTime responseTime; |
| private PKIStatusInfo dvStatus; |
| private PolicyInformation policy; |
| private ASN1Set reqSignature; |
| private ASN1Sequence certs; |
| private Extensions extensions; |
| |
| private static final int DEFAULT_VERSION = 1; |
| private static final int TAG_DV_STATUS = 0; |
| private static final int TAG_POLICY = 1; |
| private static final int TAG_REQ_SIGNATURE = 2; |
| private static final int TAG_CERTS = 3; |
| |
| public DVCSCertInfoBuilder( |
| DVCSRequestInformation dvReqInfo, |
| DigestInfo messageImprint, |
| ASN1Integer serialNumber, |
| DVCSTime responseTime) |
| { |
| this.dvReqInfo = dvReqInfo; |
| this.messageImprint = messageImprint; |
| this.serialNumber = serialNumber; |
| this.responseTime = responseTime; |
| } |
| |
| public DVCSCertInfo build() |
| { |
| |
| ASN1EncodableVector v = new ASN1EncodableVector(); |
| |
| if (version != DEFAULT_VERSION) |
| { |
| v.add(new ASN1Integer(version)); |
| } |
| v.add(dvReqInfo); |
| v.add(messageImprint); |
| v.add(serialNumber); |
| v.add(responseTime); |
| if (dvStatus != null) |
| { |
| v.add(new DERTaggedObject(false, TAG_DV_STATUS, dvStatus)); |
| } |
| if (policy != null) |
| { |
| v.add(new DERTaggedObject(false, TAG_POLICY, policy)); |
| } |
| if (reqSignature != null) |
| { |
| v.add(new DERTaggedObject(false, TAG_REQ_SIGNATURE, reqSignature)); |
| } |
| if (certs != null) |
| { |
| v.add(new DERTaggedObject(false, TAG_CERTS, certs)); |
| } |
| if (extensions != null) |
| { |
| v.add(extensions); |
| } |
| |
| return DVCSCertInfo.getInstance(new DERSequence(v)); |
| } |
| |
| public void setVersion(int version) |
| { |
| this.version = version; |
| } |
| |
| public void setDvReqInfo(DVCSRequestInformation dvReqInfo) |
| { |
| this.dvReqInfo = dvReqInfo; |
| } |
| |
| public void setMessageImprint(DigestInfo messageImprint) |
| { |
| this.messageImprint = messageImprint; |
| } |
| |
| public void setSerialNumber(ASN1Integer serialNumber) |
| { |
| this.serialNumber = serialNumber; |
| } |
| |
| public void setResponseTime(DVCSTime responseTime) |
| { |
| this.responseTime = responseTime; |
| } |
| |
| public void setDvStatus(PKIStatusInfo dvStatus) |
| { |
| this.dvStatus = dvStatus; |
| } |
| |
| public void setPolicy(PolicyInformation policy) |
| { |
| this.policy = policy; |
| } |
| |
| public void setReqSignature(ASN1Set reqSignature) |
| { |
| this.reqSignature = reqSignature; |
| } |
| |
| public void setCerts(TargetEtcChain[] certs) |
| { |
| this.certs = new DERSequence(certs); |
| } |
| |
| public void setExtensions(Extensions extensions) |
| { |
| this.extensions = extensions; |
| } |
| |
| } |