diff -urpN memdbg1/src/dynamic_fmt.c memdbg/src/dynamic_fmt.c --- memdbg1/src/dynamic_fmt.c 2013-04-10 13:59:34.498180600 -0500 +++ memdbg/src/dynamic_fmt.c 2013-04-08 16:10:53.000000000 -0500 @@ -773,6 +773,23 @@ static int valid(char *ciphertext, struc if ( (pPriv->FldMask & (MGF_FLDx_BIT<dynamic_SALT_OFFSET-1], Fld)) return 0; } + if (pPriv->pSetup->flags & MGF_HDAA_SALT) { + char *cp = strchr(&ciphertext[12], '$'), *cp2; + if (!cp) return 0; + cp2 = strchr(&cp[1], '$'); + if (!cp2 || cp2-cp == 0 || strncmp(cp2,"$$U",3)) return 0; + cp = strstr(&cp2[2], "$$F2"); + if (!cp) return 0; + cp = strstr(&cp[2], "$$F3"); + if (!cp) return 0; + cp = strstr(&cp[2], "$$F4"); + if (!cp) return 0; + cp += 3; + cp = strchr(cp, '$'); + if (!cp) return 0; + cp = strchr(&cp[1], '$'); + if (!cp) return 0; + } return 1; } diff -urpN memdbg1/src/dynamic_preloads.c memdbg/src/dynamic_preloads.c --- memdbg1/src/dynamic_preloads.c 2013-04-10 13:59:34.505682100 -0500 +++ memdbg/src/dynamic_preloads.c 2013-04-12 08:34:28.668921200 -0500 @@ -1432,7 +1432,7 @@ static DYNAMIC_Setup Setups[] = { "dynamic_18: md5($s.Y.$p.0xF7.$s)(Post.Office MD5)", _Funcs_18,_Preloads_18,_Const_18, MGF_SALTED|MGF_NOTSSE2Safe, MGF_POSetup, 32, 32 }, { "dynamic_19: Cisco PIX (MD5)", _Funcs_19,_Preloads_19,_ConstDefault, MGF_INPBASE64_4x6, MGF_NO_FLAG, 0, 16, 16 }, { "dynamic_20: Cisco ASA (MD5 salted)", _Funcs_20,_Preloads_20,_ConstDefault, MGF_INPBASE64_4x6|MGF_SALTED, MGF_NO_FLAG, 4, 12, 12 }, - { "dynamic_21: HTTP Digest Access Auth", _Funcs_21,_Preloads_21,_Const_21, MGF_HDAA_SALT|MGF_FLD2|MGF_FLD3|MGF_SALTED, MGF_NO_FLAG, 0, 26, 26 }, + { "dynamic_21: HTTP Digest Access Auth", _Funcs_21,_Preloads_21,_Const_21, MGF_HDAA_SALT|MGF_USERNAME|MGF_FLD2|MGF_FLD3|MGF_FLD4|MGF_SALTED, MGF_NO_FLAG, 0, 26, 26 }, { "dynamic_22: md5(sha1($p))", _Funcs_22,_Preloads_22,_ConstDefault, MGF_StartInX86Mode, MGF_KEYS_INPUT_BE_SAFE }, { "dynamic_23: sha1(md5($p))", _Funcs_23,_Preloads_23,_ConstDefault, MGF_NO_FLAG, MGF_SHA1_40_BYTE_FINISH|MGF_KEYS_INPUT, }, { "dynamic_24: sha1($p.$s)", _Funcs_24,_Preloads_24,_ConstDefault, MGF_SALTED, MGF_NO_FLAG|MGF_SHA1_40_BYTE_FINISH, -24 },