openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

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è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.

Exemple 1841. 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 );
?>

Voir aussi openssl_open() .