mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
c1669f41ea
-Public CMS methods that create a CMS_ContentInfo object now have variants that also add a libctx and propq. This includes CMS_ContentInfo_new_with_libctx(), CMS_sign_with_libctx(), CMS_data_create_with_libctx(), CMS_digest_create_with_libctx(), CMS_EncryptedData_encrypt_with_libctx(), CMS_EnvelopedData_create_with_libctx(). -Added CMS_ReceiptRequest_create0_with_libctx(). -Added SMIME_read_CMS_ex() so that a new CMS_ContentInfo object (created using CMS_ContentInfo_new_with_libctx()) can be passed to the read. -d2i_CMS_bio() has been modified so that after it loads the CMS_ContentInfo() it then resolves any subobjects that require the libctx/propq (such as objects containing X509 certificates). Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884)
67 lines
2.2 KiB
Plaintext
67 lines
2.2 KiB
Plaintext
=pod
|
|
|
|
=head1 NAME
|
|
|
|
CMS_EnvelopedData_create_with_libctx, CMS_EnvelopedData_create
|
|
- Create CMS envelope
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
#include <openssl/cms.h>
|
|
|
|
CMS_ContentInfo *CMS_EnvelopedData_create_with_libctx(const EVP_CIPHER *cipher,
|
|
OPENSSL_CTX *libctx,
|
|
const char *propq);
|
|
CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher);
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
CMS_EnvelopedData_create_with_libctx() creates a B<CMS_ContentInfo> structure with
|
|
a type B<NID_pkcs7_enveloped>. I<cipher> is the symmetric cipher to use. The
|
|
library context I<libctx> and the property query I<propq> are used when
|
|
retrieving algorithms from providers.
|
|
|
|
The algorithm passed in the I<cipher> parameter must support ASN1 encoding of
|
|
its parameters.
|
|
|
|
The recipients can be added later using L<CMS_add1_recipient_cert(3)> or
|
|
L<CMS_add0_recipient_key(3)>.
|
|
|
|
The B<CMS_ContentInfo> structure needs to be finalized using L<CMS_final(3)>
|
|
and then freed using L<CMS_ContentInfo_free(3)>.
|
|
|
|
CMS_EnvelopedData_create() is similar to CMS_EnvelopedData_create_with_libctx()
|
|
but uses default values of NULL for the library context I<libctx> and the
|
|
property query I<propq>.
|
|
|
|
=head1 NOTES
|
|
|
|
Although CMS_EnvelopedData_create() allocates a new B<CMS_ContentInfo>
|
|
structure it is usually not used in applications. The wrappers
|
|
L<CMS_encrypt(3)> and L<CMS_decrypt(3)> are often used instead.
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
If the allocation fails, CMS_EnvelopedData_create() returns NULL and sets
|
|
an error code that can be obtained by L<ERR_get_error(3)>.
|
|
Otherwise it returns a pointer to the newly allocated structure.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<ERR_get_error(3)>, L<CMS_encrypt(3)>, L<CMS_decrypt(3)>, L<CMS_final(3)>
|
|
|
|
head1 HISTORY
|
|
|
|
The CMS_EnvelopedData_create_with_libctx() method was added in OpenSSL 3.0.
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright 2020 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
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
=cut
|