Содержание
- Pkcs11 ckr device error
- Стандартные коды ошибок
- Pkcs11 ckr device error
- Стандартные коды ошибок
- Функции управления слотами и устройствами¶
- C_GetSlotList ¶
- C_GetSlotInfo ¶
- C_GetTokenInfo ¶
- C_WaitForSlotEvent ¶
- C_GetMechanismList ¶
- C_GetMechanismInfo ¶
- C_InitToken ¶
- C_InitPIN ¶
- C_SetPIN ¶
Pkcs11 ckr device error
Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:
- стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
- специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.
Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Стандартные коды ошибок
В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.
В таблице ниже приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык).
Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен
Источник
Pkcs11 ckr device error
Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:
- стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
- специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.
Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Стандартные коды ошибок
В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.
В таблице ниже приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык).
Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен
Источник
Функции управления слотами и устройствами¶
C_GetSlotList ¶
CK_RV C_GetSlotList ( CK_BBOOLtokenPresent, CK_SLOT_ID_PTRpSlotList, CK_ULONG_PTRpulCount ) ¶
Параметры: |
|
---|
Функция используется для получения списка слотов в системе. При этом возвращает список только слотов с поддерживаемыми апплетами.
Работа с данной функцией осуществляется в два шага:
- Если pSlotList == NULL_PTR – функция возвращает количество слотов в pulCount .
- Если pSlotList != NULL_PTR – pulCount должен содержать размер (в элементах CK_SLOT_ID ) буфера, указывающего на pSlotList . Если размер буфера достаточен, список слотов возвращается через pSlotList .
Поскольку в библиотеке всегда ровно 32 слота, подключение или отключение аппаратных устройств не влияет на список слотов, который функция C_GetSlotList записывает в массив CK_SLOT_ID , когда первый аргумент этой функции – tokenPresent – принимает значение CK_FALSE . Обратите внимание, что на каждый апплет выделятся отдельный слот, поэтому одному токену может соответствовать несколько слотов.
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_GetSlotInfo ¶
CK_RV C_GetSlotInfo ( CK_SLOT_IDslotID, CK_SLOT_INFO_PTRpInfo ) ¶
Параметры: |
|
---|
Получает информацию о заданном слоте.
Согласно стандарту PKCS #11 функция C_GetSlotInfo записывает сведения о подключённом устройстве в структуру типа CK_SLOT_INFO .
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_GetTokenInfo ¶
CK_RV C_GetTokenInfo ( CK_SLOT_IDslotID, CK_TOKEN_INFO_PTRpInfo ) ¶
Параметры: |
|
---|
Возвращает указатель на структуру CK_TOKEN_INFO с информацией об апплете, соответствующем заданному слоту. В случае использования Антифрод-терминала возвращает значение флага CKF_PROTECTED_AUTHENTICATION_PATH .
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_WaitForSlotEvent ¶
CK_RV C_WaitForSlotEvent ( CK_FLAGSflags, CK_SLOT_ID_PTRpSlot, CK_VOID_PTRpReserved ) ¶
Параметры: |
|
---|
Отслеживает отключение и подключение устройств.
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_GetMechanismList ¶
CK_RV C_GetMechanismList ( CK_SLOT_IDslotID, CK_MECHANISM_TYPE_PTRpMechanismList, CK_ULONG_PTRpulCount ) ¶
Параметры: |
|
---|
Получает список механизмов, поддерживаемых токеном.
Работа с данной функцией осуществляется в два шага:
- Если pMechanismList == NULL_PTR – функция возвращает количество механизмов в pulCount .
- Если pMechanismList != NULL_PTR – pulCount должен содержать размер (в элементах CK_MECHANISM_TYPE ) буфера, указывающего на pMechanismList . Если размер буфера достаточен, список слотов возвращается через pMechanismList .
Функция C_GetMechanismList записывает в массив список доступных механизмов. Списки механизмов для поддерживаемых апплетов смотри в приложении.
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_GetMechanismInfo ¶
CK_RV C_GetMechanismInfo ( CK_SLOT_IDslotID, CK_MECHANISM_TYPEtype, CK_MECHANISM_INFO_PTRpInfo ) ¶
Параметры: |
|
---|
Получает информацию о заданном механизме.
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_InitToken ¶
CK_RV C_InitToken ( CK_SLOT_IDslotID, CK_UTF8CHAR_PTRpPin, CK_ULONGulPinLen, CK_UTF8CHAR_PTRpLabel ) ¶
Параметры: |
|
---|
Инициализирует поддерживаемые апплеты и устанавливает метки токена.
Криптотокен
Процесс инициализации предполагает удаление всех объектов, за исключением информации о ДСЧ . При этом:
- значение PIN-кода администратора остаётся прежним;
- значение PIN-кода пользователя удаляется.
Криптотокен 2 ЭП
Laser
Для устройств модели JXXX v2.0 операция может выполняться в режимах администратора и гостя. Для всех остальных – только в режиме администратора. Процесс инициализации включает удаление всех объектов и последующую персонализацию апплета согласно установленным настройкам. При этом значения PIN-кодов администратора и пользователя устанавливаются на заданные. Если настройки не были установлены, то используются настройки по умолчанию:
- PIN-код администратора – 00000000 ,
- PIN-код пользователя – 11111111 .
Можно произвести полную очистку содержимого смарт-карты/токена, если в качестве значения PIN-кода администратора передать NULL_PTR, а его длину указать как ноль.
Datastore
Операция доступна, если для апплета инициализирован PUK-код пользователя (PIN-код администратора). Процесс инициализации предполагает удаление всех объектов. При этом:
- значение PIN-кода администратора остаётся прежним,
- значение PIN-кода пользователя удаляется.
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_InitPIN ¶
CK_RV C_InitPIN ( CK_SESSION_HANDLEhSession, CK_UTF8CHAR_PTRpPin, CK_ULONGulPinLen ) ¶
Параметры: |
|
---|
Инициализирует значение PIN-кода пользователя.
PIN-код может содержать символы в кодировке UTF-8 из следующего набора:
- Буквы: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
- Цифры: 0 1 2 3 4 5 6 7 8 9
- Спец. символы: ! “ # % & ‘ ( ) * + , — . / : ; ? [ ] ^ _
Криптотокен
По умолчанию PIN-кода пользователя не установлен. Операция доступна, если для апплета не инициализирован PIN-код пользователя. При использовании Антифрод-терминала функция запрашивает PIN-код пользователя с подтверждением на клавиатуре терминала (в этом случае функция вызывается с любым значением параметра pPin ).
Длина PIN-кода – от 6 до 32 символов.
Криптотокен 2 ЭП
Laser
По умолчанию для PIN-кода пользователя установлено значение 11111111 . Операция доступна всегда, при её выполнении изменяется текущий PIN-код пользователя.
Длина PIN-кода – от 4 до 16 символов.
Datastore
По умолчанию для PIN-кода пользователя установлено значение 1234567890 . Операция доступна, если для апплета инициализирован PUK-код пользователя (PIN-код администратора) и не инициализирован PIN-код пользователя.
Длина PIN-кода – от 6 до 32 символов.
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_SetPIN ¶
CK_RV C_SetPIN ( CK_SESSION_HANDLEhSession, CK_UTF8CHAR_PTRpOldPin, CK_ULONGulOldLen, CK_UTF8CHAR_PTRpNewPin, CK_ULONGulNewLen ) ¶
Параметры: |
|
---|
Меняет PIN-код пользователя/администратора/подписи. PIN-код пользователя должен быть предварительно инициализирован (см. C_InitPIN() ).
PIN-код может содержать символы в кодировке UTF-8 из следующего набора:
- Буквы: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
- Цифры: 0 1 2 3 4 5 6 7 8 9
- Спец. символы: ! “ # % & ‘ ( ) * + , — . / : ; ? [ ] ^ _
Криптотокен
Функция меняет PIN-коды пользователя и администратора.
Длина PIN-кодов пользователя/администратора – от 6 до 32 символов.
При работе апплета Криптотокен с использованием Антифрод-терминала для смены PIN-кода (как пользователя, так и администратора) требуется ввести на терминале текущее значение PIN-кода и новое значение. При этом для подтверждения нового значения PIN-кода запрашивается его повторный ввод.
Криптотокен 2 ЭП
Функция меняет PIN-коды пользователя и подписи.
Длина PIN-кодов пользователя/подписи – от 6 до 32 символов.
Смена ключа администратора безопасности возможна с помощью ПО «АРМ администратора безопасности JaCarta-2 ГОСТ» или «АРМ разработчика JaCarta-2 ГОСТ».
Laser
Функция меняет PIN-коды пользователя и администратора.
Длина PIN-кодов пользователя/администратора – от 4 до 16 символов.
Datastore
Функция меняет PIN-коды пользователя и администратора.
Длина PIN-кодов пользователя/администратора – от 6 до 32 символов.
Источник
I have followed the example: https://pkcs11interop.net/doc/_high_level_a_p_i_2_24__wrap_and_unwrap_key_test_8cs-example.html
to wrap symmetric keys using rsa keys and it worked.
What I am trying to achieve is to wrap an asymmetric key (rsa private key) instead. All I did was replacing the «secretKey» variable with an ObjectHandle of the private key. However, I get CKR_GENERAL_ERROR each time I call Wrapkey function.
Can someone explain why this won’t work? I couldn’t find anything in the specifications that prevents wrapping asymmetric keys.
The private key was generated with the following attributes:
List<ObjectAttribute> privateKeyAttributes = new List<ObjectAttribute>();
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_TOKEN, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_PRIVATE, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_ID, ConvertUtils.HexStringToBytes(id)));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_SENSITIVE, false));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_DECRYPT, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_SIGN, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_SIGN_RECOVER, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_EXTRACTABLE, true));
Best regards,
asked Oct 16, 2018 at 9:19
You seem to be trying to wrap RSA private key using CKM_RSA_PKCS
mechanim. Chapter 12.1.6 of PKCS#11 v2.20 specification states:
The PKCS#1 v1.5 RSA mechanism, denoted
CKM_RSA_PKCS
, is a
multi-purpose mechanism based on the RSA public-key cryptosystem and
the block formats initially defined in PKCS#1 v1.5.…
This mechanism can wrap and unwrap any secret key of appropriate
length. Of course, a particular token may not be able to wrap/unwrap
every appropriate-length secret key that it supports. For wrapping,
the «input» to the encryption operation is the value of theCKA_VALUE
attribute of the key that is wrapped; similarly for unwrapping.
PKCS#11 specification uses term secret key only for symmetric keys. Moreover CKA_VALUE
attribute is invalid for RSA private keys. This will not work.
Your best bet is to consolt the documentation of your device/library and choose different wrapping mechanism that suits your needs.
answered Oct 16, 2018 at 18:14
jariqjariq
11.4k3 gold badges32 silver badges52 bronze badges
|
|||
DenisVich
10.08.17 — 11:25 |
При попытки проверить номенклатуру по ЕГАИС или контрагента вываливает такое сообщение. Версия УТМ 2.0.3 Сертификат стоит. В настройках 1С все прописано. localhost 8080. УТМ v 2 2.0.3. Программа демон УТМ стоит. Все работало. В чем может быть проблема?» |
||
igorPetrov
1 — 10.08.17 — 11:31 |
(0) А УТМ работает? |
||
DenisVich
2 — 10.08.17 — 11:33 |
Да работает. Зелененький сертификат в нем. |
||
igorPetrov
3 — 10.08.17 — 11:43 |
(2) Перезапусти службу. |
||
Ёпрст 4 — 10.08.17 — 11:47 |
(0) УТМ 2.0.3 ? |
|
TurboConf — расширение возможностей Конфигуратора 1С |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Описание проблемы.
Для работы с ЕГАИС используется носитель JaCarta PKI/ГОСТ/SE. Часто один из разделов блокируется (раздел PKI). В этом случае дальнейшая работа с ЕГАИС невозможна.
Причина блокировки
– частое обращение универсального транспортного модуля к носителю JaCarta. При десяти неудачных попытках авторизации, носитель блокирует раздел и исключает дальнейшую работу.
Решить проблему можно двумя способами:
- Обратиться в удостоверяющий центр, который выдал носитель.
- Самостоятельно разблокировать носитель JaCarta по инструкции.
Инструкция на примере Microsoft Windows 10.
Пошаговая инструкция как разблокировать PKI раздел
Шаг 1. Переключение в режим администрирования
В меню «Пуск» найдите приложение «Единый клиент JaCarta» и откройте его.
Рис. 1. Единый клиент JaCarta
Откроется рабочая область программы.
Рис. 2. Переключение в режим администрирования
Откроется рабочая область программы. Если раздел PKI заблокирован, вкладка PKI будет красной.
Рис. 3. Информация о токене
Шаг 2. Проверка блокировки PKI раздела
Чтобы понять, что раздел PKI действительно заблокирован, нажмите во вкладке «Информация о токене» на ссылку «Полная информация…».
Откроется «Подробная информация о токене». В новом окне найдите раздел «Информация о приложении PKI». Если статус в строке «PIN-код» — «Заблокирован», то закройте окно и перейдите к следующему пункту инструкции.
Рис. 4. Подробная информация о токене
Шаг 3. Разблокировка PKI раздела
Перейдите на вкладку «PKI». В панели «Операции с приложением» выберите пункт «Разблокировать PIN-код пользователя…».
Откроется окно «Разблокировка PIN-кода пользователя», в котором укажите:
- Текущий PIN-код администратора – по умолчанию 00000000;
- Новый PIN-код пользователя – по умолчанию 11111111;
- Подтверждение кода (имеется ввиду PIN-кода пользователя).
Рис. 6. Разблокировка PIN-кода пользователя
После указания PIN-кодов, нажмите «Выполнить».
Если все введено корректно, появится уведомление. Нажмите «ОК» для завершения.
Рис. 7. Уведомление об успешной разблокировке
Перейдите на вкладку «Информация о токене» и нажмите на ссылку «Полная информация» для проверки текущего статуса приложения PKI. Статус должен быть «Установлен».
Рис. 8. Проверка статуса
Если статус изменился, разблокировка завершена.
Приветствую, читатель!
По общению с некоторыми активно интересующимися читателями, я решил повторить свой «поисковой» эксперимент, который я делал, когда писал первые обзорные материалы на темы токенов. На этот раз я решил собрать в кучу неудачные опыты использования токенов, собрать ошибки Jacarta. Пишу сразу с конкретикой, так как думаю сделать разные подборки для каждой из марки. Начнем с лидера рынка, компания Аладдин Р.Д. и их продукт Jacarta, токен, который используется именно для ЕГАИС.
Чего не будет в этом посте:
1. я не буду давать решения для ошибок Jacarta, потому что каждая ситуация индивидуальна.
2.Может быть и так, что Джакарта-токен не причина ошибки. Это может быть УТМ и т.д. Поэтому каждый случай надо разбирать в отдельность
3.Умножение ошибок, дабы очернить продукт. Моя задача дать предельно стороннюю сводку того, с чем чаще всего стакиваются пользователи Jacarta токена в ЕГАИСе.
Подборка и систематизация отзывов о Джакарте
В прошлый раз мое исследование было ограниченно официальным форумом ЕГАИС (http://egais2016.ru/), сейчас я расширил спектр изучения форумов, чтобы сделать материал более обширным.
Итак, Джакарта-токен для ЕГАИС будет анализироваться по отзывам со следующих источников:
Естественно, боле всего результатов обнаружилось на форуме ЕГАС
Итого, по запросу вышло у нас 630 сообщений
Нашлось 3 толстых ветки
Например, вот случай, когда полетело подряд 8 JaCarta-токенов
из-за, цитирую:
«Ошибка 0х00000006 в разделе PKI при попытке форматирования. Либо джакарта просто не определяется как устройство. Обновляли клиент до версии 2,9. Пробовали через jacarta format. Ни один способ ни разу не помог»
Проблема, когда не система просто не видит Jacarta, действительно серьезная и самая, пожалуй, распространенная. Другой вопрос в том, что причин появления этой ошибки могут быть различные нарушения.
Еще одна обнаруженная ошибка, когда опять-таки Джакарта не определяется, устройства не видят Jacarta. Забавно отметить, что Аладдин дает ответные письма по негодованиям пользователей, но по другой проблеме =)))) Но дают же! Это важно.
Частенько ошибки при обнаружении и инсталляции, но там могут быть и проблемы дистрибутивов УТМ, что тоже очень часто происходит. Я внимательно читаю все ветки и поэтому будьте уверены, не буду указывать тут не существующих ошибок для Jacarta. Хотя тут вопрос весьма сложный, так как когда система не видит Jacarta, это может быть обоюдная пролема.
В одной из уже указанных веток есть вот такой интересный коммент
А что теперь делать пользователям Jacarta токена, когда связи между Жемальто и Аладдином расторгнуты?
На форуме egaisa.net
Нашлось 5 веток обсуждений
В основном типовые ошибки при инициализации работы, а также когда уже все настройки сделаны, непостоянная работа Джакарты. Также часты ошибки после обновлений, когда система не находит или не видит Jacarta
Если почитать форумы более внимательно, то выйдет, что на начальном этапе всем впаривали Jacarta токен для ЕГАИСА, не вникая в подробности и вообще не просвещая клиентов, что не только Джакарта может быть… Но об этом мы уже не раз говорили, а вы можете убедиться.
Давайте вернемся к ЕГАИС форуму.
Всего у нас ответов по поисковику 630 за все время работы. Естественно проблемы более чем годичной давности рассматривать нет смысла.
Например, из самых частых ошибок
- Ошибки при попытке формирования сертификата RSA
- Ошибки синхронизации с УТМ
- Ошибка при обновлении
- Ошибка 610
- Ошибка обнаружения Jacarta
Почему у Джакарта плохие отзывы?
Подытожим, что Джакарта токен много кем используется, однако стабильность работы хромает. Я также нашел такое мнение, что это м.б. зависеть от «партии поставки», наверное это очень странно, так как ПО-шки для всех одни и те же должны быть. Возможно это результат того, что в итоге Джакарта собирается из множества разноразрозненных деталей, что приводит к нестабильной работе и умиранию всего организма в целом.
В следующей серии поговорим о Рутокене, смарт-картах и других продуктах СКЗИ.
Спасибо, что остаетесь на связи.
Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:
Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Стандартные коды ошибок
В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.
В таблице 2.29 приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык) или приложении (русский язык).
Таблица
2.29
. Коды ошибок стандарта
Код ошибки |
Описание |
CKR_ARGUMENTS_BAD |
Недопустимый аргумент |
CKR_ATTRIBUTE_READ_ONLY |
Невозможно установить или изменить значение атрибута приложением |
CKR_ATTRIBUTE_SENSITIVE |
Атрибут недоступен для чтения |
CKR_ATTRIBUTE_TYPE_INVALID |
Некорректный тип атрибута |
CKR_ATTRIBUTE_VALUE_INVALID |
Некорректное значение атрибута |
CKR_BUFFER_TOO_SMALL |
Размер заданного буфера является недостаточным для вывода результатов выполнения функции |
Библиотека не поддерживает блокировку для защиты потоков; возвращается только при вызове функции C_Initialize |
|
CKR_CRYPTOKI_ALREADY_INITIALIZED |
Библиотека уже инициализирована (предыдущий вызов функции C_Initialize |
CKR_CRYPTOKI_NOT_INITIALIZED |
Выполнение функции невозможно, так как библиотека не инициализирована; возвращается только при вызове любой функции, за исключением C_Initialize |
CKR_DATA_INVALID |
Некорректные входные данные для выполнения криптографической операции |
CKR_DATA_LEN_RANGE |
Входные данные имеют некорректный размер для выполнения криптографической операции |
CKR_DEVICE_ERROR |
Ошибка при обращении к токену или слоту |
CKR_DEVICE_MEMORY |
Недостаточно памяти токена для выполнения запрошенной функции |
CKR_DEVICE_REMOVED |
Токен был удален из слота во время выполнения функции |
CKR_DOMAIN_PARAMS_INVALID |
Функции переданы некорректные или не поддерживаемые параметры домена |
CKR_ENCRYPTED_DATA_INVALID |
Для операции расшифрования переданы некорректно зашифрованные данные |
CKR_ENCRYPTED_DATA_LEN_RANGE |
Для операции расшифрования переданы зашифрованные данные некорректного размера |
CKR_FUNCTION_CANCELED |
Выполнение функции было прервано |
CKR_FUNCTION_FAILED |
При выполнении функции возник сбой |
CKR_FUNCTION_NOT_SUPPORTED |
Запрашиваемая функция не поддерживается библиотекой |
CKR_FUNCTION_REJECTED |
Запрос на подпись был отклонен пользователем |
CKR_GENERAL_ERROR |
Критическая ошибка, связанная с аппаратным обеспечением |
Недостаточно памяти для выполнения функции на рабочей станции, где установлена библиотека |
|
CKR_KEY_FUNCTION_NOT_PERMITTED |
Атрибуты ключа не позволяют выполнить операцию |
CKR_KEY_HANDLE_INVALID |
Функции передан некорректный идентификатор (хэндл) ключа |
CKR_KEY_NOT_WRAPPABLE |
Невозможно зашифровать ключ |
CKR_KEY_SIZE_RANGE |
Недопустимый размер ключа |
CKR_KEY_TYPE_INCONSISTENT |
Тип ключа не соответствует данному механизму |
CKR_KEY_UNEXTRACTABLE |
Невозможно зашифровать ключ, так как атрибут CKA_UNEXTRACTABLE установлен в значение CK_TRUE |
CKR_MECHANISM_INVALID |
Указан неправильный механизм для выполнения криптографической операции |
CKR_MECHANISM_PARAM_INVALID |
Указаны неправильные параметры механизма для выполнения криптографической операции |
CKR_NEED_TO_CREATE_THREADS |
Программа не поддерживает внутренних методов операционной системы для создания новых потоков |
CKR_OBJECT_HANDLE_INVALID |
Функции передан некорректный идентификатор (хэндл) объекта |
CKR_OPERATION_ACTIVE |
Выполнение операции невозможно, поскольку такая операция уже выполняется |
CKR_OPERATION_NOT_INITIALIZED |
Невозможно выполнить операцию в этой сессии |
Срок действия PIN-кода истек |
|
CKR_PIN_INCORRECT |
Функции передан PIN-код, который не соответствует тому, который сохранен на токене |
Значение PIN-кода содержит недопустимые символы |
|
CKR_PIN_LEN_RANGE |
Недопустимая длина PIN-кода |
CKR_RANDOM_NO_RNG |
Данный токен не поддерживает генерацию случайных чисел |
CKR_SESSION_CLOSED |
Сессия была закрыта во время выполнения функции |
CKR_SESSION_COUNT |
Достигнуто предельное количество открытых сессий для данного токена |
CKR_SESSION_EXISTS |
Сессия с токеном уже открыта и поэтому токен не может быть инициализирован |
CKR_SESSION_HANDLE_INVALID |
Функции передан некорректный идентификатор (хэндл) сеанса |
CKR_SESSION_PARALLEL_NOT_SUPPORTED |
Данный токен не поддерживает параллельные сессии |
CKR_SESSION_READ_ONLY |
Невозможно выполнить действие, поскольку это сессия R/O |
CKR_SESSION_READ_WRITE_SO_EXISTS |
Уже открыта сессия R/W, поэтому открыть сессию R/O невозможно |
CKR_SIGNATURE_INVALID |
Неверное значение ЭЦП |
CKR_SIGNATURE_LEN_RANGE |
Значение ЭЦП неверно по длине |
CKR_SLOT_ID_INVALID |
Слота с данным ID не существует |
CKR_TEMPLATE_INCOMPLETE |
Для создания объекта недостаточно атрибутов |
CKR_TEMPLATE_INCONSISTENT |
Заданные атрибуты противоречат друг другу |
CKR_TOKEN_NOT_PRESENT |
Токен отсутствует в слоте во время вызова функции |
CKR_UNWRAPPING_KEY_HANDLE_INVALID |
Функции передан некорректный идентификатор (хэндл) ключа дешифрования |
CKR_UNWRAPPING_KEY_SIZE_RANGE |
Недопустимый размер ключа дешифрования |
CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT |
Тип ключа дешифрования не соответствует данному механизму |
CKR_USER_ALREADY_LOGGED_IN |
|
CKR_USER_ANOTHER_ALREADY_LOGGED_IN |
|
CKR_USER_NOT_LOGGED_IN |
|
CKR_USER_PIN_NOT_INITIALIZED |
Не инициализирован PIN-код пользователя |
CKR_USER_TOO_MANY_TYPES |
|
CKR_USER_TYPE_INVALID |
Задан некорректный тип пользователя |
CKR_WRAPPED_KEY_INVALID |
Задан некорректный зашифрованный ключ |
CKR_WRAPPED_KEY_LEN_RANGE |
Задана некорректная длина зашифрованного ключа |
CKR_WRAPPING_KEY_HANDLE_INVALID |
Функции передан некорректный идентификатор (хэндл) ключа шифрования |
CKR_WRAPPING_KEY_SIZE_RANGE |
Недопустимый размер ключа шифрования |
CKR_WRAPPING_KEY_TYPE_INCONSISTENT |
Тип ключа шифрования не соответствует данному механизму |
Специальные коды ошибок
В таблице 2.30 приведен список всех расширенных кодов ошибок стандарта PKCS #11 вместе с их описанием. Расширенные коды ошибок могут возвращать как стандартные функции, так и функции расширения.
Таблица 2.30
. Коды ошибок стандарта
PKCS #11, поддерживаемые устройствами Рутокен
Код ошибки |
Описание |
CKR_CORRUPTED_MAPFILE |
Данная ошибка возвращается при повреждении MAP-файла (при считывании MAP-файла было обнаружено, что тег заголовка MAP-файла (2 байта) является недопустимым) |
CKR_RTPKCS11_DATA_CORRUPTED |
Данная ошибка возвращается, если было обнаружено нарушение целостности данных на токене (при считывании файла, содержащего объект PKCS#11, было обнаружено, что тег заголовка объекта (2 байта) является недопустимым) |
CKR_WRONG_VERSION_FIELD |
Данная ошибка возвращается, если файл, содержащий объект PKCS#11, имеет некорректную версию (при считывании любого файла (MAP-файла или файла, содержащего объект PKCS#11) было обнаружено, что версия заголовка (4 байта) является недопустимой) |
CKR_WRONG_ |
Данная ошибка возвращается, если расшифрованное сообщение имеет некорректную форму |
CKR_RTPKCS11_RSF_DATA_CORRUPTED |
Данная ошибка возвращается, если попытка использовать RSF-файл завершилась неудачей |
Добрый день!. Последние два дня у меня была интересная задача по поиску решения на вот такую ситуацию, есть физический или виртуальный сервер, на нем установлена наверняка многим известная КриптоПРО. На сервер подключен , который используется для подписи документов для ВТБ24 ДБО
. Локально на Windows 10 все работает, а вот на серверной платформе Windows Server 2016 и 2012 R2, Криптопро не видит ключ JaCarta
. Давайте разбираться в чем проблема и как ее поправить.
Описание окружения
Есть виртуальная машина на Vmware ESXi 6.5, в качестве операционной системы установлена Windows Server 2012 R2 . На сервере стоит КриптоПРО 4.0.9944, последней версии на текущий момент. С сетевого USB хаба, по технологии USB over ip , подключен ключ JaCarta. Ключ в системе видится
, а вот в КриптоПРО нет.
Алгоритм решения проблем с JaCarta
КриптоПРО очень часто вызывает различные ошибки в Windows, простой пример (Windows installer service could not be accessed). Вот так вот выглядит ситуация, когда утилита КриптоПРО не видит сертификат в контейнере.
Как видно в утилите UTN Manager ключ подключен, он видится в системе в смарт картах в виде Microsoft Usbccid (WUDF) устройства, но вот CryptoPRO, этот контейнер не определяет и у вас нет возможности установить сертификат. Локально токен подключали, все было то же самое. Стали думать что сделать.
Возможные причины с определением контейнера
- Во первых, это проблема с драйверами, например, в Windows Server 2012 R2, JaCarta в идеале должна определяться в списке смарт карт как JaCarta Usbccid Smartcard, а не Microsoft Usbccid (WUDF)
- Во вторых если устройство видится как Microsoft Usbccid (WUDF), то версия драйверов может быть устаревшей, и из-за чего ваши утилиты будут не определять защищенный USB носитель.
- Устарелая версия CryptoPRO
Как решить проблему, что криптопро не видит USB ключ?
Создали новую виртуальную машину и стали ставить софт все последовательно.
Перед установкой любого программного обеспечения работающего с USB носителями на которых находятся сертификаты и закрытые ключи. Нужно ОБЯЗАТЕЛЬНО
отключить токен, если воткнут локально, то отключаем его, если по сети, разрываем сессию
- Первым делом обновляем вашу операционную систему , всеми доступными обновлениями, так как Microsoft исправляет много ошибок и багов, в том числе и драйверами.
- Вторым пунктом является, в случае с физическим сервером, установить все свежие драйвера на материнскую плату и все периферийное оборудование.
- Далее устанавливаете Единый Клиент JaCarta.
- Устанавливаете свежую версию КриптоПРО
Установка единого клиента JaCarta PKI
Единый Клиент JaCarta
— это специальная утилита от компании «Аладдин», для правильной работы с токенами JaCarta. Загрузить последнюю версию, данного программного продукта, вы можете с официального сайта, или у меня с облака, если вдруг, не получиться с сайта производителя.
Далее полученный архив вы распаковываете и запускаете установочный файл, под свою архитектуру Windows , у меня это 64-х битная. Приступаем к установке Jacarta драйвера. Единый клиент Jacarta, ставится очень просто (НАПОМИНАЮ ваш токен в момент инсталляции, должен быть отключен). На первом окне мастера установки, просто нажимаем далее.
Принимаем лицензионное соглашение и нажимаем «Далее»
Чтобы драйвера токенов JaCarta у вас работали корректно, достаточно выполнить стандартную установку.
Если выберете «Выборочную установку», то обязательно установите галки:
- Драйверы JaCarta
- Модули поддержки
- Модуль поддержки для КриптоПРО
Через пару секунд, Единый клиент Jacarta, успешно установлен.
Обязательно произведите перезагрузку сервера или компьютера, чтобы система увидела свежие драйвера.
После установки JaCarta PKI, нужно установить КриптоПРО, для этого заходите на официальный сайт.
https://www.cryptopro.ru/downloads
На текущий момент самая последняя версия КриптоПро CSP 4.0.9944. Запускаем установщик, оставляем галку «Установить корневые сертификаты» и нажимаем «Установить (Рекомендуется)»
Инсталляция КриптоПРО будет выполнена в фоновом режиме, после которой вы увидите предложение, о перезагрузке браузера, но я вам советую полностью перезагрузиться.
После перезагрузки подключайте ваш USB токен JaCarta. У меня подключение идет по сети, с устройства DIGI, через . В клиенте Anywhere View, мой USB носитель Jacarta, успешно определен, но как Microsoft Usbccid (WUDF), а в идеале должен определиться как JaCarta Usbccid Smartcard, но нужно в любом случае проверить, так как все может работать и так.
Открыв утилиту «Единый клиент Jacarta PKI», подключенного токена обнаружено не было, значит, что-то с драйверами.
Microsoft Usbccid (WUDF) — это стандартный драйвер Microsoft, который по умолчанию устанавливается на различные токены, и бывает, что все работает, но не всегда. Операционная система Windows по умолчанию, ставит их в виду своей архитектуры и настройки, мне вот лично в данный момент такое не нужно. Что делаем, нам нужно удалить драйвера Microsoft Usbccid (WUDF) и установить драйвера для носителя Jacarta.
Откройте диспетчер устройств Windows, найдите пункт «Считыватели устройств смарт-карт (Smart card readers)» щелкните по Microsoft Usbccid (WUDF) и выберите пункт «Свойства». Перейдите на вкладку «Драйвера» и нажмите удалить (Uninstall)
Согласитесь с удалением драйвера Microsoft Usbccid (WUDF).
Вас уведомят, что для вступления изменений в силу, необходима перезагрузка системы, обязательно соглашаемся.
После перезагрузки системы, вы можете увидеть установку устройства и драйверов ARDS Jacarta.
Откройте диспетчер устройств, вы должны увидеть, что теперь ваше устройство определено, как JaCarta Usbccid Smartcar и если зайти в его свойства, то вы увидите, что смарт карта jacarta, теперь использует драйвер версии 6.1.7601 от ALADDIN R.D.ZAO, так и должно быть.
Если открыть единый клиент Jacarta, то вы увидите свою электронную подпись, это означает, что смарт карта нормально определилась.
Открываем CryptoPRO, и видим, что криптопро не видит сертификат в контейнере, хотя все драйвера определились как нужно. Есть еще одна фишка.
- В RDP сессии вы не увидите свой токен, только локально, уж такая работа токена, либо я не нашел как это поправить. Вы можете попробовать выполнить рекомендации по устранению ошибки «Не возможно подключиться к службе управления смарт-картами».
- Нужно снять одну галку в CryptoPRO
ОБЯЗАТЕЛЬНО снимите галку «Не использовать устаревшие cipher suite-ы» и перезагрузитесь
.
После этих манипуляций у меня КриптоПРО увидел сертификат и смарт карта jacarta стала рабочей, можно подписывать документы.
Еще можете в устройствах и принтерах, увидеть ваше устройство JaCarta,
Если у вас как и у меня, токен jacarta установлен в виртуальной машине, то вам придется устанавливать сертификат, через console виртуальной машины, и так же дать на нее права ответственному человеку. Если это физический сервер, то там придется давать права на порт управления , в котором так же есть виртуальная консоль.
Когда вы установили все драйвера для токенов Jacarta, вы можете увидеть при подключении по RDP и открытии утилиты «Единый клиент Jacarta PKI» вот такое сообщение с ошибкой:
- Не запущена служба смарт-карт на локальной машине. Архитектурой RDP-сессии, разработанной Microsoft, не предусмотрено использование ключевых носителей, подключенных к удалённому компьютеру, поэтому в RDP-сессии удалённый компьютер использует службу смарт-карт локального компьютера. Из этого следует что, запуска службы смарт-карт внутри RDP-сессии недостаточно для нормальной работы.
- Служба управления смарт-картами на локальном компьютере запущена, но недоступна для программы внутри RDP-сессии из-за настроек Windows и/или RDP-клиента.
Как исправить ошибку «Не возможно подключиться к службе управления смарт-картами».
- Запустите службу смарт-карт на локальной машине, с которой вы инициируете сеанс удалённого доступа. Настройте её автоматический запуск при старте компьютера.
- Разрешите использование локальных устройств и ресурсов во время удалённого сеанса (в частности, смарт-карт). Для этого, в диалоге «Подключение к удалённому рабочему столу» в параметрах выберите вкладку «Локальные ресурсы», далее в группе «Локальные устройства и ресурсы» нажмите кнопку «Подробнее…», а в открывшемся диалоге выберите пункт «Смарт-карты» и нажмите «ОК», затем «Подключить».
- Убедитесь в сохранности настроек RDP-подключения. По умолчанию они сохраняются в файле Default.rdp в каталоге «Мои Документы» Проследите, чтобы в данном файле присутствовала строчка «redirectsmartcards:i:1».
- Убедитесь в том, что на удалённом компьютере, к которому вы осуществляете RDP-подключение, не активирована групповая политика
-[Конфигурация компьютераадминистративные шаблоныкомпоненты windowsслужбы удалённых рабочих столовузел сеансов удалённых рабочих столовперенаправление устройств и ресурсовНе разрешать перенаправление устройства чтения смарт-карт]. Если она включена (Enabled), то отключите её, и перегрузите компьютер. - Если у вас установлена Windows 7 SP1 или Windows 2008 R2 SP1 и вы используете RDC 8.1 для соединения с компьютерами под управлением Windows 8 и выше, то вам необходимо установить обновление для операционной системы https://support.microsoft.com/en-us/kb/2913751
Вот такой вот был траблшутинг по настройке токена Jacarta, КриптоПРО на терминальном сервере, для подписи документов в ВТБ24 ДБО. Если есть замечания или поправки, то пишите их в комментариях.
Pkcs11 ckr device error
Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:
- стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
- специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.
Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Стандартные коды ошибок
В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.
В таблице 2.29 приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык) или приложении (русский язык).
Таблица 2.29. Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен
Код ошибки
Описание
Невозможно установить или изменить значение атрибута приложением
Источник
pkcs#11
Сообщений 13
#1 Тема от mityase 2009-06-01 15:53:13
- mityase
- Посетитель
- Неактивен
pkcs#11
При вызове функции C_InitToken возвращается CKR_DEVICE_ERROR. Это нормально?
#2 Ответ от Алексей Несененко 2009-06-02 09:35:10
- Алексей Несененко
- Посетитель
- Неактивен
Re: pkcs#11
Какая у Вас версия драйверов?
Какая у Вас версия библиотеки rtPKCS11.dll?
После установки новых драйверов (версии 2.22.01.0227) должна быть версия rtPKCS11.dll 2.21.0.0
#3 Ответ от mityase 2009-06-02 14:00:08
- mityase
- Посетитель
- Неактивен
Re: pkcs#11
Установил свежий драйвер. Ситуация не изменилась.
#4 Ответ от Алексей Несененко 2009-06-02 15:16:33
- Алексей Несененко
- Посетитель
- Неактивен
Re: pkcs#11
Версию DLL проверили?
#5 Ответ от mityase 2009-06-02 15:55:41
- mityase
- Посетитель
- Неактивен
Re: pkcs#11
2.21.00.
Но вызывая C_GetInfo, я получаю следующие версии:
CryptokiVersion: 2.1
LibraryVersion: 2.0
#6 Ответ от Алексей Несененко 2009-06-04 09:52:49
- Алексей Несененко
- Посетитель
- Неактивен
Re: pkcs#11
Вы проверяли — сам токен рабочий?
#7 Ответ от mityase 2009-06-04 10:52:19
- mityase
- Посетитель
- Неактивен
Re: pkcs#11
Да, проверял, на одном из ваших примеров на создание объектов — токен корректно отработал. Вообще у меня три рутокена и ведут себя они одинаково — вылетает CKR_DEVICE_ERROR при вызове C_InitToken, все остальные функции, которые успел попробовать работают нормально.
#8 Ответ от Алексей Несененко 2009-06-04 11:12:56
- Алексей Несененко
- Посетитель
- Неактивен
Re: pkcs#11
Пришлите, пожалуйста, Ваш пример, который выдает ошибку на адрес hotline@rutoken.ru
#9 Ответ от mityase 2009-06-04 11:58:22
- mityase
- Посетитель
- Неактивен
Re: pkcs#11
Это пример InitToken из SDK.
#10 Ответ от Андрей Марухин 2009-06-04 14:43:47
- Андрей Марухин
- Посетитель
- Неактивен
Re: pkcs#11
Согласно стандарту PKCS #11 (текущей версии v 2-20), появление ошибки CKR_DEVICE_ERROR при вызове какой-либо функции должно сигнализировать о том, что произошел сбой в работе токена или слота. Однако, поскольку ошибка возникает именно при вызове функции C_InitToken и имеющиеся токены исправны, то возможен такой вариант.
Если при попытке инициализации токена с помощью C_InitToken Cryptoki обнаружит, что у некоторого приложения открыт сеанс с токеном, то функция завершится с ошибкой CKR_SESSION_EXISTS, а токен не будет инициализирован. К сожалению, сам Cryptoki не всегда способен определить наличие открытого сеанса с токеном. В этом случае поведение и последствия вызова функции C_InitToken не определены. В связи с этим, не могли бы Вы уточнить:
— имеются ли в системе какие-либо приложения, также использующие интерфейс PKCS #11;
— установлено ли в системе ПО для токенов других производителей;
— что происходит при вызове криптографических функций (генерация ключей, шифрование, расшифрование) из наших примеров?
#11 Ответ от mityase 2009-06-04 15:32:37
- mityase
- Посетитель
- Неактивен
Re: pkcs#11
— нет, по-крайней мере вашу реализацию;
— нет;
— они корректно отрабатывают.
Пока пользуюсь инициализацией через утилиту администрирования. Работает.
Насколько я понимаю, утилита работает через тот же низкоуровненый интерфейс, что и pkcs#11?
#12 Ответ от Андрей Марухин 2009-06-04 17:50:45
- Андрей Марухин
- Посетитель
- Неактивен
Re: pkcs#11
Да, утилита и библиотека используют тот же низкоуровневый интерфейс. Однако, выполняемые ими операции вовсе неэквивалентны.
Утилита администрирования позволяет инициализировать всю файловую систему токена, создавая дерево предопределенных папок со служебными файлами и объекты, хранящие PIN-коды пользователя и администратора. Т.е. в этом случае полностью перезаписывается вся память токена.
Функция C_InitToken всего лишь подготавливает структуру папок для хранения объектов PKCS #11, которые располагаются в предопределенной папке 3F00000000001. Фактически C_InitToken только удаляет содержимое этой папки и задает символьное имя токена.
Поэтому такое поведение весьма странно.
Скажите, а попытка вызова C_InitToken для предварительно инициализированного с помощью утилиты администрирования токена тоже заканчивается ошибкой CKR_DEVICE_ERROR?
#13 Ответ от mityase 2009-06-04 18:05:21
- mityase
- Посетитель
- Неактивен
Re: pkcs#11
Вопрос снят. Спасибо.
Я инициализировал токен со следующим параметром:
«PIN-код Пользователя имеют право менять» *Администратор.
Не обратил внимание на сообщение, примите извинения за отобранное время. Я инициализировал токен до этого с правом смены у пользователя и, видимо, приложению просто не хватило полномочий для сброса пин-кода при инициализации.
Источник
Функции управления сеансами¶
C_OpenSession ¶
CK_RV C_OpenSession ( CK_SLOT_IDslotID, CK_FLAGSflags, CK_VOID_PTRpApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTRphSession ) ¶
Параметры: |
|
---|
Открывает сеанс между приложением и токеном в заданном слоте.
Аргументы pApplication и Notify – должны принимать значение NULL_PTR .
Результат: |
|
---|
Данный аргумент возвращается только функцией C_OpenSession .
Данный аргумент возвращается только функцией C_OpenSession .
Полный список ошибок см. в приложении .
C_CloseSession ¶
CK_RV C_CloseSession ( CK_SESSION_HANDLEhSession ) ¶
Параметры: |
|
---|
Закрывает сеанс между приложением и токеном. При выполнении освобождает все буферы памяти, выделенные в рамках текущего сеанса (аналогично вызову функции freeBuffer() ).
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_CloseAllSessions ¶
CK_RV C_CloseAllSessions ( CK_SLOT_IDslotID ) ¶
Параметры: |
|
---|
Закрывает все сеансы на данном слоте. При выполнении освобождает все буферы памяти, выделенные в рамках всех закрываемых сеансов (аналогично вызову функции freeBuffer() ).
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_GetSessionInfo ¶
CK_RV C_GetSessionInfo ( CK_SESSION_HANDLEhSession, CK_SESSION_INFO_PTRpInfo ) ¶
Параметры: |
|
---|
Функция C_GetSessionInfo записывает информацию о сеансе в структуру CK_SESSION_INFO .
Запускается в режимах
Результат: |
|
---|
Полный список ошибок см. в приложении .
C_Login ¶
CK_RV C_Login ( CK_SESSION_HANDLEhSession, CK_USER_TYPEuserType, CK_UTF8CHAR_PTRpPin, CK_ULONGulPinLen ) ¶
Параметры: |
|
---|
Функция C_Login используется для ввода PIN-кода и перехода в режим пользователя или администратора. При работе с Антифрод-терминалом ввод PIN-кода происходит с экрана терминала, а не с клавиатуры.
Криптотокен
Возможные значения параметра userType и PIN-коды по умолчанию:
Пользователь | Значение userType | PIN-код по умолчанию |
---|---|---|
Администратор | CKU_SO | 1234567890 |
Пользователь | CKU_USER | Не установлен |
Криптотокен 2 ЭП
Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):
Пользователь | Значение userType | PIN-код по умолчанию |
---|---|---|
Пользователь | CKU_USER | 1234567890 |
Подпись | CKU_SIGNATURE | Задается пользователем |
Функция C_Login() вызывается с параметром userType равным CKU_SIGNATURE только после перехода в режим Пользователя.
Laser
Возможные значения параметра userType и PIN-коды по умолчанию:
Datastore
Возможные значения параметра userType и PIN-коды по умолчанию:
Пользователь | Значение userType | PIN-код по умолчанию |
---|---|---|
Администратор | CKU_SO |
Пользователь | Значение userType | PIN-код по умолчанию |
---|---|---|
Администратор | CKU_SO | Не установлен |
Пользователь | CKU_USER | 1234567890 |
Запускается в режимах
Для Криптотокен 2 ЭП:
- Пользователь — при userType равном CKU_SIGNATURE ;
- Гость — при userType равном CKU_SO и CKU_USER .
Результат: |
|
---|
Данный аргумент возвращается только функцией C_Login .
Данный аргумент возвращается только функцией C_Login .
Данный аргумент возвращается только функцией C_Login .
Полный список ошибок см. в приложении .
C_Logout ¶
CK_RV C_Logout ( CK_SESSION_HANDLEhSession ) ¶
Параметры: |
|
---|
Сброс предъявления PIN-кода пользователя или администратора.
Источник
ключ вынут вставлен обратно…
Цитата:
2016-07-26 18:08:15,076 INFO ru.centerinform.crypto.b — Внимание! Не будет сделана подпись для 18 документов!
2016-07-26 18:08:15,169 INFO org.eclipse.jetty.server.handler.ContextHandler — Stopped [email]o.e.j.w.WebAppContext@1739528{/,null,UNAVAILABLE}{/ROOT.war[/email]}
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-672,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-677,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-666,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-20,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-705,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-727,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-17,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-756,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-739,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-23,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-721,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-24,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-711,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-732,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-21,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-689,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-734,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-684,5,main]
2016-07-26 18:08:45,201 WARN org.eclipse.jetty.util.thread.QueuedThreadPool — qtp13551507{STOPPING,8<=25<=200,i=0,q=19} Couldn’t stop Thread[qtp13551507-712,5,main]
2016-07-26 18:08:45,201 INFO es.programador.transport.Transport — Остановка служб завершена
2016-07-26 18:08:45,201 INFO es.programador.transport.Transport — Остановка работы планировщика задач
2016-07-26 18:08:45,201 INFO org.quartz.core.QuartzScheduler — Scheduler QuartzScheduler_$_NON_CLUSTERED shutting down.
2016-07-26 18:08:45,201 INFO org.quartz.core.QuartzScheduler — Scheduler QuartzScheduler_$_NON_CLUSTERED paused.
2016-07-26 18:08:45,201 INFO org.quartz.core.QuartzScheduler — Scheduler QuartzScheduler_$_NON_CLUSTERED shutdown complete.
2016-07-26 18:08:45,201 INFO ru.centerinform.crypto.b — Внимание! Не будет сделана подпись для 18 документов!
2016-07-26 18:14:17,654 INFO es.programador.transport.Transport — Загрузка конфигурации
2016-07-26 18:14:17,747 INFO es.programador.transport.a.a — Загрузка файла настроек: C:UTMtransporterconftransport.properties
2016-07-26 18:14:17,779 INFO es.programador.transport.a.a — Периодичность перезагрузки настроек выставлена в 10001 мс
2016-07-26 18:14:18,029 INFO es.programador.transport.Transport — Чтение конфигурации
я хер знает как это понимать…
Hi all,
I had my smartcard working on ArchLinux some while ago to use the certificate for website logins in Firefox. This stopped working at some update, but I failed to notice when.
When accessing the website, it asks for the smartcard PIN and displays the certificate information correctly. If I proceed, this error is thrown:
Secure Connection Failed
An error occurred during a connection to fn2.flexnow.ruhr-uni-bochum.de. A PKCS #11 module returned CKR_GENERAL_ERROR, indicating that an unrecoverable error has occurred. Error code: SEC_ERROR_PKCS11_GENERAL_ERROR
This is the slightly more detailed pkcs11-tool output:
$ pkcs11-tool --module /usr/lib64/onepin-opensc-pkcs11.so -t -l
Using slot 0 with a present token (0x0)
Logging in to "Student Card (User Pin)".
Please enter User PIN:
C_SeedRandom() and C_GenerateRandom():
seeding (C_SeedRandom) not supported
seems to be OK
Digests:
all 4 digest functions seem to work
MD5: OK
SHA-1: OK
RIPEMD160: OK
Signatures (currently only RSA signatures)
testing key 0 (RUBSIGNCERT)
error: PKCS11 function C_SignFinal failed: rv = CKR_GENERAL_ERROR (0x5)
Since this worked before, which packages are necessary to downgrade? What could help identify the issue and report it to upstream? If any verbose debug output is produced, please tell me if it compromises smartcard security.
Reader: OmniKey AG CardMan 4321
Smartcard Software:
local/opensc 0.16.0-2
local/pcsc-perl 1.4.14-2
local/pcsc-tools 1.4.27-1
local/pcsclite 1.8.20-1
Firefox 52.0.1-1
In Firefox, Security Device is /usr/lib/opensc-pkcs11.so
Last edited by 912012 (2017-03-21 19:01:48)