diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder.java | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder.java deleted file mode 100644 index 8815fe37d..000000000 --- a/libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder.java +++ /dev/null @@ -1,224 +0,0 @@ -package org.spongycastle.asn1.dvcs; - -import java.math.BigInteger; - -import org.spongycastle.asn1.ASN1Encodable; -import org.spongycastle.asn1.ASN1EncodableVector; -import org.spongycastle.asn1.ASN1Integer; -import org.spongycastle.asn1.DERSequence; -import org.spongycastle.asn1.DERTaggedObject; -import org.spongycastle.asn1.x509.Extensions; -import org.spongycastle.asn1.x509.GeneralName; -import org.spongycastle.asn1.x509.GeneralNames; -import org.spongycastle.asn1.x509.PolicyInformation; -import org.spongycastle.util.BigIntegers; - -/** - * <pre> - * DVCSRequestInformation ::= SEQUENCE { - * version INTEGER DEFAULT 1 , - * service ServiceType, - * nonce Nonce OPTIONAL, - * requestTime DVCSTime OPTIONAL, - * requester [0] GeneralNames OPTIONAL, - * requestPolicy [1] PolicyInformation OPTIONAL, - * dvcs [2] GeneralNames OPTIONAL, - * dataLocations [3] GeneralNames OPTIONAL, - * extensions [4] IMPLICIT Extensions OPTIONAL - * } - * </pre> - */ -public class DVCSRequestInformationBuilder -{ - private int version = DEFAULT_VERSION; - - private final ServiceType service; - private DVCSRequestInformation initialInfo; - - private BigInteger nonce; - private DVCSTime requestTime; - private GeneralNames requester; - private PolicyInformation requestPolicy; - private GeneralNames dvcs; - private GeneralNames dataLocations; - private Extensions extensions; - - private static final int DEFAULT_VERSION = 1; - private static final int TAG_REQUESTER = 0; - private static final int TAG_REQUEST_POLICY = 1; - private static final int TAG_DVCS = 2; - private static final int TAG_DATA_LOCATIONS = 3; - private static final int TAG_EXTENSIONS = 4; - - public DVCSRequestInformationBuilder(ServiceType service) - { - this.service = service; - } - - public DVCSRequestInformationBuilder(DVCSRequestInformation initialInfo) - { - this.initialInfo = initialInfo; - this.service = initialInfo.getService(); - this.version = initialInfo.getVersion(); - this.nonce = initialInfo.getNonce(); - this.requestTime = initialInfo.getRequestTime(); - this.requestPolicy = initialInfo.getRequestPolicy(); - this.dvcs = initialInfo.getDVCS(); - this.dataLocations = initialInfo.getDataLocations(); - } - - public DVCSRequestInformation build() - { - ASN1EncodableVector v = new ASN1EncodableVector(); - - if (version != DEFAULT_VERSION) - { - v.add(new ASN1Integer(version)); - } - v.add(service); - if (nonce != null) - { - v.add(new ASN1Integer(nonce)); - } - if (requestTime != null) - { - v.add(requestTime); - } - - int[] tags = new int[]{ - TAG_REQUESTER, - TAG_REQUEST_POLICY, - TAG_DVCS, - TAG_DATA_LOCATIONS, - TAG_EXTENSIONS - }; - ASN1Encodable[] taggedObjects = new ASN1Encodable[]{ - requester, - requestPolicy, - dvcs, - dataLocations, - extensions - }; - for (int i = 0; i < tags.length; i++) - { - int tag = tags[i]; - ASN1Encodable taggedObject = taggedObjects[i]; - if (taggedObject != null) - { - v.add(new DERTaggedObject(false, tag, taggedObject)); - } - } - - return DVCSRequestInformation.getInstance(new DERSequence(v)); - } - - public void setVersion(int version) - { - if (initialInfo != null) - { - throw new IllegalStateException("cannot change version in existing DVCSRequestInformation"); - } - - this.version = version; - } - - public void setNonce(BigInteger nonce) - { - // RFC 3029, 9.1: The DVCS MAY modify the fields - // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure - - // RFC 3029, 9.1: The only modification - // allowed to a 'nonce' is the inclusion of a new field if it was not - // present, or to concatenate other data to the end (right) of an - // existing value. - if (initialInfo != null) - { - if (initialInfo.getNonce() == null) - { - this.nonce = nonce; - } - else - { - byte[] initialBytes = initialInfo.getNonce().toByteArray(); - byte[] newBytes = BigIntegers.asUnsignedByteArray(nonce); - byte[] nonceBytes = new byte[initialBytes.length + newBytes.length]; - - System.arraycopy(initialBytes, 0, nonceBytes, 0, initialBytes.length); - System.arraycopy(newBytes, 0, nonceBytes, initialBytes.length, newBytes.length); - - this.nonce = new BigInteger(nonceBytes); - } - } - - this.nonce = nonce; - } - - public void setRequestTime(DVCSTime requestTime) - { - if (initialInfo != null) - { - throw new IllegalStateException("cannot change request time in existing DVCSRequestInformation"); - } - - this.requestTime = requestTime; - } - - public void setRequester(GeneralName requester) - { - this.setRequester(new GeneralNames(requester)); - } - - public void setRequester(GeneralNames requester) - { - // RFC 3029, 9.1: The DVCS MAY modify the fields - // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure - - this.requester = requester; - } - - public void setRequestPolicy(PolicyInformation requestPolicy) - { - if (initialInfo != null) - { - throw new IllegalStateException("cannot change request policy in existing DVCSRequestInformation"); - } - - this.requestPolicy = requestPolicy; - } - - public void setDVCS(GeneralName dvcs) - { - this.setDVCS(new GeneralNames(dvcs)); - } - - public void setDVCS(GeneralNames dvcs) - { - // RFC 3029, 9.1: The DVCS MAY modify the fields - // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure - - this.dvcs = dvcs; - } - - public void setDataLocations(GeneralName dataLocation) - { - this.setDataLocations(new GeneralNames(dataLocation)); - } - - public void setDataLocations(GeneralNames dataLocations) - { - // RFC 3029, 9.1: The DVCS MAY modify the fields - // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure - - this.dataLocations = dataLocations; - } - - public void setExtensions(Extensions extensions) - { - if (initialInfo != null) - { - throw new IllegalStateException("cannot change extensions in existing DVCSRequestInformation"); - } - - this.extensions = extensions; - } -} |