(PHP 4 >= 4.0.4, PHP 5, PHP 7)
openssl_seal — Scelle des données
$data
, string &$sealed_data
, array &$env_keys
, array $pub_key_ids
[, string $method
= "RC4"
[, string &$iv
]] ) : int
openssl_seal() scelle (chiffre) les données
data
en utilisant la method
fournit 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
Les données à sceller
sealed_data
Les données scellées.
env_keys
Tableau des clés chiffrées.
pub_key_ids
Tableau des identifiants de ressources des clées publiques
method
La méthode de chiffrement.
iv
Le vecteur d'initialisation.
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
.
Version | Description |
---|---|
7.0.0 |
iv a été ajouté.
|
5.3.0 |
method a été ajouté.
|
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);
?>