#define BOX(i,n,S) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf])
#endif
-static void _des_crypt_keysetup (u32x c, u32x d, u32x Kc[16], u32x Kd[16], __local u32 (*s_skb)[64])
+void _des_crypt_keysetup (u32x c, u32x d, u32x Kc[16], u32x Kd[16], __local u32 (*s_skb)[64])
{
u32x tt;
}
}
-static void _des_crypt_encrypt (u32x iv[2], u32 mask, u32x Kc[16], u32x Kd[16], __local u32 (*s_SPtrans)[64])
+void _des_crypt_encrypt (u32x iv[2], u32 mask, u32x Kc[16], u32x Kd[16], __local u32 (*s_SPtrans)[64])
{
const u32 E1 = (mask >> 2) & 0x3f0;
const u32 E0 = mask & 0x3f;
const u32 lid = get_local_id (0);
const u32 lsz = get_local_size (0);
- /**
- * base
- */
-
- u32 pw_buf0[4];
-
- pw_buf0[0] = pws[gid].i[ 0];
- pw_buf0[1] = pws[gid].i[ 1];
- pw_buf0[2] = 0;
- pw_buf0[3] = 0;
-
- u32 pw_buf1[4];
-
- pw_buf1[0] = 0;
- pw_buf1[1] = 0;
- pw_buf1[2] = 0;
- pw_buf1[3] = 0;
-
- const u32 pw_len = pws[gid].pw_len;
-
/**
* sbox, kbox
*/
if (gid >= gid_max) return;
+ /**
+ * base
+ */
+
+ u32 pw_buf0[4];
+ u32 pw_buf1[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];
+ 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;
+
/**
* salt
*/
u32x w2[4] = { 0 };
u32x w3[4] = { 0 };
- u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
-
- out_len &= 7;
+ const u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
u32x data[2];
const u32 lid = get_local_id (0);
const u32 lsz = get_local_size (0);
- /**
- * base
- */
-
- u32 pw_buf0[4];
-
- pw_buf0[0] = pws[gid].i[ 0];
- pw_buf0[1] = pws[gid].i[ 1];
- pw_buf0[2] = 0;
- pw_buf0[3] = 0;
-
- u32 pw_buf1[4];
-
- pw_buf1[0] = 0;
- pw_buf1[1] = 0;
- pw_buf1[2] = 0;
- pw_buf1[3] = 0;
-
- const u32 pw_len = pws[gid].pw_len;
-
/**
* sbox, kbox
*/
if (gid >= gid_max) return;
+ /**
+ * base
+ */
+
+ u32 pw_buf0[4];
+ u32 pw_buf1[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];
+ 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;
+
/**
* salt
*/
u32x w2[4] = { 0 };
u32x w3[4] = { 0 };
- u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
-
- out_len &= 7;
+ const u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
u32x data[2];