NCryptSignHash, fonction (ncrypt.h)
La fonction NCryptSignHash crée une signature d’une valeur de hachage.
Syntaxe
SECURITY_STATUS NCryptSignHash(
[in] NCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PBYTE pbHashValue,
[in] DWORD cbHashValue,
[out] PBYTE pbSignature,
[in] DWORD cbSignature,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Paramètres
[in] hKey
Handle de la clé à utiliser pour signer le hachage.
[in, optional] pPaddingInfo
Pointeur vers une structure qui contient des informations de remplissage. Le type réel de structure vers lequel ce paramètre pointe dépend de la valeur du paramètre dwFlags . Ce paramètre est utilisé uniquement avec des clés asymétriques et doit être NULL dans le cas contraire.
[in] pbHashValue
Pointeur vers une mémoire tampon qui contient la valeur de hachage à signer. Le paramètre cbInput contient la taille de cette mémoire tampon.
[in] cbHashValue
Nombre d’octets dans la mémoire tampon pbHashValue à signer.
[out] pbSignature
Adresse d’une mémoire tampon pour recevoir la signature produite par cette fonction. Le paramètre cbSignature contient la taille de cette mémoire tampon.
Si ce paramètre a la valeur NULL, cette fonction calcule la taille requise pour la signature et retourne la taille à l’emplacement indiqué par le paramètre pcbResult .
[in] cbSignature
Taille, en octets, de la mémoire tampon pbSignature . Ce paramètre est ignoré si le paramètre pbSignature a la valeur NULL.
[out] pcbResult
Pointeur vers une variable DWORD qui reçoit le nombre d’octets copiés dans la mémoire tampon pbSignature .
Si pbSignature a la valeur NULL, elle reçoit la taille, en octets, requise pour la signature.
[in] dwFlags
Indicateurs qui modifient le comportement de la fonction. Le jeu d’indicateurs autorisé dépend du type de clé spécifié par le paramètre hKey .
Si la clé est une clé symétrique, ce paramètre n’est pas utilisé et doit être défini sur zéro.
Si la clé est une clé asymétrique, il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Utilisez le schéma de remplissage PKCS1. Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_PKCS1_PADDING_INFO . |
|
Utilisez le schéma de remplissage PSS (Probabilistic Signature Scheme). Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_PSS_PADDING_INFO . |
|
Demande que le fournisseur de services clés (KSP) n’affiche aucune interface utilisateur. Si le fournisseur doit afficher l’interface utilisateur pour fonctionner, l’appel échoue et le KSP doit définir le code d’erreur NTE_SILENT_CONTEXT comme dernière erreur. |
Valeur retournée
Retourne un code status qui indique la réussite ou l’échec de la fonction.
Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.
Code de retour | Description |
---|---|
|
La fonction a réussi. |
|
La clé représentée par le paramètre hKey ne prend pas en charge la signature. |
|
Le paramètre dwFlags contient une valeur qui n’est pas valide. |
|
Le paramètre hKey n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
|
Un échec d’allocation de mémoire s’est produit. |
Remarques
Un service ne doit pas appeler cette fonction à partir de sa fonction StartService. Si un service appelle cette fonction à partir de sa fonction StartService, un interblocage peut se produire et le service peut cesser de répondre.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | ncrypt.h |
Bibliothèque | Ncrypt.lib |
DLL | Ncrypt.dll |