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 }
/** * The OtherName object. * <pre> * OtherName ::= SEQUENCE { * type-id OBJECT IDENTIFIER, * value [0] EXPLICIT ANY DEFINED BY type-id } * </pre> */
public class OtherName extends ASN1Object { private final ASN1ObjectIdentifier typeID; private final ASN1Encodable value;
OtherName factory method.
Params:
  • obj – the object used to construct an instance of OtherName. It must be an instance of OtherName or ASN1Sequence.
Throws:
  • IllegalArgumentException – if the object passed to the factory is not an instance of OtherName or something that can be converted into an appropriate ASN1Sequence.
Returns:the instance of OtherName built from the supplied object.
/** * OtherName factory method. * @param obj the object used to construct an instance of <code> * OtherName</code>. It must be an instance of <code>OtherName * </code> or <code>ASN1Sequence</code>. * @return the instance of <code>OtherName</code> built from the * supplied object. * @throws java.lang.IllegalArgumentException if the object passed * to the factory is not an instance of <code>OtherName</code> or something that * can be converted into an appropriate <code>ASN1Sequence</code>. */
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.
Params:
  • typeID – the type of the other name.
  • value – the ANY object that represents the value.
/** * 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)).getObject(); // explicitly tagged } public ASN1ObjectIdentifier getTypeID() { return typeID; } public ASN1Encodable getValue() { return value; } public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(typeID); v.add(new DERTaggedObject(true, 0, value)); return new DERSequence(v); } }