diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2016-07-20 12:26:53 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2016-08-01 13:54:56 +0200 |
commit | 8d21114df0ee75e2129916acb38b212704ed78cf (patch) | |
tree | 625eced9f399e5028cd51958e5ff38b90aa9be67 /include | |
parent | 02a46831a552d443adfbd3c61542cf6925675349 (diff) | |
download | libnitrokey-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.h | 4 | ||||
-rw-r--r-- | include/stick10_commands.h | 6 |
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> |