diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/CommandFailedException.h | 2 | ||||
| -rw-r--r-- | include/NKPro_commands.h | 2 | ||||
| -rw-r--r-- | include/NKPro_commands_0.8.h | 52 | ||||
| -rw-r--r-- | include/NKStorage_commands.h | 3 | ||||
| -rw-r--r-- | include/NitrokeyManager.h | 14 | ||||
| -rw-r--r-- | include/command.h | 2 | ||||
| -rw-r--r-- | include/command_id.h | 4 | ||||
| -rw-r--r-- | include/device_proto.h | 50 | ||||
| -rw-r--r-- | include/dissect.h | 34 | 
9 files changed, 81 insertions, 82 deletions
diff --git a/include/CommandFailedException.h b/include/CommandFailedException.h index 417e850..8434301 100644 --- a/include/CommandFailedException.h +++ b/include/CommandFailedException.h @@ -10,7 +10,7 @@  #include "log.h"  #include "command_id.h" -using cs = nitrokey::proto::stick10::command_status; +using cs = nitrokey::proto::NKPro::command_status;  class CommandFailedException : public std::exception {  public: diff --git a/include/NKPro_commands.h b/include/NKPro_commands.h index e863328..1ed3d4f 100644 --- a/include/NKPro_commands.h +++ b/include/NKPro_commands.h @@ -19,7 +19,7 @@ namespace proto {  /*   *	Stick10 protocol definition   */ -namespace stick10 { +namespace NKPro {  class GetSlotName : public Command<CommandID::READ_SLOT_NAME> {   public:    // reachable as a typedef in Transaction diff --git a/include/NKPro_commands_0.8.h b/include/NKPro_commands_0.8.h index 76bb030..2482dec 100644 --- a/include/NKPro_commands_0.8.h +++ b/include/NKPro_commands_0.8.h @@ -23,32 +23,32 @@ namespace nitrokey {  /*   *	Stick10 protocol definition   */ -        namespace stick10_08 { -            using stick10::FirstAuthenticate; -            using stick10::UserAuthenticate; -            using stick10::SetTime; -            using stick10::GetStatus; -            using stick10::BuildAESKey; -            using stick10::ChangeAdminPin; -            using stick10::ChangeUserPin; -            using stick10::EnablePasswordSafe; -            using stick10::ErasePasswordSafeSlot; -            using stick10::FactoryReset; -            using stick10::GetPasswordRetryCount; -            using stick10::GetUserPasswordRetryCount; -            using stick10::GetPasswordSafeSlotLogin; -            using stick10::GetPasswordSafeSlotName; -            using stick10::GetPasswordSafeSlotPassword; -            using stick10::GetPasswordSafeSlotStatus; -            using stick10::GetSlotName; -            using stick10::IsAESSupported; -            using stick10::LockDevice; -            using stick10::PasswordSafeInitKey; -            using stick10::PasswordSafeSendSlotViaHID; -            using stick10::SetPasswordSafeSlotData; -            using stick10::SetPasswordSafeSlotData2; -            using stick10::UnlockUserPassword; -            using stick10::ReadSlot; +        namespace NKPro_08 { +            using NKPro::FirstAuthenticate; +            using NKPro::UserAuthenticate; +            using NKPro::SetTime; +            using NKPro::GetStatus; +            using NKPro::BuildAESKey; +            using NKPro::ChangeAdminPin; +            using NKPro::ChangeUserPin; +            using NKPro::EnablePasswordSafe; +            using NKPro::ErasePasswordSafeSlot; +            using NKPro::FactoryReset; +            using NKPro::GetPasswordRetryCount; +            using NKPro::GetUserPasswordRetryCount; +            using NKPro::GetPasswordSafeSlotLogin; +            using NKPro::GetPasswordSafeSlotName; +            using NKPro::GetPasswordSafeSlotPassword; +            using NKPro::GetPasswordSafeSlotStatus; +            using NKPro::GetSlotName; +            using NKPro::IsAESSupported; +            using NKPro::LockDevice; +            using NKPro::PasswordSafeInitKey; +            using NKPro::PasswordSafeSendSlotViaHID; +            using NKPro::SetPasswordSafeSlotData; +            using NKPro::SetPasswordSafeSlotData2; +            using NKPro::UnlockUserPassword; +            using NKPro::ReadSlot;              class EraseSlot : Command<CommandID::ERASE_SLOT> {              public: diff --git a/include/NKStorage_commands.h b/include/NKStorage_commands.h index 5f99d28..b375617 100644 --- a/include/NKStorage_commands.h +++ b/include/NKStorage_commands.h @@ -18,8 +18,7 @@ namespace nitrokey {  *	STICK20 protocol command ids  *	a superset (almost) of STICK10  */ - -        namespace stick20 { +        namespace NKStorage {              class ChangeAdminUserPin20Current :                  public PasswordCommand<CommandID::SEND_PASSWORD, PasswordKind::Admin> {}; diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h index f6977d9..216ff88 100644 --- a/include/NitrokeyManager.h +++ b/include/NitrokeyManager.h @@ -13,8 +13,8 @@  namespace nitrokey {      using namespace nitrokey::device;      using namespace std; -    using namespace nitrokey::proto::stick10; -    using namespace nitrokey::proto::stick20; +    using namespace nitrokey::proto::NKPro; +    using namespace nitrokey::proto::NKStorage;      using namespace nitrokey::proto;      using namespace nitrokey::log; @@ -39,8 +39,8 @@ char * strndup(const char* str, size_t maxlen);                               uint8_t last_interval,                               const char *user_temporary_password);          string 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); +        NKPro::ReadSlot::ResponsePayload get_TOTP_slot_data(const uint8_t slot_number); +        NKPro::ReadSlot::ResponsePayload get_HOTP_slot_data(const uint8_t slot_number);          bool set_time(uint64_t time);          bool get_time(uint64_t time = 0); @@ -55,7 +55,7 @@ char * strndup(const char* str, size_t maxlen);        DeviceModel get_connected_device_model() const;            void set_debug(bool state); -        stick10::GetStatus::ResponsePayload get_status(); +        NKPro::GetStatus::ResponsePayload get_status();          string get_status_as_string();          string get_serial_number(); @@ -126,7 +126,7 @@ char * strndup(const char* str, size_t maxlen);          void send_startup(uint64_t seconds_from_epoch);          const char * get_status_storage_as_string(); -        stick20::DeviceConfigurationResponsePacket::ResponsePayload get_status_storage(); +        NKStorage::DeviceConfigurationResponsePacket::ResponsePayload get_status_storage();          const char *get_SD_usage_data_as_string();          std::pair<uint8_t,uint8_t> get_SD_usage_data(); @@ -150,7 +150,7 @@ char * strndup(const char* str, size_t maxlen);          static shared_ptr <NitrokeyManager> _instance;          std::shared_ptr<Device> device; -      stick10::ReadSlot::ResponsePayload get_OTP_slot_data(const uint8_t slot_number); +      NKPro::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; diff --git a/include/command.h b/include/command.h index 3f711c0..4710cbd 100644 --- a/include/command.h +++ b/include/command.h @@ -27,7 +27,7 @@ namespace nitrokey {              }          }; -namespace stick20{ +namespace NKStorage{          enum class PasswordKind : uint8_t {              User = 'P',              Admin = 'A', diff --git a/include/command_id.h b/include/command_id.h index d1246dd..cde75f1 100644 --- a/include/command_id.h +++ b/include/command_id.h @@ -4,7 +4,7 @@  namespace nitrokey {  namespace proto { -    namespace stick20 { +    namespace NKStorage {        enum class device_status : uint8_t {          idle = 0,          ok, @@ -19,7 +19,7 @@ namespace proto {        const int CMD_START_VALUE = 0x20;        const int CMD_END_VALUE = 0x60;      } -    namespace stick10 { +    namespace NKPro {        enum class command_status : uint8_t {            ok = 0,            wrong_CRC, diff --git a/include/device_proto.h b/include/device_proto.h index b557384..4abb7b8 100644 --- a/include/device_proto.h +++ b/include/device_proto.h @@ -120,7 +120,7 @@ namespace nitrokey {                      uint8_t _storage_status_padding[storage_status_padding_size];                      uint8_t command_counter;                      uint8_t command_id; -                    uint8_t device_status; //@see stick20::device_status +                    uint8_t device_status; //@see NKStorage::device_status                      uint8_t progress_bar_value;                  } __packed storage_status;              } __packed; @@ -269,24 +269,24 @@ namespace nitrokey {                    status = dev->recv(&resp);                    if (dev->get_device_model() == DeviceModel::STORAGE && -                      resp.command_id >= stick20::CMD_START_VALUE && -                      resp.command_id < stick20::CMD_END_VALUE ) { +                      resp.command_id >= NKStorage::CMD_START_VALUE && +                      resp.command_id < NKStorage::CMD_END_VALUE ) {                      LOG(std::string("Detected storage device cmd, status: ") +                                      std::to_string(resp.storage_status.device_status), Loglevel::DEBUG_L2); -                    resp.last_command_status = static_cast<uint8_t>(stick10::command_status::ok); -                    switch (static_cast<stick20::device_status>(resp.storage_status.device_status)) { -                      case stick20::device_status::idle : -                      case stick20::device_status::ok: -                        resp.device_status = static_cast<uint8_t>(stick10::device_status::ok); +                    resp.last_command_status = static_cast<uint8_t>(NKPro::command_status::ok); +                    switch (static_cast<NKStorage::device_status>(resp.storage_status.device_status)) { +                      case NKStorage::device_status::idle : +                      case NKStorage::device_status::ok: +                        resp.device_status = static_cast<uint8_t>(NKPro::device_status::ok);                          break; -                      case stick20::device_status::busy: -                      case stick20::device_status::busy_progressbar: //TODO this will be modified later for getting progressbar status -                        resp.device_status = static_cast<uint8_t>(stick10::device_status::busy); +                      case NKStorage::device_status::busy: +                      case NKStorage::device_status::busy_progressbar: //TODO this will be modified later for getting progressbar status +                        resp.device_status = static_cast<uint8_t>(NKPro::device_status::busy);                          break; -                      case stick20::device_status::wrong_password: -                        resp.last_command_status = static_cast<uint8_t>(stick10::command_status::wrong_password); -                        resp.device_status = static_cast<uint8_t>(stick10::device_status::ok); +                      case NKStorage::device_status::wrong_password: +                        resp.last_command_status = static_cast<uint8_t>(NKPro::command_status::wrong_password); +                        resp.device_status = static_cast<uint8_t>(NKPro::device_status::ok);                          break;                        default:                          LOG(std::string("Unknown storage device status, cannot translate: ") + @@ -299,12 +299,12 @@ namespace nitrokey {                    //SENDPASSWORD gives wrong CRC , for now rely on !=0 (TODO report)  //                  if (resp.device_status == 0 && resp.last_command_crc == outp.crc && resp.isCRCcorrect()) break;                    auto CRC_equal_awaited = resp.last_command_crc == outp.crc; -                  if (resp.device_status == static_cast<uint8_t>(stick10::device_status::ok) && +                  if (resp.device_status == static_cast<uint8_t>(NKPro::device_status::ok) &&                        CRC_equal_awaited && resp.isValid()){                      successful_communication = true;                      break;                    } -                  if (resp.device_status == static_cast<uint8_t>(stick10::device_status::busy)) { +                  if (resp.device_status == static_cast<uint8_t>(NKPro::device_status::busy)) {                      dev->m_counters.busy++;                      if (busy_counter++<10) {                        receiving_retry_counter++; @@ -318,9 +318,9 @@ namespace nitrokey {                            + std::to_string(retry_timeout.count()), Loglevel::DEBUG);                      }                    } -                  if (resp.device_status == static_cast<uint8_t>(stick10::device_status::busy) && -                      static_cast<stick20::device_status>(resp.storage_status.device_status) -                      == stick20::device_status::busy_progressbar){ +                  if (resp.device_status == static_cast<uint8_t>(NKPro::device_status::busy) && +                      static_cast<NKStorage::device_status>(resp.storage_status.device_status) +                      == NKStorage::device_status::busy_progressbar){                      successful_communication = true;                      break;                    } @@ -371,9 +371,9 @@ namespace nitrokey {                LOG(std::string("receiving_retry_counter count: ") + std::to_string(receiving_retry_counter),                                Loglevel::DEBUG_L2); -              if (resp.device_status == static_cast<uint8_t>(stick10::device_status::busy) && -                  static_cast<stick20::device_status>(resp.storage_status.device_status) -                  == stick20::device_status::busy_progressbar){ +              if (resp.device_status == static_cast<uint8_t>(NKPro::device_status::busy) && +                  static_cast<NKStorage::device_status>(resp.storage_status.device_status) +                  == NKStorage::device_status::busy_progressbar){                  dev->m_counters.busy_progressbar++;                  throw LongOperationInProgressException(                      resp.command_id, resp.device_status, resp.storage_status.progress_bar_value); @@ -385,7 +385,7 @@ namespace nitrokey {                      "Maximum receiving_retry_counter count reached for receiving response from the device!");                dev->m_counters.communication_successful++; -              if (resp.last_command_status != static_cast<uint8_t>(stick10::command_status::ok)){ +              if (resp.last_command_status != static_cast<uint8_t>(NKPro::command_status::ok)){                  dev->m_counters.command_result_not_equal_0_recv++;                  throw CommandFailedException(resp.command_id, resp.last_command_status);                } @@ -393,8 +393,8 @@ namespace nitrokey {                dev->m_counters.command_successful_recv++;                if (dev->get_device_model() == DeviceModel::STORAGE && -                  resp.command_id >= stick20::CMD_START_VALUE && -                  resp.command_id < stick20::CMD_END_VALUE ) { +                  resp.command_id >= NKStorage::CMD_START_VALUE && +                  resp.command_id < NKStorage::CMD_END_VALUE ) {                  dev->m_counters.successful_storage_commands++;                } diff --git a/include/dissect.h b/include/dissect.h index 69a5129..8ff392a 100644 --- a/include/dissect.h +++ b/include/dissect.h @@ -45,12 +45,12 @@ template <CommandID id, class HIDPacket>  class ResponseDissector : semantics::non_constructible {   public:      static std::string status_translate_device(int status){ -      auto enum_status = static_cast<proto::stick10::device_status>(status); +      auto enum_status = static_cast<proto::NKPro::device_status>(status);        switch (enum_status){ -        case stick10::device_status::ok: return "OK"; -        case stick10::device_status::busy: return "BUSY"; -        case stick10::device_status::error: return "ERROR"; -        case stick10::device_status::received_report: return "RECEIVED_REPORT"; +        case NKPro::device_status::ok: return "OK"; +        case NKPro::device_status::busy: return "BUSY"; +        case NKPro::device_status::error: return "ERROR"; +        case NKPro::device_status::received_report: return "RECEIVED_REPORT";        }        return std::string("UNKNOWN: ") + std::to_string(status);      } @@ -60,20 +60,20 @@ class ResponseDissector : semantics::non_constructible {        return str;      }      static std::string status_translate_command(int status){ -      auto enum_status = static_cast<proto::stick10::command_status >(status); +      auto enum_status = static_cast<proto::NKPro::command_status >(status);        switch (enum_status) {  #define p(X) case X: return to_upper(std::string(#X)); -        p(stick10::command_status::ok) -        p(stick10::command_status::wrong_CRC) -        p(stick10::command_status::wrong_slot) -        p(stick10::command_status::slot_not_programmed) -        p(stick10::command_status::wrong_password) -        p(stick10::command_status::not_authorized) -        p(stick10::command_status::timestamp_warning) -        p(stick10::command_status::no_name_error) -        p(stick10::command_status::not_supported) -        p(stick10::command_status::unknown_command) -        p(stick10::command_status::AES_dec_failed) +        p(NKPro::command_status::ok) +        p(NKPro::command_status::wrong_CRC) +        p(NKPro::command_status::wrong_slot) +        p(NKPro::command_status::slot_not_programmed) +        p(NKPro::command_status::wrong_password) +        p(NKPro::command_status::not_authorized) +        p(NKPro::command_status::timestamp_warning) +        p(NKPro::command_status::no_name_error) +        p(NKPro::command_status::not_supported) +        p(NKPro::command_status::unknown_command) +        p(NKPro::command_status::AES_dec_failed)  #undef p        }        return std::string("UNKNOWN: ") + std::to_string(status);  | 
