From 1fabc4ecbedd1fbfaca7886cf1b34a7e9409a80b Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Wed, 10 Feb 2021 17:05:24 +1100 Subject: [PATCH] util/mesa_sha1: add helper to reconvert sha1 hex strings Converts the sha1 hex string representation back into its original more compact format. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/util/mesa-sha1.c | 15 +++++++++++++++ src/util/mesa-sha1.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/util/mesa-sha1.c b/src/util/mesa-sha1.c index fa9284627b1..410e82c7104 100644 --- a/src/util/mesa-sha1.c +++ b/src/util/mesa-sha1.c @@ -49,3 +49,18 @@ _mesa_sha1_format(char *buf, const unsigned char *sha1) } buf[i] = '\0'; } + +/* Convert a hashs string hexidecimal representation into its more compact + * form. + */ +void +_mesa_sha1_hex_to_sha1(unsigned char *buf, const char *hex) +{ + for (unsigned i = 0; i < 20; i++) { + char tmp[3]; + tmp[0] = hex[i * 2]; + tmp[1] = hex[(i * 2) + 1]; + tmp[2] = '\0'; + buf[i] = strtol(tmp, NULL, 16); + } +} diff --git a/src/util/mesa-sha1.h b/src/util/mesa-sha1.h index bde50ba1eb4..9842bbb1e2d 100644 --- a/src/util/mesa-sha1.h +++ b/src/util/mesa-sha1.h @@ -54,6 +54,9 @@ _mesa_sha1_final(struct mesa_sha1 *ctx, unsigned char result[20]) void _mesa_sha1_format(char *buf, const unsigned char *sha1); +void +_mesa_sha1_hex_to_sha1(unsigned char *buf, const char *hex); + void _mesa_sha1_compute(const void *data, size_t size, unsigned char result[20]);