org.bouncycastle.asn1.ocsp.TBSRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.saml.opensaml.integration Show documentation
Show all versions of com.liferay.saml.opensaml.integration Show documentation
Liferay SAML OpenSAML Integration
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;
/**
* @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 }
*
*/
public ASN1Primitive toASN1Primitive()
{
ASN1EncodableVector v = new ASN1EncodableVector(4);
//
// 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);
}
}