package org.bouncycastle.asn1.ocsp;

import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Integer;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.x509.Extensions;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.X509Extensions;

public class TBSRequest
    extends ASN1Object
{
    private static final ASN1Integer V1 = new ASN1Integer(0);
    
    ASN1Integer      version;
    GeneralName     requestorName;
    ASN1Sequence    requestList;
    Extensions  requestExtensions;

    boolean         versionSet;

    
Params:
  • requestorName –
  • requestList –
  • requestExtensions –
Deprecated:use method taking Extensions
/** * @deprecated use method taking Extensions * @param requestorName * @param requestList * @param requestExtensions */
public TBSRequest( GeneralName requestorName, ASN1Sequence requestList, X509Extensions requestExtensions) { this.version = V1; this.requestorName = requestorName; this.requestList = requestList; this.requestExtensions = Extensions.getInstance(requestExtensions); } public TBSRequest( GeneralName requestorName, ASN1Sequence requestList, Extensions requestExtensions) { this.version = V1; this.requestorName = requestorName; this.requestList = requestList; this.requestExtensions = requestExtensions; } private TBSRequest( ASN1Sequence seq) { int index = 0; if (seq.getObjectAt(0) instanceof ASN1TaggedObject) { ASN1TaggedObject o = (ASN1TaggedObject)seq.getObjectAt(0); if (o.getTagNo() == 0) { versionSet = true; version = ASN1Integer.getInstance((ASN1TaggedObject)seq.getObjectAt(0), true); index++; } else { version = V1; } } else { version = V1; } if (seq.getObjectAt(index) instanceof ASN1TaggedObject) { requestorName = GeneralName.getInstance((ASN1TaggedObject)seq.getObjectAt(index++), true); } requestList = (ASN1Sequence)seq.getObjectAt(index++); if (seq.size() == (index + 1)) { requestExtensions = Extensions.getInstance((ASN1TaggedObject)seq.getObjectAt(index), true); } } public static TBSRequest getInstance( ASN1TaggedObject obj, boolean explicit) { return getInstance(ASN1Sequence.getInstance(obj, explicit)); } public static TBSRequest getInstance( Object obj) { if (obj instanceof TBSRequest) { return (TBSRequest)obj; } else if (obj != null) { return new TBSRequest(ASN1Sequence.getInstance(obj)); } return null; } public ASN1Integer getVersion() { return version; } public GeneralName getRequestorName() { return requestorName; } public ASN1Sequence getRequestList() { return requestList; } public Extensions getRequestExtensions() { return requestExtensions; }
Produce an object suitable for an ASN1OutputStream.
TBSRequest      ::=     SEQUENCE {
    version             [0]     EXPLICIT Version DEFAULT v1,
    requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
    requestList                 SEQUENCE OF Request,
    requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * TBSRequest ::= SEQUENCE { * version [0] EXPLICIT Version DEFAULT v1, * requestorName [1] EXPLICIT GeneralName OPTIONAL, * requestList SEQUENCE OF Request, * requestExtensions [2] EXPLICIT Extensions OPTIONAL } * </pre> */
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); // // if default don't include - unless explicitly provided. Not strictly correct // but required for some requests // if (!version.equals(V1) || versionSet) { v.add(new DERTaggedObject(true, 0, version)); } if (requestorName != null) { v.add(new DERTaggedObject(true, 1, requestorName)); } v.add(requestList); if (requestExtensions != null) { v.add(new DERTaggedObject(true, 2, requestExtensions)); } return new DERSequence(v); } }