|
|
@ -76,18 +76,18 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
|
|
|
const u32 salt_len = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_len;
|
|
|
|
const u32 salt_len = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_len;
|
|
|
|
|
|
|
|
|
|
|
|
u32 s[64] = { 0 };
|
|
|
|
u32 s[64] = { 0 };
|
|
|
|
|
|
|
|
|
|
|
|
for (u32 i = 0, idx = 0; i < salt_len; i += 4, idx += 1)
|
|
|
|
for (u32 i = 0, idx = 0; i < salt_len; i += 4, idx += 1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
s[idx] = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_buf[idx];
|
|
|
|
s[idx] = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_buf[idx];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
md5_ctx_t ctx0;
|
|
|
|
md5_ctx_t ctx0;
|
|
|
|
|
|
|
|
|
|
|
|
md5_init (&ctx0);
|
|
|
|
md5_init (&ctx0);
|
|
|
|
|
|
|
|
|
|
|
|
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
|
|
|
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* loop
|
|
|
|
* loop
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -97,7 +97,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
|
|
|
pw_t tmp = PASTE_PW;
|
|
|
|
pw_t tmp = PASTE_PW;
|
|
|
|
|
|
|
|
|
|
|
|
md5_ctx_t ctx1 = ctx0;
|
|
|
|
md5_ctx_t ctx1 = ctx0;
|
|
|
|
|
|
|
|
|
|
|
|
md5_update(&ctx1, pws[gid].i, pws[gid].pw_len);
|
|
|
|
md5_update(&ctx1, pws[gid].i, pws[gid].pw_len);
|
|
|
|
|
|
|
|
|
|
|
|
md5_final (&ctx1);
|
|
|
|
md5_final (&ctx1);
|
|
|
@ -142,7 +142,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
|
|
|
w3[1] = 0;
|
|
|
|
w3[1] = 0;
|
|
|
|
w3[2] = 0;
|
|
|
|
w3[2] = 0;
|
|
|
|
w3[3] = 0;
|
|
|
|
w3[3] = 0;
|
|
|
|
|
|
|
|
|
|
|
|
md5_update_64 (&ctx, w0, w1, w2, w3, 32);
|
|
|
|
md5_update_64 (&ctx, w0, w1, w2, w3, 32);
|
|
|
|
|
|
|
|
|
|
|
|
md5_final (&ctx);
|
|
|
|
md5_final (&ctx);
|
|
|
@ -169,7 +169,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* bin2asc uppercase table
|
|
|
|
* bin2asc uppercase table
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
LOCAL_VK u32 u_bin2asc[256];
|
|
|
|
LOCAL_VK u32 u_bin2asc[256];
|
|
|
|
|
|
|
|
|
|
|
|
for (u32 j = lid; j < 256; j += lsz)
|
|
|
|
for (u32 j = lid; j < 256; j += lsz)
|
|
|
@ -217,7 +217,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
|
|
|
md5_init (&ctx0);
|
|
|
|
md5_init (&ctx0);
|
|
|
|
|
|
|
|
|
|
|
|
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
|
|
|
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* loop
|
|
|
|
* loop
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -227,7 +227,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
|
|
|
pw_t tmp = PASTE_PW;
|
|
|
|
pw_t tmp = PASTE_PW;
|
|
|
|
|
|
|
|
|
|
|
|
md5_ctx_t ctx1 = ctx0;
|
|
|
|
md5_ctx_t ctx1 = ctx0;
|
|
|
|
|
|
|
|
|
|
|
|
md5_update (&ctx1, pws[gid].i, pws[gid].pw_len);
|
|
|
|
md5_update (&ctx1, pws[gid].i, pws[gid].pw_len);
|
|
|
|
|
|
|
|
|
|
|
|
md5_final (&ctx1);
|
|
|
|
md5_final (&ctx1);
|
|
|
|