КриптоПро CSP  

_VTABLEPROVSTRUC

Структура VTABLEPROVSTRUC содержит указатели на callback функции, которые могут быть использованы функциями криптопровайдера (CSP).

	    
    BOOL (FARPROC *ProvVerifyImage)(LPCSTR lpszImage, BYTE *pSigData);
    BYTE bSignature[72];

    // "ProvVerifyImage" has been set to "pVTable->FuncVerifyImage"
    // within the CPAcquireContext function.

    // Load the C:\Winnt40\System32\signature.sig file into the 
    // bSignature buffer. During development, this file is created 
    // with the Sign.exe utility.
    ...

    // Verify the signature on 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 LoadLib function, then acquire pointers to 
    // the member functions with the GetProcAddress function.
    ...
	

typedef struct _VTABLEPROVSTRUC {
DWORD Version;
CRYPT_VERIFY_IMAGE_A FuncVerifyImage;
CRYPT_RETURN_HWND FuncReturnhWnd;
DWORD dwProvType;
BYTE * pbContextInfo;
DWORD cbContextInfo;
LPSTR pszProvName; } VTABLEPROVSTRUC, *PVTABLEPROVSTRUC;

Члены

Version
DWORD значение, определяющее версию структуры. Используются три версии структуры. MicrosoftR Windows NTR версия 4.0 and MicrosoftR WindowsR 95 используют версию 1, которая содержит только три первых члена: Version, FuncVerifyImage, FuncReturnhWnd. Версия 2 используется в Windows 98. Используются первые шесть членов структуры (без pszProvName). Версия 3 используется в Windows 2000. Она включает все семь членов структуры.
FuncVerifyImage
Указатель на callback функцию, используемую для проверки ЭЦП модуля. См. Примечание.
FuncReturnhWnd
Указатель на callback функцию, возвращаемую информацию о дескрипторе окна. Дескриптор окна будет использован для взаимодействия с пользователем через MicrosoftR Win32R.
dwProvType
  • PROV_GOST_DH
  • PROV_GOST_2001_DH
  • PROV_GOST_2012_256
  • PROV_GOST_2012_512
  • PROV_RSA_FULL
  • PROV_RSA_SIG
  • PROV_DSS
  • PROV_FORTEZZA
  • PROV_MS_EXCHANGE
pbContextInfo
Только версии 2 и 3. Указатель на массив контекстной информации. Переменные pbContextInfo и cbContextInfo определяют состав передаваемой информации, используемой при вызове функции CPSetProvParam с параметром PP_CONTEXT_INFO.
cbContextInfo
Только версии 2 и 3. Значение, определяющее количество элементов в массиве pbContextInfo.
pszProvName
Только версия 3. Строка, содержащая имя провайдера.

Примечания

Указатель на структуру VTABLEPROVSTRUC доступен только во врема вызова функции CPAcquireContext. Если члены структуры необходимы для дальнейшей работы, необходимо произвести копирование значений. Скопированные указатели на функции, содержащиеся в струкруре и сами функции, могут быть использованы до тех пор пока не закрылась сессия с криптопровайдером. Все дополнительные модули (DLL), которые использует криптопровайдер могут быть подписаны, как и основной модуль. Перд загрузкой дополнительны модулей с использованием функции LoadLib, можно проверить подпись дополнительных модулей. Криптопровайдер может производить такую проверку, используя указатель на функцию FuncVerifyImage, как показано в следующем примере: