Перейти к содержимому

Функции управления сеансами

USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta

CK_RV C_OpenSession(CK_SLOT_ID * slotID*, CK_FLAGS * flags*, CK_VOID_PTR * pApplication*, CK_NOTIFY * Notify*, CK_SESSION_HANDLE_PTR * phSession*) Параметры:

  • slotID (in) – идентификатор слота.
  • flags (in) – флаги, определяющие тип сеанса.
  • pApplication (in) – определяемый приложением указатель, который будет передан возвратному уведомлению (notification callback). Должен принимать значение NULL_PTR.
  • Notify (in) – адрес функции возвратного уведомления (notification callback). Должен принимать значение NULL_PTR.
  • phSession (out) – указатель на объект, который получает дескриптор нового сеанса. Открывает сеанс между приложением и токеном в заданном слоте.

Примечание: Аргументы pApplication и Notify – должны принимать значение NULL_PTR.

Результат:

  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SESSION_COUNT – открыто слишком большое количество сеансов. Примечание: Данный аргумент возвращается только функцией C_OpenSession.
  • CKR_SESSION_PARALLEL_NOT_SUPPORTED – данный токен не поддерживает параллельные сеансы. Примечание: Данный аргумент возвращается только функцией C_OpenSession.
  • CKR_SESSION_READ_WRITE_SO_EXISTS – сеанс чтения/записи уже открыт, администратор не имеет возможности залогиниться.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен.
  • CKR_TOKEN_NOT_RECOGNIZED – токен не поддерживается.
  • CKR_TOKEN_WRITE_PROTECTED – данный токен защищен от записи. Совет: Полный список ошибок см. в приложении.

CK_RV C_CloseSession(CK_SESSION_HANDLE hSession) Параметры:

  • hSession (in) – дескриптор сеанса. Закрывает сеанс между приложением и токеном. При выполнении освобождает все буферы памяти, выделенные в рамках текущего сеанса (аналогично вызову функции freeBuffer()). Запускается в режимах:
  • Администратор;
  • Пользователь;
  • Гость. Результат:
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SESSION_CLOSED – сеанс был закрыт в момент выполнения функции.
  • CKR_SESSION_HANDLE_INVALID – недопустимый дескриптор сеанса. Совет: Полный список ошибок см. в приложении.

CK_RV C_CloseAllSessions(CK_SLOT_ID slotID) Параметры:

  • slotID (in) – идентификатор слота. Закрывает все сеансы на данном слоте. При выполнении освобождает все буферы памяти, выделенные в рамках всех закрываемых сеансов (аналогично вызову функции freeBuffer()).

Запускается в режимах:

Результат:

  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен. Совет: Полный список ошибок см. в приложении.

CK_RV C_GetSessionInfo(CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo) Параметры:

  • hSession (in) – дескриптор сеанса.
  • pInfo (out) – указатель на объект для записи информации о сеансе. Функция C_GetSessionInfo записывает информацию о сеансе в структуру CK_SESSION_INFO.

Запускается в режимах:

Результат:

  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SESSION_CLOSED – сеанс был закрыт в момент выполнения функции.
  • CKR_SESSION_HANDLE_INVALID – недопустимый дескриптор сеанса. Совет: Полный список ошибок см. в приложении.

CK_RV C_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen) Параметры:

  • hSession (in) – дескриптор сеанса.
  • userType (in) – тип пользователя.
  • pPin (in) – указатель на PIN-код.
  • ulPinLen (in) – размер PIN-кода. Функция C_Login используется для ввода PIN-кода и перехода в режим пользователя или администратора. Особенности приложений:
  • GOST Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):
Администратор (только для 2.5.13)CKU_SO0987654321
ПользовательCKU_USER1234567890
Также функция C_Login используется для предъявления ПИН-кода пользователя, PUK-кода (для версий 2.5.5), и ПИН-кода форматирования (для версии 2.5.13).
Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):
ПодписьCKU_SIGNATUREЗадается пользователем
PUK-код (для версий 2.5.5)CKU_PUK0987654321
ФорматированиеJC_KT2_PIN_TYPE_FACTORY_RESET0801378717
Примечание: Функция C_Login() вызывается с параметром userType равным CKU_SIGNATURE только после перехода в режим Пользователя.
  • PKI Возможные значения параметра userType и PIN-коды по умолчанию:
АдминистраторCKU_SO00000000 (8 нулей)
ПользовательCKU_USER11111111 (8 единиц)
  • LT Возможные значения параметра userType и PIN-коды по умолчанию:
АдминистраторCKU_SOНе установлен
ПользовательCKU_USER1234567890
Запускается в режимах:

Для PKI и LT:

Для GOST:

  • Пользователь - при userType равном CKU_SIGNATURE;
  • Гость - при userType равном CKU_SO, CKU_USER, CKU_PUK, JC_KT2_PIN_TYPE_FACTORY_RESET. Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_FUNCTION_CANCELED – функция была отменена в момент исполнения.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_OPERATION_NOT_INITIALIZED – в указанном сеансе нет активной операции данного типа.
  • CKR_PIN_INCORRECT – неверный PIN-код.
  • CKR_SESSION_CLOSED – сеанс был закрыт в момент выполнения функции.
  • CKR_PIN_LOCKED – указанный PIN-код заблокирован и не может быть использован.
  • CKR_SESSION_HANDLE_INVALID – недопустимый дескриптор сеанса.
  • CKR_SESSION_READ_ONLY_EXISTS – сеанс на чтение уже открыт и администратор не может быть залогинен.
  • CKR_USER_ALREADY_LOGGED_IN – пользователь уже залогинен. Примечание: Данный аргумент возвращается только функцией C_Login.
  • CKR_USER_ANOTHER_ALREADY_LOGGED_IN – указанный пользователь не может быть залогинен в данном сеансе, так как другой пользователь уже залогинен в нем. Примечание: Данный аргумент возвращается только функцией C_Login.
  • CKR_USER_PIN_NOT_INITIALIZED – PIN-пользователя не инициализирован (см. C_InitPIN()). Примечание: Данный аргумент возвращается только функцией C_Login.
  • CKR_USER_TOO_MANY_TYPES – невозможно залогинить больше пользователей, чем позволяет токен/библиотека.
  • CKR_USER_TYPE_INVALID – недопустимый тип пользователя. Совет: Полный список ошибок см. в приложении.

CK_RV C_Logout(CK_SESSION_HANDLE * hSession*) Параметры:

  • hSession (in) – дескриптор сеанса. Сброс предъявления PIN-кода пользователя или администратора. Запускается в режимах:
  • Администратор;
  • Пользователь. Результат:
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SESSION_CLOSED – сеанс был закрыт в момент выполнения функции.
  • CKR_SESSION_HANDLE_INVALID – недопустимый дескриптор сеанса.
  • CKR_USER_NOT_LOGGED_IN – действие не может быть выполнено, т.к. пользователь не залогинен. Совет: Полный список ошибок см. в приложении.