openssl_seal
(PHP 4 >= 4.0.4, PHP 5)
openssl_seal -- Zapečetit (zakódovat) data
Popis
int
openssl_seal ( string data, string sealed_data, array env_keys, array pub_key_ids )
Při úspěchu vrací délku zapečetěných dat, při chybě FALSE.
Úspěšně zapečetěná data se umístí do argumentu
sealed_data, a obálka do
env_keys.
openssl_seal() zapečetí (zakóduje)
data pomocí RC4 s náhodně generovaným tajným klíčem.
Tento klíč se zakóduje všemi veřejnými klíči asociovanými s identifikátory
v pub_key_ids a zakódované klíče se vrátí v
env_keys. To znamená, že lze poslat zapečetěná data
více příjemcům (za předpokladu, že máme jejích veřejné klíče). Každý z
příjemců musí obdržet zapečetěná data a obálku, která byla zakódována
jeho veřejným klíčem.
Příklad 1. Ukázka openssl_seal()
// $data obsahuje data určená k zapečetění
// získat veřejné klíče našich příjemců a připravit je $fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r"); $cert = fread($fp, 8192); fclose($fp); $pk1 = openssl_get_publickey($cert); // opakovat prodruhého příjemce $fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r"); $cert = fread($fp, 8192); fclose($fp); $pk2 = openssl_get_publickey($cert);
// zapečetit zprávu, pouze majitelé $pk1 a $pk2 mohou dekódovat $sealed pomocí // $ekeys[0] a $ekeys[1]. openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));
// uvolnit klíče z paměti openssl_free_key($pk1); openssl_free_key($pk2);
|
|
Viz také openssl_open().