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

RecipientIdentifier

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