<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.0" />

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(); } } }