PHP マニュアル
前のページ |  | 次のページ

# openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign -- S/MIME メッセージにサインする

## 説明

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

openssl_pkcs7_sign() は、 `infilename` という名前のファイルの内容について パラメータ `signcert` および `privkey` で指定した証明書と公開鍵を用いて サインをします。

`headers` は、ヘッダの配列です。このヘッダは、 サインされた後でデータの前に付加されます（このパラメータの形式の 詳細については openssl_pkcs7_encrypt() を参照 ください）。

`flags` を出力を変更するために使用することが 可能です。PKCS7 定数 を参照ください。これが指定されない場合、デフォルトの PKCS7_DETACHED になります。

`extracerts` には、サインに含めるための他の 一連の証明書を記述したファイル名を指定します。これは、例えば 送信者が使用した証明書を受信者が検証しやすくするために使用すること が可能です。

例 1. openssl_pkcs7_sign() の例

`<?php
// 受信者が送信者を確認できるようにサインしたいメッセージ
$data = <<<EOD
You have my authorization to spend $10,000 on dinner expenses.
The CEO
EOD;
// ファイルにメッセージを保存
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// 暗号化
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
array("file://mycert.pem", "mypassphrase"),
array("To" => "joes@example.com", // keyed syntax
"From: HQ <ceo@example.com>", // indexed syntax
"Subject" => "Eyes only")
)) {
// メッセージはサインされました。送信しましょう!
exec(ini_get("sendmail_path") . " < signed.txt");
}
?>`

前のページ | ホーム | 次のページ
openssl_pkcs7_encrypt | 上に戻る | openssl_pkcs7_verify