]>
Commit | Line | Data |
---|---|---|
2b5e12f5 JZ |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
d8652be0 MC |
5 | CMS_EnvelopedData_create_ex, CMS_EnvelopedData_create, |
6 | CMS_AuthEnvelopedData_create, CMS_AuthEnvelopedData_create_ex | |
c1669f41 | 7 | - Create CMS envelope |
2b5e12f5 JZ |
8 | |
9 | =head1 SYNOPSIS | |
10 | ||
11 | #include <openssl/cms.h> | |
12 | ||
924663c3 | 13 | CMS_ContentInfo * |
b4250010 | 14 | CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, |
d8652be0 | 15 | const char *propq); |
2b5e12f5 JZ |
16 | CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); |
17 | ||
924663c3 | 18 | CMS_ContentInfo * |
b4250010 | 19 | CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, |
d8652be0 | 20 | const char *propq); |
924663c3 JZ |
21 | CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); |
22 | ||
2b5e12f5 JZ |
23 | =head1 DESCRIPTION |
24 | ||
d8652be0 | 25 | CMS_EnvelopedData_create_ex() creates a B<CMS_ContentInfo> structure |
924663c3 JZ |
26 | with a type B<NID_pkcs7_enveloped>. I<cipher> is the symmetric cipher to use. |
27 | The library context I<libctx> and the property query I<propq> are used when | |
c1669f41 | 28 | retrieving algorithms from providers. |
2b5e12f5 | 29 | |
d8652be0 | 30 | CMS_AuthEnvelopedData_create_ex() creates a B<CMS_ContentInfo> |
924663c3 JZ |
31 | structure with a type B<NID_id_smime_ct_authEnvelopedData>. B<cipher> is the |
32 | symmetric AEAD cipher to use. Currently only AES variants with GCM mode are | |
33 | supported. The library context I<libctx> and the property query I<propq> are | |
34 | used when retrieving algorithms from providers. | |
35 | ||
c1669f41 | 36 | The algorithm passed in the I<cipher> parameter must support ASN1 encoding of |
2b5e12f5 JZ |
37 | its parameters. |
38 | ||
39 | The recipients can be added later using L<CMS_add1_recipient_cert(3)> or | |
40 | L<CMS_add0_recipient_key(3)>. | |
41 | ||
42 | The B<CMS_ContentInfo> structure needs to be finalized using L<CMS_final(3)> | |
43 | and then freed using L<CMS_ContentInfo_free(3)>. | |
44 | ||
e2f6960f DDO |
45 | CMS_EnvelopedData_create() and CMS_AuthEnvelopedData_create() are similar to |
46 | CMS_EnvelopedData_create_ex() and CMS_AuthEnvelopedData_create_ex() | |
47 | but use default values of NULL for | |
924663c3 | 48 | the library context I<libctx> and the property query I<propq>. |
c1669f41 | 49 | |
2b5e12f5 JZ |
50 | =head1 NOTES |
51 | ||
e2f6960f DDO |
52 | Although CMS_EnvelopedData_create_ex(), and CMS_EnvelopedData_create(), |
53 | CMS_AuthEnvelopedData_create_ex(), and CMS_AuthEnvelopedData_create() allocate | |
924663c3 JZ |
54 | a new B<CMS_ContentInfo> structure, they are not usually used in applications. |
55 | The wrappers L<CMS_encrypt(3)> and L<CMS_decrypt(3)> are often used instead. | |
2b5e12f5 JZ |
56 | |
57 | =head1 RETURN VALUES | |
58 | ||
e2f6960f DDO |
59 | If the allocation fails, CMS_EnvelopedData_create_ex(), |
60 | CMS_EnvelopedData_create(), CMS_AuthEnvelopedData_create_ex(), and | |
924663c3 JZ |
61 | CMS_AuthEnvelopedData_create() return NULL and set an error code that can be |
62 | obtained by L<ERR_get_error(3)>. Otherwise they return a pointer to the newly | |
63 | allocated structure. | |
2b5e12f5 JZ |
64 | |
65 | =head1 SEE ALSO | |
66 | ||
67 | L<ERR_get_error(3)>, L<CMS_encrypt(3)>, L<CMS_decrypt(3)>, L<CMS_final(3)> | |
68 | ||
c8511e89 | 69 | =head1 HISTORY |
c1669f41 | 70 | |
d8652be0 | 71 | The CMS_EnvelopedData_create_ex() method was added in OpenSSL 3.0. |
c1669f41 | 72 | |
2b5e12f5 JZ |
73 | =head1 COPYRIGHT |
74 | ||
8020d79b | 75 | Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. |
2b5e12f5 JZ |
76 | |
77 | Licensed under the Apache License 2.0 (the "License"). You may not use | |
78 | this file except in compliance with the License. You can obtain a copy | |
79 | in the file LICENSE in the source distribution or at | |
80 | L<https://www.openssl.org/source/license.html>. | |
81 | ||
82 | =cut |