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:

Copiar
-----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.

Copiar
CryptVerifySignature ( 
    Table::SignedText ; "SHA512" ; Table::PublicRSAKey ;     
    Base64Decode (         
        Table::Signature ; "sig.data"     
    ) 
)