AttCertIssuer
using Org.BouncyCastle.Utilities;
using System;
namespace Org.BouncyCastle.Asn1.X509
{
public class AttCertIssuer : Asn1Encodable, IAsn1Choice
{
internal readonly Asn1Encodable obj;
internal readonly Asn1Object choiceObj;
public Asn1Encodable Issuer => obj;
public static AttCertIssuer GetInstance(object obj)
{
AttCertIssuer attCertIssuer = obj as AttCertIssuer;
if (attCertIssuer != null)
return attCertIssuer;
V2Form v2Form = obj as V2Form;
if (v2Form != null)
return new AttCertIssuer(v2Form);
GeneralNames generalNames = obj as GeneralNames;
if (generalNames != null)
return new AttCertIssuer(generalNames);
Asn1TaggedObject asn1TaggedObject = obj as Asn1TaggedObject;
if (asn1TaggedObject != null)
return new AttCertIssuer(V2Form.GetInstance(asn1TaggedObject, false));
if (obj is Asn1Sequence)
return new AttCertIssuer(GeneralNames.GetInstance(obj));
throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj");
}
public static AttCertIssuer GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
return Asn1Utilities.GetInstanceFromChoice(obj, isExplicit, GetInstance);
}
public AttCertIssuer(GeneralNames names)
{
obj = names;
choiceObj = obj.ToAsn1Object();
}
public AttCertIssuer(V2Form v2Form)
{
obj = v2Form;
choiceObj = new DerTaggedObject(false, 0, obj);
}
public override Asn1Object ToAsn1Object()
{
return choiceObj;
}
}
}