Fix broken #ifdef in types_ocl.c
[hashcat.git] / OpenCL / types_ocl.c
index 28306d6..dfd3fd6 100644 (file)
@@ -33,9 +33,6 @@ typedef VTYPE(uint,   VECT_SIZE) u32x;
 typedef VTYPE(ulong,  VECT_SIZE) u64x;
 #endif
 
-// this one needs to die
-#define allx(r) r
-
 static inline u32 l32_from_64_S (u64 a)
 {
   const u32 r = (u32) (a);
@@ -199,11 +196,9 @@ static inline u32 rotl32_S (const u32 a, const u32 n)
 
 static inline u64 rotr64_S (const u64 a, const u32 n)
 {
-  #if DEVICE_TYPE == DEVICE_TYPE_CPU
+  #if (DEVICE_TYPE == DEVICE_TYPE_GPU)
 
-  const u64 r = rotate (a, (u64) 64 - n);
-
-  #else
+  #ifdef cl_amd_media_ops
 
   const u32 a0 = h32_from_64_S (a);
   const u32 a1 = l32_from_64_S (a);
@@ -213,6 +208,16 @@ static inline u64 rotr64_S (const u64 a, const u32 n)
 
   const u64 r = hl32_to_64_S (t0, t1);
 
+  #else
+
+  const u64 r = rotate (a, (u64) 64 - n);
+
+  #endif
+
+  #else
+
+  const u64 r = rotate (a, (u64) 64 - n);
+
   #endif
 
   return r;
@@ -255,11 +260,9 @@ static inline u32x rotl32 (const u32x a, const u32 n)
 
 static inline u64x rotr64 (const u64x a, const u32 n)
 {
-  #if DEVICE_TYPE == DEVICE_TYPE_CPU
-
-  const u64x r = rotate (a, (u64) 64 - n);
+  #if (DEVICE_TYPE == DEVICE_TYPE_GPU)
 
-  #else
+  #ifdef cl_amd_media_ops
 
   const u32x a0 = h32_from_64 (a);
   const u32x a1 = l32_from_64 (a);
@@ -269,6 +272,16 @@ static inline u64x rotr64 (const u64x a, const u32 n)
 
   const u64x r = hl32_to_64 (t0, t1);
 
+  #else
+
+  const u64x r = rotate (a, (u64) 64 - n);
+
+  #endif
+
+  #else
+
+  const u64x r = rotate (a, (u64) 64 - n);
+
   #endif
 
   return r;
@@ -281,12 +294,34 @@ static inline u64x rotl64 (const u64x a, const u32 n)
 
 static inline u32 __bfe (const u32 a, const u32 b, const u32 c)
 {
+  #ifdef cl_amd_media_ops2
+
   return amd_bfe (a, b, c);
+
+  #else
+
+  #define BIT(x)      (1 << (x))
+  #define BIT_MASK(x) (BIT (x) - 1)
+  #define BFE(x,y,z)  (((x) >> (y)) & BIT_MASK (z))
+
+  return BFE (a, b, c);
+
+  #endif
 }
 
 static inline u32 amd_bytealign_S (const u32 a, const u32 b, const u32 c)
 {
+  #ifdef cl_amd_media_ops
+
   return amd_bytealign (a, b, c);
+
+  #else
+
+  const u64 tmp = ((((u64) a) << 32) | ((u64) b)) >> ((c & 3) * 8);
+
+  return (u32) (tmp);
+
+  #endif
 }
 #endif
 
@@ -1373,6 +1408,10 @@ typedef struct
   u32  digest_buf[4];
   #elif defined _KRB5TGS_
   u32  digest_buf[4];
+  #elif defined _AXCRYPT_
+  u32  digest_buf[4];
+  #elif defined _KEEPASS_
+  u32  digest_buf[4];
   #endif
 
 } digest_t;
@@ -1429,6 +1468,10 @@ typedef struct
   u32 eapol[64];
   int eapol_size;
   int keyver;
+  u8  orig_mac1[6];
+  u8  orig_mac2[6];
+  u8  orig_nonce1[32];
+  u8  orig_nonce2[32];
 
 } wpa_t;
 
@@ -1588,6 +1631,29 @@ typedef struct
 
 } oldoffice34_t;
 
+typedef struct
+{
+  u32 version;
+  u32 algorithm;
+
+  /* key-file handling */
+  u32 keyfile_len;
+  u32 keyfile[8];
+
+  u32 final_random_seed[8];
+  u32 transf_random_seed[8];
+  u32 enc_iv[4];
+  u32 contents_hash[8];
+
+  /* specific to version 1 */
+  u32 contents_len;
+  u32 contents[75000];
+
+  /* specific to version 2 */
+  u32 expected_bytes[8];
+
+} keepass_t;
+
 typedef struct
 {
   u32 digest[4];
@@ -1902,6 +1968,21 @@ typedef struct
 
 } seven_zip_tmp_t;
 
+typedef struct
+{
+  u32 KEK[5];
+
+  u32 lsb[4];
+  u32 cipher[4];
+
+} axcrypt_tmp_t;
+
+typedef struct
+{
+  u32 tmp_digest[8];
+
+} keepass_tmp_t;
+
 typedef struct
 {
   u32 Kc[16];