Fix for -m 2500, see: https://github.com/hashcat/oclHashcat/issues/339
[hashcat.git] / OpenCL / m11500_a1.cl
index cb23ab8..3dd6c46 100644 (file)
@@ -89,7 +89,7 @@ __constant u32 crc32tab[0x100] =
   0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
 };
 
-static u32x round_crc32 (u32x a, const u32x v)
+u32x round_crc32 (u32x a, const u32x v)
 {
   const u32x k = (a ^ v) & 0xff;
 
@@ -112,7 +112,7 @@ static u32x round_crc32 (u32x a, const u32x v)
   return a;
 }
 
-static u32x crc32 (const u32x w[16], const u32 pw_len, const u32 iv)
+u32x crc32 (const u32x w[16], const u32 pw_len, const u32 iv)
 {
   u32x a = iv ^ ~0;
 
@@ -265,11 +265,10 @@ __kernel void m11500_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     w[15] = w3[3];
 
     u32x a = crc32 (w, pw_len, iv);
-    u32x b = 0;
-    u32x c = 0;
-    u32x d = 0;
 
-    COMPARE_M_SIMD (a, b, c, d);
+    u32x z = 0;
+
+    COMPARE_M_SIMD (a, z, z, z);
   }
 }
 
@@ -324,9 +323,9 @@ __kernel void m11500_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
   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]
+    0,
+    0,
+    0
   };
 
   /**
@@ -426,11 +425,10 @@ __kernel void m11500_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     w[15] = w3[3];
 
     u32x a = crc32 (w, pw_len, iv);
-    u32x b = 0;
-    u32x c = 0;
-    u32x d = 0;
 
-    COMPARE_S_SIMD (a, b, c, d);
+    u32x z = 0;
+
+    COMPARE_S_SIMD (a, z, z, z);
   }
 }