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 hSessionCK_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 hSessionCK_USER_TYPE userTypeCK_UTF8CHAR_PTR pPinCK_ULONG ulPinLen)


Параметры:    

  • hSession (in) – дескриптор сеанса.
  • userType (in) – тип пользователя.
  • pPin (in) – указатель на PIN-код.
  • ulPinLen (in) – размер PIN-кода.

Функция C_Login используется для ввода PIN-кода и перехода в режим пользователя или администратора. 

Особенности приложений:

  •     GOST

        Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):




Администратор (только для 2.5.13)

CKU_SO

0987654321

Пользователь

CKU_USER

1234567890

Также функция C_Login используется для предъявления ПИН-кода пользователя, PUK-кода (для версий 2.5.5, 2.5.9), и ПИН-кода форматирования (для версии 2.5.13).

Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):




Подпись

CKU_SIGNATURE

Задается пользователем

PUK-код (для версий 2.5.5, 2.5.9)

CKU_PUK

0987654321

Форматирование

JC_KT2_PIN_TYPE_FACTORY_RESET

0801378717

Примечание: Функция C_Login() вызывается с параметром userType равным CKU_SIGNATURE только после перехода в режим Пользователя.

  • PKI

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




    Администратор

    CKU_SO

    00000000
    (8 нулей)

    Пользователь

    CKU_USER

    11111111
    (8 единиц)

  • LT

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




    Администратор

    CKU_SO

    Не установлен

    Пользователь

    CKU_USER

    1234567890

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


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

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

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

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