org.bouncycastle.asn1.ocsp.ResponderID Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15 Show documentation
Show all versions of bcprov-jdk15 Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5.
package org.bouncycastle.asn1.ocsp;
import org.bouncycastle.asn1.ASN1Choice;
import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.DEREncodable;
import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.x509.X509Name;
public class ResponderID
extends ASN1Encodable
implements ASN1Choice
{
private DEREncodable value;
public ResponderID(
ASN1OctetString value)
{
this.value = value;
}
public ResponderID(
X509Name value)
{
this.value = value;
}
public static ResponderID getInstance(
Object obj)
{
if (obj == null || obj instanceof ResponderID)
{
return (ResponderID)obj;
}
else if (obj instanceof DEROctetString)
{
return new ResponderID((DEROctetString)obj);
}
else if (obj instanceof ASN1TaggedObject)
{
ASN1TaggedObject o = (ASN1TaggedObject)obj;
if (o.getTagNo() == 1)
{
return new ResponderID(X509Name.getInstance(o, true));
}
else
{
return new ResponderID(ASN1OctetString.getInstance(o, true));
}
}
return new ResponderID(X509Name.getInstance(obj));
}
public static ResponderID getInstance(
ASN1TaggedObject obj,
boolean explicit)
{
return getInstance(obj.getObject()); // must be explicitly tagged
}
/**
* Produce an object suitable for an ASN1OutputStream.
*
* ResponderID ::= CHOICE {
* byName [1] Name,
* byKey [2] KeyHash }
*
*/
public DERObject toASN1Object()
{
if (value instanceof ASN1OctetString)
{
return new DERTaggedObject(true, 2, value);
}
return new DERTaggedObject(true, 1, value);
}
}