=pod

=head1 NAME

 CMS_sign_receipt - create a CMS signed receipt

=head1 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);

=head1 DESCRIPTION

CMS_sign_receipt() creates and returns a CMS signed receipt structure. B<si> is
the B<CMS_SignerInfo> structure containing the signed receipt request.
B<signcert> is the certificate to sign with, B<pkey> is the corresponding
private key.  B<certs> is an optional additional set of certificates to include
in the CMS structure (for example any intermediate CAs in the chain).

B<flags> is an optional set of flags.

=head1 NOTES

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

=head1 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).

=head1 SEE ALSO

L<ERR_get_error(3)|ERR_get_error(3)>,
L<CMS_verify_receipt(3)|CMS_verify_receipt(3)>,
L<CMS_sign(3)|CMS_sign(3)>

=head1 HISTORY

CMS_sign_receipt() was added to OpenSSL 0.9.8

=cut