libressl-CMS_sign_receipt(3)

libressl-CMS_sign_receipt3

Create a cms signed receipt

Usage

Crypto Library (libcrypto, -lcrypto)

#include <openssl/cms.h>

CMS_ContentInfo *

CMS_sign_receipt(CMS_SignerInfo *si, X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, unsigned int flags);

Overview

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 function 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).

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.

From libressl 4.4.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.