=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 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 to B. must be of type signed data or enveloped data. CMS_get1_certs() returns all certificates in B. CMS_add0_crl() and CMS_add1_crl() add CRL B to B. CMS_get1_crls() returns any CRLs in B. =head1 NOTES The CMS_ContentInfo structure B 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 and B fields of SignedData structure. For enveloped data they are added to B. As the B<0> implies CMS_add0_cert() adds B internally to B and it must not be freed up after the call as opposed to CMS_add1_cert() where B 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 type is invalid. =head1 SEE ALSO L, L, L =head1 COPYRIGHT Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (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. =cut