diff options
author | Mattias Andrée <maandree@kth.se> | 2019-02-10 17:10:20 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2019-02-10 17:11:30 +0100 |
commit | 32a5ae4e65844615cb3e32aaefcdb7abe4af54c9 (patch) | |
tree | 0ecfa02766944f2568b184d8d5a8ba0edc71425f /unhex.c | |
parent | Use lowest bits rather than highest bits in complete byte, document this, and add tests (diff) | |
download | libsha2-32a5ae4e65844615cb3e32aaefcdb7abe4af54c9.tar.gz libsha2-32a5ae4e65844615cb3e32aaefcdb7abe4af54c9.tar.bz2 libsha2-32a5ae4e65844615cb3e32aaefcdb7abe4af54c9.tar.xz |
Add HMAC and use void * instead of char * for binary data
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'unhex.c')
-rw-r--r-- | unhex.c | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -11,17 +11,18 @@ * @param hashsum The hashsum to convert */ void -libsha2_unhex(char *restrict output, const char *restrict hashsum) +libsha2_unhex(void *restrict output_, const char *restrict hashsum) { + unsigned char *restrict output = output_; size_t n = strlen(hashsum) / 2; - char a, b; + unsigned char a, b; while (n--) { - a = hashsum[2 * n + 0]; - b = hashsum[2 * n + 1]; + a = ((const unsigned char *)hashsum)[2 * n + 0]; + b = ((const unsigned char *)hashsum)[2 * n + 1]; - a = (char)((a & 15) + (a > '9' ? 9 : 0)); - b = (char)((b & 15) + (b > '9' ? 9 : 0)); + a = (unsigned char)((a & 15) + (a > '9' ? 9 : 0)); + b = (unsigned char)((b & 15) + (b > '9' ? 9 : 0)); - output[n] = (char)((a << 4) | b); + output[n] = (unsigned char)((a << 4) | b); } } |