указатель на функцию CRYPT_VERIFY_IMAGE
Функция обратного вызова FuncVerifyImage используется поставщиком служб шифрования (CSP) для проверки подписи библиотеки DLL.
Все вспомогательные библиотеки DLL, в которые CSP выполняет вызовы функций, должны быть подписаны тем же способом (и с тем же ключом), что и основная библиотека DLL CSP. Чтобы обеспечить эту сигнатуру, вспомогательные библиотеки DLL должны загружаться динамически с помощью функции LoadLibrary . Но перед загрузкой библиотеки DLL необходимо проверить подпись библиотеки DLL. CSP выполняет эту проверку, вызывая функцию FuncVerifyImage , как показано в примере ниже.
Синтаксис
typedef BOOL ( WINAPI *CRYPT_VERIFY_IMAGE)(
_In_ LPCTSTR lpszImage,
_In_ const BYTE *pbSigData
);
Параметры
-
lpszImage [in]
-
Адрес строки с пустым завершением, содержащей путь и имя файла библиотеки DLL для проверки подписи.
-
pbSigData [in]
-
Адрес буфера, содержащего сигнатуру.
Возвращаемое значение
Возвращает значение TRUE , если функция выполнена успешно, и FALSE , если функция завершается ошибкой.
Примеры
В следующем примере показано, как использовать функцию обратного вызова FuncVerifyImage для проверки подписи библиотеки DLL перед ее загрузкой поставщиком служб конфигурации.
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.
//...
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Заголовок |
|
См. также раздел