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

NoticeReference

using Org.BouncyCastle.Math; using System; using System.Collections.Generic; namespace Org.BouncyCastle.Asn1.X509 { public class NoticeReference : Asn1Encodable { private readonly DisplayText m_organization; private readonly Asn1Sequence m_noticeNumbers; public virtual DisplayText Organization => m_organization; public static NoticeReference GetInstance(object obj) { if (obj == null) return null; NoticeReference noticeReference = obj as NoticeReference; if (noticeReference != null) return noticeReference; return new NoticeReference(Asn1Sequence.GetInstance(obj)); } public static NoticeReference GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new NoticeReference(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static NoticeReference GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); NoticeReference noticeReference = element as NoticeReference; if (noticeReference != null) return noticeReference; Asn1Sequence optional = Asn1Sequence.GetOptional(element); if (optional != null) return new NoticeReference(optional); return null; } public static NoticeReference GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new NoticeReference(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private NoticeReference(Asn1Sequence seq) { int count = seq.Count; if (count != 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_organization = DisplayText.GetInstance(seq[0]); m_noticeNumbers = Asn1Sequence.GetInstance(seq[1]); } public NoticeReference(string organization, IList<object> numbers) : this(organization, ConvertVector(numbers)) { } public NoticeReference(string organization, Asn1EncodableVector noticeNumbers) : this(new DisplayText(organization), noticeNumbers) { } public NoticeReference(DisplayText organization, Asn1EncodableVector noticeNumbers) { if (organization == null) throw new ArgumentNullException("organization"); m_organization = organization; m_noticeNumbers = new DerSequence(noticeNumbers); } public virtual DerInteger[] GetNoticeNumbers() { return m_noticeNumbers.MapElements(DerInteger.GetInstance); } public override Asn1Object ToAsn1Object() { return new DerSequence(m_organization, m_noticeNumbers); } private static Asn1EncodableVector ConvertVector(IList<object> numbers) { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(numbers.Count); foreach (object number in numbers) { BigInteger bigInteger = number as BigInteger; DerInteger element; if (bigInteger != null) element = new DerInteger(bigInteger); else { if (!(number is int)) throw new ArgumentException(); int value = (int)number; element = new DerInteger(value); } asn1EncodableVector.Add(element); } return asn1EncodableVector; } } }