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