1
mirror of https://github.com/hashcat/hashcat synced 2024-12-09 02:13:10 +01:00

Merge pull request #175 from gm4tr1x/appleWorkaroundLocalVar

Proposal workaround for use __local vars in 6900 gpu code with osx
This commit is contained in:
Jens Steube 2016-01-29 16:06:44 +01:00
commit 61b89bb1c8
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
*/
@ -292,7 +294,7 @@ __constant u32 c_tables[4][256] =
#define BOX(i,n,S) (S)[(n)][(i)]
#define round(k1,k2,tbl) \
#define _round(k1,k2,tbl) \
{ \
u32 t; \
t = (k1) + r; \
@ -313,22 +315,22 @@ __constant u32 c_tables[4][256] =
u32 l; \
r = h[i + 0]; \
l = h[i + 1]; \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[7], k[6], t); \
round (k[5], k[4], t); \
round (k[3], k[2], t); \
round (k[1], k[0], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[7], k[6], t); \
_round (k[5], k[4], t); \
_round (k[3], k[2], t); \
_round (k[1], k[0], t); \
s[i + 0] = l; \
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
*/
@ -290,7 +292,7 @@ __constant u32 c_tables[4][256] =
#define BOX(i,n,S) (S)[(n)][(i)]
#define round(k1,k2,tbl) \
#define _round(k1,k2,tbl) \
{ \
u32 t; \
t = (k1) + r; \
@ -311,22 +313,22 @@ __constant u32 c_tables[4][256] =
u32 l; \
r = h[i + 0]; \
l = h[i + 1]; \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[7], k[6], t); \
round (k[5], k[4], t); \
round (k[3], k[2], t); \
round (k[1], k[0], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[7], k[6], t); \
_round (k[5], k[4], t); \
_round (k[3], k[2], t); \
_round (k[1], k[0], t); \
s[i + 0] = l; \
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
*/
@ -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])
#endif
#define round(k1,k2,tbl) \
#define _round(k1,k2,tbl) \
{ \
u32x t; \
t = (k1) + r; \
@ -319,22 +321,22 @@ __constant u32 c_tables[4][256] =
u32x l; \
r = h[i + 0]; \
l = h[i + 1]; \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[0], k[1], t); \
round (k[2], k[3], t); \
round (k[4], k[5], t); \
round (k[6], k[7], t); \
round (k[7], k[6], t); \
round (k[5], k[4], t); \
round (k[3], k[2], t); \
round (k[1], k[0], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[0], k[1], t); \
_round (k[2], k[3], t); \
_round (k[4], k[5], t); \
_round (k[6], k[7], t); \
_round (k[7], k[6], t); \
_round (k[5], k[4], t); \
_round (k[3], k[2], t); \
_round (k[1], k[0], t); \
s[i + 0] = l; \
s[i + 1] = r; \
}
@ -701,7 +703,7 @@ __constant u32 c_tables[4][256] =
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
@ -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