From 090af48ee1c49c8655610c7b529b2ca256d9e8ae Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 10 Apr 2018 07:51:15 +0200 Subject: Correct validation functions for GetStatus and WriteGeneralConfig structs Signed-off-by: Szczepan Zalega --- libnitrokey/stick10_commands.h | 9 ++++++--- libnitrokey/stick10_commands_0.8.h | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libnitrokey/stick10_commands.h b/libnitrokey/stick10_commands.h index 893b98f..755b651 100644 --- a/libnitrokey/stick10_commands.h +++ b/libnitrokey/stick10_commands.h @@ -385,10 +385,11 @@ class GetStatus : Command { 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; } + + bool isValid() const { return numlock < 2 && capslock < 2 && scrolllock < 2 && enable_user_password < 2; } std::string get_card_serial_hex() const { return nitrokey::misc::toHex(card_serial_u32); @@ -684,7 +685,9 @@ class WriteGeneralConfig : Command { 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..4614f16 100644 --- a/libnitrokey/stick10_commands_0.8.h +++ b/libnitrokey/stick10_commands_0.8.h @@ -322,7 +322,9 @@ namespace nitrokey { }; uint8_t temporary_admin_password[25]; - 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; -- cgit v1.2.3