aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorszszszsz <szszszsz@users.noreply.github.com>2016-09-10 11:02:38 +0200
committerGitHub <noreply@github.com>2016-09-10 11:02:38 +0200
commitb16e89ad4445fe9bbb66e8e7f8771a6ca6b333cf (patch)
treed332db36123c80ac84474c75b9be4acdff81bf54 /include
parente164c5f3dc74fb2335b1fc573ce446cdd76a07dc (diff)
parenta46491a97da08e495c92bba8046426678b5564f7 (diff)
downloadlibnitrokey-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.h41
-rw-r--r--include/misc.h4
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);
}
}