From 98b27cb58b12f699b5c11f88d55c3e3f70ed2063 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Mon, 31 Oct 2016 18:02:55 +0100 Subject: Code refactoring - unify password only commands (2) Signed-off-by: Szczepan Zalega --- NitrokeyManager.cc | 4 ++-- include/command.h | 9 ++++++++- include/stick20_commands.h | 24 ++---------------------- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/NitrokeyManager.cc b/NitrokeyManager.cc index eb34ef2..f0099da 100644 --- a/NitrokeyManager.cc +++ b/NitrokeyManager.cc @@ -420,8 +420,8 @@ namespace nitrokey{ } case DeviceModel::STORAGE : { auto p = get_payload(); - strcpyT(p.admin_pin, admin_password); - p.setKindPrefixed(); + strcpyT(p.password, admin_password); + p.set_defaults(); stick20::CreateNewKeys::CommandTransaction::run(*device, p); break; } diff --git a/include/command.h b/include/command.h index badf068..0a875e4 100644 --- a/include/command.h +++ b/include/command.h @@ -22,7 +22,8 @@ namespace nitrokey { namespace stick20{ enum class PasswordKind : uint8_t { User = 'P', - Admin = 'A' + Admin = 'A', + AdminPrefixed }; template @@ -41,6 +42,9 @@ namespace stick20{ void set_kind_admin() { kind = (uint8_t) 'A'; } + void set_kind_admin_prefixed() { + kind = (uint8_t) 'P'; + } void set_kind_user() { kind = (uint8_t) 'P'; } @@ -57,6 +61,9 @@ namespace stick20{ case PasswordKind::User: set_kind_user(); break; + case PasswordKind::AdminPrefixed: + set_kind_admin_prefixed(); + break; } }; diff --git a/include/stick20_commands.h b/include/stick20_commands.h index a51d1ca..d7d89cf 100644 --- a/include/stick20_commands.h +++ b/include/stick20_commands.h @@ -18,8 +18,6 @@ namespace nitrokey { #define print_to_ss(x) ( ss << " " << (#x) <<":\t" << (x) << std::endl ); namespace stick20 { - - class ChangeAdminUserPin20Current : public PasswordCommand {}; class ChangeAdminUserPin20New : @@ -54,26 +52,8 @@ namespace nitrokey { class ExportFirmware : public PasswordCommand {}; - class CreateNewKeys : Command { - public: - struct CommandPayload { - uint8_t kind; - uint8_t admin_pin[30]; //CS20_MAX_PASSWORD_LEN - std::string dissect() const { - std::stringstream ss; - print_to_ss( kind ); - ss << " admin_pin:\t" << admin_pin << std::endl; - return ss.str(); - } - - void setKindPrefixed() { - kind = 'P'; - } - } __packed; - - typedef Transaction - CommandTransaction; - }; + class CreateNewKeys : + public PasswordCommand {}; class FillSDCardWithRandomChars : Command { -- cgit v1.2.1