diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2018-04-10 08:19:42 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2018-04-10 08:19:42 +0200 |
commit | 306186faab1bf1b8321fecdb2c50176b35a3f953 (patch) | |
tree | 3769e709ceb001ad931ebbab99d336372df127f2 /libnitrokey | |
parent | 92d4621442795b83dff55009c99e47d4a3d93bef (diff) | |
parent | 7f3d4ce81a0a38d9591dc4c746bcb75edfe80caa (diff) | |
download | libnitrokey-306186faab1bf1b8321fecdb2c50176b35a3f953.tar.gz libnitrokey-306186faab1bf1b8321fecdb2c50176b35a3f953.tar.bz2 |
Merge branch '102-get_status_invalid'
Fixes #102
Diffstat (limited to 'libnitrokey')
-rw-r--r-- | libnitrokey/stick10_commands.h | 11 | ||||
-rw-r--r-- | libnitrokey/stick10_commands_0.8.h | 6 |
2 files changed, 13 insertions, 4 deletions
diff --git a/libnitrokey/stick10_commands.h b/libnitrokey/stick10_commands.h index 893b98f..f2ffba2 100644 --- a/libnitrokey/stick10_commands.h +++ b/libnitrokey/stick10_commands.h @@ -385,10 +385,13 @@ class GetStatus : Command<CommandID::GET_STATUS> { uint8_t capslock; /** same as numlock */ uint8_t scrolllock; /** same as numlock */ uint8_t enable_user_password; - uint8_t delete_user_password; + uint8_t delete_user_password; /* unused */ } __packed; } __packed; - bool isValid() const { return enable_user_password!=delete_user_password; } + + static constexpr uint8_t special_HOTP_slots = 2; + bool isValid() const { return numlock < special_HOTP_slots && capslock < special_HOTP_slots + && scrolllock < special_HOTP_slots && enable_user_password < 2; } std::string get_card_serial_hex() const { return nitrokey::misc::toHex(card_serial_u32); @@ -684,7 +687,9 @@ class WriteGeneralConfig : Command<CommandID::WRITE_CONFIG> { uint8_t delete_user_password; }; }; - std::string dissect() const { + bool isValid() const { return numlock < 2 && capslock < 2 && scrolllock < 2 && enable_user_password < 2; } + + std::string dissect() const { std::stringstream ss; ss << "numlock:\t" << (int)numlock << std::endl; ss << "capslock:\t" << (int)capslock << std::endl; diff --git a/libnitrokey/stick10_commands_0.8.h b/libnitrokey/stick10_commands_0.8.h index a04946f..9477890 100644 --- a/libnitrokey/stick10_commands_0.8.h +++ b/libnitrokey/stick10_commands_0.8.h @@ -322,7 +322,11 @@ namespace nitrokey { }; uint8_t temporary_admin_password[25]; - std::string dissect() const { + static constexpr uint8_t special_HOTP_slots = 3; + bool isValid() const { return numlock < special_HOTP_slots && capslock < special_HOTP_slots + && scrolllock < special_HOTP_slots && enable_user_password < 2; } + + std::string dissect() const { std::stringstream ss; ss << "numlock:\t" << (int)numlock << std::endl; ss << "capslock:\t" << (int)capslock << std::endl; |