pointeur de fonction CRYPT_VERIFY_IMAGE
La fonction de rappel FuncVerifyImage est utilisée par un fournisseur de services de chiffrement (CSP) pour vérifier la signature d’une DLL.
Toutes les DLL auxiliaires dans lesquelles un fournisseur de services cloud effectue des appels de fonction doivent être signées de la même manière (et avec la même clé) que la DLL CSP principale. Pour garantir cette signature, les DLL auxiliaires doivent être chargées dynamiquement à l’aide de la fonction LoadLibrary . Mais avant le chargement de la DLL, la signature de la DLL doit être vérifiée. Le fournisseur de solutions cloud effectue cette vérification en appelant la fonction FuncVerifyImage , comme illustré dans l’exemple ci-dessous.
Syntaxe
typedef BOOL ( WINAPI *CRYPT_VERIFY_IMAGE)(
_In_ LPCTSTR lpszImage,
_In_ const BYTE *pbSigData
);
Paramètres
-
lpszImage [in]
-
Adresse d’une chaîne terminée par null qui contient le chemin d’accès et le nom de fichier de la DLL pour laquelle vérifier la signature.
-
pbSigData [in]
-
Adresse d’une mémoire tampon qui contient la signature.
Valeur retournée
Retourne TRUE si la fonction réussit et FALSE si elle échoue.
Exemples
L’exemple suivant montre comment utiliser la fonction de rappel FuncVerifyImage pour vérifier la signature d’une DLL avant qu’elle ne soit chargée par un fournisseur de solutions cloud.
BOOL (FARPROC *ProvVerifyImage)(LPCSTR lpszImage, BYTE *pSigData);
// "ProvVerifyImage" has been set to "pVTable->FuncVerifyImage"
// within the CPAcquireContext function.
// bSignature is a previously assigned BYTE array that contains the
// signature that is stored in the C:\Winnt40\System32\signature.sig
// file. During development, this file is created with the
// Sign.exe tool.
...
// Verify the signature in the
// C:\Winnt40\System32\Signature.dll file.
if(RCRYPT_FAILED(ProvVerifyImage
("c:\\winnt40\\system32\\signature.dll",
bSignature)) {
SetLastError(NTE_BAD_SIGNATURE);
return CRYPT_FAILED;
}
// Load the DLL with the LoadLibrary function, then acquire pointers
// to the functions with the GetProcAddress function.
//...
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2003 [applications de bureau uniquement] |
En-tête |
|
Voir aussi