/* * cifra - embedded cryptography library * Written in 2014 by Joseph Birr-Pixton * * To the extent possible under law, the author(s) have dedicated all * copyright and related and neighboring rights to this software to the * public domain worldwide. This software is distributed without any * warranty. * * You should have received a copy of the CC0 Public Domain Dedication * along with this software. If not, see * . */ #ifndef TESTUTIL_H #define TESTUTIL_H #include #include #include static inline uint8_t unhex_chr(char a) { if (a >= '0' && a <= '9') return a - '0'; else if (a >= 'a' && a <= 'f') return a - 'a' + 10; else if (a >= 'A' && a <= 'F') return a - 'A' + 10; return 0; } static inline size_t unhex(uint8_t *buf, size_t len, const char *str) { size_t used = 0; assert(strlen(str) % 2 == 0); assert(strlen(str) / 2 <= len); while (*str) { assert(len); *buf = unhex_chr(str[0]) << 4 | unhex_chr(str[1]); buf++; used++; str += 2; len--; } return used; } static inline void dump(const char *label, const uint8_t *buf, size_t len) { printf("%s: ", label); for (size_t i = 0; i < len; i++) printf("%02x", buf[i]); printf("\n"); } #endif