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

OobCertHash

public class OobCertHash : Asn1Encodable
using Org.BouncyCastle.Asn1.Crmf; using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Cmp { public class OobCertHash : Asn1Encodable { private readonly AlgorithmIdentifier m_hashAlg; private readonly CertId m_certId; private readonly DerBitString m_hashVal; public virtual CertId CertID => m_certId; public virtual AlgorithmIdentifier HashAlg => m_hashAlg; public virtual DerBitString HashVal => m_hashVal; public static OobCertHash GetInstance(object obj) { if (obj == null) return null; OobCertHash oobCertHash = obj as OobCertHash; if (oobCertHash != null) return oobCertHash; return new OobCertHash(Asn1Sequence.GetInstance(obj)); } public static OobCertHash GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new OobCertHash(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } private OobCertHash(Asn1Sequence seq) { int num = seq.Count - 1; m_hashVal = DerBitString.GetInstance(seq[num--]); int num3 = num; Asn1TaggedObject asn1TaggedObject; while (true) { if (num3 < 0) return; asn1TaggedObject = (Asn1TaggedObject)seq[num3]; if (asn1TaggedObject.HasContextTag(0)) m_hashAlg = AlgorithmIdentifier.GetInstance(asn1TaggedObject, true); else { if (!asn1TaggedObject.HasContextTag(1)) break; m_certId = CertId.GetInstance(asn1TaggedObject, true); } num3--; } throw new ArgumentException("unknown tag " + Asn1Utilities.GetTagText(asn1TaggedObject)); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptionalTagged(true, 0, m_hashAlg); asn1EncodableVector.AddOptionalTagged(true, 1, m_certId); asn1EncodableVector.Add(m_hashVal); return new DerSequence(asn1EncodableVector); } } }