(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
openssl_seal — Scelle des données
$data,&$sealed_data,&$encrypted_keys,$public_key,$cipher_algo,&$iv = null
   openssl_seal() scelle (chiffre) les données
   data en utilisant la cipher_algo
   fournit avec une clé secrète générée aléatoirement. La clé
   est chiffrée avec chaque clé publique associée à
   public_key et chaque clé ainsi
   chiffrée est retournée dans encrypted_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.
  
dataLes données à sceller
sealed_dataLes données scellées.
encrypted_keysTableau des clés chiffrées.
public_keyTableau d'instances OpenSSLAsymmetricKey contenant les clés publiques.
cipher_algoLa méthode de chiffrement.
         La valeur par défaut ('RC4') est considéré non-sécurisé.
         Il est vivement recommandé de spécifier explicitement une méthode de
         chiffrement sûr.
        
ivLe 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 encrypted_keys.
  
| Version | Description | 
|---|---|
| 8.0.0 | public_keyaccepte désormais un tableau
       d'instance de OpenSSLAsymmetricKey ;
       auparavant, un tableau de ressources de typeOpenSSL keyétait acceptée. | 
| 8.0.0 | cipher_algon'est désormais plus un paramètre optionnel. | 
| 8.0.0 | ivest désormais nullable. | 
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);
?>