From 77ea27f25165302491a693051bea05c67e6dfbed Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Fri, 9 Sep 2016 10:18:46 +0200 Subject: Add hex to binary converting function Signed-off-by: Szczepan Zalega --- include/misc.h | 4 +++- misc.cc | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) 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 #include +#include 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 hex_string_to_byte(const char* hexString); } } diff --git a/misc.cc b/misc.cc index d004d0f..5d7c387 100644 --- a/misc.cc +++ b/misc.cc @@ -2,10 +2,36 @@ #include #include "misc.h" #include "inttypes.h" +#include +#include +#include namespace nitrokey { namespace misc { +std::vector hex_string_to_byte(const char* hexString){ + const size_t s_size = strlen(hexString); + const size_t d_size = (s_size+1)/2; // add 1 for odd, ignore for even + assert(s_size%2==0); + assert(s_size<256); //arbitrary 'big' number + auto data = std::vector(d_size, 0); + + char buf[2]; + for(int i=0; i