...
Варианты содержимого шаблона:
Название | Тип | Обязательный атрибут | Значение | Атрибут только для чтения |
---|---|---|---|---|
CKA_CLASS | CK_OBJECT_CLASS | + | CKO_HW_FEATURE | + |
CKA_HW_FEATURE_TYPE | CK_HW_FEATURE_TYPE | + | CKH_VENDOR_PIN_POLICY | + |
CKA_VENDOR_USER_TYPE | CK_USER_TYPE | + | Пользователь, которому соответствует объект политик | + |
CKA_VENDOR_PIN_POLICY_STATE | CK_ULONG | - |
| + |
CKA_MODIFIABLE | CK_BBOOL | - | CK_TRUE , если Администратор может изменять политики, иначе CK_FALSE . Возможна смена с CK_TRUE на CK_FALSE . | - |
CKA_VENDOR_PIN_POLICIES_DELETABLE | CK_BBOOL | - | CK_TRUE , если политики будут удалены при форматировании, иначе CK_FALSE . | - |
CKA_VENDOR_SUPPORTED_PIN_POLICIES | ARRAY(CK_ULONG) | - | Массив типов атрибутов, которые возможно выставить для данного типа пользователя на данном устройстве, используя данную версию библиотеки | + |
CKA_VENDOR_PIN_POLICY_MIN_LENGTH | CK_BYTE | - | число, задающее минимальную длину PIN-кода | - |
CKA_VENDOR_PIN_POLICY_HISTORY_DEPTH | CK_BYTE | - | число, задающее количество PIN-кодов, которое требуется хранить для невозможности смены на уже использованное значение | - |
CKA_VENDOR_PIN_POLICY_ALLOW_DEFAULT_PIN_USAGE | CK_BBOOL | - | CK_TRUE , если разрешено использование PIN-кода по умолчанию, иначе CK_FALSE | - |
CKA_VENDOR_PIN_POLICY_DIGIT_REQUIRED | CK_BBOOL | - | CK_TRUE , если в PIN-коде требуется хотя бы одна цифра, иначе CK_FALSE | - |
CKA_VENDOR_PIN_POLICY_UPPERCASE_REQUIRED | CK_BBOOL | - | CK_TRUE , если в PIN-коде требуется хотя бы один символ в заглавном регистре, иначе CK_FALSE | - |
CKA_VENDOR_PIN_POLICY_LOWERCASE_REQUIRED | CK_BBOOL | - | CK_TRUE , если в PIN-коде требуется хотя бы один символ в строчном регистре, иначе CK_FALSE | - |
CKA_VENDOR_PIN_POLICY_SPEC_CHAR_REQUIRED | CK_BBOOL | - | CK_TRUE , если в PIN-коде требуется хотя бы один специальный символ, иначе CK_FALSE | - |
CKA_VENDOR_PIN_POLICY_DIFF_CHARS_REQUIRED | CK_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
- иначе.
...