From 8d21114df0ee75e2129916acb38b212704ed78cf Mon Sep 17 00:00:00 2001
From: Szczepan Zalega <szczepan@nitrokey.com>
Date: Wed, 20 Jul 2016 12:26:53 +0200
Subject: Working TOTP handling (passing RFC tests)

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
---
 include/NitrokeyManager.h  | 4 +++-
 include/stick10_commands.h | 6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

(limited to 'include')

diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h
index 551bea7..7d04799 100644
--- a/include/NitrokeyManager.h
+++ b/include/NitrokeyManager.h
@@ -21,10 +21,12 @@ namespace nitrokey {
         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 *slot_name, const char *secret,
-                                     uint16_t time_window, const char *temporary_password);
+                             uint16_t time_window, bool use_8_digits, 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);
+        bool set_time(uint64_t time);
+        bool mark_time();
         bool erase_totp_slot(uint8_t slot_number);
         bool erase_hotp_slot(uint8_t slot_number);
         bool connect();
diff --git a/include/stick10_commands.h b/include/stick10_commands.h
index 13842fb..ca836db 100644
--- a/include/stick10_commands.h
+++ b/include/stick10_commands.h
@@ -68,6 +68,12 @@ class SetTime : Command<CommandID::SET_TIME> {
     uint64_t time;  // posix time
 
     bool isValid() const { return reset && reset != 1; }
+      std::string dissect() const {
+          std::stringstream ss;
+          ss << "reset:\t" << (int)(reset) << std::endl;
+          ss << "time:\t" << (time) << std::endl;
+          return ss.str();
+      }
   } __packed;
 
   typedef Transaction<command_id(), struct CommandPayload, struct EmptyPayload>
-- 
cgit v1.2.3