openssl_open

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

openssl_openOuvre des données scellées

Description

openssl_open(
    string$data,
    string&$output,
    string$encrypted_key,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string$private_key,
    string$cipher_algo,
    ?string$iv = null
): bool

openssl_open() ouvre (déchiffre) les données data en utilisant la clé privée private_key et la clé d'enveloppe encrypted_key et remplit output avec les données déchiffrées. La clé d'enveloppe est générée lorsque les données sont scellées, et ne peut être utilisée qu'avec la clé privée spécifique. Reportez-vous à openssl_seal() pour plus d'informations.

Liste de paramètres

data

output

Si l'appel a réussi, les données ouvertes sont retournées dans ce paramètre.

encrypted_key

private_key

cipher_algo

La méthode de chiffrement.

Attention

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.

iv

Vecteur d'initialisation.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

VersionDescription
8.0.0private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 CSR était acceptée.
8.0.0cipher_algo n'est désormais plus un paramètre optionnel.

Exemples

Exemple #1 Exemple avec openssl_open()

<?php
// On suppose que $sealed et $env_key contiennent les données scellées
// et la clé d'enveloppe, fournies par l'expéditeur
// lecture de la clé privée dans un fichier
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// déchiffrage des données : elles sont placées dans $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
echo
"Voici les données déchiffrées : ", $open;
} else {
echo
"Impossible de déchiffrer les données";
}

// libération des ressources
openssl_free_key($pkeyid);
?>

Voir aussi

To Top