CMS_SIGN_RECEIPT(3)

NAME
CMS_sign_receipt - create a CMS signed receipt

SYNOPSIS
#include <openssl/cms.h>
CMS_ContentInfo *
CMS_sign_receipt(CMS_SignerInfo *si, X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, unsigned int flags);

DESCRIPTION
CMS_sign_receipt() creates a new CMS SignedData structure containing a signed Receipt as its embedded content. si is the SignerInfo structure containing the signed receipt request. signcert is the certificate to sign with, pkey is the corresponding private key. certs is an optional additional set of certificates to include in the CMS structure (for example any intermediate CAs in the chain).

This functions behaves in a similar way to CMS_sign(3) except that the flags values CMS_DETACHED, CMS_BINARY, CMS_NOATTR, CMS_TEXT, and CMS_STREAM are not supported since they do not make sense in the context of signed receipts.

RETURN VALUES
CMS_sign_receipt() returns either a valid CMS_ContentInfo structure or NULL if an error occurred. The error can be obtained from ERR_get_error(3).

SEE ALSO
CMS_ContentInfo_new(3), CMS_get1_ReceiptRequest(3), CMS_sign(3), CMS_verify_receipt(3)

STANDARDS
RFC 2634: Enhanced Security Services for S/MIME, section 2.8: Receipt Syntax

HISTORY
CMS_sign_receipt() first appeared in OpenSSL 0.9.8h and has been available since OpenBSD 6.7.