Cleanup -m 84xx kernels to latest standard

pull/299/head
Jens Steube 8 years ago
parent 0f73c778d5
commit 8df278fc20

@ -198,18 +198,16 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
*/ */
u32 pw_buf0[4]; u32 pw_buf0[4];
pw_buf0[0] = pws[gid].i[ 0];
pw_buf0[1] = pws[gid].i[ 1];
pw_buf0[2] = pws[gid].i[ 2];
pw_buf0[3] = pws[gid].i[ 3];
u32 pw_buf1[4]; u32 pw_buf1[4];
pw_buf1[0] = pws[gid].i[ 4]; pw_buf0[0] = pws[gid].i[0];
pw_buf1[1] = pws[gid].i[ 5]; pw_buf0[1] = pws[gid].i[1];
pw_buf1[2] = pws[gid].i[ 6]; pw_buf0[2] = pws[gid].i[2];
pw_buf1[3] = pws[gid].i[ 7]; pw_buf0[3] = pws[gid].i[3];
pw_buf1[0] = pws[gid].i[4];
pw_buf1[1] = pws[gid].i[5];
pw_buf1[2] = pws[gid].i[6];
pw_buf1[3] = pws[gid].i[7];
const u32 pw_len = pws[gid].pw_len; const u32 pw_len = pws[gid].pw_len;
@ -218,21 +216,17 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
*/ */
u32 salt_buf0[4]; u32 salt_buf0[4];
u32 salt_buf1[4];
u32 salt_buf2[4];
salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]); salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]);
salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]); salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]);
salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]); salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]);
salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]); salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]);
u32 salt_buf1[4];
salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]); salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]);
salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]); salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]);
salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]); salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]);
salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]); salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]);
u32 salt_buf2[4];
salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]); salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]);
salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]); salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]);
salt_buf2[2] = 0; salt_buf2[2] = 0;
@ -255,33 +249,26 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
append_0x80_2x4_VV (w0, w1, out_len); append_0x80_2x4_VV (w0, w1, out_len);
u32x w0_t[4]; /**
* SHA1
w0_t[0] = swap32 (w0[0]); */
w0_t[1] = swap32 (w0[1]);
w0_t[2] = swap32 (w0[2]); w0[0] = swap32 (w0[0]);
w0_t[3] = swap32 (w0[3]); w0[1] = swap32 (w0[1]);
w0[2] = swap32 (w0[2]);
u32x w1_t[4]; w0[3] = swap32 (w0[3]);
w1[0] = swap32 (w1[0]);
w1_t[0] = swap32 (w1[0]); w1[1] = swap32 (w1[1]);
w1_t[1] = swap32 (w1[1]); w1[2] = swap32 (w1[2]);
w1_t[2] = swap32 (w1[2]); w1[3] = swap32 (w1[3]);
w1_t[3] = swap32 (w1[3]); w2[0] = swap32 (w2[0]);
w2[1] = swap32 (w2[1]);
u32x w2_t[4]; w2[2] = swap32 (w2[2]);
w2[3] = swap32 (w2[3]);
w2_t[0] = swap32 (w2[0]); w3[0] = swap32 (w3[0]);
w2_t[1] = swap32 (w2[1]); w3[1] = swap32 (w3[1]);
w2_t[2] = swap32 (w2[2]); w3[2] = 0;
w2_t[3] = swap32 (w2[3]); w3[3] = out_len * 8;
u32x w3_t[4];
w3_t[0] = swap32 (w3[0]);
w3_t[1] = swap32 (w3[1]);
w3_t[2] = 0;
w3_t[3] = out_len * 8;
u32x digest[5]; u32x digest[5];
@ -291,7 +278,7 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
digest[3] = SHA1M_D; digest[3] = SHA1M_D;
digest[4] = SHA1M_E; digest[4] = SHA1M_E;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
u32x a; u32x a;
u32x b; u32x b;
@ -305,28 +292,28 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
d = digest[3]; d = digest[3];
e = digest[4]; e = digest[4];
w0_t[0] = salt_buf0[0]; w0[0] = salt_buf0[0];
w0_t[1] = salt_buf0[1]; w0[1] = salt_buf0[1];
w0_t[2] = salt_buf0[2]; w0[2] = salt_buf0[2];
w0_t[3] = salt_buf0[3]; w0[3] = salt_buf0[3];
w1_t[0] = salt_buf1[0]; w1[0] = salt_buf1[0];
w1_t[1] = salt_buf1[1]; w1[1] = salt_buf1[1];
w1_t[2] = salt_buf1[2]; w1[2] = salt_buf1[2];
w1_t[3] = salt_buf1[3]; w1[3] = salt_buf1[3];
w2_t[0] = salt_buf2[0]; w2[0] = salt_buf2[0];
w2_t[1] = salt_buf2[1]; w2[1] = salt_buf2[1];
w2_t[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0 w2[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0
| uint_to_hex_lower8_le ((a >> 24) & 255) << 16; | uint_to_hex_lower8_le ((a >> 24) & 255) << 16;
w2_t[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0 w2[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0
| uint_to_hex_lower8_le ((a >> 8) & 255) << 16; | uint_to_hex_lower8_le ((a >> 8) & 255) << 16;
w3_t[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0 w3[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0
| uint_to_hex_lower8_le ((b >> 24) & 255) << 16; | uint_to_hex_lower8_le ((b >> 24) & 255) << 16;
w3_t[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0 w3[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0
| uint_to_hex_lower8_le ((b >> 8) & 255) << 16; | uint_to_hex_lower8_le ((b >> 8) & 255) << 16;
w3_t[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0 w3[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0
| uint_to_hex_lower8_le ((c >> 24) & 255) << 16; | uint_to_hex_lower8_le ((c >> 24) & 255) << 16;
w3_t[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0 w3[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0
| uint_to_hex_lower8_le ((c >> 8) & 255) << 16; | uint_to_hex_lower8_le ((c >> 8) & 255) << 16;
digest[0] = SHA1M_A; digest[0] = SHA1M_A;
digest[1] = SHA1M_B; digest[1] = SHA1M_B;
@ -334,30 +321,30 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
digest[3] = SHA1M_D; digest[3] = SHA1M_D;
digest[4] = SHA1M_E; digest[4] = SHA1M_E;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
w0_t[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0 w0[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0
| uint_to_hex_lower8_le ((d >> 24) & 255) << 16; | uint_to_hex_lower8_le ((d >> 24) & 255) << 16;
w0_t[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0 w0[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0
| uint_to_hex_lower8_le ((d >> 8) & 255) << 16; | uint_to_hex_lower8_le ((d >> 8) & 255) << 16;
w0_t[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0 w0[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0
| uint_to_hex_lower8_le ((e >> 24) & 255) << 16; | uint_to_hex_lower8_le ((e >> 24) & 255) << 16;
w0_t[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0 w0[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0
| uint_to_hex_lower8_le ((e >> 8) & 255) << 16; | uint_to_hex_lower8_le ((e >> 8) & 255) << 16;
w1_t[0] = 0x80000000; w1[0] = 0x80000000;
w1_t[1] = 0; w1[1] = 0;
w1_t[2] = 0; w1[2] = 0;
w1_t[3] = 0; w1[3] = 0;
w2_t[0] = 0; w2[0] = 0;
w2_t[1] = 0; w2[1] = 0;
w2_t[2] = 0; w2[2] = 0;
w2_t[3] = 0; w2[3] = 0;
w3_t[0] = 0; w3[0] = 0;
w3_t[1] = 0; w3[1] = 0;
w3_t[2] = 0; w3[2] = 0;
w3_t[3] = 80 * 8; w3[3] = 80 * 8;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
a = digest[0]; a = digest[0];
b = digest[1]; b = digest[1];
@ -365,28 +352,28 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
d = digest[3]; d = digest[3];
e = digest[4]; e = digest[4];
w0_t[0] = salt_buf0[0]; w0[0] = salt_buf0[0];
w0_t[1] = salt_buf0[1]; w0[1] = salt_buf0[1];
w0_t[2] = salt_buf0[2]; w0[2] = salt_buf0[2];
w0_t[3] = salt_buf0[3]; w0[3] = salt_buf0[3];
w1_t[0] = salt_buf1[0]; w1[0] = salt_buf1[0];
w1_t[1] = salt_buf1[1]; w1[1] = salt_buf1[1];
w1_t[2] = salt_buf1[2]; w1[2] = salt_buf1[2];
w1_t[3] = salt_buf1[3]; w1[3] = salt_buf1[3];
w2_t[0] = salt_buf2[0]; w2[0] = salt_buf2[0];
w2_t[1] = salt_buf2[1]; w2[1] = salt_buf2[1];
w2_t[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0 w2[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0
| uint_to_hex_lower8_le ((a >> 24) & 255) << 16; | uint_to_hex_lower8_le ((a >> 24) & 255) << 16;
w2_t[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0 w2[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0
| uint_to_hex_lower8_le ((a >> 8) & 255) << 16; | uint_to_hex_lower8_le ((a >> 8) & 255) << 16;
w3_t[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0 w3[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0
| uint_to_hex_lower8_le ((b >> 24) & 255) << 16; | uint_to_hex_lower8_le ((b >> 24) & 255) << 16;
w3_t[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0 w3[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0
| uint_to_hex_lower8_le ((b >> 8) & 255) << 16; | uint_to_hex_lower8_le ((b >> 8) & 255) << 16;
w3_t[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0 w3[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0
| uint_to_hex_lower8_le ((c >> 24) & 255) << 16; | uint_to_hex_lower8_le ((c >> 24) & 255) << 16;
w3_t[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0 w3[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0
| uint_to_hex_lower8_le ((c >> 8) & 255) << 16; | uint_to_hex_lower8_le ((c >> 8) & 255) << 16;
digest[0] = SHA1M_A; digest[0] = SHA1M_A;
digest[1] = SHA1M_B; digest[1] = SHA1M_B;
@ -394,30 +381,30 @@ __kernel void m08400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
digest[3] = SHA1M_D; digest[3] = SHA1M_D;
digest[4] = SHA1M_E; digest[4] = SHA1M_E;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
w0_t[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0 w0[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0
| uint_to_hex_lower8_le ((d >> 24) & 255) << 16; | uint_to_hex_lower8_le ((d >> 24) & 255) << 16;
w0_t[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0 w0[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0
| uint_to_hex_lower8_le ((d >> 8) & 255) << 16; | uint_to_hex_lower8_le ((d >> 8) & 255) << 16;
w0_t[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0 w0[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0
| uint_to_hex_lower8_le ((e >> 24) & 255) << 16; | uint_to_hex_lower8_le ((e >> 24) & 255) << 16;
w0_t[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0 w0[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0
| uint_to_hex_lower8_le ((e >> 8) & 255) << 16; | uint_to_hex_lower8_le ((e >> 8) & 255) << 16;
w1_t[0] = 0x80000000; w1[0] = 0x80000000;
w1_t[1] = 0; w1[1] = 0;
w1_t[2] = 0; w1[2] = 0;
w1_t[3] = 0; w1[3] = 0;
w2_t[0] = 0; w2[0] = 0;
w2_t[1] = 0; w2[1] = 0;
w2_t[2] = 0; w2[2] = 0;
w2_t[3] = 0; w2[3] = 0;
w3_t[0] = 0; w3[0] = 0;
w3_t[1] = 0; w3[1] = 0;
w3_t[2] = 0; w3[2] = 0;
w3_t[3] = 80 * 8; w3[3] = 80 * 8;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
COMPARE_M_SIMD (digest[3], digest[4], digest[2], digest[1]); COMPARE_M_SIMD (digest[3], digest[4], digest[2], digest[1]);
} }
@ -465,18 +452,16 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
*/ */
u32 pw_buf0[4]; u32 pw_buf0[4];
pw_buf0[0] = pws[gid].i[ 0];
pw_buf0[1] = pws[gid].i[ 1];
pw_buf0[2] = pws[gid].i[ 2];
pw_buf0[3] = pws[gid].i[ 3];
u32 pw_buf1[4]; u32 pw_buf1[4];
pw_buf1[0] = pws[gid].i[ 4]; pw_buf0[0] = pws[gid].i[0];
pw_buf1[1] = pws[gid].i[ 5]; pw_buf0[1] = pws[gid].i[1];
pw_buf1[2] = pws[gid].i[ 6]; pw_buf0[2] = pws[gid].i[2];
pw_buf1[3] = pws[gid].i[ 7]; pw_buf0[3] = pws[gid].i[3];
pw_buf1[0] = pws[gid].i[4];
pw_buf1[1] = pws[gid].i[5];
pw_buf1[2] = pws[gid].i[6];
pw_buf1[3] = pws[gid].i[7];
const u32 pw_len = pws[gid].pw_len; const u32 pw_len = pws[gid].pw_len;
@ -485,21 +470,17 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
*/ */
u32 salt_buf0[4]; u32 salt_buf0[4];
u32 salt_buf1[4];
u32 salt_buf2[4];
salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]); salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]);
salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]); salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]);
salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]); salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]);
salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]); salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]);
u32 salt_buf1[4];
salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]); salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]);
salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]); salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]);
salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]); salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]);
salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]); salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]);
u32 salt_buf2[4];
salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]); salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]);
salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]); salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]);
salt_buf2[2] = 0; salt_buf2[2] = 0;
@ -534,33 +515,26 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
append_0x80_2x4_VV (w0, w1, out_len); append_0x80_2x4_VV (w0, w1, out_len);
u32x w0_t[4]; /**
* SHA1
w0_t[0] = swap32 (w0[0]); */
w0_t[1] = swap32 (w0[1]);
w0_t[2] = swap32 (w0[2]); w0[0] = swap32 (w0[0]);
w0_t[3] = swap32 (w0[3]); w0[1] = swap32 (w0[1]);
w0[2] = swap32 (w0[2]);
u32x w1_t[4]; w0[3] = swap32 (w0[3]);
w1[0] = swap32 (w1[0]);
w1_t[0] = swap32 (w1[0]); w1[1] = swap32 (w1[1]);
w1_t[1] = swap32 (w1[1]); w1[2] = swap32 (w1[2]);
w1_t[2] = swap32 (w1[2]); w1[3] = swap32 (w1[3]);
w1_t[3] = swap32 (w1[3]); w2[0] = swap32 (w2[0]);
w2[1] = swap32 (w2[1]);
u32x w2_t[4]; w2[2] = swap32 (w2[2]);
w2[3] = swap32 (w2[3]);
w2_t[0] = swap32 (w2[0]); w3[0] = swap32 (w3[0]);
w2_t[1] = swap32 (w2[1]); w3[1] = swap32 (w3[1]);
w2_t[2] = swap32 (w2[2]); w3[2] = 0;
w2_t[3] = swap32 (w2[3]); w3[3] = out_len * 8;
u32x w3_t[4];
w3_t[0] = swap32 (w3[0]);
w3_t[1] = swap32 (w3[1]);
w3_t[2] = 0;
w3_t[3] = out_len * 8;
u32x digest[5]; u32x digest[5];
@ -570,7 +544,7 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
digest[3] = SHA1M_D; digest[3] = SHA1M_D;
digest[4] = SHA1M_E; digest[4] = SHA1M_E;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
u32x a; u32x a;
u32x b; u32x b;
@ -584,28 +558,28 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
d = digest[3]; d = digest[3];
e = digest[4]; e = digest[4];
w0_t[0] = salt_buf0[0]; w0[0] = salt_buf0[0];
w0_t[1] = salt_buf0[1]; w0[1] = salt_buf0[1];
w0_t[2] = salt_buf0[2]; w0[2] = salt_buf0[2];
w0_t[3] = salt_buf0[3]; w0[3] = salt_buf0[3];
w1_t[0] = salt_buf1[0]; w1[0] = salt_buf1[0];
w1_t[1] = salt_buf1[1]; w1[1] = salt_buf1[1];
w1_t[2] = salt_buf1[2]; w1[2] = salt_buf1[2];
w1_t[3] = salt_buf1[3]; w1[3] = salt_buf1[3];
w2_t[0] = salt_buf2[0]; w2[0] = salt_buf2[0];
w2_t[1] = salt_buf2[1]; w2[1] = salt_buf2[1];
w2_t[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0 w2[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0
| uint_to_hex_lower8_le ((a >> 24) & 255) << 16; | uint_to_hex_lower8_le ((a >> 24) & 255) << 16;
w2_t[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0 w2[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0
| uint_to_hex_lower8_le ((a >> 8) & 255) << 16; | uint_to_hex_lower8_le ((a >> 8) & 255) << 16;
w3_t[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0 w3[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0
| uint_to_hex_lower8_le ((b >> 24) & 255) << 16; | uint_to_hex_lower8_le ((b >> 24) & 255) << 16;
w3_t[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0 w3[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0
| uint_to_hex_lower8_le ((b >> 8) & 255) << 16; | uint_to_hex_lower8_le ((b >> 8) & 255) << 16;
w3_t[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0 w3[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0
| uint_to_hex_lower8_le ((c >> 24) & 255) << 16; | uint_to_hex_lower8_le ((c >> 24) & 255) << 16;
w3_t[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0 w3[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0
| uint_to_hex_lower8_le ((c >> 8) & 255) << 16; | uint_to_hex_lower8_le ((c >> 8) & 255) << 16;
digest[0] = SHA1M_A; digest[0] = SHA1M_A;
digest[1] = SHA1M_B; digest[1] = SHA1M_B;
@ -613,30 +587,30 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
digest[3] = SHA1M_D; digest[3] = SHA1M_D;
digest[4] = SHA1M_E; digest[4] = SHA1M_E;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
w0_t[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0 w0[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0
| uint_to_hex_lower8_le ((d >> 24) & 255) << 16; | uint_to_hex_lower8_le ((d >> 24) & 255) << 16;
w0_t[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0 w0[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0
| uint_to_hex_lower8_le ((d >> 8) & 255) << 16; | uint_to_hex_lower8_le ((d >> 8) & 255) << 16;
w0_t[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0 w0[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0
| uint_to_hex_lower8_le ((e >> 24) & 255) << 16; | uint_to_hex_lower8_le ((e >> 24) & 255) << 16;
w0_t[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0 w0[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0
| uint_to_hex_lower8_le ((e >> 8) & 255) << 16; | uint_to_hex_lower8_le ((e >> 8) & 255) << 16;
w1_t[0] = 0x80000000; w1[0] = 0x80000000;
w1_t[1] = 0; w1[1] = 0;
w1_t[2] = 0; w1[2] = 0;
w1_t[3] = 0; w1[3] = 0;
w2_t[0] = 0; w2[0] = 0;
w2_t[1] = 0; w2[1] = 0;
w2_t[2] = 0; w2[2] = 0;
w2_t[3] = 0; w2[3] = 0;
w3_t[0] = 0; w3[0] = 0;
w3_t[1] = 0; w3[1] = 0;
w3_t[2] = 0; w3[2] = 0;
w3_t[3] = (salt_len + 40) * 8; w3[3] = 80 * 8;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
a = digest[0]; a = digest[0];
b = digest[1]; b = digest[1];
@ -644,28 +618,28 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
d = digest[3]; d = digest[3];
e = digest[4]; e = digest[4];
w0_t[0] = salt_buf0[0]; w0[0] = salt_buf0[0];
w0_t[1] = salt_buf0[1]; w0[1] = salt_buf0[1];
w0_t[2] = salt_buf0[2]; w0[2] = salt_buf0[2];
w0_t[3] = salt_buf0[3]; w0[3] = salt_buf0[3];
w1_t[0] = salt_buf1[0]; w1[0] = salt_buf1[0];
w1_t[1] = salt_buf1[1]; w1[1] = salt_buf1[1];
w1_t[2] = salt_buf1[2]; w1[2] = salt_buf1[2];
w1_t[3] = salt_buf1[3]; w1[3] = salt_buf1[3];
w2_t[0] = salt_buf2[0]; w2[0] = salt_buf2[0];
w2_t[1] = salt_buf2[1]; w2[1] = salt_buf2[1];
w2_t[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0 w2[2] = uint_to_hex_lower8_le ((a >> 16) & 255) << 0
| uint_to_hex_lower8_le ((a >> 24) & 255) << 16; | uint_to_hex_lower8_le ((a >> 24) & 255) << 16;
w2_t[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0 w2[3] = uint_to_hex_lower8_le ((a >> 0) & 255) << 0
| uint_to_hex_lower8_le ((a >> 8) & 255) << 16; | uint_to_hex_lower8_le ((a >> 8) & 255) << 16;
w3_t[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0 w3[0] = uint_to_hex_lower8_le ((b >> 16) & 255) << 0
| uint_to_hex_lower8_le ((b >> 24) & 255) << 16; | uint_to_hex_lower8_le ((b >> 24) & 255) << 16;
w3_t[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0 w3[1] = uint_to_hex_lower8_le ((b >> 0) & 255) << 0
| uint_to_hex_lower8_le ((b >> 8) & 255) << 16; | uint_to_hex_lower8_le ((b >> 8) & 255) << 16;
w3_t[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0 w3[2] = uint_to_hex_lower8_le ((c >> 16) & 255) << 0
| uint_to_hex_lower8_le ((c >> 24) & 255) << 16; | uint_to_hex_lower8_le ((c >> 24) & 255) << 16;
w3_t[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0 w3[3] = uint_to_hex_lower8_le ((c >> 0) & 255) << 0
| uint_to_hex_lower8_le ((c >> 8) & 255) << 16; | uint_to_hex_lower8_le ((c >> 8) & 255) << 16;
digest[0] = SHA1M_A; digest[0] = SHA1M_A;
digest[1] = SHA1M_B; digest[1] = SHA1M_B;
@ -673,30 +647,30 @@ __kernel void m08400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
digest[3] = SHA1M_D; digest[3] = SHA1M_D;
digest[4] = SHA1M_E; digest[4] = SHA1M_E;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
w0_t[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0 w0[0] = uint_to_hex_lower8_le ((d >> 16) & 255) << 0
| uint_to_hex_lower8_le ((d >> 24) & 255) << 16; | uint_to_hex_lower8_le ((d >> 24) & 255) << 16;
w0_t[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0 w0[1] = uint_to_hex_lower8_le ((d >> 0) & 255) << 0
| uint_to_hex_lower8_le ((d >> 8) & 255) << 16; | uint_to_hex_lower8_le ((d >> 8) & 255) << 16;
w0_t[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0 w0[2] = uint_to_hex_lower8_le ((e >> 16) & 255) << 0
| uint_to_hex_lower8_le ((e >> 24) & 255) << 16; | uint_to_hex_lower8_le ((e >> 24) & 255) << 16;
w0_t[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0 w0[3] = uint_to_hex_lower8_le ((e >> 0) & 255) << 0
| uint_to_hex_lower8_le ((e >> 8) & 255) << 16; | uint_to_hex_lower8_le ((e >> 8) & 255) << 16;
w1_t[0] = 0x80000000; w1[0] = 0x80000000;
w1_t[1] = 0; w1[1] = 0;
w1_t[2] = 0; w1[2] = 0;
w1_t[3] = 0; w1[3] = 0;
w2_t[0] = 0; w2[0] = 0;
w2_t[1] = 0; w2[1] = 0;
w2_t[2] = 0; w2[2] = 0;
w2_t[3] = 0; w2[3] = 0;
w3_t[0] = 0; w3[0] = 0;
w3_t[1] = 0; w3[1] = 0;
w3_t[2] = 0; w3[2] = 0;
w3_t[3] = (salt_len + 40) * 8; w3[3] = 80 * 8;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0, w1, w2, w3, digest);
COMPARE_S_SIMD (digest[3], digest[4], digest[2], digest[1]); COMPARE_S_SIMD (digest[3], digest[4], digest[2], digest[1]);
} }

File diff suppressed because it is too large Load Diff

@ -177,21 +177,17 @@ static void m08400m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
*/ */
u32 salt_buf0[4]; u32 salt_buf0[4];
u32 salt_buf1[4];
u32 salt_buf2[4];
salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]); salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]);
salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]); salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]);
salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]); salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]);
salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]); salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]);
u32 salt_buf1[4];
salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]); salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]);
salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]); salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]);
salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]); salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]);
salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]); salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]);
u32 salt_buf2[4];
salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]); salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]);
salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]); salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]);
salt_buf2[2] = 0; salt_buf2[2] = 0;
@ -212,33 +208,31 @@ static void m08400m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
const u32x w0lr = w0l | w0r; const u32x w0lr = w0l | w0r;
u32x w0_t[4]; u32x w0_t[4];
u32x w1_t[4];
u32x w2_t[4];
u32x w3_t[4];
w0_t[0] = w0lr; w0_t[0] = w0lr;
w0_t[1] = w0[1]; w0_t[1] = w0[1];
w0_t[2] = w0[2]; w0_t[2] = w0[2];
w0_t[3] = w0[3]; w0_t[3] = w0[3];
u32x w1_t[4];
w1_t[0] = w1[0]; w1_t[0] = w1[0];
w1_t[1] = w1[1]; w1_t[1] = w1[1];
w1_t[2] = w1[2]; w1_t[2] = w1[2];
w1_t[3] = w1[3]; w1_t[3] = w1[3];
u32x w2_t[4];
w2_t[0] = w2[0]; w2_t[0] = w2[0];
w2_t[1] = w2[1]; w2_t[1] = w2[1];
w2_t[2] = w2[2]; w2_t[2] = w2[2];
w2_t[3] = w2[3]; w2_t[3] = w2[3];
u32x w3_t[4];
w3_t[0] = w3[0]; w3_t[0] = w3[0];
w3_t[1] = w3[1]; w3_t[1] = w3[1];
w3_t[2] = 0; w3_t[2] = 0;
w3_t[3] = pw_len * 8; w3_t[3] = pw_len * 8;
/**
* SHA1
*/
u32x digest[5]; u32x digest[5];
digest[0] = SHA1M_A; digest[0] = SHA1M_A;
@ -311,7 +305,7 @@ static void m08400m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
w3_t[0] = 0; w3_t[0] = 0;
w3_t[1] = 0; w3_t[1] = 0;
w3_t[2] = 0; w3_t[2] = 0;
w3_t[3] = 80 * 8; w3_t[3] = (salt_len + 40) * 8;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0_t, w1_t, w2_t, w3_t, digest);
@ -371,7 +365,7 @@ static void m08400m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
w3_t[0] = 0; w3_t[0] = 0;
w3_t[1] = 0; w3_t[1] = 0;
w3_t[2] = 0; w3_t[2] = 0;
w3_t[3] = 80 * 8; w3_t[3] = (salt_len + 40) * 8;
sha1_transform (w0_t, w1_t, w2_t, w3_t, digest); sha1_transform (w0_t, w1_t, w2_t, w3_t, digest);
@ -388,38 +382,22 @@ static void m08400s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
const u32 gid = get_global_id (0); const u32 gid = get_global_id (0);
const u32 lid = get_local_id (0); const u32 lid = get_local_id (0);
/**
* digest
*/
const u32 search[4] =
{
digests_buf[digests_offset].digest_buf[DGST_R0],
digests_buf[digests_offset].digest_buf[DGST_R1],
digests_buf[digests_offset].digest_buf[DGST_R2],
digests_buf[digests_offset].digest_buf[DGST_R3]
};
/** /**
* salt * salt
*/ */
u32 salt_buf0[4]; u32 salt_buf0[4];
u32 salt_buf1[4];
u32 salt_buf2[4];
salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]); salt_buf0[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 0]);
salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]); salt_buf0[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 1]);
salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]); salt_buf0[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 2]);
salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]); salt_buf0[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 3]);
u32 salt_buf1[4];
salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]); salt_buf1[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 4]);
salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]); salt_buf1[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 5]);
salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]); salt_buf1[2] = swap32_S (salt_bufs[salt_pos].salt_buf[ 6]);
salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]); salt_buf1[3] = swap32_S (salt_bufs[salt_pos].salt_buf[ 7]);
u32 salt_buf2[4];
salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]); salt_buf2[0] = swap32_S (salt_bufs[salt_pos].salt_buf[ 8]);
salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]); salt_buf2[1] = swap32_S (salt_bufs[salt_pos].salt_buf[ 9]);
salt_buf2[2] = 0; salt_buf2[2] = 0;
@ -427,6 +405,18 @@ static void m08400s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
const u32 salt_len = salt_bufs[salt_pos].salt_len; const u32 salt_len = salt_bufs[salt_pos].salt_len;
/**
* digest
*/
const u32 search[4] =
{
digests_buf[digests_offset].digest_buf[DGST_R0],
digests_buf[digests_offset].digest_buf[DGST_R1],
digests_buf[digests_offset].digest_buf[DGST_R2],
digests_buf[digests_offset].digest_buf[DGST_R3]
};
/** /**
* loop * loop
*/ */
@ -440,33 +430,31 @@ static void m08400s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
const u32x w0lr = w0l | w0r; const u32x w0lr = w0l | w0r;
u32x w0_t[4]; u32x w0_t[4];
u32x w1_t[4];
u32x w2_t[4];
u32x w3_t[4];
w0_t[0] = w0lr; w0_t[0] = w0lr;
w0_t[1] = w0[1]; w0_t[1] = w0[1];
w0_t[2] = w0[2]; w0_t[2] = w0[2];
w0_t[3] = w0[3]; w0_t[3] = w0[3];
u32x w1_t[4];
w1_t[0] = w1[0]; w1_t[0] = w1[0];
w1_t[1] = w1[1]; w1_t[1] = w1[1];
w1_t[2] = w1[2]; w1_t[2] = w1[2];
w1_t[3] = w1[3]; w1_t[3] = w1[3];
u32x w2_t[4];
w2_t[0] = w2[0]; w2_t[0] = w2[0];
w2_t[1] = w2[1]; w2_t[1] = w2[1];
w2_t[2] = w2[2]; w2_t[2] = w2[2];
w2_t[3] = w2[3]; w2_t[3] = w2[3];
u32x w3_t[4];
w3_t[0] = w3[0]; w3_t[0] = w3[0];
w3_t[1] = w3[1]; w3_t[1] = w3[1];
w3_t[2] = 0; w3_t[2] = 0;
w3_t[3] = pw_len * 8; w3_t[3] = pw_len * 8;
/**
* SHA1
*/
u32x digest[5]; u32x digest[5];
digest[0] = SHA1M_A; digest[0] = SHA1M_A;

Loading…
Cancel
Save