Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Прерывается выполнение программы на CryptAcquireContext при отсутствии лицензии
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.10.2022(UTC) Сообщений: 51  Сказал(а) «Спасибо»: 9 раз Поблагодарили: 2 раз в 2 постах
|
Пишу приложение на C++, реализовал подписывание при помощи CSP5. В случае если заканчивается демо лицензия вызывать функцию CryptAcquireContext с указанием имени криптоконтейнера появляется надпись "CPCSP: Срок действия этой версии КриптоПро CSP истёк или ещё не наступил, либо серийный номер лицензии не был введен." И надпись "(o) OK".
И что самое плохое - в месте вызова CryptAcquireContext выполнение программы прерывается необъяснимым способом. Функция не возвращает false, а просто ничего не возвращает, зависает что-ли или делает exit в потоке. При попытке перешагнуть эту функцию в отладчике прерывается приостановка процесса и программа продолжает выполнятся, как-будто я нажал Continue. Причем так происходит, если я запускаю приложение в терминале штатно или под отладчиком в QtCreator. Но если я запускаю в QtCreator не под отладкой, то вызов этой функции проходит нормально, возвращается false и GetLastError + FormatMessageA возвращает правильный текст ошибки, что лицензия закончилась.
Как это можно починить?
Я сперва предполагал, что это такая защита от отладки, но почему просто в терминале не работает?
Окружение: OpenSuse Tumbleweed, cprocsp 5.0.12600, g++ (SUSE Linux) 13.1.1 20230522
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,577
Сказал(а) «Спасибо»: 46 раз Поблагодарили: 663 раз в 458 постах
|
Здравствуйте. Больше всего похоже, что у вас включён "Режим усиленного контроля использования ключей": Код:./cpconfig -ini '\config\parameters' -add long StrengthenedKeyUsageControl 1
Именно такая конфигурация должна быть при эксплуатации, поэтому финальное тестирование действительно надо проводить с ней. В то же время, этот параметр включает динамический контроль целостности СКЗИ, который детектирует внесение точек останова и поэтому не позволит работать провайдеру под отладчиком. Для отключения при разработке нужно выставить этот параметр в ноль. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.10.2022(UTC) Сообщений: 51  Сказал(а) «Спасибо»: 9 раз Поблагодарили: 2 раз в 2 постах
|
Автор: Русев Андрей  Больше всего похоже, что у вас включён "Режим усиленного контроля использования ключей":
Ранее при установке я его не включал явно. Я попробовал выставить в ноль: Код:sudo /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long StrengthenedKeyUsageControl 0
Но это не помогло. Куда он прописывает этот параметр? Ну и остаётся вопрос, почему при обычном запуске в терминале тоже не работает? Понимаю что только при отладке не должно. Отредактировано пользователем 10 июля 2023 г. 14:18:43(UTC)
| Причина: Не указана
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Прерывается выполнение программы на CryptAcquireContext при отсутствии лицензии
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close