2008-04-09 06:27:10 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2022-06-27 23:04:03 +08:00
|
|
|
CMS_add0_cert, CMS_add1_cert, CMS_get1_certs,
|
|
|
|
CMS_add0_crl, CMS_add1_crl, CMS_get1_crls
|
2017-03-24 01:04:52 +08:00
|
|
|
- CMS certificate and CRL utility functions
|
2008-04-09 06:27:10 +08:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/cms.h>
|
|
|
|
|
|
|
|
int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert);
|
|
|
|
int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert);
|
|
|
|
STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms);
|
|
|
|
|
|
|
|
int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl);
|
2008-05-03 01:27:01 +08:00
|
|
|
int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl);
|
2008-04-09 06:27:10 +08:00
|
|
|
STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms);
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
2022-09-13 02:50:28 +08:00
|
|
|
CMS_add0_cert() and CMS_add1_cert() add certificate I<cert> to I<cms>
|
|
|
|
unless it is already present.
|
2023-02-24 21:03:19 +08:00
|
|
|
This is used by L<CMS_sign_ex(3)> and L<CMS_sign(3)> and may be used before
|
|
|
|
calling L<CMS_verify(3)> to help chain building in certificate validation.
|
2022-09-13 02:50:28 +08:00
|
|
|
As the 0 implies, CMS_add0_cert() adds I<cert> internally to I<cms>
|
|
|
|
and on success it must not be freed up by the caller.
|
|
|
|
In contrast, the caller of CMS_add1_cert() must free I<cert>.
|
2022-06-27 23:04:03 +08:00
|
|
|
I<cms> must be of type signed data or (authenticated) enveloped data.
|
2022-07-29 19:09:52 +08:00
|
|
|
For signed data, such a certificate can be used when signing or verifying
|
|
|
|
to fill in the signer certificate or to provide an extra CA certificate
|
|
|
|
that may be needed for chain building in certificate validation.
|
2008-04-09 06:27:10 +08:00
|
|
|
|
2022-06-27 23:04:03 +08:00
|
|
|
CMS_get1_certs() returns all certificates in I<cms>.
|
2008-04-09 06:27:10 +08:00
|
|
|
|
2022-06-27 23:04:03 +08:00
|
|
|
CMS_add0_crl() and CMS_add1_crl() add CRL I<crl> to I<cms>.
|
|
|
|
I<cms> must be of type signed data or (authenticated) enveloped data.
|
2022-09-13 02:50:28 +08:00
|
|
|
For signed data, such a CRL may be used in certificate validation
|
2023-02-24 21:03:19 +08:00
|
|
|
with L<CMS_verify(3)>.
|
2022-07-29 19:09:52 +08:00
|
|
|
It may be given both for inclusion when signing a CMS message
|
|
|
|
and when verifying a signed CMS message.
|
2022-06-27 23:04:03 +08:00
|
|
|
|
|
|
|
CMS_get1_crls() returns all CRLs in I<cms>.
|
2008-04-09 06:27:10 +08:00
|
|
|
|
|
|
|
=head1 NOTES
|
|
|
|
|
2022-06-27 23:04:03 +08:00
|
|
|
The CMS_ContentInfo structure I<cms> must be of type signed data or enveloped
|
|
|
|
data or authenticated enveloped data or an error will be returned.
|
2008-04-11 07:28:25 +08:00
|
|
|
|
2022-06-27 23:04:03 +08:00
|
|
|
For signed data, certificates and CRLs are added to the I<certificates> and
|
|
|
|
I<crls> fields of SignedData structure.
|
|
|
|
For enveloped data they are added to B<OriginatorInfo>.
|
2008-04-11 07:28:25 +08:00
|
|
|
|
2008-04-09 06:27:10 +08:00
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
2008-05-03 01:27:01 +08:00
|
|
|
CMS_add0_cert(), CMS_add1_cert() and CMS_add0_crl() and CMS_add1_crl() return
|
2016-05-20 20:11:46 +08:00
|
|
|
1 for success and 0 for failure.
|
2008-04-09 06:27:10 +08:00
|
|
|
|
|
|
|
CMS_get1_certs() and CMS_get1_crls() return the STACK of certificates or CRLs
|
|
|
|
or NULL if there are none or an error occurs. The only error which will occur
|
2022-06-27 23:04:03 +08:00
|
|
|
in practice is if the I<cms> type is invalid.
|
2008-04-09 06:27:10 +08:00
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2015-08-18 03:21:33 +08:00
|
|
|
L<ERR_get_error(3)>,
|
2022-09-13 02:50:28 +08:00
|
|
|
L<CMS_sign(3)>, L<CMS_sign_ex(3)>, L<CMS_verify(3)>,
|
2015-08-18 03:21:33 +08:00
|
|
|
L<CMS_encrypt(3)>
|
2008-04-09 06:27:10 +08:00
|
|
|
|
2022-09-13 02:50:28 +08:00
|
|
|
=head1 HISTORY
|
|
|
|
|
|
|
|
CMS_add0_cert() and CMS_add1_cert() have been changed in OpenSSL 3.2
|
|
|
|
not to throw an error if a certificate to be added is already present.
|
|
|
|
|
2016-05-18 23:44:05 +08:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
|
|
|
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
|
|
|
|
2018-12-06 21:04:44 +08:00
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
2016-05-18 23:44:05 +08:00
|
|
|
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
|