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

KeyRecRepContent

using System; namespace Org.BouncyCastle.Asn1.Cmp { public class KeyRecRepContent : Asn1Encodable { private readonly PkiStatusInfo m_status; private readonly CmpCertificate m_newSigCert; private readonly Asn1Sequence m_caCerts; private readonly Asn1Sequence m_keyPairHist; public virtual PkiStatusInfo Status => m_status; public virtual CmpCertificate NewSigCert => m_newSigCert; public static KeyRecRepContent GetInstance(object obj) { if (obj == null) return null; KeyRecRepContent keyRecRepContent = obj as KeyRecRepContent; if (keyRecRepContent != null) return keyRecRepContent; return new KeyRecRepContent(Asn1Sequence.GetInstance(obj)); } public static KeyRecRepContent GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new KeyRecRepContent(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static KeyRecRepContent GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new KeyRecRepContent(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private KeyRecRepContent(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 4) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_status = PkiStatusInfo.GetInstance(seq[sequencePosition++]); m_newSigCert = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, CmpCertificate.GetTagged); m_caCerts = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 1, true, Asn1Sequence.GetTagged); m_keyPairHist = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 2, true, Asn1Sequence.GetTagged); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public virtual CmpCertificate[] GetCACerts() { return m_caCerts?.MapElements(CmpCertificate.GetInstance); } public virtual CertifiedKeyPair[] GetKeyPairHist() { return m_keyPairHist?.MapElements(CertifiedKeyPair.GetInstance); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(4); asn1EncodableVector.Add(m_status); asn1EncodableVector.AddOptionalTagged(true, 0, m_newSigCert); asn1EncodableVector.AddOptionalTagged(true, 1, m_caCerts); asn1EncodableVector.AddOptionalTagged(true, 2, m_keyPairHist); return new DerSequence(asn1EncodableVector); } } }