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

CertID

public class CertID : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class CertID : Asn1Encodable { private readonly AlgorithmIdentifier m_hashAlgorithm; private readonly Asn1OctetString m_issuerNameHash; private readonly Asn1OctetString m_issuerKeyHash; private readonly DerInteger m_serialNumber; public AlgorithmIdentifier HashAlgorithm => m_hashAlgorithm; public Asn1OctetString IssuerNameHash => m_issuerNameHash; public Asn1OctetString IssuerKeyHash => m_issuerKeyHash; public DerInteger SerialNumber => m_serialNumber; public static CertID GetInstance(object obj) { if (obj == null) return null; CertID certID = obj as CertID; if (certID != null) return certID; return new CertID(Asn1Sequence.GetInstance(obj)); } public static CertID GetInstance(Asn1TaggedObject obj, bool explicitly) { return new CertID(Asn1Sequence.GetInstance(obj, explicitly)); } public static CertID GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new CertID(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public CertID(AlgorithmIdentifier hashAlgorithm, Asn1OctetString issuerNameHash, Asn1OctetString issuerKeyHash, DerInteger serialNumber) { if (hashAlgorithm == null) throw new ArgumentNullException("hashAlgorithm"); m_hashAlgorithm = hashAlgorithm; if (issuerNameHash == null) throw new ArgumentNullException("issuerNameHash"); m_issuerNameHash = issuerNameHash; if (issuerKeyHash == null) throw new ArgumentNullException("issuerKeyHash"); m_issuerKeyHash = issuerKeyHash; if (serialNumber == null) throw new ArgumentNullException("serialNumber"); m_serialNumber = serialNumber; } private CertID(Asn1Sequence seq) { int count = seq.Count; if (count != 4) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); m_issuerNameHash = Asn1OctetString.GetInstance(seq[1]); m_issuerKeyHash = Asn1OctetString.GetInstance(seq[2]); m_serialNumber = DerInteger.GetInstance(seq[3]); } public override Asn1Object ToAsn1Object() { return new DerSequence(m_hashAlgorithm, m_issuerNameHash, m_issuerKeyHash, m_serialNumber); } } }