Полученить информацию о состоянии токена можно с помощью флагов. Сами значения флагов получаются с помощью метода getTokenInfo()
.
Флаги читаются следующим образом:
getTokenInfo()
.Примеры использования флагов для проверки PIN-кода пользователя
CKF_USER_PIN_COUNT_LOW
(маска – 0x00010000
) – флаг устанавливается, если количество оставшихся попыток ввода ПИН-кода пользователя меньше 3;CKF_USER_PIN_FINAL_TRY
(маска – 0x00020000
) – флаг устанавливается, если осталась последняя попытка ввода PIN-кода;CKF_USER_PIN_LOCKED
(маска – 0x00040000
) – флаг устанавливается, если PIN-код пользователя был заблокирован.Пример 1
getTokenInfo()
равно 67085
и представляется в шестнадцатеричном виде как 1060D
.CKF_USER_PIN_COUNT_LOW
0x00010000
01h
– значит количество попыток ввода меньше 3
.Пример 2
getTokenInfo()
равно 198157
и представляется в шестнадцатеричном виде как 3060D
.CKF_USER_PIN_COUNT_LOW
0x00010000
CKF_USER_PIN_FINAL_TRY
0x00020000
03h
(01h
+ 02h
) – значит у пользователя последняя попытка ввести правильный PIN-код.