CMS_UNCOMPRESS(3)

NAME
CMS_uncompress - uncompress a CMS CompressedData structure

SYNOPSIS
#include <openssl/cms.h>
int
CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags);

DESCRIPTION
CMS_uncompress() extracts and uncompresses the content of a CMS CompressedData structure cms and writes it to out.

In the rare case where the compressed content is detached, pass it in via dcont. For normal use, set dcont to NULL.

The only currently supported compression algorithm is zlib: if the structure indicates the use of any other algorithm, an error is returned. If zlib support is not compiled in, CMS_uncompress() always returns an error.

If the CMS_TEXT bit is set in flags, MIME headers for type text/plain are deleted from the content. If the content is not of type text/plain, an error is returned.

RETURN VALUES
CMS_uncompress() returns 1 for success or 0 for failure. The error can be obtained from ERR_get_error(3).

SEE ALSO
CMS_compress(3), CMS_ContentInfo_new(3)

STANDARDS
RFC 3274: Compressed Data Content Type for Cryptographic Message Syntax (CMS)

HISTORY
CMS_uncompress() first appeared in OpenSSL 0.9.8h and has been available since OpenBSD 6.7.

BUGS
The lack of single pass processing and the need to hold all data in memory as mentioned in CMS_verify(3) also applies to CMS_uncompress().