void amcl_hex2bin()

in src/utils.c [39:82]


void amcl_hex2bin(const char *src, char *dst, size_t src_len)
{
    char v;
    char c;
    for (size_t i = 0; i < src_len/2; i++)
    {
        c = src[2*i];
        if (c >= '0' && c <= '9')
        {
            v = c - '0';
        }
        else if (c >= 'A' && c <= 'F')
        {
            v = c - 'A' + 10;
        }
        else if (c >= 'a' && c <= 'f')
        {
            v = c - 'a' + 10;
        }
        else
        {
            v = 0;
        }
        v <<= 4;
        c = src[2*i + 1];
        if (c >= '0' && c <= '9')
        {
            v += c - '0';
        }
        else if (c >= 'A' && c <= 'F')
        {
            v += c - 'A' + 10;
        }
        else if (c >= 'a' && c <= 'f')
        {
            v += c - 'a' + 10;
        }
        else
        {
            v = 0;
        }
        dst[i] = v;
    }
}