pkcs#11
При вызове функции C_InitToken возвращается CKR_DEVICE_ERROR. Это нормально?
Вы не авторизованы. Пожалуйста, войдите или зарегистрируйтесь.
Форум Рутокен → Техническая поддержка разработчиков → pkcs#11
Страницы 1
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
При вызове функции C_InitToken возвращается CKR_DEVICE_ERROR. Это нормально?
Какая у Вас версия драйверов?
Какая у Вас версия библиотеки rtPKCS11.dll?
После установки новых драйверов (версии 2.22.01.0227) должна быть версия rtPKCS11.dll 2.21.0.0
Установил свежий драйвер. Ситуация не изменилась.
Версию DLL проверили?
2.21.00.
Но вызывая C_GetInfo, я получаю следующие версии:
CryptokiVersion: 2.1
LibraryVersion: 2.0
Вы проверяли - сам токен рабочий?
Да, проверял, на одном из ваших примеров на создание объектов - токен корректно отработал. Вообще у меня три рутокена и ведут себя они одинаково - вылетает CKR_DEVICE_ERROR при вызове C_InitToken, все остальные функции, которые успел попробовать работают нормально.
Пришлите, пожалуйста, Ваш пример, который выдает ошибку на адрес hotline@rutoken.ru
Это пример InitToken из SDK.
Здравствуйте!
Согласно стандарту PKCS #11 (текущей версии v 2-20), появление ошибки CKR_DEVICE_ERROR при вызове какой-либо функции должно сигнализировать о том, что произошел сбой в работе токена или слота. Однако, поскольку ошибка возникает именно при вызове функции C_InitToken и имеющиеся токены исправны, то возможен такой вариант.
Если при попытке инициализации токена с помощью C_InitToken Cryptoki обнаружит, что у некоторого приложения открыт сеанс с токеном, то функция завершится с ошибкой CKR_SESSION_EXISTS, а токен не будет инициализирован. К сожалению, сам Cryptoki не всегда способен определить наличие открытого сеанса с токеном. В этом случае поведение и последствия вызова функции C_InitToken не определены. В связи с этим, не могли бы Вы уточнить:
- имеются ли в системе какие-либо приложения, также использующие интерфейс PKCS #11;
- установлено ли в системе ПО для токенов других производителей;
- что происходит при вызове криптографических функций (генерация ключей, шифрование, расшифрование) из наших примеров?
Здравствуйте.
- нет, по-крайней мере вашу реализацию;
- нет;
- они корректно отрабатывают.
Пока пользуюсь инициализацией через утилиту администрирования. Работает.
Насколько я понимаю, утилита работает через тот же низкоуровненый интерфейс, что и pkcs#11?
Да, утилита и библиотека используют тот же низкоуровневый интерфейс. Однако, выполняемые ими операции вовсе неэквивалентны.
Утилита администрирования позволяет инициализировать всю файловую систему токена, создавая дерево предопределенных папок со служебными файлами и объекты, хранящие PIN-коды пользователя и администратора. Т.е. в этом случае полностью перезаписывается вся память токена.
Функция C_InitToken всего лишь подготавливает структуру папок для хранения объектов PKCS #11, которые располагаются в предопределенной папке 3F00\0000\0000\0001. Фактически C_InitToken только удаляет содержимое этой папки и задает символьное имя токена.
Поэтому такое поведение весьма странно.
Скажите, а попытка вызова C_InitToken для предварительно инициализированного с помощью утилиты администрирования токена тоже заканчивается ошибкой CKR_DEVICE_ERROR?
Вопрос снят. Спасибо.
Я инициализировал токен со следующим параметром:
"PIN-код Пользователя имеют право менять" *Администратор.
Не обратил внимание на сообщение, примите извинения за отобранное время. Я инициализировал токен до этого с правом смены у пользователя и, видимо, приложению просто не хватило полномочий для сброса пин-кода при инициализации.
Страницы 1
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Форум Рутокен → Техническая поддержка разработчиков → pkcs#11