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

Org.BouncyCastle.Cms.CmsSignedDataStreamGenerator

Streaming generator for CMS SignedData (PKCS#7 signed-data) messages. Configure signers with AddSigner (and overloads), add certificates and CRLs via the base CmsSignedGenerator methods, then call Open to obtain a Stream to which the content being signed is written. Closing that stream finalizes the CMS structure.
namespace Org.BouncyCastle.Cms { public class CmsSignedDataStreamGenerator : CmsSignedGenerator { public CmsSignedDataStreamGenerator(); public CmsSignedDataStreamGenerator(SecureRandom random); public void SetBufferSize(int bufferSize); public void AddDigests(params string[] digestOids); public void AddDigests(IEnumerable<string> digestOids); public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string digestOid); public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string encryptionOid, string digestOid); public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string digestOid, Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr); public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string encryptionOid, string digestOid, Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr); public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator); public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string encryptionOid, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator); public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string digestOid); public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string encryptionOid, string digestOid); public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string digestOid, Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr); public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator); public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string encryptionOid, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator); public Stream Open(Stream outStream); public Stream Open(Stream outStream, bool encapsulate); public Stream Open(Stream outStream, bool encapsulate, Stream dataOutputStream); public Stream Open(Stream outStream, string signedContentType, bool encapsulate); public Stream Open(Stream outStream, string signedContentType, bool encapsulate, Stream dataOutputStream); public Stream Open(Stream outStream, DerObjectIdentifier contentType, bool encapsulate); public Stream Open(Stream outStream, DerObjectIdentifier contentType, bool encapsulate, Stream dataOutputStream); } }