# openssl_cms_sign

(PHP 8)

openssl_cms_sign — Sign a file

### 说明

openssl_cms_sign(
string `$input_filename`,
string `$output_filename`,
OpenSSLCertificate|string `$certificate`,
#[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string `$private_key`,
?array `$headers`,
int `$flags` = 0,
int `$encoding` = `OPENSSL_ENCODING_SMIME`,
?string `$untrusted_certificates_filename` = `null`
): bool

This function signs a file with an X.509 certificate and key.

### 参数

`input_filename`

  The name of the file to be signed.

`output_filename`

  The name of the file to deposit the results.

`certificate`

  The signing certificate. See Key/Certificate parameters for a list of valid values.

`private_key`

  The key associated with `certificate`. See Key/Certificate parameters for a list of valid values.

`headers`

  An array of headers to be included in S/MIME output.

`flags`

  Flags to be passed to cms_sign().

`encoding`

  The encoding of the output file. One of `OPENSSL_ENCODING_SMIME`, `OPENSSL_ENCODING_DER` or `OPENSSL_ENCODING_PEM`.

`untrusted_certificates_filename`

  Intermediate certificates to be included in the signature.

### 返回值

成功时返回 `true`， 或者在失败时返回 `false`。

### 示例

示例 #1 openssl_cms_sign() example

`<?php
openssl_cms_sign('input.txt', 'output.txt', 'file://cert.pem', 'file://privkey.pem', null, OPENSSL_CMS_BINARY, OPENSSL_ENCODING_DER, 'chain.pem');
?>`
`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open