CMS_ENVELOPEDDATA_CREATE(3ossl)
π CMS_ENVELOPEDDATA_CREATE(3ossl) π
okay so bestie, this is the OpenSSL manual page for the CMS envelope creators. It's giving "build me an envelope, but make it cryptographic" β¨. Welcome to the group chat. π«Ά
πΈ NAME πΈ
CMS_EnvelopedData_create_ex, CMS_EnvelopedData_create, CMS_AuthEnvelopedData_create, CMS_AuthEnvelopedData_create_ex β create CMS envelope. π
β¨ SYNOPSIS β¨
#include <openssl/cms.h>
CMS_ContentInfo *
CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx,
const char *propq);
CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher);
CMS_ContentInfo *
CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx,
const char *propq);
CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher);
π DESCRIPTION π
CMS_EnvelopedData_create_ex()β creates aCMS_ContentInfostructure with a typeNID_pkcs7_enveloped.cipheris the symmetric cipher to use. The library contextlibctxand the property querypropqare used when retrieving algorithms from providers. πCMS_AuthEnvelopedData_create_ex()β creates aCMS_ContentInfostructure with a typeNID_id_smime_ct_authEnvelopedData.cipheris the symmetric AEAD cipher to use. Currently only AES variants with GCM mode are supported. The library contextlibctxand the property querypropqare used when retrieving algorithms from providers. π₯
The algorithm passed in the cipher parameter must support ASN1 encoding of its parameters. π§
The recipients can be added later using CMS_add1_recipient_cert(3) or CMS_add0_recipient_key(3). πΈ
The CMS_ContentInfo structure needs to be finalized using CMS_final(3) and then freed using CMS_ContentInfo_free(3). π
CMS_EnvelopedData_create() and CMS_AuthEnvelopedData_create() are similar to CMS_EnvelopedData_create_ex() and CMS_AuthEnvelopedData_create_ex() but use default values of NULL for the library context libctx and the property query propq. π
π NOTES π
Although CMS_EnvelopedData_create_ex(), CMS_EnvelopedData_create(), CMS_AuthEnvelopedData_create_ex(), and CMS_AuthEnvelopedData_create() allocate a new CMS_ContentInfo structure, they are not usually used in applications. The wrappers CMS_encrypt(3) and CMS_decrypt(3) are often used instead. π
π«Ά RETURN VALUES π«Ά
If the allocation fails, CMS_EnvelopedData_create_ex(), CMS_EnvelopedData_create(), CMS_AuthEnvelopedData_create_ex(), CMS_AuthEnvelopedData_create(), CMS_AuthEnvelopedData_create(), and CMS_AuthEnvelopedData_create_ex() 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. π«Ά
yes, bestie, the list repeats CMS_AuthEnvelopedData_create() and CMS_AuthEnvelopedData_create_ex() β that's literally what the page says π
π₯ SEE ALSO π₯
π¦ HISTORY π¦
- The
CMS_EnvelopedData_create_ex()method was added inOpenSSL 3.0. β CMS_AuthEnvelopedData_create()andCMS_AuthEnvelopedData_create_ex()were added inOpenSSL 3.5. π¦
π COPYRIGHT π
Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. π
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html. π
mwah π β this page is from OpenSSL 3.5.6, dated 2026-04-07. xoxo, your Unix bestie π«Άπ
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms