From c2d3de8820cc2ad3f394b6672853af257d32e6f6 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Wed, 11 Jan 2017 16:04:52 +0100 Subject: Helper functions for getting device state get status for Pro and Storage check is device connected use make_shared for keeping instance reference fixed accessing active volume flag Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index fd39445..d6b70a4 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -39,8 +39,11 @@ namespace nitrokey { bool connect(const char *device_model); bool connect(); bool disconnect(); - void set_debug(bool state); - string get_status(); + bool is_connected(); + DeviceModel get_connected_device_model(); + void set_debug(bool state); + stick10::GetStatus::ResponsePayload get_status(); + string get_status_as_string(); string get_serial_number(); const char * get_totp_slot_name(uint8_t slot_number); @@ -105,6 +108,7 @@ namespace nitrokey { void send_startup(uint64_t seconds_from_epoch); const char * get_status_storage_as_string(); + stick20::DeviceConfigurationResponsePacket::ResponsePayload get_status_storage(); const char *get_SD_usage_data_as_string(); @@ -117,11 +121,10 @@ namespace nitrokey { void authorize_packet(T &package, const char *admin_temporary_password, shared_ptr device); int get_major_firmware_version(); + explicit NitrokeyManager(); private: - NitrokeyManager(); static shared_ptr _instance; - bool connected; std::shared_ptr device; bool is_valid_hotp_slot_number(uint8_t slot_number) const; -- cgit v1.2.1 From 73eac5050abad1b8f0ddbc7e94a11170a640e130 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Wed, 11 Jan 2017 20:11:01 +0100 Subject: Protect concurrent use with lock guard Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index d6b70a4..6551c1a 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -39,7 +39,7 @@ namespace nitrokey { bool connect(const char *device_model); bool connect(); bool disconnect(); - bool is_connected(); + bool is_connected() const throw() ; DeviceModel get_connected_device_model(); void set_debug(bool state); stick10::GetStatus::ResponsePayload get_status(); -- cgit v1.2.1 From daf51e7e6a6f6569472f2a5fae5a376f105f858a Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 13 Jan 2017 10:51:14 +0100 Subject: Add const qualifier to functions Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 6551c1a..e96ac22 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -40,7 +40,7 @@ namespace nitrokey { bool connect(); bool disconnect(); bool is_connected() const throw() ; - DeviceModel get_connected_device_model(); + DeviceModel get_connected_device_model() const; void set_debug(bool state); stick10::GetStatus::ResponsePayload get_status(); string get_status_as_string(); -- cgit v1.2.1 From ffcb53e4cb3419ea31bf7b22e5f0c42fd54041da Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 13 Jan 2017 12:11:18 +0100 Subject: Name fix for firmware version getter Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index e96ac22..c7d7704 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -119,7 +119,7 @@ namespace nitrokey { template void authorize_packet(T &package, const char *admin_temporary_password, shared_ptr device); - int get_major_firmware_version(); + int get_minor_firmware_version(); explicit NitrokeyManager(); private: -- cgit v1.2.1 From 2543e09fa25fa8ed54920c519de32d4b4da074d4 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 24 Jan 2017 17:33:49 +0100 Subject: Read slot command support Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index c7d7704..03f1a86 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -32,6 +32,10 @@ namespace nitrokey { uint32_t get_HOTP_code(uint8_t slot_number, const char *user_temporary_password); uint32_t get_TOTP_code(uint8_t slot_number, uint64_t challenge, uint64_t last_totp_time, uint8_t last_interval, const char *user_temporary_password); + uint32_t get_TOTP_code(uint8_t slot_number, const char *user_temporary_password); + stick10::ReadSlot::ResponsePayload get_TOTP_slot_data(const uint8_t slot_number); + stick10::ReadSlot::ResponsePayload get_HOTP_slot_data(const uint8_t slot_number); + bool set_time(uint64_t time); bool get_time(); bool erase_totp_slot(uint8_t slot_number, const char *temporary_password); @@ -127,7 +131,8 @@ namespace nitrokey { static shared_ptr _instance; std::shared_ptr device; - bool is_valid_hotp_slot_number(uint8_t slot_number) const; + stick10::ReadSlot::ResponsePayload get_OTP_slot_data(const uint8_t slot_number); + bool is_valid_hotp_slot_number(uint8_t slot_number) const; bool is_valid_totp_slot_number(uint8_t slot_number) const; bool is_valid_password_safe_slot_number(uint8_t slot_number) const; uint8_t get_internal_slot_number_for_hotp(uint8_t slot_number) const; -- cgit v1.2.1 From a721ca6391d1f6494d5493fb0e56c868bcd2b60c Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Thu, 26 Jan 2017 10:28:12 +0100 Subject: Use const char pointers for C strings Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 03f1a86..f0cab68 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -53,8 +53,8 @@ namespace nitrokey { const char * get_totp_slot_name(uint8_t slot_number); const char * get_hotp_slot_name(uint8_t slot_number); - void change_user_PIN(char *current_PIN, char *new_PIN); - void change_admin_PIN(char *current_PIN, char *new_PIN); + void change_user_PIN(const char *current_PIN, const char *new_PIN); + void change_admin_PIN(const char *current_PIN, const char *new_PIN); void enable_password_safe(const char *user_pin); @@ -141,7 +141,7 @@ namespace nitrokey { const char * get_slot_name(uint8_t slot_number); template - void change_PIN_general(char *current_PIN, char *new_PIN); + void change_PIN_general(const char *current_PIN, const char *new_PIN); void write_HOTP_slot_authorize(uint8_t slot_number, const char *slot_name, const char *secret, uint64_t hotp_counter, bool use_8_digits, bool use_enter, bool use_tokenID, const char *token_ID, -- cgit v1.2.1 From 84a98c04c6c79455b04ba300ebfa5ec752abb721 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Mon, 30 Jan 2017 17:29:53 +0100 Subject: Send current time when checking time synchronization Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index f0cab68..3e38cc3 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -37,7 +37,7 @@ namespace nitrokey { stick10::ReadSlot::ResponsePayload get_HOTP_slot_data(const uint8_t slot_number); bool set_time(uint64_t time); - bool get_time(); + bool get_time(uint64_t time = 0); bool erase_totp_slot(uint8_t slot_number, const char *temporary_password); bool erase_hotp_slot(uint8_t slot_number, const char *temporary_password); bool connect(const char *device_model); -- cgit v1.2.1 From cb6b2dd65e1f0132353159b83ae05c944d8e62f0 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 31 Jan 2017 18:10:59 +0100 Subject: Make disconnect thread safe. Check is device actually connected by invoking its checking method Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 3e38cc3..4a98e94 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -43,7 +43,7 @@ namespace nitrokey { bool connect(const char *device_model); bool connect(); bool disconnect(); - bool is_connected() const throw() ; + bool is_connected() throw() ; DeviceModel get_connected_device_model() const; void set_debug(bool state); stick10::GetStatus::ResponsePayload get_status(); @@ -156,6 +156,7 @@ namespace nitrokey { bool use_8_digits, bool use_enter, bool use_tokenID, const char *token_ID, const char *temporary_password) const; + bool _disconnect_no_lock(); }; } -- cgit v1.2.1 From db76ae5299f3650385f66e4c596b18fd54250d38 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 3 Feb 2017 17:23:44 +0100 Subject: Allow users to lock encrypted volumes specifically Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 4a98e94..b89db63 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -91,8 +91,10 @@ namespace nitrokey { bool is_AES_supported(const char *user_password); void unlock_encrypted_volume(const char *user_password); + void lock_encrypted_volume(); void unlock_hidden_volume(const char *hidden_volume_password); + void lock_hidden_volume(); void set_unencrypted_read_only(const char *user_pin); -- cgit v1.2.1 From 8617a13371d087b1eb67bd066926038d289ab331 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 17 Feb 2017 09:27:38 +0100 Subject: Handle SD card related functions Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index b89db63..2200955 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -106,6 +106,8 @@ namespace nitrokey { void fill_SD_card_with_random_data(const char *admin_pin); + int get_SD_card_size(); + void change_update_password(const char *current_update_password, const char *new_update_password); void create_hidden_volume(uint8_t slot_nr, uint8_t start_percent, uint8_t end_percent, @@ -117,8 +119,10 @@ namespace nitrokey { stick20::DeviceConfigurationResponsePacket::ResponsePayload get_status_storage(); const char *get_SD_usage_data_as_string(); + std::pair get_SD_usage_data(); + - int get_progress_bar_value(); + int get_progress_bar_value(); ~NitrokeyManager(); bool is_authorization_command_supported(); @@ -159,6 +163,7 @@ namespace nitrokey { const char *temporary_password) const; bool _disconnect_no_lock(); + }; } -- cgit v1.2.1 From 4e26fdee0c1435016d6642cf8c1f88c3dd5495fa Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 17 Feb 2017 11:16:48 +0100 Subject: Return SD card size as get from the device Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 2200955..7cf55c7 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -106,7 +106,7 @@ namespace nitrokey { void fill_SD_card_with_random_data(const char *admin_pin); - int get_SD_card_size(); + uint8_t get_SD_card_size(); void change_update_password(const char *current_update_password, const char *new_update_password); -- cgit v1.2.1 From ad286a23ba8a542afe0095b97caf52320778c5e6 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 21 Feb 2017 13:12:12 +0100 Subject: Feature check for 320 bits OTP secret Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 7cf55c7..d49941e 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -122,12 +122,14 @@ namespace nitrokey { std::pair get_SD_usage_data(); - int get_progress_bar_value(); + int get_progress_bar_value(); ~NitrokeyManager(); bool is_authorization_command_supported(); + bool is_320_OTP_secret_supported(); - template + + template void authorize_packet(T &package, const char *admin_temporary_password, shared_ptr device); int get_minor_firmware_version(); -- cgit v1.2.1 From 7132b01a499568c21a7ec64b9c58672541bbb7f6 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 7 Mar 2017 16:57:47 +0100 Subject: Handle enabling update mode on Storage device Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index d49941e..71ac6fa 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -101,6 +101,7 @@ namespace nitrokey { void set_unencrypted_read_write(const char *user_pin); void export_firmware(const char *admin_pin); + void enable_firmware_update(const char *firmware_pin); void clear_new_sd_card_warning(const char *admin_pin); -- cgit v1.2.1 From a9c42dea301329136f663ebc9482a1d38feada29 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Thu, 9 Mar 2017 17:33:56 +0100 Subject: Allow to check is current device visible to the OS Signed-off-by: Szczepan Zalega --- include/NitrokeyManager.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include/NitrokeyManager.h') diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index 71ac6fa..4f11314 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -44,7 +44,9 @@ namespace nitrokey { bool connect(); bool disconnect(); bool is_connected() throw() ; - DeviceModel get_connected_device_model() const; + bool could_current_device_be_enumerated(); + + DeviceModel get_connected_device_model() const; void set_debug(bool state); stick10::GetStatus::ResponsePayload get_status(); string get_status_as_string(); -- cgit v1.2.1