DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

CMS_compress(3)





NAME

       CMS_compress - create a CMS CompressedData structure


SYNOPSIS

        #include <openssl/cms.h>

        CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);


DESCRIPTION

       CMS_compress() creates and returns a CMS CompressedData structure.
       comp_nid is the compression algorithm to use or NID_undef to use the
       default algorithm (zlib compression). in is the content to be com-
       pressed.  flags is an optional set of flags.


NOTES

       The only currently supported compression algorithm is zlib using the
       NID NID_zlib_compression.

       If zlib support is not compiled into OpenSSL then CMS_compress() will
       return an error.

       If the CMS_TEXT flag is set MIME headers for type text/plain are
       prepended to the data.

       Normally the supplied content is translated into MIME canonical format
       (as required by the S/MIME specifications) if CMS_BINARY is set no
       translation occurs. This option should be used if the supplied data is
       in binary format otherwise the translation will corrupt it. If
       CMS_BINARY is set then CMS_TEXT is ignored.

       If the CMS_STREAM flag is set a partial CMS_ContentInfo structure is
       returned suitable for streaming I/O: no data is read from the BIO in.

       The compressed data is included in the CMS_ContentInfo structure,
       unless CMS_DETACHED is set in which case it is omitted. This is rarely
       used in practice and is not supported by SMIME_write_CMS().


NOTES

       If the flag CMS_STREAM is set the returned CMS_ContentInfo structure is
       not complete and outputting its contents via a function that does not
       properly finalize the CMS_ContentInfo structure will give unpredictable
       results.

       Several functions including SMIME_write_CMS(), i2d_CMS_bio_stream(),
       PEM_write_bio_CMS_stream() finalize the structure. Alternatively final-
       ization can be performed by obtaining the streaming ASN1 BIO directly
       using BIO_new_CMS().

       Additional compression parameters such as the zlib compression level
       cannot currently be set.


RETURN VALUES

       CMS_compress() returns either a CMS_ContentInfo structure or NULL if an
       error occurred. The error can be obtained from ERR_get_error(3).


SEE ALSO

       ERR_get_error(3), CMS_uncompress(3)


HISTORY

       CMS_compress() was added to OpenSSL 0.9.8 The CMS_STREAM flag was first
       supported in OpenSSL 1.0.0.

1.0.2t                            2019-09-10                   CMS_compress(3)

Man(1) output converted with man2html