Funciones de OpenSSL
PHP Manual

openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verifyVerificar una firma

Descripción

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

openssl_verify() verifica que la firma signature es correcta para la información data especificada usando la clave pública asociada con pub_key_id. Ésto debe ser la clave pública que se corresponde con la clave privada usada para firmar.

Parámetros

data

signature

pub_key_id

signature_alg

Para más información véase la lista de Algoritmos de Firma.

Valores devueltos

Devuelve 1 si la firma es correcta, 0 si es incorrecta, y -1 si se produjo un error.

Historial de cambios

Versión Descripción
5.2.0 Se añadió el parámetro signature_alg.

Ejemplos

Ejemplo #1 Ejemplo de openssl_verify()

<?php
// se asume que $data y $signature contienen la información y la firma

// traer la clave pública desde el certifiado y prepararla
$fp fopen("/src/openssl-0.9.6/demos/sign/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pubkeyid openssl_get_publickey($cert);

// establecer si la firma es correcta o no
$ok openssl_verify($data$signature$pubkeyid);
if (
$ok == 1) {
    echo 
"buena";
} elseif (
$ok == 0) {
    echo 
"mala";
} else {
    echo 
"alarmante, error verificando la firma";
}
// libera la clave de la memoria
openssl_free_key($pubkeyid);
?>

Ver también


Funciones de OpenSSL
PHP Manual