From feeb433a5625fd869e3b02c3254867c63b42086d Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 29 Jul 2016 14:28:21 +0200 Subject: Handle changing admin/user password on NK Storage Signed-off-by: Szczepan Zalega --- include/stick20_commands.h | 54 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) (limited to 'include/stick20_commands.h') diff --git a/include/stick20_commands.h b/include/stick20_commands.h index b84d436..66fad15 100644 --- a/include/stick20_commands.h +++ b/include/stick20_commands.h @@ -1,15 +1,67 @@ #ifndef STICK20_COMMANDS_H #define STICK20_COMMANDS_H #include "inttypes.h" +#include "command.h" +//#include +//#include +#include "device_proto.h" + namespace nitrokey { namespace proto { /* * STICK20 protocol command ids -* a superset of STICK10 +* a superset (almost) of STICK10 */ namespace stick20 { + + enum class PasswordKind : uint8_t { + User = 'P', + Admin = 'A' + }; + + class ChangeAdminPin20Current : Command { + public: + struct CommandPayload { + uint8_t kind; + uint8_t old_pin[20]; + std::string dissect() const { + std::stringstream ss; + ss << " old_pin:\t" << old_pin<< std::endl; + return ss.str(); + } + void set_kind(PasswordKind k){ + kind = (uint8_t)k; + } + } __packed; + + typedef Transaction + CommandTransaction; + }; + + + class ChangeAdminPin20New : Command { + public: + + struct CommandPayload { + uint8_t kind; + uint8_t new_pin[20]; + std::string dissect() const { + std::stringstream ss; + ss << " new_pin:\t" << new_pin<< std::endl; + return ss.str(); + } + void set_kind(PasswordKind k){ + kind = (uint8_t)k; + } + + } __packed; + + typedef Transaction + CommandTransaction; + }; + class EnableEncryptedPartition : semantics::non_constructible { public: struct CommandPayload { -- cgit v1.2.1