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

# openssl_seal

(PHP 4 >= 4.0.4)

openssl_seal -- データをシール(暗号化)する

## 説明

int openssl_seal ( string data, string sealed_data, array env_keys, array pub_key_ids)

警告
この関数は、 実験的なステータスにあります。これは、この関数の 動作、関数名、ここで書かれていること全てがPHPの将来のバージョンで予告 なく変更される可能性があることを意味します。注意を喚起するとともに自分 のリスクでこの関数を使用して下さい。

成功時にシール(暗号化)されたデータの長さ、エラー時に`FALSE`を返しま す。成功時には、暗号化されたデータが `sealed_data`に、エンベロープキーが `env_keys` に返されます。

openssl_seal() は、ランダムに生成された秘密キー により RC4 を使用して `data`をシール(暗号化) します。このキーは、`pub_key_ids` をIDとする 各公開キーで暗号化されます。これは、暗号化されたデータを複数の受 信者に送信できることを意味します。(この際、各受信者は送信側に公開 キーを提供します。)各受信者は、暗号化されたデータとその受信者の公 開キーで暗号化されたエンベロープキーを受け取る必要があります。

例 1openssl_seal() の例

    // $data には、暗号化されるデータが含まれていると仮定

    // 受信者の公開キーを取得し、使用可能にする
    $fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
    $cert = fread($fp, 8192);
    fclose($fp);
    $pk1 = openssl_get_publickey($cert);

    // 2番目の受信者についても同様
    $fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
    $cert = fread($fp, 8192);
    fclose($fp);
    $pk2 = openssl_get_publickey($cert);

    // メッセージを暗号化。$pk1 および $pk2 の所有者のみが、暗号化された
    // データをそれぞれエンベロープキー$ekeys[0]および$ekeys[1]で復号化す
    // ることが可能
    openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));

    // キーをメモリから開放する
    openssl_free_key($pk1);
    openssl_free_key($pk2);

openssl_open() も参照下さい。

前のページ | ホーム | 次のページ
openssl_public_encrypt | 上に戻る | openssl_sign