Partager via


NCryptVerifySignature, fonction (ncrypt.h)

La fonction NCryptVerifySignature vérifie que la signature spécifiée correspond au hachage spécifié.

Syntaxe

SECURITY_STATUS NCryptVerifySignature(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PBYTE             pbHashValue,
  [in]           DWORD             cbHashValue,
  [in]           PBYTE             pbSignature,
  [in]           DWORD             cbSignature,
  [in]           DWORD             dwFlags
);

Paramètres

[in] hKey

Handle de la clé à utiliser pour déchiffrer la signature. Il doit s’agir d’une clé identique ou de la partie clé publique de la paire de clés utilisée pour signer les données avec la fonction NCryptSignHash .

[in, optional] pPaddingInfo

Pointeur vers une structure qui contient des informations de remplissage. Le type réel de structure auquel 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

Adresse d’une mémoire tampon qui contient le hachage des données. Le paramètre cbHash contient la taille de cette mémoire tampon.

[in] cbHashValue

Taille, en octets, de la mémoire tampon pbHash .

[in] pbSignature

Adresse d’une mémoire tampon qui contient le hachage signé des données. La fonction NCryptSignHash est utilisée pour créer la signature. Le paramètre cbSignature contient la taille de cette mémoire tampon.

[in] cbSignature

Taille, en octets, de la mémoire tampon pbSignature . La fonction NCryptSignHash est utilisée pour créer 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 égal à zéro.

Si la clé est une clé asymétrique, il peut s’agir de l’une des valeurs suivantes :

Valeur Sens
NCRYPT_PAD_PKCS1_FLAG Le schéma de remplissage PKCS1 a été utilisé lors de la création de la signature. Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_PKCS1_PADDING_INFO .
BCRYPT_PAD_PQDSA Utilisez le schéma de remplissage PQ pour ML-DSA ou SLH-DSA. Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_PQDSA_PADDING_INFO .

Note: Cela doit être défini si vous utilisez une variante de ML-DSA de prédéfinie.
NCRYPT_PAD_PSS_FLAG Le schéma de remplissage psS (Probabilistic Signature Scheme) a été utilisé lors de la création de la signature. Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_PSS_PADDING_INFO .
NCRYPT_SILENT_FLAG Demande que le fournisseur de services de clé (KSP) n’affiche aucune interface utilisateur. Si le fournisseur doit afficher l’interface utilisateur à utiliser, 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 d’état qui indique la réussite ou l’échec de la fonction.

Les codes de retour possibles incluent, mais ne sont pas limités, les éléments suivants :

Code de retour Descriptif
ERROR_SUCCESS La fonction a réussi.
NTE_BAD_SIGNATURE La signature n’a pas été vérifiée.
NTE_INVALID_HANDLE Le paramètre hKey n’est pas valide.
NTE_NO_MEMORY Un échec d’allocation de mémoire s’est produit.
NTE_NOT_SUPPORTED Le fournisseur d’algorithmes utilisé pour créer le handle de clé spécifié par le paramètre hKey n’est pas un algorithme de signature.

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.

Spécifications

Besoin Valeur
Client minimum requis Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
En-tête ncrypt.h
Bibliothèque Ncrypt.lib
DLL Ncrypt.dll

Voir aussi

NCryptSignHash