From 98a9730783268b01d8f55b8b323bb70fdd964a11 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 18 Oct 2016 15:16:39 +0200 Subject: Code refactoring: replacing magic numbers Signed-off-by: Szczepan Zalega --- include/command_id.h | 41 +++++++++++++++++++++++++++-------------- include/device_proto.h | 34 ++++++++++++++++++---------------- 2 files changed, 45 insertions(+), 30 deletions(-) (limited to 'include') diff --git a/include/command_id.h b/include/command_id.h index 45285aa..093de1f 100644 --- a/include/command_id.h +++ b/include/command_id.h @@ -4,18 +4,31 @@ namespace nitrokey { namespace proto { - -#define OUTPUT_CMD_STICK20_STATUS_IDLE 0 -#define OUTPUT_CMD_STICK20_STATUS_OK 1 -#define OUTPUT_CMD_STICK20_STATUS_BUSY 2 -#define OUTPUT_CMD_STICK20_STATUS_WRONG_PASSWORD 3 -#define OUTPUT_CMD_STICK20_STATUS_BUSY_PROGRESSBAR 4 -#define OUTPUT_CMD_STICK20_STATUS_PASSWORD_MATRIX_READY 5 -#define OUTPUT_CMD_STICK20_STATUS_NO_USER_PASSWORD_UNLOCK 6 -#define OUTPUT_CMD_STICK20_STATUS_SMARTCARD_ERROR 7 -#define OUTPUT_CMD_STICK20_STATUS_SECURITY_BIT_ACTIVE 8 - -#define STICK20_CMD_START_VALUE 0x20 + namespace stick20 { + enum class device_status : uint8_t { + idle = 0, + ok, + busy, + wrong_password, + busy_progressbar, + password_matrix_ready, + no_user_password_unlock, + smartcard_error, + security_bit_active + }; + const int CMD_START_VALUE = 0x20; + const int CMD_END_VALUE = 0x60; + } + namespace stick10 { + enum class command_status : uint8_t { + ok = 0, + }; + enum class device_status : uint8_t { + ok = 0, + busy = 1, + wrong_password = 4, + }; + } enum class CommandID : uint8_t { @@ -42,8 +55,8 @@ enum class CommandID : uint8_t { CHANGE_USER_PIN = 0x14, CHANGE_ADMIN_PIN = 0x15, - STICK20_CMD_SEND_PASSWORD = STICK20_CMD_START_VALUE + 18, - STICK20_CMD_SEND_NEW_PASSWORD = STICK20_CMD_START_VALUE + 19, + STICK20_CMD_SEND_PASSWORD = stick20::CMD_START_VALUE + 18, + STICK20_CMD_SEND_NEW_PASSWORD = stick20::CMD_START_VALUE + 19, ENABLE_CRYPTED_PARI = 0x20, DISABLE_CRYPTED_PARI, diff --git a/include/device_proto.h b/include/device_proto.h index 81cf93e..bf78d29 100644 --- a/include/device_proto.h +++ b/include/device_proto.h @@ -235,27 +235,29 @@ namespace nitrokey { status = dev.recv(&resp); if (dev.get_device_model() == DeviceModel::STORAGE && - resp.command_id >= 0x20 && - resp.command_id < 0x60 - ) { + resp.command_id >= stick20::CMD_START_VALUE && + resp.command_id < stick20::CMD_END_VALUE ) { Log::instance()(std::string("Detected storage device cmd, status: ") + std::to_string(resp.StorageStatus.Status_u8), Loglevel::DEBUG_L2); - resp.last_command_status = 0; - switch (resp.StorageStatus.Status_u8) { - case 0: - case 1: - resp.last_command_status = 0; - resp.device_status = 0; + resp.last_command_status = static_cast(stick10::command_status::ok); + switch (static_cast(resp.StorageStatus.Status_u8)) { + case stick20::device_status::idle : + case stick20::device_status::ok: + resp.device_status = static_cast(stick10::device_status::ok); break; - case 2: - resp.last_command_status = 0; - resp.device_status = 1; //pro busy + case stick20::device_status::busy: + case stick20::device_status::busy_progressbar: //TODO this will be modified later for getting progressbar status + resp.device_status = static_cast(stick10::device_status::busy); break; - case 3: - case 4: - resp.last_command_status = 4; - resp.device_status = 0; + case stick20::device_status::wrong_password: + resp.last_command_status = static_cast(stick10::device_status::wrong_password); + resp.device_status = static_cast(stick10::device_status::ok); + break; + default: + Log::instance()(std::string("Unknown storage device status, cannot translate: ") + + std::to_string(resp.StorageStatus.Status_u8), Loglevel::DEBUG); + resp.device_status = resp.StorageStatus.Status_u8; break; }; } -- cgit v1.2.3