CMS_data_create.3ossl - Man Page

Create CMS Data object


 #include <openssl/cms.h>

 CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags,
                                     OSSL_LIB_CTX *libctx, const char *propq);
 CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags);


CMS_data_create_ex() creates a CMS_ContentInfo structure with a type NID_pkcs7_data. The data is supplied via the in BIO. The library context libctx and the property query propq are used when retrieving algorithms from providers. The flags field supports the CMS_STREAM flag. Internally CMS_final() is called unless CMS_STREAM is specified.

The CMS_ContentInfo structure can be freed using CMS_ContentInfo_free(3).

CMS_data_create() is similar to CMS_data_create_ex() but uses default values of NULL for the library context libctx and the property query propq.

Return Values

If the allocation fails, CMS_data_create_ex() and CMS_data_create() return NULL and set an error code that can be obtained by ERR_get_error(3). Otherwise they return a pointer to the newly allocated structure.

See Also

ERR_get_error(3), CMS_final(3)


The CMS_data_create_ex() method was added in OpenSSL 3.0.

Referenced By


The man page CMS_data_create_ex.3ossl(3) is an alias of CMS_data_create.3ossl(3).

2022-09-12 3.0.5 OpenSSL