Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2016(UTC) Сообщений: 126
Сказал(а) «Спасибо»: 8 раз Поблагодарили: 35 раз в 28 постах
|
Пример кода: Код:
static HCRYPTPROV hCryptProv = 0;
DWORD cbData = 0;
LPBYTE pbData;
Handle<std::string> license;
if (!CryptAcquireContext(
&hCryptProv,
NULL,
NULL,
PROV_GOST_2001_DH,
CRYPT_VERIFYCONTEXT))
{
THROW_EXCEPTION(0, Key, NULL, "CryptAcquireContext. Error: %d", GetLastError());
}
if (!CryptGetProvParam(
hCryptProv,
PP_LICENSE,
NULL,
&cbData,
0))
{
THROW_EXCEPTION(0, Key, NULL, "CryptGetProvParam. Error: %d", GetLastError());
}
pbData = (LPBYTE)malloc(cbData);
if (!CryptGetProvParam(
hCryptProv,
PP_LICENSE,
pbData,
&cbData,
0))
{
THROW_EXCEPTION(0, Key, NULL, "CryptGetProvParam. Error: %d", GetLastError());
}
license = new std::string((char *)pbData);
if (hCryptProv) {
if (!CryptReleaseContext(hCryptProv, 0)) {
THROW_EXCEPTION(0, Csp, NULL, "CryptReleaseContext. Error: %d", GetLastError());
}
}
hCryptProv = 0;
if (pbData) {
free((BYTE*)pbData);
}
return license;
|