CryptGenerateSignature

Genera la firma digital de los datos.

Formato 

CryptGenerateSignature ( datos ; algoritmo ; claveRSAprivada ; contraseñaClave )

Parámetros 

datos: cualquier expresión de texto desde la que generar una firma.

algoritmo: el nombre del algoritmo criptográfico que se utilizará (consulte la función CryptAuthCode).

privateRSAKey: texto que representa una clave RSA privada. De forma opcional, la clave puede estar cifrada.

contraseñaClave: la contraseña con la que decodificar claveRSAprivada. Si la claveRSAprivada no está cifrada, se ignora este parámetro.

Tipo de datos devuelto 

contenedor

Se origina en 

18.0

Descripción 

Para generar una firma, esta función calcula, en primer lugar, el resumen del mensaje del parámetro de datos utilizando el algoritmo especificado. A continuación, el resumen se codifica con el parámetro claveRSAprivada. Si la clave privada está cifrada de por sí, deberá proporcionar la contraseña como el último parámetro, contraseñaClave.

Una clave RSA privada sin codificar debe estar en este formato:

Copiar
-----EMPEZAR CLAVE RSA PRIVADA-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----FINALIZAR CLAVE RSA PRIVADA-----

Una clave RSA privada debe estar en este formato:

Copiar
-----EMPEZAR CLAVE RSA PRIVADA-----
Proc-Type: 4,CODIFICADA
DEK-Info: DES-EDE3-CBC,B2EFE673714F681D

gMvo1cn1+Sjch4cPXT/Mty0pILnsbM5SsBPadRJJQtrGrM8LkkrRNdxYRBeIGUMj
...
lHGJJBHogUW4Ig3/kd4ROVHusRYLtyyfz13A96tIl6Y7lu2L7alNWQ==
-----FINALIZAR CLAVE RSA PRIVADA-----

Para generar un par de claves RSA, puede usar el conjunto de herramientas OpenSSL. Consulte www.openssl.org.

Esta función devuelve una firma binaria de datos como datos del contenedor, o devuelve "?" si algún parámetro no es válido. Puede convertir los datos del contenedor a texto mediante la función Base64EncodeRFC o la función HexEncode.

Ejemplo 1 

Utiliza el algoritmo SHA-512 con una clave privada codificada para firmar los datos del campo de texto Table::TextToSign. La firma se devuelve como texto codificado en Base64.

Copiar
Base64EncodeRFC ( 4648 ; 
    CryptGenerateSignature ( 
        Table::TextToSign ; "SHA512" ; Table::PrivateRSAKey ; $Password 
    )
)