using System; using System.Collections.Generic; using Org.BouncyCastle.Utilities; using Org.BouncyCastle.Utilities.Collections; namespace Org.BouncyCastle.Asn1.X509 { /** * This extension may contain further X.500 attributes of the subject. See also * RFC 3039. * *
* SubjectDirectoryAttributes ::= Attributes * Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute * Attribute ::= SEQUENCE * { * type AttributeType * values SET OF AttributeValue * } * * AttributeType ::= OBJECT IDENTIFIER * AttributeValue ::= ANY DEFINED BY AttributeType ** * @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers. */ public class SubjectDirectoryAttributes : Asn1Encodable { private readonly IList
* SubjectDirectoryAttributes ::= Attributes * Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute * Attribute ::= SEQUENCE * { * type AttributeType * values SET OF AttributeValue * } * * AttributeType ::= OBJECT IDENTIFIER * AttributeValue ::= ANY DEFINED BY AttributeType ** * @param seq * The ASN.1 sequence. */ private SubjectDirectoryAttributes( Asn1Sequence seq) { m_attributes = new List
* SubjectDirectoryAttributes ::= Attributes * Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute * Attribute ::= SEQUENCE * { * type AttributeType * values SET OF AttributeValue * } * * AttributeType ::= OBJECT IDENTIFIER * AttributeValue ::= ANY DEFINED BY AttributeType ** * @return a DERObject */ public override Asn1Object ToAsn1Object() { AttributeX509[] v = new AttributeX509[m_attributes.Count]; for (int i = 0; i < m_attributes.Count; ++i) { v[i] = m_attributes[i]; } return new DerSequence(v); } /** * @return Returns the attributes. */ public IEnumerable