Forum und email

openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify — Vérifie une signature

Description

int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, int $signature_alg ] )

openssl_verify() retourne 1 si la signature est correcte, 0 si elle est incorrecte et -1 en cas d'erreur.

openssl_verify() vérifie que la signature signature est correcte pour les données data , et avec la clé publique pub_key_id . Cette clé doit être la clé publique correspondant à la clé privée utilisée lors de la signature.

Note: Le paramètre optionnel signature_alg a été ajouté en PHP 5.0.0. Il vaut par défaut OPENSSL_ALGO_SHA1. Pour plus d'informations, reportez-vous à la liste des algorithmes de signature.

Example#1 Exemple avec openssl_verify()

<?php
// On suppose que $data et $signature contiennent les données à signer et
// la signature
// lecture de la clé publique depuis le certificat
$fp fopen("/src/openssl-0.9.6/demos/sign/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pubkeyid openssl_get_publickey($cert);

// indique si la signature est correcte
$ok openssl_verify($data$signature$pubkeyid);
if (
$ok == 1) {
    echo 
'Signature valide';
} elseif (
$ok == 0) {
    echo 
'Signature erronée';
} else {
    echo 
'Erreur de vérification de la signature';
}
// libère les clés de la mémoire
openssl_free_key($pubkeyid);
?>

Voir aussi openssl_sign().