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

CrlValidatedID

public class CrlValidatedID : Asn1Encodable
using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Asn1.Esf { public class CrlValidatedID : Asn1Encodable { private readonly OtherHash crlHash; private readonly CrlIdentifier crlIdentifier; public OtherHash CrlHash => crlHash; public CrlIdentifier CrlIdentifier => crlIdentifier; public static CrlValidatedID GetInstance(object obj) { if (obj == null || obj is CrlValidatedID) return (CrlValidatedID)obj; if (obj is Asn1Sequence) return new CrlValidatedID((Asn1Sequence)obj); throw new ArgumentException("Unknown object in 'CrlValidatedID' factory: " + Platform.GetTypeName(obj), "obj"); } private CrlValidatedID(Asn1Sequence seq) { if (seq == null) throw new ArgumentNullException("seq"); if (seq.Count < 1 || seq.Count > 2) throw new ArgumentException("Bad sequence size: " + seq.Count.ToString(), "seq"); crlHash = OtherHash.GetInstance(seq[0].ToAsn1Object()); if (seq.Count > 1) crlIdentifier = CrlIdentifier.GetInstance(seq[1].ToAsn1Object()); } public CrlValidatedID(OtherHash crlHash) : this(crlHash, null) { } public CrlValidatedID(OtherHash crlHash, CrlIdentifier crlIdentifier) { if (crlHash == null) throw new ArgumentNullException("crlHash"); this.crlHash = crlHash; this.crlIdentifier = crlIdentifier; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(crlHash.ToAsn1Object()); if (crlIdentifier != null) asn1EncodableVector.Add(crlIdentifier.ToAsn1Object()); return new DerSequence(asn1EncodableVector); } } }