<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

EncryptedData

public class EncryptedData : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Pkcs { public class EncryptedData : Asn1Encodable { private readonly Asn1Sequence m_data; public DerObjectIdentifier ContentType => DerObjectIdentifier.GetInstance(m_data[0]); public AlgorithmIdentifier EncryptionAlgorithm => AlgorithmIdentifier.GetInstance(m_data[1]); public Asn1OctetString Content { get { if (m_data.Count != 3) return null; return Asn1OctetString.GetTagged(Asn1TaggedObject.GetInstance(m_data[2], 128, 0), false); } } public static EncryptedData GetInstance(object obj) { if (obj == null) return null; EncryptedData encryptedData = obj as EncryptedData; if (encryptedData != null) return encryptedData; return new EncryptedData(Asn1Sequence.GetInstance(obj)); } public static EncryptedData GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EncryptedData(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static EncryptedData GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EncryptedData(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private EncryptedData(Asn1Sequence seq) { int count = seq.Count; if (count != 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); if (!DerInteger.GetInstance(seq[0]).HasValue(0)) throw new ArgumentException("sequence not version 0"); m_data = Asn1Sequence.GetInstance(seq[1]); } public EncryptedData(DerObjectIdentifier contentType, AlgorithmIdentifier encryptionAlgorithm, Asn1Encodable content) { m_data = new BerSequence(contentType, encryptionAlgorithm, new BerTaggedObject(false, 0, content)); } public override Asn1Object ToAsn1Object() { return new BerSequence(DerInteger.Zero, m_data); } } }