Workaround memory allocation limit from OpenCL by using multiple buffers for scrypt
[hashcat.git] / include / types.h
index a1b0144..02df8ea 100644 (file)
@@ -6,6 +6,12 @@
 #ifndef TYPES_H
 #define TYPES_H
 
+#ifdef _WIN
+#define EOL "\r\n"
+#else
+#define EOL "\n"
+#endif
+
 typedef struct
 {
   uint salt_buf[16];
@@ -26,8 +32,6 @@ typedef struct
   uint scrypt_N;
   uint scrypt_r;
   uint scrypt_p;
-  uint scrypt_tmto;
-  uint scrypt_phy;
 
 } salt_t;
 
@@ -289,12 +293,6 @@ typedef struct
 
 } win8phone_t;
 
-typedef struct
-{
-  uint P[256];
-
-} scrypt_tmp_t;
-
 typedef struct
 {
   uint digest[4];
@@ -919,7 +917,7 @@ typedef struct
 #define PW_MAX1     (PW_MAX + 1)
 #define PW_DICTMAX  31
 #define PW_DICTMAX1 (PW_DICTMAX + 1)
-#define PARAMCNT    32
+#define PARAMCNT    64
 
 struct __hc_device_param
 {
@@ -1066,7 +1064,10 @@ struct __hc_device_param
   cl_mem  d_tmps;
   cl_mem  d_hooks;
   cl_mem  d_result;
-  cl_mem  d_scryptV_buf;
+  cl_mem  d_scryptV0_buf;
+  cl_mem  d_scryptV1_buf;
+  cl_mem  d_scryptV2_buf;
+  cl_mem  d_scryptV3_buf;
   cl_mem  d_root_css_buf;
   cl_mem  d_markov_css_buf;
 
@@ -1204,6 +1205,9 @@ typedef struct
 
   void   *esalts_buf;
 
+  uint    scrypt_tmp_size;
+  uint    scrypt_tmto_final;
+
   /**
    * logging
    */