CMS_UNCOMPRESS(3) | Library Functions Manual | CMS_UNCOMPRESS(3)

# NAME

`CMS_uncompress` — uncompress a CMS CompressedData structure

# SYNOPSIS

library “libcrypto”
`#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`().

June 8, 2025 | Debian