AuthorityInformationAccess
using Org.BouncyCastle.Utilities;
using System;
using System.Text;
namespace Org.BouncyCastle.Asn1.X509
{
public class AuthorityInformationAccess : Asn1Encodable
{
private readonly AccessDescription[] m_descriptions;
public static AuthorityInformationAccess GetInstance(object obj)
{
if (obj == null)
return null;
AuthorityInformationAccess authorityInformationAccess = obj as AuthorityInformationAccess;
if (authorityInformationAccess != null)
return authorityInformationAccess;
return new AuthorityInformationAccess(Asn1Sequence.GetInstance(obj));
}
public static AuthorityInformationAccess GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new AuthorityInformationAccess(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static AuthorityInformationAccess GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new AuthorityInformationAccess(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
public static AuthorityInformationAccess FromExtensions(X509Extensions extensions)
{
return GetInstance(X509Extensions.GetExtensionParsedValue(extensions, X509Extensions.AuthorityInfoAccess));
}
private AuthorityInformationAccess(Asn1Sequence seq)
{
if (seq.Count < 1)
throw new ArgumentException("sequence may not be empty");
m_descriptions = seq.MapElements(AccessDescription.GetInstance);
}
public AuthorityInformationAccess(AccessDescription description)
{
AccessDescription[] obj = new AccessDescription[1];
if (description == null)
throw new ArgumentNullException("description");
obj[0] = description;
m_descriptions = obj;
}
public AuthorityInformationAccess(AccessDescription[] descriptions)
{
if (Arrays.IsNullOrContainsNull(descriptions))
throw new NullReferenceException("'descriptions' cannot be null, or contain null");
m_descriptions = Copy(descriptions);
}
public AuthorityInformationAccess(DerObjectIdentifier oid, GeneralName location)
: this(new AccessDescription(oid, location))
{
}
public AccessDescription[] GetAccessDescriptions()
{
return Copy(m_descriptions);
}
public override Asn1Object ToAsn1Object()
{
Asn1Encodable[] descriptions = m_descriptions;
return new DerSequence(descriptions);
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine("AuthorityInformationAccess:");
AccessDescription[] descriptions = m_descriptions;
foreach (AccessDescription value in descriptions) {
stringBuilder.Append(" ").Append(value).AppendLine();
}
return stringBuilder.ToString();
}
private static AccessDescription[] Copy(AccessDescription[] descriptions)
{
return (AccessDescription[])descriptions.Clone();
}
}
}