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

PolicyInformation

using System; namespace Org.BouncyCastle.Asn1.X509 { public class PolicyInformation : Asn1Encodable { private readonly DerObjectIdentifier m_policyIdentifier; private readonly Asn1Sequence m_policyQualifiers; public DerObjectIdentifier PolicyIdentifier => m_policyIdentifier; public Asn1Sequence PolicyQualifiers => m_policyQualifiers; public static PolicyInformation GetInstance(object obj) { if (obj == null) return null; PolicyInformation policyInformation = obj as PolicyInformation; if (policyInformation != null) return policyInformation; return new PolicyInformation(Asn1Sequence.GetInstance(obj)); } public static PolicyInformation GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new PolicyInformation(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static PolicyInformation GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new PolicyInformation(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private PolicyInformation(Asn1Sequence seq) { int count = seq.Count; if (count < 1 || count > 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_policyIdentifier = DerObjectIdentifier.GetInstance(seq[0]); m_policyQualifiers = ((count < 2) ? null : Asn1Sequence.GetInstance(seq[1])); } public PolicyInformation(DerObjectIdentifier policyIdentifier) : this(policyIdentifier, null) { } public PolicyInformation(DerObjectIdentifier policyIdentifier, Asn1Sequence policyQualifiers) { if (policyIdentifier == null) throw new ArgumentNullException("policyIdentifier"); m_policyIdentifier = policyIdentifier; m_policyQualifiers = policyQualifiers; } public override Asn1Object ToAsn1Object() { if (m_policyQualifiers != null) return new DerSequence(m_policyIdentifier, m_policyQualifiers); return new DerSequence(m_policyIdentifier); } } }