Condividi tramite


puntatore a funzione CRYPT_VERIFY_IMAGE

La funzione di callback FuncVerifyImage viene usata da un provider di servizi di crittografia (CSP) per verificare la firma di una DLL.

Tutte le DLL ausiliarie in cui un CSP effettua chiamate di funzione devono essere firmate nello stesso modo (e con la stessa chiave) della DLL CSP primaria. Per garantire questa firma, le DLL ausiliarie devono essere caricate dinamicamente tramite la funzione LoadLibrary . Ma prima del caricamento della DLL, è necessario verificare la firma della DLL. Il CSP esegue questa verifica chiamando la funzione FuncVerifyImage , come illustrato nell'esempio seguente.

Sintassi

typedef BOOL ( WINAPI *CRYPT_VERIFY_IMAGE)(
  _In_       LPCTSTR lpszImage,
  _In_ const BYTE    *pbSigData
);

Parametri

lpszImage [in]

Indirizzo di una stringa con terminazione Null contenente il percorso e il nome file della DLL per verificare la firma.

pbSigData [in]

Indirizzo di un buffer che contiene la firma.

Valore restituito

Restituisce TRUE se la funzione ha esito positivo, FALSE se ha esito negativo.

Esempio

L'esempio seguente illustra come usare la funzione di callback FuncVerifyImage per verificare la firma di una DLL prima che venga caricata da 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.
//...

Requisiti

Requisito Valore
Client minimo supportato
Windows XP [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Intestazione
Cspdk.h

Vedi anche

CPAcquireContext

VTableProvStruc