Small optimizations in -m 15300 and -m 15900

pull/2315/head
Jens Steube 4 years ago
parent 669619c1a7
commit 09b8a30da2

@ -511,25 +511,6 @@ KERNEL_FQ void m15300_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v1_t, dpapimk_t))
if (wx_off == 24) break;
}
u32 hmacSalt[4];
u32 expectedHmac[4];
u32 lastKey[16];
hmacSalt[0] = hc_swap32_S (decrypted[0]);
hmacSalt[1] = hc_swap32_S (decrypted[1]);
hmacSalt[2] = hc_swap32_S (decrypted[2]);
hmacSalt[3] = hc_swap32_S (decrypted[3]);
expectedHmac[0] = hc_swap32_S (decrypted[4 + 0]);
expectedHmac[1] = hc_swap32_S (decrypted[4 + 1]);
expectedHmac[2] = hc_swap32_S (decrypted[4 + 2]);
expectedHmac[3] = hc_swap32_S (decrypted[4 + 3]);
for (int i = 0; i < 16; i++)
{
lastKey[i] = decrypted[i + 26 - 16];
}
w0[0] = tmps[gid].userKey[0];
w0[1] = tmps[gid].userKey[1];
w0[2] = tmps[gid].userKey[2];
@ -551,10 +532,10 @@ KERNEL_FQ void m15300_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v1_t, dpapimk_t))
sha1_hmac_init_64 (&ctx, w0, w1, w2, w3);
w0[0] = hmacSalt[0];
w0[1] = hmacSalt[1];
w0[2] = hmacSalt[2];
w0[3] = hmacSalt[3];
w0[0] = hc_swap32_S (decrypted[0]);
w0[1] = hc_swap32_S (decrypted[1]);
w0[2] = hc_swap32_S (decrypted[2]);
w0[3] = hc_swap32_S (decrypted[3]);
w1[0] = 0;
w1[1] = 0;
w1[2] = 0;
@ -591,22 +572,22 @@ KERNEL_FQ void m15300_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v1_t, dpapimk_t))
sha1_hmac_init_64 (&ctx, w0, w1, w2, w3);
w0[0] = hc_swap32_S (lastKey[ 0]);
w0[1] = hc_swap32_S (lastKey[ 1]);
w0[2] = hc_swap32_S (lastKey[ 2]);
w0[3] = hc_swap32_S (lastKey[ 3]);
w1[0] = hc_swap32_S (lastKey[ 4]);
w1[1] = hc_swap32_S (lastKey[ 5]);
w1[2] = hc_swap32_S (lastKey[ 6]);
w1[3] = hc_swap32_S (lastKey[ 7]);
w2[0] = hc_swap32_S (lastKey[ 8]);
w2[1] = hc_swap32_S (lastKey[ 9]);
w2[2] = hc_swap32_S (lastKey[10]);
w2[3] = hc_swap32_S (lastKey[11]);
w3[0] = hc_swap32_S (lastKey[12]);
w3[1] = hc_swap32_S (lastKey[13]);
w3[2] = hc_swap32_S (lastKey[14]);
w3[3] = hc_swap32_S (lastKey[15]);
w0[0] = hc_swap32_S (decrypted[10]);
w0[1] = hc_swap32_S (decrypted[11]);
w0[2] = hc_swap32_S (decrypted[12]);
w0[3] = hc_swap32_S (decrypted[13]);
w1[0] = hc_swap32_S (decrypted[14]);
w1[1] = hc_swap32_S (decrypted[15]);
w1[2] = hc_swap32_S (decrypted[16]);
w1[3] = hc_swap32_S (decrypted[17]);
w2[0] = hc_swap32_S (decrypted[18]);
w2[1] = hc_swap32_S (decrypted[19]);
w2[2] = hc_swap32_S (decrypted[20]);
w2[3] = hc_swap32_S (decrypted[21]);
w3[0] = hc_swap32_S (decrypted[22]);
w3[1] = hc_swap32_S (decrypted[23]);
w3[2] = hc_swap32_S (decrypted[24]);
w3[3] = hc_swap32_S (decrypted[25]);
sha1_hmac_update_64 (&ctx, w0, w1, w2, w3, 64);
@ -614,10 +595,10 @@ KERNEL_FQ void m15300_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v1_t, dpapimk_t))
#define il_pos 0
if ((expectedHmac[0] == ctx.opad.h[0])
&& (expectedHmac[1] == ctx.opad.h[1])
&& (expectedHmac[2] == ctx.opad.h[2])
&& (expectedHmac[3] == ctx.opad.h[3]))
if ((decrypted[4] == hc_swap32_S (ctx.opad.h[0]))
&& (decrypted[5] == hc_swap32_S (ctx.opad.h[1]))
&& (decrypted[6] == hc_swap32_S (ctx.opad.h[2]))
&& (decrypted[7] == hc_swap32_S (ctx.opad.h[3])))
{
if (atomic_inc (&hashes_shown[digests_offset]) == 0)
{

@ -637,21 +637,6 @@ KERNEL_FQ void m15900_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v2_t, dpapimk_t))
if (contents_off == 32) break;
}
u32 hmacSalt[4];
u32 expectedHmac[16];
u32 lastKey[16];
hmacSalt[0] = decrypted[0];
hmacSalt[1] = decrypted[1];
hmacSalt[2] = decrypted[2];
hmacSalt[3] = decrypted[3];
for(int i = 0; i < 16; i++)
{
expectedHmac[i] = decrypted[i + 4];
lastKey[i] = decrypted[i + 36 - 16];
}
w0[0] = tmps[gid].userKey[0];
w0[1] = tmps[gid].userKey[1];
w0[2] = tmps[gid].userKey[2];
@ -689,10 +674,10 @@ KERNEL_FQ void m15900_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v2_t, dpapimk_t))
sha512_hmac_init_128 (&ctx, w0, w1, w2, w3, w4, w5, w6, w7);
w0[0] = hmacSalt[0];
w0[1] = hmacSalt[1];
w0[2] = hmacSalt[2];
w0[3] = hmacSalt[3];
w0[0] = decrypted[0];
w0[1] = decrypted[1];
w0[2] = decrypted[2];
w0[3] = decrypted[3];
w1[0] = 0;
w1[1] = 0;
w1[2] = 0;
@ -761,22 +746,22 @@ KERNEL_FQ void m15900_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v2_t, dpapimk_t))
sha512_hmac_init_128 (&ctx, w0, w1, w2, w3, w4, w5, w6, w7);
w0[0] = lastKey[ 0];
w0[1] = lastKey[ 1];
w0[2] = lastKey[ 2];
w0[3] = lastKey[ 3];
w1[0] = lastKey[ 4];
w1[1] = lastKey[ 5];
w1[2] = lastKey[ 6];
w1[3] = lastKey[ 7];
w2[0] = lastKey[ 8];
w2[1] = lastKey[ 9];
w2[2] = lastKey[10];
w2[3] = lastKey[11];
w3[0] = lastKey[12];
w3[1] = lastKey[13];
w3[2] = lastKey[14];
w3[3] = lastKey[15];
w0[0] = decrypted[20];
w0[1] = decrypted[21];
w0[2] = decrypted[22];
w0[3] = decrypted[23];
w1[0] = decrypted[24];
w1[1] = decrypted[25];
w1[2] = decrypted[26];
w1[3] = decrypted[27];
w2[0] = decrypted[28];
w2[1] = decrypted[29];
w2[2] = decrypted[30];
w2[3] = decrypted[31];
w3[0] = decrypted[32];
w3[1] = decrypted[33];
w3[2] = decrypted[34];
w3[3] = decrypted[35];
w4[0] = 0;
w4[1] = 0;
w4[2] = 0;
@ -800,10 +785,10 @@ KERNEL_FQ void m15900_comp (KERN_ATTR_TMPS_ESALT (dpapimk_tmp_v2_t, dpapimk_t))
#define il_pos 0
if ((expectedHmac[0] == h32_from_64_S (ctx.opad.h[0]))
&& (expectedHmac[1] == l32_from_64_S (ctx.opad.h[0]))
&& (expectedHmac[2] == h32_from_64_S (ctx.opad.h[1]))
&& (expectedHmac[3] == l32_from_64_S (ctx.opad.h[1])))
if ((decrypted[4] == h32_from_64_S (ctx.opad.h[0]))
&& (decrypted[5] == l32_from_64_S (ctx.opad.h[0]))
&& (decrypted[6] == h32_from_64_S (ctx.opad.h[1]))
&& (decrypted[7] == l32_from_64_S (ctx.opad.h[1])))
{
if (atomic_inc (&hashes_shown[digests_offset]) == 0)
{

Loading…
Cancel
Save