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

C_OpenSession

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 – данный токен защищен от записи.

Совет

Полный список ошибок см. в приложении.

C_CloseSession

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 – недопустимый дескриптор сеанса.

Совет

Полный список ошибок см. в приложении.

C_CloseAllSessions

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 – в слоте отсутствует токен.

Совет

Полный список ошибок см. в приложении.

C_GetSessionInfo

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 – недопустимый дескриптор сеанса.

Совет

Полный список ошибок см. в приложении.

C_Login

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-код (Ключ администратора безопасности в терминах Криптотокен 2 ЭП для Администратора).
  • ulPinLen (in) – размер PIN-кода.

Функция 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-коды по умолчанию:

    Пользователь Значение userType PIN-код по умолчанию
    Администратор CKU_SO
    00000000
    (8 нулей)
    Пользователь CKU_USER
    11111111
    (8 единиц)
  • Datastore

    Возможные значения параметра userType и PIN-коды по умолчанию:

    Пользователь Значение userType PIN-код по умолчанию
    Администратор CKU_SO Не установлен
    Пользователь CKU_USER 1234567890

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

Для Криптотокен, Laser и Datastore:

Для Криптотокен 2 ЭП:

Результат:
  • 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 – недопустимый тип пользователя.

Совет

Полный список ошибок см. в приложении.

C_Logout

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 – действие не может быть выполнено, т.к. пользователь не залогинен.

Совет

Полный список ошибок см. в приложении.

Оглавление