Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Asn1/Cms/RecipientIdentifier.cs
2025-10-09 09:57:24 +09:00

65 lines
1.3 KiB
C#

using System;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.Cms;
public class RecipientIdentifier : Asn1Encodable, IAsn1Choice
{
private Asn1Encodable id;
public bool IsTagged => id is Asn1TaggedObject;
public Asn1Encodable ID
{
get
{
if (id is Asn1TaggedObject)
{
return Asn1OctetString.GetInstance((Asn1TaggedObject)id, isExplicit: false);
}
return IssuerAndSerialNumber.GetInstance(id);
}
}
public RecipientIdentifier(IssuerAndSerialNumber id)
{
this.id = id;
}
public RecipientIdentifier(Asn1OctetString id)
{
this.id = new DerTaggedObject(explicitly: false, 0, id);
}
public RecipientIdentifier(Asn1Object id)
{
this.id = id;
}
public static RecipientIdentifier GetInstance(object o)
{
if (o == null || o is RecipientIdentifier)
{
return (RecipientIdentifier)o;
}
if (o is IssuerAndSerialNumber)
{
return new RecipientIdentifier((IssuerAndSerialNumber)o);
}
if (o is Asn1OctetString)
{
return new RecipientIdentifier((Asn1OctetString)o);
}
if (o is Asn1Object)
{
return new RecipientIdentifier((Asn1Object)o);
}
throw new ArgumentException("Illegal object in RecipientIdentifier: " + Platform.GetTypeName(o));
}
public override Asn1Object ToAsn1Object()
{
return id.ToAsn1Object();
}
}