Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2016(UTC) Сообщений: 126
Сказал(а) «Спасибо»: 8 раз Поблагодарили: 35 раз в 28 постах
|
Здравствуйте. Для программной проверки лицензии на CSP используем CryptGetProvParam со значением PP_LICENSE. Возвращаемые CryptGetProvParam результаты: 1. (корректно) Лицензия установлена и действительна - true 2. (некорректно) Лицензия установлена и истекла - true 3. (некорректно) Лицензия не установлена - true, в pbData пустая строка 4. (корректно) Лицензия установлена, но имеет неверный формат - false В документации: Цитата:PP_LICENSE Возвращает серийный номер клиентской лицензии на CSP. Если лицензия не установлена или не действительна, функция возвращает FALSE. Серийный номер возвращается в виде строки символов типа char, заканчивающейся нулём. Возвращаемый серийный номер не содержит разделителей.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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;
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,530
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 625 раз в 433 постах
|
Спасибо за указание на проблему, поправим. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 02.11.2017(UTC) Сообщений: 65  Сказал «Спасибо»: 12 раз Поблагодарили: 28 раз в 25 постах
|
Починили, в следующих релизах (включая скорый релиз CSP 4.0 R3) этой проблемы не будет. Спасибо за сообщение об ошибке, Александр! |
|
 1 пользователь поблагодарил Зубов Иван за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2012(UTC) Сообщений: 119   Откуда: Digital Design Сказал «Спасибо»: 19 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день! Возможно ли как-то проверить, сколько дней осталось до истечения лицензии? Необходимо для своевременного информирования пользователей необходимости добавить новую лицензию. |
ВАСИЛИЙ АНИСИМОВ Ведущий iOS разработчик в «Digital Design» www.digdes.ru |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close