(PHP 4 >= 4.0.4, PHP 5)
openssl_seal — Scelle des données
$data
, string &$sealed_data
, array &$env_keys
, array $pub_key_ids
[, string $method
] )
openssl_seal() chiffre les données
data
en utilisant l'algorithme RC4
avec une clé secrète générée aléatoirement. La clé
est chiffrée avec chaque clé publique associée à
pub_key_ids
et chaque clé ainsi
chiffrée est retournée dans env_keys
.
Cela signifie que vous pouvez envoyer des données scellées
à plusieurs destinataires (en supposant que chacun ait reçu la
clé publique). Chaque destinataire doit recevoir les données
chiffrées et la clé d'enveloppe, qui a été
chiffrée avec la clé publique du destinataire.
data
sealed_data
env_keys
pub_key_ids
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
.
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 possesseurs 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);
?>