Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

После успешной авторизации пользователя типа CKU_SO или CKU_USER все сессии приложения примут состояние R/W SO Functions или R/W User Functions или R/O User Functions. Если тип пользователя CKU_CONTEXT_SPECIFIC, то поведение функции зависит от контекста. Неправильное использование этого типа пользователя приведет к возврату значения CKR_OPERATION_NOT_INITIALIZED.

Если токен имеет защищенный путь аутентификации (обозначается выставленным флагом CKF_PROTECTED_AUTHENTICATION_PATH в структуре CK_TOKEN_INFO), то это означает, что существует некий способ аутентификации пользователя без отправки PIN-кода
приложению
через библиотеку. Это возможно, если пользователь вводит PIN-код через PIN pad на самом токене или подключаемом к нему устройстве. Или даже пользователь может не вводить PIN-код - аутентификация может быть осуществлена с помощью устройства, считывающего отпечатки пальцев, например. Для авторизации на токене таким образом параметр pPin функции C_Login должен быть равен NULL_PTR. Вне зависимости от того, каким способом выполнялась аутентификации, возвращенное значение CKR_OK свидетельствует об успешной аутентификации, а значение CKR_PIN_INCORRECT означает то, что пользователю отказано в доступе.

предоставлять подходящий дескриптор ключа при восстановлении состояния криптографических операций в сессию.

Если сессия приложения имеет активные криптографические операции или операции поиска объектов, и вызванная этим приложениям функция C_Login завершается успешно, то эти операции могут как остаться активными, так и нет. Поэтому перед вызовом функции любые активные операции должны быть завершены.

...

  1. Если ulPinLen != 0 и pPin != NULL_PTR, то проверяется длина PIN-кода. Если длина не является допустимой, то возвращается значение CKR_ARGUMENTS_BAD. Если длина удовлетворяет условиям проверки, то проверяются права доступа для пользователя с идентификатором userType.
  2. Если ulPinLen != 0 и pPin == NULL_PTR, то возвращается ошибка CKR_ARGUMENTS_BAD.
  3. Если ulPinLen == 0 и pPin != NULL_PTR, то возвращается ошибка CKR_ARGUMENTS_BAD.
  4. Если ulPinLen == 0 и pPin == NULL_PTR, то отображается PIN Padвозвращается ошибка CKR_ARGUMENTS_BAD.

Возвращаемые значения

CKR_OK – функция выполнена успешно.

...