aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2016-07-20 12:26:53 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2016-08-01 13:54:56 +0200
commit8d21114df0ee75e2129916acb38b212704ed78cf (patch)
tree625eced9f399e5028cd51958e5ff38b90aa9be67 /include
parent02a46831a552d443adfbd3c61542cf6925675349 (diff)
downloadlibnitrokey-8d21114df0ee75e2129916acb38b212704ed78cf.tar.gz
libnitrokey-8d21114df0ee75e2129916acb38b212704ed78cf.tar.bz2
Working TOTP handling (passing RFC tests)
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'include')
-rw-r--r--include/NitrokeyManager.h4
-rw-r--r--include/stick10_commands.h6
2 files changed, 9 insertions, 1 deletions
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>