CryptGenerateSignature
Génère la signature numérique des données.
Format
CryptGenerateSignature ( données ; algorithme ; cléRSAPrivée ; motDePasseClé )
Paramètres
données
: toute expression de type texte servant à générer une signature.
algorithme
: nom de l'algorithme cryptographique à utiliser (consultez la section fonction CryptAuthCode).
cléRSAPrivée
: texte qui représente une clé RSA privée. La clé peut également être cryptée.
motDePasseClé
: le mot de passe avec lequel décrypter la cléRSAPrivée
. Si la cléRSAPrivée
n'est pas cryptée, ce paramètre est ignoré.
Résultat
Conteneur
Provient de la version
18.0
Description
Pour générer une signature, cette fonction calcule d'abord le résumé du message du paramètre données
à l'aide de l'algorithme spécifié. Puis, le résumé est crypté avec le paramètre cléRSAPrivée
. Si la clé privée est elle-même cryptée, vous devez fournir le mot de passe comme dernier paramètre, motDePasseClé
.
Une clé RSA privée non cryptée doit être au format suivant :
-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----END RSA PRIVATE KEY-----
Une clé RSA privée cryptée doit être au format suivant :
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B2EFE673714F681D
gMvo1cn1+Sjch4cPXT/Mty0pILnsbM5SsBPadRJJQtrGrM8LkkrRNdxYRBeIGUMj
...
lHGJJBHogUW4Ig3/kd4ROVHusRYLtyyfz13A96tIl6Y7lu2L7alNWQ==
-----END RSA PRIVATE KEY-----
Pour générer une paire de clés RSA, vous pouvez utiliser la boîte à outils OpenSSL. Rendez-vous sur le site www.openssl.org.
Cette fonction renvoie une signature binaire de données
sous forme de données de conteneur ou renvoie « ? » si l'un des paramètres n'est pas valide. Vous pouvez convertir les données de conteneur en texte à l'aide de la fonction Base64EncodeRFC ou de la fonction HexEncode.
Exemple 1
Utilise l'algorithme SHA-512 avec une clé privée cryptée pour signer les données dans la rubrique Texte table::texteASigner. La signature est renvoyée sous forme de texte codé au format Base64.
Base64EncodeRFC ( 4648 ;
CryptGenerateSignature (
table::texteASigner ; "SHA512" ; table::cléRSAPrivée ; $motDePasse
)
)