CryptVerifySignature
Comprueba si una firma digital es válida para los datos.
Formato
CryptVerifySignature ( datos ; algoritmo ; claveRSAprivada ; firma )
Parámetros
datos
: cualquier expresión de texto que represente los datos para verificar la firma
.
algoritmo
: el nombre del algoritmo criptográfico que se utilizará (consulte la función CryptAuthCode).
publicRSAKey
: texto que representa la clave pública RSA PKCS #1 en formato PEM correspondiente a la clave privada utilizada para generar la firma
.
firma
: la firma binaria RSA para verificar los datos
, como el valor devuelto por .la función CryptGenerateSignature.
Tipo de datos devuelto
número
Se origina en
18.0
Descripción
Para verificar una firma, esta función compara el resumen del mensaje de los datos
(usando el algoritmo especificado) con el resumen obtenido al descifrar la firma
utilizando la claveRSApública
.
Una clave RSA pública debe estar en este formato:
-----EMPEZAR CLAVE PÚBLICA-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----FINALIZAR CLAVE PÚBLICA-----
Si la firma es válida para los datos, esta función devuelve 1 (true). Si la firma no es válida, devuelve 0 (false). Si alguno de los parámetros no es válido, devuelve "?".
Ejemplo 1
Utiliza el algoritmo SHA-512 para generar el resumen de Table::SignedText. Base64 decodifica la firma almacenada en el campo de texto Table::Signature y la devuelve como datos de contenedor. Descifra la firma usando el valor del campo Table::PublicRSAKey y compara el resumen de la firma con el resumen basado en el campo Table::SignedText. Si la firma es válida, devuelve 1.
CryptVerifySignature (
Table::SignedText ; "SHA512" ; Table::PublicRSAKey ;
Base64Decode (
Table::Signature ; "sig.data"
)
)