Fix -m 7800 for NV
authorjsteube <jens.steube@gmail.com>
Tue, 29 Dec 2015 23:29:39 +0000 (00:29 +0100)
committerjsteube <jens.steube@gmail.com>
Tue, 29 Dec 2015 23:29:39 +0000 (00:29 +0100)
OpenCL/m07800_a0.cl
OpenCL/m07800_a1.cl
OpenCL/m07800_a3.cl
src/shared.c

index 78e4df0..79da3fa 100644 (file)
@@ -317,7 +317,7 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_m04 (__glo
      * sha1
      */
 
-    u32 final[256];
+    u32 final[32];
 
     final[ 0] = swap32 (w0[0] | s0[0]);
     final[ 1] = swap32 (w0[1] | s0[1]);
@@ -380,8 +380,8 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_m04 (__glo
     digest[3] = SHA1M_D;
     digest[4] = SHA1M_E;
 
-    #pragma unroll 64
-    for (int i = 0; i < 64; i++) final[i] = 0;
+    #pragma unroll 32
+    for (int i = 0; i < 32; i++) final[i] = 0;
 
     final[0] = w0[0];
     final[1] = w0[1];
@@ -597,7 +597,7 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_s04 (__glo
      * sha1
      */
 
-    u32 final[256];
+    u32 final[32];
 
     final[ 0] = swap32 (w0[0] | s0[0]);
     final[ 1] = swap32 (w0[1] | s0[1]);
@@ -660,8 +660,8 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_s04 (__glo
     digest[3] = SHA1M_D;
     digest[4] = SHA1M_E;
 
-    #pragma unroll 64
-    for (int i = 0; i < 64; i++) final[i] = 0;
+    #pragma unroll 32
+    for (int i = 0; i < 32; i++) final[i] = 0;
 
     final[0] = w0[0];
     final[1] = w0[1];
index c20d59b..3c2f60b 100644 (file)
@@ -369,7 +369,7 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_m04 (__glo
      * sha1
      */
 
-    u32 final[256];
+    u32 final[32];
 
     final[ 0] = swap32 (w0[0] | s0[0]);
     final[ 1] = swap32 (w0[1] | s0[1]);
@@ -432,8 +432,8 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_m04 (__glo
     digest[3] = SHA1M_D;
     digest[4] = SHA1M_E;
 
-    #pragma unroll 64
-    for (int i = 0; i < 64; i++) final[i] = 0;
+    #pragma unroll 32
+    for (int i = 0; i < 32; i++) final[i] = 0;
 
     final[0] = w0[0];
     final[1] = w0[1];
@@ -699,7 +699,7 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_s04 (__glo
      * sha1
      */
 
-    u32 final[256];
+    u32 final[32];
 
     final[ 0] = swap32 (w0[0] | s0[0]);
     final[ 1] = swap32 (w0[1] | s0[1]);
@@ -762,8 +762,8 @@ __kernel void __attribute__((reqd_work_group_size (64, 1, 1))) m07800_s04 (__glo
     digest[3] = SHA1M_D;
     digest[4] = SHA1M_E;
 
-    #pragma unroll 64
-    for (int i = 0; i < 64; i++) final[i] = 0;
+    #pragma unroll 32
+    for (int i = 0; i < 32; i++) final[i] = 0;
 
     final[0] = w0[0];
     final[1] = w0[1];
index 06b9829..bc972d3 100644 (file)
@@ -274,7 +274,7 @@ static void m07800m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
      * sha1
      */
 
-    u32 final[256];
+    u32 final[32];
 
     final[ 0] = swap32 (w0[0] | s0[0]);
     final[ 1] = swap32 (w0[1] | s0[1]);
@@ -337,8 +337,8 @@ static void m07800m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
     digest[3] = SHA1M_D;
     digest[4] = SHA1M_E;
 
-    #pragma unroll 64
-    for (int i = 0; i < 64; i++) final[i] = 0;
+    #pragma unroll
+    for (int i = 0; i < 32; i++) final[i] = 0;
 
     final[0] = w0[0];
     final[1] = w0[1];
@@ -505,7 +505,7 @@ static void m07800s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
      * sha1
      */
 
-    u32 final[256];
+    u32 final[32];
 
     final[ 0] = swap32 (w0[0] | s0[0]);
     final[ 1] = swap32 (w0[1] | s0[1]);
@@ -568,8 +568,8 @@ static void m07800s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
     digest[3] = SHA1M_D;
     digest[4] = SHA1M_E;
 
-    #pragma unroll 64
-    for (int i = 0; i < 64; i++) final[i] = 0;
+    #pragma unroll 32
+    for (int i = 0; i < 32; i++) final[i] = 0;
 
     final[0] = w0[0];
     final[1] = w0[1];
index b6c82c6..265357a 100644 (file)
@@ -13296,6 +13296,10 @@ int sapg_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf)
   }
 
   // SAP user names cannot be longer than 12 characters
+  // this is kinda buggy. if the username is in utf the length can be up to length 12*3
+  // so far nobody complained so we stay with this because it helps in optimization
+  // final string can have a max size of 32 (password) + (10 * 5) = lengthMagicArray + 12 (max salt) + 1 (the 0x80)
+
   if (user_len > 12) return (PARSER_SALT_LENGTH);
 
   // SAP user name cannot start with ! or ?