Manuel PHP
Précédent |  | Suivant

# openssl_seal

(PHP 4 >= 4.0.4)

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ètre générée aléatoirement. La clé est chiffrée avec chaque clé publique associée à `pub_key_ids` et chaque clé ainsi encryptée est retournée dans `env_keys`. Cela signifique que vous pouvez envoyez des données scellées à plusieurs destinataires (en supposant que chacun ait recu la clé publique). Chaque destinataire doit recevoir les données encryptées et la clé d'enveloppe, qui a été encryptée avec la clé publique du destinataire.

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 possessuers 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().

Précédent | Sommaire | Suivant
openssl_public_encrypt | Niveau supérieur | openssl_sign