DistributionPointName
using System;
using System.Text;
namespace Org.BouncyCastle.Asn1.X509
{
public class DistributionPointName : Asn1Encodable, IAsn1Choice
{
public const int FullName = 0;
public const int NameRelativeToCrlIssuer = 1;
private readonly int m_type;
private readonly Asn1Encodable m_name;
[Obsolete("Use 'Type' instead")]
public int PointType {
get {
return m_type;
}
}
public Asn1Encodable Name => m_name;
public int Type => m_type;
public static DistributionPointName GetInstance(object obj)
{
if (obj == null)
return null;
DistributionPointName distributionPointName = obj as DistributionPointName;
if (distributionPointName != null)
return distributionPointName;
return new DistributionPointName(Asn1TaggedObject.GetInstance(obj));
}
public static DistributionPointName GetInstance(Asn1TaggedObject obj, bool explicitly)
{
return Asn1Utilities.GetInstanceFromChoice(obj, explicitly, GetInstance);
}
public DistributionPointName(GeneralNames name)
: this(0, name)
{
}
public DistributionPointName(int type, Asn1Encodable name)
{
m_type = type;
m_name = name;
}
public DistributionPointName(Asn1TaggedObject obj)
{
m_type = obj.TagNo;
if (m_type == 0)
m_name = GeneralNames.GetInstance(obj, false);
else
m_name = Asn1Set.GetInstance(obj, false);
}
public override Asn1Object ToAsn1Object()
{
return new DerTaggedObject(false, m_type, m_name);
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine("DistributionPointName: [");
if (m_type == 0)
AppendObject(stringBuilder, "fullName", m_name.ToString());
else
AppendObject(stringBuilder, "nameRelativeToCRLIssuer", m_name.ToString());
stringBuilder.AppendLine("]");
return stringBuilder.ToString();
}
private void AppendObject(StringBuilder buf, string name, string val)
{
string value = " ";
buf.Append(value);
buf.Append(name);
buf.AppendLine(":");
buf.Append(value);
buf.Append(value);
buf.Append(val);
buf.AppendLine();
}
}
}