org.bouncycastle.asn1.x509.OtherName Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk18on Show documentation
Show all versions of bcprov-ext-debug-jdk18on 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 Java 1.8 and later with debug enabled.
The newest version!
package org.bouncycastle.asn1.x509;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
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;
/**
* The OtherName object.
*
* OtherName ::= SEQUENCE {
* type-id OBJECT IDENTIFIER,
* value [0] EXPLICIT ANY DEFINED BY type-id }
*
*/
public class OtherName
extends ASN1Object
{
private final ASN1ObjectIdentifier typeID;
private final ASN1Encodable value;
/**
* OtherName factory method.
* @param obj the object used to construct an instance of
* OtherName
. It must be an instance of OtherName
*
or ASN1Sequence
.
* @return the instance of OtherName
built from the
* supplied object.
* @throws java.lang.IllegalArgumentException if the object passed
* to the factory is not an instance of OtherName
or something that
* can be converted into an appropriate ASN1Sequence
.
*/
public static OtherName getInstance(
Object obj)
{
if (obj instanceof OtherName)
{
return (OtherName)obj;
}
else if (obj != null)
{
return new OtherName(ASN1Sequence.getInstance(obj));
}
return null;
}
/**
* Base constructor.
* @param typeID the type of the other name.
* @param value the ANY object that represents the value.
*/
public OtherName(
ASN1ObjectIdentifier typeID,
ASN1Encodable value)
{
this.typeID = typeID;
this.value = value;
}
private OtherName(ASN1Sequence seq)
{
this.typeID = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0));
this.value = ASN1TaggedObject.getInstance(seq.getObjectAt(1)).getExplicitBaseObject();
}
public ASN1ObjectIdentifier getTypeID()
{
return typeID;
}
public ASN1Encodable getValue()
{
return value;
}
public ASN1Primitive toASN1Primitive()
{
ASN1EncodableVector v = new ASN1EncodableVector(2);
v.add(typeID);
v.add(new DERTaggedObject(true, 0, value));
return new DERSequence(v);
}
}