[#CMS_add1_signer] = CMS_add1_signer :mrdocs: Add a signer certificate and private key to a CMS SignedData ContentInfo. == Synopsis Declared in `<openssl/cms.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:CMS_SignerInfo.adoc[CMS_SignerInfo]* CMS_add1_signer( xref:CMS_ContentInfo.adoc[CMS_ContentInfo]* cms, xref:X509.adoc[X509]* signer, xref:EVP_PKEY.adoc[EVP_PKEY]* pk, xref:EVP_MD.adoc[EVP_MD] const* md, unsigned int flags); ---- == Description Unless CMS_REUSE_DIGEST is set, the ContentInfo is incomplete until finalized by streaming or CMS_final(). == Return Value The new CMS_SignerInfo on success, or NULL on error. == Parameters [cols="1,4"] |=== | Name| Description | *cms* | CMS_ContentInfo that must already be SignedData (for example from CMS_sign() with CMS_PARTIAL). | *signer* | Signer certificate. | *pk* | Private key corresponding to `signer.` | *md* | Message digest to use, or NULL to select the default digest for the key algorithm. | *flags* | CMS_* option flags controlling digest reuse, attributes, and finalization. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#