Get rid of some JIT compiler warnings
[hashcat.git] / OpenCL / m03000_a0.cl
index fcd45f5..dc3653d 100644 (file)
@@ -356,12 +356,14 @@ __constant u32 c_skb[8][64] =
 #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_encrypt (u32x iv[2], u32x data[2], u32x Kc[16], u32x Kd[16], __local u32 (*s_SPtrans)[64])
+void _des_crypt_encrypt (u32x iv[2], u32x data[2], u32x Kc[16], u32x Kd[16], __local u32 (*s_SPtrans)[64])
 {
   u32x r = data[0];
   u32x l = data[1];
 
-  #pragma unroll 16
+  #ifdef _unroll
+  #pragma unroll
+  #endif
   for (u32 i = 0; i < 16; i += 2)
   {
     u32x u;
@@ -396,7 +398,7 @@ static void _des_crypt_encrypt (u32x iv[2], u32x data[2], u32x Kc[16], u32x Kd[1
   iv[1] = rotl32 (r, 29);
 }
 
-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;
 
@@ -414,7 +416,9 @@ static void _des_crypt_keysetup (u32x c, u32x d, u32x Kc[16], u32x Kd[16], __loc
 
   c = c & 0x0fffffff;
 
-  #pragma unroll 16
+  #ifdef _unroll
+  #pragma unroll
+  #endif
   for (u32 i = 0; i < 16; i++)
   {
     if ((i < 2) || (i == 8) || (i == 15))
@@ -463,7 +467,7 @@ static void _des_crypt_keysetup (u32x c, u32x d, u32x Kc[16], u32x Kd[16], __loc
   }
 }
 
-static void transform_netntlmv1_key (const u32x w0, const u32x w1, u32x out[2])
+void transform_netntlmv1_key (const u32x w0, const u32x w1, u32x out[2])
 {
   u32x t[8];
 
@@ -508,26 +512,6 @@ __kernel void m03000_m04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
   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
    */
@@ -560,6 +544,24 @@ __kernel void m03000_m04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
 
   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;
+
   /**
    * main
    */
@@ -571,9 +573,7 @@ __kernel void m03000_m04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
     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; // bug
+    const u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
 
     u32x key[2];
 
@@ -596,12 +596,9 @@ __kernel void m03000_m04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
 
     _des_crypt_encrypt (iv, data, Kc, Kd, s_SPtrans);
 
-    const u32x r0 = iv[0];
-    const u32x r1 = iv[1];
-    const u32x r2 = 0;
-    const u32x r3 = 0;
+    u32x z = 0;
 
-    COMPARE_M_SIMD (r0, r1, r2, r3);
+    COMPARE_M_SIMD (iv[0], iv[1], z, z);
   }
 }
 
@@ -623,26 +620,6 @@ __kernel void m03000_s04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
   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
    */
@@ -675,6 +652,24 @@ __kernel void m03000_s04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
 
   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;
+
   /**
    * digest
    */
@@ -683,8 +678,8 @@ __kernel void m03000_s04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
   {
     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]
+    0,
+    0
   };
 
   /**
@@ -698,9 +693,7 @@ __kernel void m03000_s04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
     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; // bug
+    const u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
 
     u32x key[2];
 
@@ -723,12 +716,9 @@ __kernel void m03000_s04 (__global pw_t *pws, __global kernel_rule_t *  rules_bu
 
     _des_crypt_encrypt (iv, data, Kc, Kd, s_SPtrans);
 
-    const u32x r0 = iv[0];
-    const u32x r1 = iv[1];
-    const u32x r2 = 0;
-    const u32x r3 = 0;
+    u32x z = 0;
 
-    COMPARE_S_SIMD (r0, r1, r2, r3);
+    COMPARE_S_SIMD (iv[0], iv[1], z, z);
   }
 }