summaryrefslogtreecommitdiff
path: root/NK_C_API.cc
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2016-07-23 15:03:42 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2016-08-01 13:54:56 +0200
commit49ea52c45eee26be51df4969ca2af8c2b7c9ceb6 (patch)
tree91c0eb42eeda7286c8b5e83041b71e763f183d2e /NK_C_API.cc
parent7eb15813ffa2c2766e53245311b017c3b9c196fb (diff)
downloadlibnitrokey-49ea52c45eee26be51df4969ca2af8c2b7c9ceb6.tar.gz
libnitrokey-49ea52c45eee26be51df4969ca2af8c2b7c9ceb6.tar.bz2
Handling device errors through exceptions
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'NK_C_API.cc')
-rw-r--r--NK_C_API.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/NK_C_API.cc b/NK_C_API.cc
index 8af0128..1695c92 100644
--- a/NK_C_API.cc
+++ b/NK_C_API.cc
@@ -43,7 +43,13 @@ extern int NK_erase_totp_slot(uint8_t slot_number) {
extern int NK_write_hotp_slot(uint8_t slot_number, const char *slot_name, const char *secret, uint8_t hotp_counter,
const char *temporary_password) {
auto m = NitrokeyManager::instance();
- return m->write_HOTP_slot(slot_number, slot_name, secret, hotp_counter, temporary_password);
+ try {
+ m->write_HOTP_slot(slot_number, slot_name, secret, hotp_counter, temporary_password);
+ }
+ catch (CommandFailedException & commandFailedException){
+ return commandFailedException.last_command_status;
+ }
+ return 0;
}
extern int NK_write_totp_slot(uint8_t slot_number, const char *slot_name, const char *secret, uint16_t time_window,