Статус: Новичок
Группы: Участники
Зарегистрирован: 09.12.2011(UTC) Сообщений: 4
|
При использовании КриптоПро для iOS возникла следующая проблема:
После выполнения нескольких операций подписания и проверки подписей (включая проверку цепочки сертификатов) очередноя попытка открыть хранилище сертификатов выполняется неудачно с ошибкой NTE_BAD_KEYSET(0x8009001a). При выполнении операций все контексты сертификатов, хэндлы хранилищ сертификтатов и ключей, а также хэндлы других объектов освобождаются соответсвующими функциями, но проблема остаётся. Помогает лишь перезапуск приложения, использующего библиотеку КриптоПро.
Вот лог библиотеки на устройстве при неудачной попытке вызова CertOpenStore: cpcsp[15297] <Error>: cpcsp:!0x3f05fce8:!:247!QueryTester!FAIL: Flags 0x7ffffff! cpcsp[15297] <Error>: cpcsp:!0x3f05fce8:!:367!CPCAcquireContext!Tester fail cc=Ix hCSP=0x5609f40!
Возможно ли каким-то образом решить эту проблему без перезапуска приложения?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Здравствуйте. Это ошибки проверки целостности приложения. Удалите приложение с iPad и переустановите, внимательно выполнив пункт инструкции Цитата:8. В левой панели выбрать "Targets - имя проекта", нажать правой кнопкой мыши, выбрать в контекстном меню "Add - New Build Phase - New Run Script Build Phase". В секцию "Script" нужно ввести <Путь к директории с фреймворком>/ConfigureApplication Кроме того, если проблемы возникают при отладке приложения, обратите внимание на пункт инструкции Цитата:Во время отладки проектов необходимо отключать контроль целостности CSP. Для этого нужно вызвать функцию DisableIntegrityCheck() из /Headers/DisableIntegrity.h . |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.12.2011(UTC) Сообщений: 4
|
Здравствуйте. Разумеется, скриптовую билд фазу мы не забыли, и при отладке DisableIntegrityCheck() вызывается до первого использования остальных функций библиотеки. Однако проблема нарушения целостности остаётся, но лишь при отладке (на данный момент случаев возникновения подобной ошибки на релизном варианте приложения не было), так что Бог с ней.
Зато и в режиме отладки и в релиз при попытке обращения к ключевому контейнеру проскакивает следующая ошибка: unknown cpcsp[24692] <Error>: cpcsp:!0x3ef78ce8:!:1221!CreateUserCryptObject!key_carrier_get_material_with_public fail! unknown cpcsp[24692] <Error>: 12:15:24.025123 support_an_fopen:83 p:24692 t:0x0x32f942a0 support_an_fopen("/private/var/mobile/Applications/DCA757C8-9AAB-4BFE-95CA-D9815F6AC634/Library/Caches/cprocsp/users/mobile/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)
На джейлбрейкнутом устройстве мы удостоверились, что указанного файла действительно нет, хотя остальная структура файлов и папок криптопро в Library/Caches/ создаётся корректно.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Если так, то, вероятно, все беды от того, что при перетаскивании ресурсов фреймворка в проект Вы не выбрали опцию "Create Folder referencies for any added folders". Эта опция нужна, чтобы была создана правильная структура CSP-шных каталогов в папке приложения на устройстве. Чтобы это исправить, удалите наши ресурсы из проекта, а потом добавьте с указанием правильной опции. После этого удалите и установите приложение. Если не поможет, пришлите вывод
find <имя каталога приложения>/Library |
Татьяна ООО Крипто-Про |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close