Форум КриптоПро
»
Средства криптографической защиты информации
»
Apple
»
Функция CryptAcquireContext выдает ошибку 8009001F(NTE_BAD_KEYSET_PARAM)
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2013(UTC) Сообщений: 42  Откуда: Нижний Новгород Сказал(а) «Спасибо»: 2 раз
|
Добрый день!
Пытаюсь получить дескриптор криптопровайдера: CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_GOST_2001_DH, CRYPT_NEWKEYSET)
Выдает ошибку 8009001F(NTE_BAD_KEYSET_PARAM).
Если вызывать CryptAcquireContext с ключом CRYPT_VERIFYCONTEXT - работает нормально. Выглядит так, как будто бы у меня нет прав на создание контейнеров. Подскажите пожалуйста, в чем может быть проблема и что еще можно проверить.
Запускаю в iOS 6.1.3 (iPhone), пробовал на симуляторе - тоже самое. Все действия для установки фреймворка в приложение проделаны согласно инструкции. Проверял целостность программы через PaneViewController из фреймворка - в порядке. Лицензия - триал, установлена через утилиту SetApplicationLicense.
Единственное, что подозрительно в логе - ругается на остуствие файлов "license.ini" и "release".
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Здравствуйте.
Используйте имя провайдера CP_KC1_GR3410_2001_PROV
Чтобы понять какие провайдеры (с каким именем) у вас зарегистрированы можно или перечислить провайдеры данного типа (http://msdn.microsoft.com/en-us/library/ms938012.aspx ) или посмотреть в config.ini . Первый вариант делает всё правильно в общем виде. По умолчанию при установке CSP в исполнении КС1 на всех ОС мы регистрируем провайдер с именем CP_KC1_GR3410_2001_PROV .
Кроме того, если вы вызываете CryptAcquireContext с флагом CRYPT_NEWKEYSET, значит вы пытаетесь создать ключевой контейнер. Значит нужно указать имя контейнера: с NULL вместо имени контейнера можно получать контекст только с флагом CRYPT_VERIFYCONTEXT. Имя контейнера указывается в формате "\\\\.\\имя считывателя\\имя контейнера", например "\\\\.\\hdimage\\contname".
|
Татьяна ООО Крипто-Про |
 1 пользователь поблагодарил Татьяна за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2013(UTC) Сообщений: 42  Откуда: Нижний Новгород Сказал(а) «Спасибо»: 2 раз
|
Спасибо за быстрый ответ, но не помогло.
Теперь вызываю функцию так: CryptAcquireContext(&hCryptProv, "\\\\.\\HDIMAGE\\test1", CP_KC1_GR3410_2001_PROV, PROV_GOST_2001_DH, CRYPT_NEWKEYSET), ошибка та же самая - 8009001F Проверил имя криптопровайдера - посмотрел в config.ini и через функцию CryptEnumProviders - тут все правильно. Думаю, ошибка в имени контейнера. Можно как-то проверить, создано ли хранилище HDIMAGE? В Мак ОСе например, это проверяется командой "cpconfig -hardware reader -view".
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Проверьте что у вас провайдер в целом работоспособен. Для этого проще всего проверить, что в нашей панели успешно отрабатывает проверка целостности и проверка лицензии. |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2013(UTC) Сообщений: 42  Откуда: Нижний Новгород Сказал(а) «Спасибо»: 2 раз
|
Проверка целостности прошла успешно. Лицензия истекает через 3 месяца (триал).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Имя контейнера нормальное (если контейнера с таким именем ещё не существует). А в логах на консоли дебаггера и в "органайзер - ваше устройство - консоль" что-нибудь есть? Если на эмуляторе повторяется, пришлите папку приложения с эмулятора (вместе с Documents и Library -- на уровень выше .app) мне на kondakova at cryptopro.ru |
Татьяна ООО Крипто-Про |
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Apple
»
Функция CryptAcquireContext выдает ошибку 8009001F(NTE_BAD_KEYSET_PARAM)
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close