Функции управления сеансами
USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta
C_OpenSession
Заголовок раздела «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
Заголовок раздела «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
Заголовок раздела «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
Заголовок раздела «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
Заголовок раздела «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-код.
- 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.13). | ||
Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои): |
| Подпись | CKU_SIGNATURE | Задается пользователем |
|---|---|---|
| PUK-код (для версий 2.5.5) | 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
Заголовок раздела «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 – действие не может быть выполнено, т.к. пользователь не залогинен. Совет: Полный список ошибок см. в приложении.

