| /* |
| * cifra - embedded cryptography library |
| * Written in 2014 by Joseph Birr-Pixton <jpixton@gmail.com> |
| * |
| * 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 |
| * <http://creativecommons.org/publicdomain/zero/1.0/>. |
| */ |
| |
| #ifndef TESTUTIL_H |
| #define TESTUTIL_H |
| |
| #include <assert.h> |
| #include <string.h> |
| #include <stdio.h> |
| |
| 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 |