<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

EssCertID

public class EssCertID : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Asn1.Ess { public class EssCertID : Asn1Encodable { private readonly Asn1OctetString m_certHash; private readonly IssuerSerial m_issuerSerial; public Asn1OctetString CertHash => m_certHash; public IssuerSerial IssuerSerial => m_issuerSerial; public static EssCertID GetInstance(object o) { if (o == null) return null; EssCertID essCertID = o as EssCertID; if (essCertID != null) return essCertID; return new EssCertID(Asn1Sequence.GetInstance(o)); } public static EssCertID GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EssCertID(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static EssCertID GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EssCertID(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } [Obsolete("Use 'GetInstance' instead")] public EssCertID(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_certHash = Asn1OctetString.GetInstance(seq[sequencePosition++]); m_issuerSerial = Asn1Utilities.ReadOptional(seq, ref sequencePosition, IssuerSerial.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public EssCertID(byte[] hash) : this(hash, null) { } public EssCertID(byte[] hash, IssuerSerial issuerSerial) { m_certHash = DerOctetString.FromContents(hash); m_issuerSerial = issuerSerial; } public EssCertID(Asn1OctetString certHash, IssuerSerial issuerSerial) { if (certHash == null) throw new ArgumentNullException("certHash"); m_certHash = certHash; m_issuerSerial = issuerSerial; } public byte[] GetCertHash() { return Arrays.Clone(m_certHash.GetOctets()); } public override Asn1Object ToAsn1Object() { if (m_issuerSerial != null) return new DerSequence(m_certHash, m_issuerSerial); return new DerSequence(m_certHash); } } }