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:
-----EMPEZAR CLAVE RSA PRIVADA-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----FINALIZAR CLAVE RSA PRIVADA-----
Una clave RSA privada debe estar en este formato:
-----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.
Base64EncodeRFC ( 4648 ;
CryptGenerateSignature (
Table::TextToSign ; "SHA512" ; Table::PrivateRSAKey ; $Password
)
)