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 :

Copier
-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----END RSA PRIVATE KEY-----

Une clé RSA privée cryptée doit être au format suivant :

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

Copier
Base64EncodeRFC ( 4648 ; 
    CryptGenerateSignature ( 
        table::texteASigner ; "SHA512" ; table::cléRSAPrivée ; $motDePasse 
    )
)