diff options
author | Robin Krahl <me@robin-krahl.de> | 2018-05-18 09:26:56 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2018-06-19 19:55:18 +0200 |
commit | 81a288088c4e54ffce81e1971c4ccdfe2ec80b8a (patch) | |
tree | 4811c6af860507f723571999d5fb879ff7a8a6e3 /NitrokeyManager.cc | |
parent | b46dbfa63f344cd7e5323139cf71cd100a179682 (diff) | |
download | libnitrokey-81a288088c4e54ffce81e1971c4ccdfe2ec80b8a.tar.gz libnitrokey-81a288088c4e54ffce81e1971c4ccdfe2ec80b8a.tar.bz2 |
Add set_time_soft to replace get_time
The SetTime command supports two modes: set the time without checking
the currently set time, or verify that the currently set time is not
zero and not larger than the new time (see cmd_set_time(uint8_t*,
uint8_t*) in src/keyboard/report_protocol.c, lines 678--710, in the
Nitrokey Pro firmware).
NitrokeyManager called these two modes set_time(uint64_t) and
get_time(uint64_t), which is highly misleading -- the command does never
get the time. Furthermore, the get_time method per default calls the
command with the time zero, which will always result in an error.
The C API has the methods NK_totp_set_time(uint64_t) and
NK_totp_get_time(). NK_totp_get_time() calls get_time(uint64_t) with
the time zero, leading to an error, and is therefore useless.
This patch proposes a new wording. While it would make sense to call
the first mode “reset” and the second mode “set”, this would break
compatibility. Therefore, new methods set_time_soft(uint64_t) and
NK_totp_set_time_soft(uint64_t) are introduced to represent the
difference between a hard and a soft setting of the time.
The old methods, get_time(uint64_t) and NK_totp_get_time(), are not
removed but marked as deprecated. They should be removed in an upcoming
major release.
Diffstat (limited to 'NitrokeyManager.cc')
-rw-r--r-- | NitrokeyManager.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/NitrokeyManager.cc b/NitrokeyManager.cc index 085bf78..addfdbf 100644 --- a/NitrokeyManager.cc +++ b/NitrokeyManager.cc @@ -666,11 +666,15 @@ using nitrokey::misc::strcpyT; return false; } - bool NitrokeyManager::get_time(uint64_t time) { + void NitrokeyManager::set_time_soft(uint64_t time) { auto p = get_payload<SetTime>(); p.reset = 0; p.time = time; SetTime::CommandTransaction::run(device, p); + } + + bool NitrokeyManager::get_time(uint64_t time) { + set_time_soft(time); return true; } |