From fb37116ea77f7961b12b1e289c3d48e6e517ea88 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Wed, 20 Jul 2016 08:12:20 +0200 Subject: Write to TOTP slot Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 3 ++- include/stick10_commands.h | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 37b628d..551bea7 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -20,7 +20,8 @@ namespace nitrokey { bool authorize(const char *pin, const char *temporary_password); bool write_HOTP_slot(uint8_t slot_number, const char *slot_name, const char *secret, uint64_t hotp_counter, const char *temporary_password); - bool write_TOTP_slot(uint8_t slot_number, const char *secret, uint16_t time_window); + bool write_TOTP_slot(uint8_t slot_number, const char *slot_name, const char *secret, + uint16_t time_window, const char *temporary_password); uint32_t get_HOTP_code(uint8_t slot_number); uint32_t get_TOTP_code(uint8_t slot_number, uint64_t challenge, uint64_t last_totp_time, uint8_t last_interval); diff --git a/include/stick10_commands.h b/include/stick10_commands.h index d15ee73..13842fb 100644 --- a/include/stick10_commands.h +++ b/include/stick10_commands.h @@ -116,7 +116,20 @@ class WriteToTOTPSlot : Command { uint8_t slot_token_id[13]; uint16_t slot_interval; - bool isValid() const { return !(slot_number & 0xF0); } + bool isValid() const { return !(slot_number & 0xF0); } //TODO check + std::string dissect() const { + std::stringstream ss; + ss << "slot_number:\t" << (int)(slot_number) << std::endl; + ss << "slot_name:\t" << slot_name << std::endl; + ss << "slot_secret:\t" << slot_secret << std::endl; + ss << "slot_config:\t" << std::bitset<8>((int)slot_config) << std::endl; + ss << "slot_token_id:\t"; + for (auto i : slot_token_id) + ss << std::hex << std::setw(2) << std::setfill('0')<< (int) i << " " ; + ss << std::endl; + ss << "slot_interval:\t" << (int)slot_interval << std::endl; + return ss.str(); + } } __packed; typedef Transaction -- cgit v1.2.1