openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_sealScelle des données

Description

openssl_seal ( string $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.

Liste de paramètres

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.

Valeurs de retour

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.

Historique

Version Description
7.0.0 iv a été ajouté.
5.3.0 method a été ajouté.

Exemples

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($fp8192);
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($fp8192);
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