diff --git a/src/modules/module_26200.c b/src/modules/module_26200.c index c7cc91cae..fe3c9bb82 100644 --- a/src/modules/module_26200.c +++ b/src/modules/module_26200.c @@ -109,7 +109,27 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE const u8 *hash_pos = (u8 *) token.buf[0]; const u32 hash_len = token.len[0]; - memcpy ((u8 *)digest, hash_pos, hash_len); + /* + * Check encoding: + */ + + for (u32 i = 0; i < hash_len; i++) + { + // chars used (alphabet): + // ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz + + const u8 c = hash_pos[i]; + + if ( c < 'A') return (PARSER_HASH_ENCODING); + if (c > 'Z' && c < 'a') return (PARSER_HASH_ENCODING); + if (c > 'z' ) return (PARSER_HASH_ENCODING); + } + + /* + * digest: + */ + + memcpy ((u8 *) digest, hash_pos, hash_len); return (PARSER_OK); }