Forum und email
openssl_seal

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().