create a CMS CompressedData
int comp_nid, unsigned int
creates and returns a CMS CompressedData
comp_nid is the
compression algorithm to use or
NID_undef to use the
default algorithm. Currently, the default algorithm
NID_zlib_compression is the only supported
algorithm. If zlib support is not compiled in,
always returns an error.
in provides the content to be compressed.
Any of the following flags (OR'ed together) can be passed in the flags parameter:
- Prepend MIME headers for type text/plain to the data.
- Do not translate the supplied content into MIME canonical format, even
though that is required by the S/MIME specifications. This option should
be used if the supplied data is in binary format. Otherwise, the
translation will corrupt it. If
- Return a partial CMS_ContentInfo structure suitable for streaming I/O: no data is read from in. Several functions including SMIME_write_CMS(3), i2d_CMS_bio_stream(3), or PEM_write_bio_CMS_stream(3) can be used to finalize the structure. Alternatively, finalization can be performed by obtaining the streaming ASN1 BIO directly using BIO_new_CMS(3). Outputting the contents of the CMS_ContentInfo structure via a function that does not properly finalize it will give unpredictable results.
- Do not include the compressed data in the CMS_ContentInfo structure. This is rarely used in practice and is not supported by SMIME_write_CMS(3).
Additional compression parameters such as the zlib compression level cannot currently be set.
CMS_compress() returns either a
CMS_ContentInfo structure or
NULL if an error occurred. The error can be obtained
RFC 3274: Compressed Data Content Type for Cryptographic Message Syntax (CMS)
CMS_compress() first appeared in OpenSSL
0.9.8h and has been available since OpenBSD 6.7.
CMS_STREAM flag first appeared in