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

SubjectDirectoryAttributes

using Org.BouncyCastle.Utilities.Collections; using System.Collections.Generic; namespace Org.BouncyCastle.Asn1.X509 { public class SubjectDirectoryAttributes : Asn1Encodable { private readonly List<AttributeX509> m_attributes; public IEnumerable<AttributeX509> Attributes => CollectionUtilities.Proxy(m_attributes); public static SubjectDirectoryAttributes GetInstance(object obj) { if (obj == null) return null; SubjectDirectoryAttributes subjectDirectoryAttributes = obj as SubjectDirectoryAttributes; if (subjectDirectoryAttributes != null) return subjectDirectoryAttributes; return new SubjectDirectoryAttributes(Asn1Sequence.GetInstance(obj)); } public static SubjectDirectoryAttributes GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new SubjectDirectoryAttributes(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static SubjectDirectoryAttributes GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new SubjectDirectoryAttributes(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private SubjectDirectoryAttributes(Asn1Sequence seq) { m_attributes = new List<AttributeX509>(seq.Count); foreach (Asn1Encodable item in seq) { m_attributes.Add(AttributeX509.GetInstance(item)); } } public SubjectDirectoryAttributes(IList<AttributeX509> attributes) { m_attributes = new List<AttributeX509>(attributes); } public override Asn1Object ToAsn1Object() { Asn1Encodable[] elements = m_attributes.ToArray(); return DerSequence.WithElements(elements); } } }