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 .

Exemple 1843. 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 ( $fp 8192 );
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() .