Partager via


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
Cspdk.h

Voir aussi

CPAcquireContext

VTableProvStruc