Page tree

Versions Compared

Key

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

...

Варианты содержимого шаблона:

НазваниеТипОбязательный
атрибут 
ЗначениеАтрибут
только
для
чтения
CKA_CLASSCK_OBJECT_CLASS+CKO_HW_FEATURE+
CKA_HW_FEATURE_TYPECK_HW_FEATURE_TYPE+CKH_VENDOR_PIN_POLICY+
CKA_VENDOR_USER_TYPECK_USER_TYPE+Пользователь, которому соответствует объект политик+
CKA_VENDOR_PIN_POLICY_STATECK_ULONG-
  • PIN_POLICY_STATE_WELL_DEFINED - все атрибуты, которые позволяет задавать устройство, известны библиотеке.
  • PIN_POLICY_STATE_HAS_UNKNOWN_ATTRIBUTES - не все атрибуты, которые позволяет задавать устройство, известны библиотеке, но все они содержат значения по умолчанию.
  • PIN_POLICY_STATE_HAS_UNKNOWN_NONDEFAULT_ATTRIBUTES - не все неизвестные библиотеке атрибуты имеют значения по умолчанию.
+
CKA_MODIFIABLECK_BBOOL-CK_TRUE, если Администратор может изменять политики, иначе CK_FALSE. Возможна смена с CK_TRUE на CK_FALSE.-
CKA_VENDOR_PIN_POLICIES_DELETABLECK_BBOOL-CK_TRUE, если политики будут удалены при форматировании, иначе CK_FALSE.-
CKA_VENDOR_SUPPORTED_PIN_POLICIESARRAY(CK_ULONG)-Массив типов атрибутов, которые возможно выставить для данного типа пользователя на данном устройстве, используя данную версию библиотеки+
CKA_VENDOR_PIN_POLICY_MIN_LENGTHCK_BYTE-число, задающее минимальную длину PIN-кода-
CKA_VENDOR_PIN_POLICY_HISTORY_DEPTHCK_BYTE-число, задающее количество PIN-кодов, которое требуется хранить для невозможности смены на уже использованное значение-
CKA_VENDOR_PIN_POLICY_ALLOW_DEFAULT_PIN_USAGECK_BBOOL-CK_TRUE, если разрешено использование PIN-кода по умолчанию, иначе CK_FALSE-
CKA_VENDOR_PIN_POLICY_DIGIT_REQUIREDCK_BBOOL-CK_TRUE, если в PIN-коде требуется хотя бы одна цифра, иначе CK_FALSE-
CKA_VENDOR_PIN_POLICY_UPPERCASE_REQUIREDCK_BBOOL-CK_TRUE, если в PIN-коде требуется хотя бы один символ в заглавном регистре, иначе CK_FALSE-
CKA_VENDOR_PIN_POLICY_LOWERCASE_REQUIREDCK_BBOOL-CK_TRUE, если в PIN-коде требуется хотя бы один символ в строчном регистре, иначе CK_FALSE-
CKA_VENDOR_PIN_POLICY_SPEC_CHAR_REQUIREDCK_BBOOL-CK_TRUE, если в PIN-коде требуется хотя бы один специальный символ, иначе CK_FALSE-
CKA_VENDOR_PIN_POLICY_DIFF_CHARS_REQUIREDCK_BBOOL-CK_TRUE, если в PIN-коде требуется использование различных символов, иначе CK_FALSE-

Пример работы с политиками PIN-кодов

...

Получение информации о необходимости смены PIN-кодa

C_GetTokenInfo

Для того, чтобы узнать о необходимости смены PIN-кода, нужно вызвать C_GetTokenInfo и проверить на наличие флагов CKF_USER_PIN_TO_BE_CHANGED и CKF_SO_PIN_TO_BE_CHANGED.

Получить значения этих флагов возможно без предварительной аутентификации.

Флаги CKF_USER_PIN_TO_BE_CHANGED/CKF_SO_PIN_TO_BE_CHANGED выставляются в ситуации, если Администратор требует смены PIN-кода, или используется PIN-код по умолчанию.

C_EX_SlotManage

Когда нужно узнать, что требование смены PIN-кода идет именно от Администратора, нужно воспользоваться режимом C_EX_SlotManage: MODE_GET_PIN_SET_TO_BE_CHANGED.
Параметр функции является CK_ULONG_PTR на идентификатор пользователя, относительно которого надо проверить требование смены PIN-кода.
Функция возвращает CKR_OK, если PIN-код не нуждается в смене, и CKR_PIN_EXPIRED - иначе.

...