openssl_seal

(PHP 4 >= 4.0.4)

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