diff options
author | szszszsz <szszszsz@users.noreply.github.com> | 2016-09-10 11:02:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-10 11:02:38 +0200 |
commit | b16e89ad4445fe9bbb66e8e7f8771a6ca6b333cf (patch) | |
tree | d332db36123c80ac84474c75b9be4acdff81bf54 /include | |
parent | e164c5f3dc74fb2335b1fc573ce446cdd76a07dc (diff) | |
parent | a46491a97da08e495c92bba8046426678b5564f7 (diff) | |
download | libnitrokey-b16e89ad4445fe9bbb66e8e7f8771a6ca6b333cf.tar.gz libnitrokey-b16e89ad4445fe9bbb66e8e7f8771a6ca6b333cf.tar.bz2 |
Merge pull request #36 from Nitrokey/issue_31-secret_as_hex
#31 pass secret to OTP as hex (breaking change - previously any string was accepted)
Diffstat (limited to 'include')
-rw-r--r-- | include/LibraryException.h | 41 | ||||
-rw-r--r-- | include/misc.h | 4 |
2 files changed, 44 insertions, 1 deletions
diff --git a/include/LibraryException.h b/include/LibraryException.h index 5036320..72891fb 100644 --- a/include/LibraryException.h +++ b/include/LibraryException.h @@ -12,6 +12,47 @@ public: +class TargetBufferSmallerThanSource: public LibraryException { +public: + virtual uint8_t exception_id() override { + return 203; + } + +public: + size_t source_size; + size_t target_size; + + TargetBufferSmallerThanSource( + size_t source_size, size_t target_size + ) : source_size(source_size), target_size(target_size) {} + + virtual const char *what() const throw() override { + std::string s = " "; + auto ts = [](int x){ return std::to_string(x); }; + std::string msg = std::string("Target buffer size is smaller than source: [source size, buffer size]") + +s+ ts(source_size) +s+ ts(target_size); + return msg.c_str(); + } + +}; + +class InvalidHexString : public LibraryException { +public: + virtual uint8_t exception_id() override { + return 202; + } + +public: + uint8_t invalid_char; + + InvalidHexString (uint8_t invalid_char) : invalid_char( invalid_char) {} + + virtual const char *what() const throw() override { + return "Invalid character in hex string"; + } + +}; + class InvalidSlotException : public LibraryException { public: virtual uint8_t exception_id() override { diff --git a/include/misc.h b/include/misc.h index cccd830..5fcd16d 100644 --- a/include/misc.h +++ b/include/misc.h @@ -2,6 +2,7 @@ #define MISC_H #include <stdio.h> #include <string> +#include <vector> namespace nitrokey { namespace misc { @@ -16,7 +17,8 @@ typename T::CommandPayload get_payload(){ std::string hexdump(const char *p, size_t size, bool print_header=true); -uint32_t stm_crc32(const uint8_t *data, size_t size); + uint32_t stm_crc32(const uint8_t *data, size_t size); + std::vector<uint8_t> hex_string_to_byte(const char* hexString); } } |