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

RevDetails

public class RevDetails : Asn1Encodable
using Org.BouncyCastle.Asn1.Crmf; using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Cmp { public class RevDetails : Asn1Encodable { private readonly CertTemplate m_certDetails; private readonly X509Extensions m_crlEntryDetails; public virtual CertTemplate CertDetails => m_certDetails; public virtual X509Extensions CrlEntryDetails => m_crlEntryDetails; public static RevDetails GetInstance(object obj) { if (obj == null) return null; RevDetails revDetails = obj as RevDetails; if (revDetails != null) return revDetails; return new RevDetails(Asn1Sequence.GetInstance(obj)); } public static RevDetails GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new RevDetails(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static RevDetails GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new RevDetails(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private RevDetails(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_certDetails = CertTemplate.GetInstance(seq[sequencePosition++]); m_crlEntryDetails = Asn1Utilities.ReadOptional(seq, ref sequencePosition, X509Extensions.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public RevDetails(CertTemplate certDetails) : this(certDetails, null) { } public RevDetails(CertTemplate certDetails, X509Extensions crlEntryDetails) { if (certDetails == null) throw new ArgumentNullException("certDetails"); m_certDetails = certDetails; m_crlEntryDetails = crlEntryDetails; } public override Asn1Object ToAsn1Object() { if (m_crlEntryDetails != null) return new DerSequence(m_certDetails, m_crlEntryDetails); return new DerSequence(m_certDetails); } } }