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);  }  } | 
