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

ResponderID

using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class ResponderID : Asn1Encodable, IAsn1Choice { private readonly Asn1Encodable m_id; public virtual X509Name Name { get { if (m_id is Asn1OctetString) return null; return X509Name.GetInstance(m_id); } } public static ResponderID GetInstance(object obj) { return Asn1Utilities.GetInstanceChoice(obj, GetOptional); } public static ResponderID GetInstance(Asn1TaggedObject obj, bool isExplicit) { return Asn1Utilities.GetInstanceChoice(obj, isExplicit, GetInstance); } public static ResponderID GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); ResponderID responderID = element as ResponderID; if (responderID != null) return responderID; Asn1TaggedObject optional = Asn1TaggedObject.GetOptional(element); if (optional != null) { if (optional.HasContextTag(1)) return new ResponderID(X509Name.GetTagged(optional, true)); if (optional.HasContextTag(2)) return new ResponderID(Asn1OctetString.GetTagged(optional, true)); } Asn1OctetString asn1OctetString = element as Asn1OctetString; if (asn1OctetString != null) return new ResponderID(asn1OctetString); X509Name optional2 = X509Name.GetOptional(element); if (optional2 != null) return new ResponderID(optional2); return null; } public static ResponderID GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetTaggedChoice(taggedObject, declaredExplicit, GetInstance); } public ResponderID(Asn1OctetString id) { if (id == null) throw new ArgumentNullException("id"); m_id = id; } public ResponderID(X509Name id) { if (id == null) throw new ArgumentNullException("id"); m_id = id; } public virtual byte[] GetKeyHash() { return (m_id as Asn1OctetString)?.GetOctets(); } public override Asn1Object ToAsn1Object() { Asn1OctetString asn1OctetString = m_id as Asn1OctetString; if (asn1OctetString != null) return new DerTaggedObject(true, 2, asn1OctetString); return new DerTaggedObject(true, 1, m_id); } } }