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) – указатель на объект, который получает дескриптор нового сеанса.
Открывает сеанс между приложением и токеном в заданном слоте.
Примечание: Аргументы |
Результат:
- 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 – открыто слишком большое количество сеансов.
Примечание: Данный аргумент возвращается только функцией |
- CKR_SESSION_PARALLEL_NOT_SUPPORTED – данный токен не поддерживает параллельные сеансы.
Примечание: Данный аргумент возвращается только функцией |
- 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-код.
- ulPinLen (in) – размер PIN-кода.
Функция C_Login используется для ввода PIN-кода и перехода в режим пользователя или администратора.
Особенности приложений:
- GOST
Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):
Администратор (только для 2.5.13) |
|
|
Пользователь |
|
|
Также функция C_Login используется для предъявления ПИН-кода пользователя, PUK-кода (для версий 2.5.5, 2.5.9), и ПИН-кода форматирования (для версии 2.5.13).
Возможные значения параметра userType и PIN-коды по умолчанию (устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):
Подпись |
| Задается пользователем |
PUK-код (для версий 2.5.5, 2.5.9) |
|
|
Форматирование |
| 0801378717 |
Примечание: Функция |
PKI
Возможные значения параметра
userTypeи PIN-коды по умолчанию:Администратор
CKU_SO00000000
(8 нулей)Пользователь
CKU_USER11111111
(8 единиц)
LT
Возможные значения параметра
userTypeи PIN-коды по умолчанию:Администратор
CKU_SOНе установлен
Пользователь
CKU_USER1234567890
Запускается в режимах:
Для GOST:
|
Результат:
- 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 – пользователь уже залогинен.
Примечание: Данный аргумент возвращается только функцией |
- CKR_USER_ANOTHER_ALREADY_LOGGED_IN – указанный пользователь не может быть залогинен в данном сеансе, так как другой пользователь уже залогинен в нем.
Примечание: Данный аргумент возвращается только функцией |
- CKR_USER_PIN_NOT_INITIALIZED – PIN-пользователя не инициализирован (см.
C_InitPIN()).
Примечание: Данный аргумент возвращается только функцией |
- 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 – действие не может быть выполнено, т.к. пользователь не залогинен.
Совет: Полный список ошибок см. в приложении. |