(PHP 4 >= 4.0.4)
openssl_seal -- Scelle des données
Description
int openssl_seal (string data, string sealed_data, array env_keys, array pub_key_ids)
openssl_seal() retourne la longueur des données
scellées en cas de succès, et FALSE sinon. En cas de succès, les données
scellées sont placées dans le paramètre sealed_data,
et les clés d'enveloppe dans env_keys.
openssl_seal() scelle (chiffre) les données
data en utilisant l'algorithme RC4 avec une clé
secrètre générée aléatoirement. La clé
est chiffrée avec chaque clé publique associée à
pub_key_ids et chaque clé ainsi
encryptée est retournée dans env_keys.
Cela signifique que vous pouvez envoyez des données scellées
à plusieurs destinataires (en supposant que chacun ait recu la
clé publique). Chaque destinataire doit recevoir les données
encryptées et la clé d'enveloppe, qui a été
encryptée avec la clé publique du destinataire.
Exemple 1. Exemple avec openssl_seal()
<?php
// On suppose que $data contient les données à sceller
// lecture de la clé publique pour chaque destinataire
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// pour le deuxième destinataire
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);
// scelle le message : seuls, les possessuers de $pk1 et $pk2 peuvent déchiffrer
// le message $sealed avec les clés $ekeys[0] et $ekeys[1] (respectivement).
openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));
// libère les clés de la mémoire
openssl_free_key($pk1);
openssl_free_key($pk2);
?>
|
|
Voir aussi openssl_open().