1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-12-23 07:08:19 +00:00

Fixed __local issue with Apple platform for hash mode 6900

This commit is contained in:
Gabriele 'matrix' Gristina 2016-01-29 14:17:46 +01:00
parent 692a86eb54
commit 8dd7438485
3 changed files with 62 additions and 56 deletions

View File

@ -1,5 +1,7 @@
/** /**
* Author......: Jens Steube <jens.steube@gmail.com> * Authors.....: Jens Steube <jens.steube@gmail.com>
* Gabriele Gristina <matrix@hashcat.net>
*
* License.....: MIT * License.....: MIT
*/ */
@ -292,7 +294,7 @@ __constant u32 c_tables[4][256] =
#define BOX(i,n,S) (S)[(n)][(i)] #define BOX(i,n,S) (S)[(n)][(i)]
#define round(k1,k2,tbl) \ #define _round(k1,k2,tbl) \
{ \ { \
u32 t; \ u32 t; \
t = (k1) + r; \ t = (k1) + r; \
@ -313,22 +315,22 @@ __constant u32 c_tables[4][256] =
u32 l; \ u32 l; \
r = h[i + 0]; \ r = h[i + 0]; \
l = h[i + 1]; \ l = h[i + 1]; \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[7], k[6], t); \ _round (k[7], k[6], t); \
round (k[5], k[4], t); \ _round (k[5], k[4], t); \
round (k[3], k[2], t); \ _round (k[3], k[2], t); \
round (k[1], k[0], t); \ _round (k[1], k[0], t); \
s[i + 0] = l; \ s[i + 0] = l; \
s[i + 1] = r; \ s[i + 1] = r; \
} }

View File

@ -1,5 +1,7 @@
/** /**
* Author......: Jens Steube <jens.steube@gmail.com> * Authors.....: Jens Steube <jens.steube@gmail.com>
* Gabriele Gristina <matrix@hashcat.net>
*
* License.....: MIT * License.....: MIT
*/ */
@ -290,7 +292,7 @@ __constant u32 c_tables[4][256] =
#define BOX(i,n,S) (S)[(n)][(i)] #define BOX(i,n,S) (S)[(n)][(i)]
#define round(k1,k2,tbl) \ #define _round(k1,k2,tbl) \
{ \ { \
u32 t; \ u32 t; \
t = (k1) + r; \ t = (k1) + r; \
@ -311,22 +313,22 @@ __constant u32 c_tables[4][256] =
u32 l; \ u32 l; \
r = h[i + 0]; \ r = h[i + 0]; \
l = h[i + 1]; \ l = h[i + 1]; \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[7], k[6], t); \ _round (k[7], k[6], t); \
round (k[5], k[4], t); \ _round (k[5], k[4], t); \
round (k[3], k[2], t); \ _round (k[3], k[2], t); \
round (k[1], k[0], t); \ _round (k[1], k[0], t); \
s[i + 0] = l; \ s[i + 0] = l; \
s[i + 1] = r; \ s[i + 1] = r; \
} }

View File

@ -1,5 +1,7 @@
/** /**
* Author......: Jens Steube <jens.steube@gmail.com> * Authors.....: Jens Steube <jens.steube@gmail.com>
* Gabriele Gristina <matrix@hashcat.net>
*
* License.....: MIT * License.....: MIT
*/ */
@ -298,7 +300,7 @@ __constant u32 c_tables[4][256] =
#define BOX(i,n,S) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) #define BOX(i,n,S) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7])
#endif #endif
#define round(k1,k2,tbl) \ #define _round(k1,k2,tbl) \
{ \ { \
u32x t; \ u32x t; \
t = (k1) + r; \ t = (k1) + r; \
@ -319,22 +321,22 @@ __constant u32 c_tables[4][256] =
u32x l; \ u32x l; \
r = h[i + 0]; \ r = h[i + 0]; \
l = h[i + 1]; \ l = h[i + 1]; \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[0], k[1], t); \ _round (k[0], k[1], t); \
round (k[2], k[3], t); \ _round (k[2], k[3], t); \
round (k[4], k[5], t); \ _round (k[4], k[5], t); \
round (k[6], k[7], t); \ _round (k[6], k[7], t); \
round (k[7], k[6], t); \ _round (k[7], k[6], t); \
round (k[5], k[4], t); \ _round (k[5], k[4], t); \
round (k[3], k[2], t); \ _round (k[3], k[2], t); \
round (k[1], k[0], t); \ _round (k[1], k[0], t); \
s[i + 0] = l; \ s[i + 0] = l; \
s[i + 1] = r; \ s[i + 1] = r; \
} }
@ -701,7 +703,7 @@ __constant u32 c_tables[4][256] =
R (k, h, s, 6, t); \ R (k, h, s, 6, t); \
} }
static void m06900m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 bfs_cnt, const u32 digests_cnt, const u32 digests_offset, __local u32 s_tables[4][256]) static void m06900m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 bfs_cnt, const u32 digests_cnt, const u32 digests_offset, __local u32 (*s_tables)[256])
{ {
/** /**
* modifier * modifier
@ -877,7 +879,7 @@ static void m06900m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_le
} }
} }
static void m06900s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 bfs_cnt, const u32 digests_cnt, const u32 digests_offset, __local u32 s_tables[4][256]) static void m06900s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 bfs_cnt, const u32 digests_cnt, const u32 digests_offset, __local u32 (*s_tables)[256])
{ {
/** /**
* modifier * modifier