diff --git a/docs/changes.txt b/docs/changes.txt index 6604d68f1..f5b333503 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -20,6 +20,7 @@ - Fixed unexpected non-unique salts in multi-hash cracking in Bitcoin/Litecoin wallet.dat module which lead to false negatives - Fixed rare case of misalignment of the status prompt when other user warnings are shown within the hashcat output - Fixed password reassembling for cracked hashes on host for slow hashes in optimized mode that are longer than 32 characters +- Fixed incorrect maximum password length support for -m 400 in optimized mode (reduced from 55 to 39) ## ## Improvements diff --git a/src/modules/module_00400.c b/src/modules/module_00400.c index d4ef2f033..def472e8c 100644 --- a/src/modules/module_00400.c +++ b/src/modules/module_00400.c @@ -156,6 +156,15 @@ static void phpass_encode (const u8 digest[16], u8 buf[22]) buf[21] = int_to_itoa64 (l & 0x3f); } +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const bool optimized_kernel = (hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL); + + const u32 pw_max = (optimized_kernel == true) ? 39 : PW_MAX; // 55 - 16 + + return pw_max; +} + int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) { u32 *digest = (u32 *) digest_buf; @@ -282,7 +291,7 @@ void module_init (module_ctx_t *module_ctx) module_ctx->module_potfile_disable = MODULE_DEFAULT; module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; module_ctx->module_pwdump_column = MODULE_DEFAULT; - module_ctx->module_pw_max = MODULE_DEFAULT; + module_ctx->module_pw_max = module_pw_max; module_ctx->module_pw_min = MODULE_DEFAULT; module_ctx->module_salt_max = MODULE_DEFAULT; module_ctx->module_salt_min = MODULE_DEFAULT;