| =pod |
| |
| =head1 NAME |
| |
| CMS_add0_cert, CMS_add1_cert, CMS_get1_certs, CMS_add0_crl, CMS_add1_crl, CMS_get1_crls |
| - CMS certificate and CRL utility functions |
| |
| =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); |
| int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); |
| STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); |
| |
| =head1 DESCRIPTION |
| |
| CMS_add0_cert() and CMS_add1_cert() add certificate B<cert> to B<cms>. |
| must be of type signed data or enveloped data. |
| |
| CMS_get1_certs() returns all certificates in B<cms>. |
| |
| CMS_add0_crl() and CMS_add1_crl() add CRL B<crl> to B<cms>. CMS_get1_crls() |
| returns any CRLs in B<cms>. |
| |
| =head1 NOTES |
| |
| The CMS_ContentInfo structure B<cms> must be of type signed data or enveloped |
| data or an error will be returned. |
| |
| For signed data certificates and CRLs are added to the B<certificates> and |
| B<crls> fields of SignedData structure. For enveloped data they are added to |
| B<OriginatorInfo>. |
| |
| As the B<0> implies CMS_add0_cert() adds B<cert> internally to B<cms> and it |
| must not be freed up after the call as opposed to CMS_add1_cert() where B<cert> |
| must be freed up. |
| |
| The same certificate or CRL must not be added to the same cms structure more |
| than once. |
| |
| =head1 RETURN VALUES |
| |
| CMS_add0_cert(), CMS_add1_cert() and CMS_add0_crl() and CMS_add1_crl() return |
| 1 for success and 0 for failure. |
| |
| 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 |
| in practice is if the B<cms> type is invalid. |
| |
| =head1 SEE ALSO |
| |
| L<ERR_get_error(3)>, |
| L<CMS_sign(3)>, |
| L<CMS_encrypt(3)> |
| |
| =head1 COPYRIGHT |
| |
| Copyright 2008-2016 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 |