EncryptedKey
using Org.BouncyCastle.Asn1.Cms;
namespace Org.BouncyCastle.Asn1.Crmf
{
public class EncryptedKey : Asn1Encodable, IAsn1Choice
{
private readonly EnvelopedData m_envelopedData;
private readonly EncryptedValue m_encryptedValue;
public virtual bool IsEncryptedValue => m_encryptedValue != null;
public virtual Asn1Encodable Value {
get {
if (m_encryptedValue != null)
return m_encryptedValue;
return m_envelopedData;
}
}
public static EncryptedKey GetInstance(object obj)
{
EncryptedKey encryptedKey = obj as EncryptedKey;
if (encryptedKey != null)
return encryptedKey;
Asn1TaggedObject asn1TaggedObject = obj as Asn1TaggedObject;
if (asn1TaggedObject != null)
return new EncryptedKey(EnvelopedData.GetInstance(asn1TaggedObject, false));
return new EncryptedKey(EncryptedValue.GetInstance(obj));
}
public EncryptedKey(EnvelopedData envelopedData)
{
m_envelopedData = envelopedData;
}
public EncryptedKey(EncryptedValue encryptedValue)
{
m_encryptedValue = encryptedValue;
}
public override Asn1Object ToAsn1Object()
{
if (m_encryptedValue != null)
return m_encryptedValue.ToAsn1Object();
return new DerTaggedObject(false, 0, m_envelopedData);
}
}
}