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();
}
}
}