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

CertificatePolicies

using Org.BouncyCastle.Utilities; using System; using System.Text; namespace Org.BouncyCastle.Asn1.X509 { public class CertificatePolicies : Asn1Encodable { private readonly PolicyInformation[] m_policyInformation; public static CertificatePolicies GetInstance(object obj) { if (obj == null) return null; CertificatePolicies certificatePolicies = obj as CertificatePolicies; if (certificatePolicies != null) return certificatePolicies; return new CertificatePolicies(Asn1Sequence.GetInstance(obj)); } public static CertificatePolicies GetInstance(Asn1TaggedObject obj, bool isExplicit) { return new CertificatePolicies(Asn1Sequence.GetInstance(obj, isExplicit)); } public static CertificatePolicies GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new CertificatePolicies(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public static CertificatePolicies FromExtensions(X509Extensions extensions) { return GetInstance(X509Extensions.GetExtensionParsedValue(extensions, X509Extensions.CertificatePolicies)); } private CertificatePolicies(Asn1Sequence seq) { m_policyInformation = seq.MapElements(PolicyInformation.GetInstance); } public CertificatePolicies(PolicyInformation name) { PolicyInformation[] obj = new PolicyInformation[1]; if (name == null) throw new ArgumentNullException("name"); obj[0] = name; m_policyInformation = obj; } public CertificatePolicies(PolicyInformation[] policyInformation) { if (Arrays.IsNullOrContainsNull(policyInformation)) throw new NullReferenceException("'policyInformation' cannot be null, or contain null"); m_policyInformation = Copy(policyInformation); } public virtual PolicyInformation[] GetPolicyInformation() { return Copy(m_policyInformation); } public virtual PolicyInformation GetPolicyInformation(DerObjectIdentifier policyIdentifier) { PolicyInformation[] policyInformation = m_policyInformation; foreach (PolicyInformation policyInformation2 in policyInformation) { if (policyInformation2.PolicyIdentifier.Equals(policyIdentifier)) return policyInformation2; } return null; } public override Asn1Object ToAsn1Object() { Asn1Encodable[] policyInformation = m_policyInformation; return DerSequence.FromElements(policyInformation); } public override string ToString() { StringBuilder stringBuilder = new StringBuilder("CertificatePolicies:"); if (m_policyInformation.Length != 0) { stringBuilder.Append(' '); stringBuilder.Append(m_policyInformation[0]); for (int i = 1; i < m_policyInformation.Length; i++) { stringBuilder.Append(", "); stringBuilder.Append(m_policyInformation[i]); } } return stringBuilder.ToString(); } private static PolicyInformation[] Copy(PolicyInformation[] policyInformation) { return (PolicyInformation[])policyInformation.Clone(); } } }