1 package org.bouncycastle.asn1.dvcs; 2 3 import org.bouncycastle.asn1.ASN1EncodableVector; 4 import org.bouncycastle.asn1.ASN1Integer; 5 import org.bouncycastle.asn1.ASN1Sequence; 6 import org.bouncycastle.asn1.ASN1Set; 7 import org.bouncycastle.asn1.DERSequence; 8 import org.bouncycastle.asn1.DERTaggedObject; 9 import org.bouncycastle.asn1.cmp.PKIStatusInfo; 10 import org.bouncycastle.asn1.x509.DigestInfo; 11 import org.bouncycastle.asn1.x509.Extensions; 12 import org.bouncycastle.asn1.x509.PolicyInformation; 13 14 /** 15 * <pre> 16 * DVCSCertInfo::= SEQUENCE { 17 * version Integer DEFAULT 1 , 18 * dvReqInfo DVCSRequestInformation, 19 * messageImprint DigestInfo, 20 * serialNumber Integer, 21 * responseTime DVCSTime, 22 * dvStatus [0] PKIStatusInfo OPTIONAL, 23 * policy [1] PolicyInformation OPTIONAL, 24 * reqSignature [2] SignerInfos OPTIONAL, 25 * certs [3] SEQUENCE SIZE (1..MAX) OF 26 * TargetEtcChain OPTIONAL, 27 * extensions Extensions OPTIONAL 28 * } 29 * </pre> 30 */ 31 32 public class DVCSCertInfoBuilder 33 { 34 35 private int version = DEFAULT_VERSION; 36 private DVCSRequestInformation dvReqInfo; 37 private DigestInfo messageImprint; 38 private ASN1Integer serialNumber; 39 private DVCSTime responseTime; 40 private PKIStatusInfo dvStatus; 41 private PolicyInformation policy; 42 private ASN1Set reqSignature; 43 private ASN1Sequence certs; 44 private Extensions extensions; 45 46 private static final int DEFAULT_VERSION = 1; 47 private static final int TAG_DV_STATUS = 0; 48 private static final int TAG_POLICY = 1; 49 private static final int TAG_REQ_SIGNATURE = 2; 50 private static final int TAG_CERTS = 3; 51 DVCSCertInfoBuilder( DVCSRequestInformation dvReqInfo, DigestInfo messageImprint, ASN1Integer serialNumber, DVCSTime responseTime)52 public DVCSCertInfoBuilder( 53 DVCSRequestInformation dvReqInfo, 54 DigestInfo messageImprint, 55 ASN1Integer serialNumber, 56 DVCSTime responseTime) 57 { 58 this.dvReqInfo = dvReqInfo; 59 this.messageImprint = messageImprint; 60 this.serialNumber = serialNumber; 61 this.responseTime = responseTime; 62 } 63 build()64 public DVCSCertInfo build() 65 { 66 ASN1EncodableVector v = new ASN1EncodableVector(10); 67 68 if (version != DEFAULT_VERSION) 69 { 70 v.add(new ASN1Integer(version)); 71 } 72 v.add(dvReqInfo); 73 v.add(messageImprint); 74 v.add(serialNumber); 75 v.add(responseTime); 76 if (dvStatus != null) 77 { 78 v.add(new DERTaggedObject(false, TAG_DV_STATUS, dvStatus)); 79 } 80 if (policy != null) 81 { 82 v.add(new DERTaggedObject(false, TAG_POLICY, policy)); 83 } 84 if (reqSignature != null) 85 { 86 v.add(new DERTaggedObject(false, TAG_REQ_SIGNATURE, reqSignature)); 87 } 88 if (certs != null) 89 { 90 v.add(new DERTaggedObject(false, TAG_CERTS, certs)); 91 } 92 if (extensions != null) 93 { 94 v.add(extensions); 95 } 96 97 return DVCSCertInfo.getInstance(new DERSequence(v)); 98 } 99 setVersion(int version)100 public void setVersion(int version) 101 { 102 this.version = version; 103 } 104 setDvReqInfo(DVCSRequestInformation dvReqInfo)105 public void setDvReqInfo(DVCSRequestInformation dvReqInfo) 106 { 107 this.dvReqInfo = dvReqInfo; 108 } 109 setMessageImprint(DigestInfo messageImprint)110 public void setMessageImprint(DigestInfo messageImprint) 111 { 112 this.messageImprint = messageImprint; 113 } 114 setSerialNumber(ASN1Integer serialNumber)115 public void setSerialNumber(ASN1Integer serialNumber) 116 { 117 this.serialNumber = serialNumber; 118 } 119 setResponseTime(DVCSTime responseTime)120 public void setResponseTime(DVCSTime responseTime) 121 { 122 this.responseTime = responseTime; 123 } 124 setDvStatus(PKIStatusInfo dvStatus)125 public void setDvStatus(PKIStatusInfo dvStatus) 126 { 127 this.dvStatus = dvStatus; 128 } 129 setPolicy(PolicyInformation policy)130 public void setPolicy(PolicyInformation policy) 131 { 132 this.policy = policy; 133 } 134 setReqSignature(ASN1Set reqSignature)135 public void setReqSignature(ASN1Set reqSignature) 136 { 137 this.reqSignature = reqSignature; 138 } 139 setCerts(TargetEtcChain[] certs)140 public void setCerts(TargetEtcChain[] certs) 141 { 142 this.certs = new DERSequence(certs); 143 } 144 setExtensions(Extensions extensions)145 public void setExtensions(Extensions extensions) 146 { 147 this.extensions = extensions; 148 } 149 150 } 151