---
name: "libressl-CMS_verify_receipt"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-CMS_verify_receipt"
---

# libressl-CMS\_verify\_receipt(3)

verify a CMS signed receipt

## NAME

**CMS\_verify\_receipt** – verify a CMS signed receipt

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#include \<openssl/cms.h\>**

*int*\

**CMS\_verify\_receipt**(*CMS\_ContentInfo \*rcms*, *CMS\_ContentInfo \*ocms*, *STACK\_OF(X509) \*certs*, *X509\_STORE \*store*, *unsigned int flags*);

## DESCRIPTION

**CMS\_verify\_receipt**() verifies a CMS signed receipt. *rcms* is the signed receipt to verify. *ocms* is the original *SignedData* structure containing the receipt request. *certs* is a set of certificates in which to search for the signing certificate. *store* is a trusted certificate store (used for chain verification).

This function behaves in a similar way to CMS\_verify(3) except that the *flags* values CMS\_DETACHED, CMS\_BINARY, CMS\_TEXT, and CMS\_STREAM are not supported since they do not make sense in the context of signed receipts.

## RETURN VALUES

**CMS\_verify\_receipt**() returns 1 for a successful verification or 0 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\_receipt(3), CMS\_verify(3)

## STANDARDS

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

## HISTORY

**CMS\_verify\_receipt**() first appeared in OpenSSL 0.9.8h and has been available since OpenBSD 6.7.
