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