From c4b1c8e7cacfd863dea91d3afc425526e54064a4 Mon Sep 17 00:00:00 2001 From: jsteube Date: Mon, 4 Jan 2016 16:13:10 +0100 Subject: [PATCH] small fix for unknown opencl platforms --- OpenCL/types_ocl.c | 13 +++++++------ include/kernel_functions.c | 8 ++++---- src/oclHashcat.c | 7 +++++++ 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/OpenCL/types_ocl.c b/OpenCL/types_ocl.c index 8f442b274..2fa42ae6f 100644 --- a/OpenCL/types_ocl.c +++ b/OpenCL/types_ocl.c @@ -346,14 +346,14 @@ static inline u32 rotl32 (const u32 a, const u32 n) return rotate (a, n); } -static inline u64 rotr64 (const u64 a, const u64 n) +static inline u64 rotr64 (const u64 a, const u32 n) { - return rotate (a, 64 - n); + return rotate (a, (u64) 64 - n); } -static inline u64 rotl64 (const u64 a, const u64 n) +static inline u64 rotl64 (const u64 a, const u32 n) { - return rotate (a, n); + return rotr64 (a, (u64) 64 - n); } #endif @@ -368,7 +368,8 @@ static inline u32 rotr32 (const u32 a, const u32 n) static inline u32 rotl32 (const u32 a, const u32 n) { - return rotate (a, n); +// return rotate (a, n); + return (a << n) | (a >> (32 - n)); } static inline u64 rotr64 (const u64 a, const u32 n) @@ -378,7 +379,7 @@ static inline u64 rotr64 (const u64 a, const u32 n) static inline u64 rotl64 (const u64 a, const u32 n) { - return rotr64 (a, 64 - n); + return rotr64 (a, (u64) 64 - n); } #endif diff --git a/include/kernel_functions.c b/include/kernel_functions.c index 23d4a6d57..b5cad0fcc 100644 --- a/include/kernel_functions.c +++ b/include/kernel_functions.c @@ -37,8 +37,8 @@ #define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) #define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) #define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD4_H1(x,y,z) ((tmp2 = (x) ^ (y)) ^ (z)) -#define MD4_H2(x,y,z) ((x) ^ tmp2) +#define MD5_H1(x,y,z) (MD4_H((x), (y), (z))) +#define MD5_H2(x,y,z) (MD4_H((x), (y), (z))) #define MD4_Fo(x,y,z) (MD4_F((x), (y), (z))) #define MD4_Go(x,y,z) (MD4_G((x), (y), (z))) #endif @@ -97,8 +97,8 @@ #define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) #define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) #define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD5_H1(x,y,z) ((tmp2 = (x) ^ (y)) ^ (z)) -#define MD5_H2(x,y,z) ((x) ^ tmp2) +#define MD5_H1(x,y,z) (MD5_H((x), (y), (z))) +#define MD5_H2(x,y,z) (MD5_H((x), (y), (z))) #define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) #define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) #define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) diff --git a/src/oclHashcat.c b/src/oclHashcat.c index f0680427b..3be4b896f 100644 --- a/src/oclHashcat.c +++ b/src/oclHashcat.c @@ -2536,6 +2536,13 @@ static void run_kernel_bzero (hc_device_param_t *device_param, cl_mem buf, const myfree (tmp); } + + if (data.vendor_id == VENDOR_ID_UNKNOWN) + { + const cl_uchar zero = 0; + + hc_clEnqueueFillBuffer (device_param->command_queue, buf, &zero, sizeof (cl_uchar), 0, size, 0, NULL, NULL); + } } static int run_rule_engine (const int rule_len, const char *rule_buf)