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

Pkcs7ProcessableObject

using Org.BouncyCastle.Asn1; using System.IO; namespace Org.BouncyCastle.Cms { public class Pkcs7ProcessableObject : CmsProcessable { public DerObjectIdentifier ContentType { get; } public Asn1Encodable Content { get; } public Pkcs7ProcessableObject(DerObjectIdentifier contentType, Asn1Encodable content) { ContentType = contentType; Content = content; } public void Write(Stream outStream) { using (BinaryWriter binaryWriter = new BinaryWriter(outStream)) { if (Content is Asn1Sequence) { foreach (Asn1Encodable item in Asn1Sequence.GetInstance(Content)) { binaryWriter.Write(item.ToAsn1Object().GetEncoded("DER")); } } else { byte[] encoded = Content.ToAsn1Object().GetEncoded("DER"); int i; for (i = 1; (encoded[i] & 255) > 127; i++) { } i++; binaryWriter.Write(encoded, i, encoded.Length - i); } } } public object GetContent() { return Content; } } }