openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_sign��һ�� S/MIME ��Ϣ����ǩ��

˵��

openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]] ) : bool

openssl_pkcs7_sign()��ȡ��Ϊinfilename���ļ����ݣ���ʹ����signcert��privkeyָ����֤�����֮ƥ���˽Կ������м���

����

infilename

�����������������ǩ���������ļ���

outfilename

��д������ǩ�����ļ���

signcert

�����������ļ���������ǩ���� X.509 ֤�飬�μ� ��Կ/֤�������ȡ�����б�

privkey

privkey�Ƕ�Ӧsigncert֤���˽Կ�� �μ� ��/˽Կ������ȡ�����б�

headers

headers��һ������ͷ��Ϣ�����飬������ǩ����������Ԥ�ȶ����ݽ���Ԥ���� (�μ� openssl_pkcs7_encrypt() ��ȡ���ڸò�����ʽ�ĸ�����Ϣ)��

flags

flags ���������ı���� - �μ� PKCS7������

extracerts

extracerts ָ��һ���ļ������ƣ����а���һ�麬��ǩ���Ķ����֤�飬��Щ֤���������������������֤��ʹ�õ�֤�顣

����ֵ

�ɹ�ʱ���� TRUE�� ������ʧ��ʱ���� FALSE��

����

Example #1 openssl_pkcs7_sign() ����

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp fopen("msg.txt""w");
fwrite($fp$data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt""signed.txt""file://mycert.pem",
    array(
"file://mycert.pem""mypassphrase"),
    array(
"To" => "joes@example.com"// keyed syntax
          
"From: HQ <ceo@example.com>"// indexed syntax
          
"Subject" => "Eyes only")
    )) {
    
// message signed - send it!
    
exec(ini_get("sendmail_path") . " < signed.txt");
}
?>