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

SignerIdentifier

using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Asn1.Cms { public class SignerIdentifier : Asn1Encodable, IAsn1Choice { private Asn1Encodable id; public bool IsTagged => id is Asn1TaggedObject; public Asn1Encodable ID { get { Asn1TaggedObject asn1TaggedObject = id as Asn1TaggedObject; if (asn1TaggedObject != null) return Asn1OctetString.GetInstance(asn1TaggedObject, false); return id; } } public static SignerIdentifier GetInstance(object o) { if (o == null) return null; SignerIdentifier signerIdentifier = o as SignerIdentifier; if (signerIdentifier != null) return signerIdentifier; IssuerAndSerialNumber issuerAndSerialNumber = o as IssuerAndSerialNumber; if (issuerAndSerialNumber != null) return new SignerIdentifier(issuerAndSerialNumber); Asn1OctetString asn1OctetString = o as Asn1OctetString; if (asn1OctetString != null) return new SignerIdentifier(asn1OctetString); Asn1Object asn1Object = o as Asn1Object; if (asn1Object != null) return new SignerIdentifier(asn1Object); throw new ArgumentException("Illegal object in SignerIdentifier: " + Platform.GetTypeName(o), "o"); } public static SignerIdentifier GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetInstanceFromChoice(taggedObject, declaredExplicit, GetInstance); } public SignerIdentifier(IssuerAndSerialNumber id) { this.id = id; } public SignerIdentifier(Asn1OctetString id) { this.id = new DerTaggedObject(false, 0, id); } public SignerIdentifier(Asn1Object id) { this.id = id; } public override Asn1Object ToAsn1Object() { return id.ToAsn1Object(); } } }