From ac35ab8111875b52e3185f769a02a6e6c3f7fd53 Mon Sep 17 00:00:00 2001 From: Martin Lemay Date: Fri, 22 Apr 2016 15:32:06 -0400 Subject: [PATCH] esalt hex convertion. --- src/shared.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/shared.c b/src/shared.c index 84196f8..047414a 100644 --- a/src/shared.c +++ b/src/shared.c @@ -11770,6 +11770,9 @@ int pstoken_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf) u32 *digest = (u32 *) hash_buf->digest; salt_t *salt = hash_buf->salt; pstoken_t *pstoken = (pstoken_t *) hash_buf->esalt; + u8 pstoken_tmp[DISPLAY_LEN_MAX_13500 - 40 - 1]; + + memcpy(pstoken_tmp, "\0", DISPLAY_LEN_MAX_13500 - 40 - 1); digest[0] = hex_to_u32 ((const u8 *) &input_buf[ 0]); digest[1] = hex_to_u32 ((const u8 *) &input_buf[ 8]); @@ -11791,11 +11794,17 @@ int pstoken_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf) if (salt_len == UINT_MAX) return (PARSER_SALT_LENGTH); + for (uint i = 0; i < salt_len / 2; i++) + { + pstoken_tmp[i] = hex_to_u8 ((const u8 *) &salt_buf[i * 2]); + } + + salt_len /= 2; salt->salt_len = salt_len; pstoken->salt_len = salt_len; - memcpy(salt->salt_buf, salt_buf, 16); - memcpy(pstoken->salt_buf, salt_buf, salt_len); + memcpy(salt->salt_buf, pstoken_tmp, 16); + memcpy(pstoken->salt_buf, pstoken_tmp, salt_len); return (PARSER_OK); } -- 2.43.0