/* See LICENSE file for copyright and license details. */ #include "common.h" void libsha1_unhex(void *restrict output_, const char *restrict hashsum) { unsigned char *restrict output = output_; size_t n = strlen(hashsum) / 2; unsigned char a, b; while (n--) { a = ((const unsigned char *)hashsum)[2 * n + 0]; b = ((const unsigned char *)hashsum)[2 * n + 1]; a = (unsigned char)((a & 15) + (a > '9' ? 9 : 0)); b = (unsigned char)((b & 15) + (b > '9' ? 9 : 0)); output[n] = (unsigned char)((a << 4) | b); } }