puntero de función CRYPT_VERIFY_IMAGE
Un proveedor de servicios criptográficos (CSP) usa la función de devolución de llamada FuncVerifyImage para comprobar la firma de un archivo DLL.
Todos los archivos DLL auxiliares en los que un CSP realiza llamadas de función deben iniciar sesión de la misma manera (y con la misma clave) que el archivo DLL de CSP principal. Para garantizar esta firma, los archivos DLL auxiliares se deben cargar dinámicamente mediante la función LoadLibrary . Pero antes de cargar el archivo DLL, se debe comprobar la firma del archivo DLL. El CSP realiza esta comprobación llamando a la función FuncVerifyImage , como se muestra en el ejemplo siguiente.
Sintaxis
typedef BOOL ( WINAPI *CRYPT_VERIFY_IMAGE)(
_In_ LPCTSTR lpszImage,
_In_ const BYTE *pbSigData
);
Parámetros
-
lpszImage [in]
-
Dirección de una cadena terminada en null que contiene la ruta de acceso y el nombre de archivo del archivo DLL para comprobar la firma.
-
pbSigData [in]
-
Dirección de un búfer que contiene la firma.
Valor devuelto
Devuelve TRUE si la función se realiza correctamente, FALSE si se produce un error.
Ejemplos
En el ejemplo siguiente se muestra cómo usar la función de devolución de llamada FuncVerifyImage para comprobar la firma de un archivo DLL antes de cargarla un CSP.
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.
//...
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado |
|
Vea también