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

CmsEnvelopedData

public class CmsEnvelopedData
using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.Cms; using Org.BouncyCastle.Asn1.X509; using System; using System.IO; namespace Org.BouncyCastle.Cms { public class CmsEnvelopedData { private readonly ContentInfo m_contentInfo; private readonly EnvelopedData m_envelopedData; private readonly RecipientInformationStore m_recipientInfoStore; public AlgorithmIdentifier EncryptionAlgorithmID => EnvelopedData.EncryptedContentInfo.ContentEncryptionAlgorithm; public string EncryptionAlgOid => EncryptionAlgorithmID.Algorithm.GetID(); public ContentInfo ContentInfo => m_contentInfo; public EnvelopedData EnvelopedData => m_envelopedData; public CmsEnvelopedData(byte[] envelopedData) : this(CmsUtilities.ReadContentInfo(envelopedData)) { } public CmsEnvelopedData(Stream envelopedData) : this(CmsUtilities.ReadContentInfo(envelopedData)) { } public CmsEnvelopedData(ContentInfo contentInfo) { if (contentInfo == null) throw new ArgumentNullException("contentInfo"); m_contentInfo = contentInfo; m_envelopedData = EnvelopedData.GetInstance(contentInfo.Content); Asn1Set recipientInfos = m_envelopedData.RecipientInfos; EncryptedContentInfo encryptedContentInfo = m_envelopedData.EncryptedContentInfo; CmsSecureReadable secureReadable = new CmsEnvelopedHelper.CmsEnvelopedSecureReadable(readable: new CmsProcessableByteArray(encryptedContentInfo.EncryptedContent.GetOctets()), algorithm: encryptedContentInfo.ContentEncryptionAlgorithm); m_recipientInfoStore = CmsEnvelopedHelper.BuildRecipientInformationStore(recipientInfos, secureReadable); } public RecipientInformationStore GetRecipientInfos() { return m_recipientInfoStore; } public Org.BouncyCastle.Asn1.Cms.AttributeTable GetUnprotectedAttributes() { Asn1Set unprotectedAttrs = EnvelopedData.UnprotectedAttrs; if (unprotectedAttrs == null) return null; return unprotectedAttrs.ToAttributeTable(); } public byte[] GetEncoded() { return m_contentInfo.GetEncoded(); } } }