mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-29 19:38:18 +00:00
Merge pull request #1753 from roycewilliams/master
consistent forum singular (thx unix-ninja); trailing whitespace
This commit is contained in:
commit
c804d79eb8
@ -132,8 +132,8 @@ DECLSPEC void m07000m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, __g
|
|||||||
t2[2] = w1[3];
|
t2[2] = w1[3];
|
||||||
t2[3] = w2[0];
|
t2[3] = w2[0];
|
||||||
t3[0] = w2[1];
|
t3[0] = w2[1];
|
||||||
t3[1] = w2[2];
|
t3[1] = w2[2];
|
||||||
t3[2] = w2[3];
|
t3[2] = w2[3];
|
||||||
t3[3] = w3[0];
|
t3[3] = w3[0];
|
||||||
|
|
||||||
t0[0] |= salt_buf0[0];
|
t0[0] |= salt_buf0[0];
|
||||||
@ -417,8 +417,8 @@ DECLSPEC void m07000s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, __g
|
|||||||
t2[2] = w1[3];
|
t2[2] = w1[3];
|
||||||
t2[3] = w2[0];
|
t2[3] = w2[0];
|
||||||
t3[0] = w2[1];
|
t3[0] = w2[1];
|
||||||
t3[1] = w2[2];
|
t3[1] = w2[2];
|
||||||
t3[2] = w2[3];
|
t3[2] = w2[3];
|
||||||
t3[3] = w3[0];
|
t3[3] = w3[0];
|
||||||
|
|
||||||
t0[0] |= salt_buf0[0];
|
t0[0] |= salt_buf0[0];
|
||||||
|
@ -38,12 +38,12 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
u32x ctx[16];
|
u32x ctx[16];
|
||||||
|
|
||||||
ctx[ 0] = CHACHA_CONST_00;
|
ctx[ 0] = CHACHA_CONST_00;
|
||||||
ctx[ 1] = CHACHA_CONST_01;
|
ctx[ 1] = CHACHA_CONST_01;
|
||||||
ctx[ 2] = CHACHA_CONST_02;
|
ctx[ 2] = CHACHA_CONST_02;
|
||||||
ctx[ 3] = CHACHA_CONST_03;
|
ctx[ 3] = CHACHA_CONST_03;
|
||||||
ctx[ 4] = w0[0];
|
ctx[ 4] = w0[0];
|
||||||
ctx[ 5] = w0[1];
|
ctx[ 5] = w0[1];
|
||||||
ctx[ 6] = w0[2];
|
ctx[ 6] = w0[2];
|
||||||
ctx[ 7] = w0[3];
|
ctx[ 7] = w0[3];
|
||||||
@ -80,7 +80,7 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
x[15] = ctx[15];
|
x[15] = ctx[15];
|
||||||
|
|
||||||
#pragma unroll
|
#pragma unroll
|
||||||
for (u8 i = 0; i < 10; i++)
|
for (u8 i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
/* Column round */
|
/* Column round */
|
||||||
QR(0, 4, 8, 12);
|
QR(0, 4, 8, 12);
|
||||||
@ -115,11 +115,11 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
if (offset > 56)
|
if (offset > 56)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Generate a second 64 byte keystream
|
* Generate a second 64 byte keystream
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ctx[12]++;
|
ctx[12]++;
|
||||||
|
|
||||||
if (all(ctx[12] == 0)) ctx[13]++;
|
if (all(ctx[12] == 0)) ctx[13]++;
|
||||||
|
|
||||||
x[16] = ctx[ 0];
|
x[16] = ctx[ 0];
|
||||||
@ -189,17 +189,17 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
digest[1] ^= x[index + 1] << (32 - remain * 8);
|
digest[1] ^= x[index + 1] << (32 - remain * 8);
|
||||||
|
|
||||||
digest[0] ^= x[index + 1] >> ( 0 + remain * 8);
|
digest[0] ^= x[index + 1] >> ( 0 + remain * 8);
|
||||||
digest[0] ^= x[index + 2] << (32 - remain * 8);
|
digest[0] ^= x[index + 2] << (32 - remain * 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
digest[1] ^= x[index + 0];
|
digest[1] ^= x[index + 0];
|
||||||
digest[0] ^= x[index + 1];
|
digest[0] ^= x[index + 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_m04 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_m04 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* modifier
|
* modifier
|
||||||
*/
|
*/
|
||||||
@ -222,7 +222,7 @@ __kernel void m15400_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
const u32 pw_len = pws[gid].pw_len;
|
const u32 pw_len = pws[gid].pw_len;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Salt prep
|
* Salt prep
|
||||||
*/
|
*/
|
||||||
|
|
||||||
u32 iv[2] = { 0 };
|
u32 iv[2] = { 0 };
|
||||||
@ -262,7 +262,7 @@ __kernel void m15400_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
const u32x r3 = digest[3];
|
const u32x r3 = digest[3];
|
||||||
|
|
||||||
COMPARE_M_SIMD(r0, r1, r2, r3);
|
COMPARE_M_SIMD(r0, r1, r2, r3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_m08 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_m08 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
@ -274,7 +274,7 @@ __kernel void m15400_m16 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_s04 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_s04 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* modifier
|
* modifier
|
||||||
*/
|
*/
|
||||||
@ -318,7 +318,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
|
|
||||||
plain[0] = esalt_bufs[digests_offset].plain[0];
|
plain[0] = esalt_bufs[digests_offset].plain[0];
|
||||||
plain[1] = esalt_bufs[digests_offset].plain[1];
|
plain[1] = esalt_bufs[digests_offset].plain[1];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* digest
|
* digest
|
||||||
*/
|
*/
|
||||||
@ -330,7 +330,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
digests_buf[digests_offset].digest_buf[DGST_R2],
|
digests_buf[digests_offset].digest_buf[DGST_R2],
|
||||||
digests_buf[digests_offset].digest_buf[DGST_R3]
|
digests_buf[digests_offset].digest_buf[DGST_R3]
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* loop
|
* loop
|
||||||
*/
|
*/
|
||||||
@ -339,7 +339,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
{
|
{
|
||||||
u32x w0[4] = { 0 };
|
u32x w0[4] = { 0 };
|
||||||
u32x w1[4] = { 0 };
|
u32x w1[4] = { 0 };
|
||||||
|
|
||||||
const u32x out_len = apply_rules_vect(pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
|
const u32x out_len = apply_rules_vect(pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
|
||||||
|
|
||||||
u32x digest[4] = { 0 };
|
u32x digest[4] = { 0 };
|
||||||
@ -352,7 +352,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru
|
|||||||
const u32x r3 = digest[3];
|
const u32x r3 = digest[3];
|
||||||
|
|
||||||
COMPARE_S_SIMD(r0, r1, r2, r3);
|
COMPARE_S_SIMD(r0, r1, r2, r3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_s08 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_s08 (__global pw_t *pws, __constant const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
|
@ -38,12 +38,12 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
u32x ctx[16];
|
u32x ctx[16];
|
||||||
|
|
||||||
ctx[ 0] = CHACHA_CONST_00;
|
ctx[ 0] = CHACHA_CONST_00;
|
||||||
ctx[ 1] = CHACHA_CONST_01;
|
ctx[ 1] = CHACHA_CONST_01;
|
||||||
ctx[ 2] = CHACHA_CONST_02;
|
ctx[ 2] = CHACHA_CONST_02;
|
||||||
ctx[ 3] = CHACHA_CONST_03;
|
ctx[ 3] = CHACHA_CONST_03;
|
||||||
ctx[ 4] = w0[0];
|
ctx[ 4] = w0[0];
|
||||||
ctx[ 5] = w0[1];
|
ctx[ 5] = w0[1];
|
||||||
ctx[ 6] = w0[2];
|
ctx[ 6] = w0[2];
|
||||||
ctx[ 7] = w0[3];
|
ctx[ 7] = w0[3];
|
||||||
@ -80,7 +80,7 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
x[15] = ctx[15];
|
x[15] = ctx[15];
|
||||||
|
|
||||||
#pragma unroll
|
#pragma unroll
|
||||||
for (u8 i = 0; i < 10; i++)
|
for (u8 i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
/* Column round */
|
/* Column round */
|
||||||
QR(0, 4, 8, 12);
|
QR(0, 4, 8, 12);
|
||||||
@ -115,11 +115,11 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
if (offset > 56)
|
if (offset > 56)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Generate a second 64 byte keystream
|
* Generate a second 64 byte keystream
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ctx[12]++;
|
ctx[12]++;
|
||||||
|
|
||||||
if (all(ctx[12] == 0)) ctx[13]++;
|
if (all(ctx[12] == 0)) ctx[13]++;
|
||||||
|
|
||||||
x[16] = ctx[ 0];
|
x[16] = ctx[ 0];
|
||||||
@ -189,17 +189,17 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
digest[1] ^= x[index + 1] << (32 - remain * 8);
|
digest[1] ^= x[index + 1] << (32 - remain * 8);
|
||||||
|
|
||||||
digest[0] ^= x[index + 1] >> ( 0 + remain * 8);
|
digest[0] ^= x[index + 1] >> ( 0 + remain * 8);
|
||||||
digest[0] ^= x[index + 2] << (32 - remain * 8);
|
digest[0] ^= x[index + 2] << (32 - remain * 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
digest[1] ^= x[index + 0];
|
digest[1] ^= x[index + 0];
|
||||||
digest[0] ^= x[index + 1];
|
digest[0] ^= x[index + 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* modifier
|
* modifier
|
||||||
*/
|
*/
|
||||||
@ -222,14 +222,14 @@ __kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
const u32 pw_l_len = pws[gid].pw_len;
|
const u32 pw_l_len = pws[gid].pw_len;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Salt prep
|
* Salt prep
|
||||||
*/
|
*/
|
||||||
|
|
||||||
u32 iv[2] = { 0 };
|
u32 iv[2] = { 0 };
|
||||||
u32 plain[2] = { 0 };
|
u32 plain[2] = { 0 };
|
||||||
u32 position[2] = { 0 };
|
u32 position[2] = { 0 };
|
||||||
u32 offset = 0;
|
u32 offset = 0;
|
||||||
|
|
||||||
position[0] = esalt_bufs[digests_offset].position[0];
|
position[0] = esalt_bufs[digests_offset].position[0];
|
||||||
position[1] = esalt_bufs[digests_offset].position[1];
|
position[1] = esalt_bufs[digests_offset].position[1];
|
||||||
|
|
||||||
@ -326,7 +326,7 @@ __kernel void m15400_m16 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* modifier
|
* modifier
|
||||||
*/
|
*/
|
||||||
@ -352,14 +352,14 @@ __kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
const u32 pw_l_len = pws[gid].pw_len;
|
const u32 pw_l_len = pws[gid].pw_len;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Salt prep
|
* Salt prep
|
||||||
*/
|
*/
|
||||||
|
|
||||||
u32 iv[2] = { 0 };
|
u32 iv[2] = { 0 };
|
||||||
u32 plain[2] = { 0 };
|
u32 plain[2] = { 0 };
|
||||||
u32 position[2] = { 0 };
|
u32 position[2] = { 0 };
|
||||||
u32 offset = 0;
|
u32 offset = 0;
|
||||||
|
|
||||||
position[0] = esalt_bufs[digests_offset].position[0];
|
position[0] = esalt_bufs[digests_offset].position[0];
|
||||||
position[1] = esalt_bufs[digests_offset].position[1];
|
position[1] = esalt_bufs[digests_offset].position[1];
|
||||||
|
|
||||||
@ -382,7 +382,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
digests_buf[digests_offset].digest_buf[DGST_R2],
|
digests_buf[digests_offset].digest_buf[DGST_R2],
|
||||||
digests_buf[digests_offset].digest_buf[DGST_R3]
|
digests_buf[digests_offset].digest_buf[DGST_R3]
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* loop
|
* loop
|
||||||
*/
|
*/
|
||||||
@ -456,7 +456,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
const u32x r3 = digest[3];
|
const u32x r3 = digest[3];
|
||||||
|
|
||||||
COMPARE_S_SIMD(r0, r1, r2, r3);
|
COMPARE_S_SIMD(r0, r1, r2, r3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_s08 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_s08 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
|
@ -36,12 +36,12 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
u32x ctx[16];
|
u32x ctx[16];
|
||||||
|
|
||||||
ctx[ 0] = CHACHA_CONST_00;
|
ctx[ 0] = CHACHA_CONST_00;
|
||||||
ctx[ 1] = CHACHA_CONST_01;
|
ctx[ 1] = CHACHA_CONST_01;
|
||||||
ctx[ 2] = CHACHA_CONST_02;
|
ctx[ 2] = CHACHA_CONST_02;
|
||||||
ctx[ 3] = CHACHA_CONST_03;
|
ctx[ 3] = CHACHA_CONST_03;
|
||||||
ctx[ 4] = w0[0];
|
ctx[ 4] = w0[0];
|
||||||
ctx[ 5] = w0[1];
|
ctx[ 5] = w0[1];
|
||||||
ctx[ 6] = w0[2];
|
ctx[ 6] = w0[2];
|
||||||
ctx[ 7] = w0[3];
|
ctx[ 7] = w0[3];
|
||||||
@ -78,7 +78,7 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
x[15] = ctx[15];
|
x[15] = ctx[15];
|
||||||
|
|
||||||
#pragma unroll
|
#pragma unroll
|
||||||
for (u8 i = 0; i < 10; i++)
|
for (u8 i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
/* Column round */
|
/* Column round */
|
||||||
QR(0, 4, 8, 12);
|
QR(0, 4, 8, 12);
|
||||||
@ -113,11 +113,11 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
if (offset > 56)
|
if (offset > 56)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Generate a second 64 byte keystream
|
* Generate a second 64 byte keystream
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ctx[12]++;
|
ctx[12]++;
|
||||||
|
|
||||||
if (all(ctx[12] == 0)) ctx[13]++;
|
if (all(ctx[12] == 0)) ctx[13]++;
|
||||||
|
|
||||||
x[16] = ctx[ 0];
|
x[16] = ctx[ 0];
|
||||||
@ -187,17 +187,17 @@ DECLSPEC void chacha20_transform (const u32x *w0, const u32x *w1, const u32 *pos
|
|||||||
digest[1] ^= x[index + 1] << (32 - remain * 8);
|
digest[1] ^= x[index + 1] << (32 - remain * 8);
|
||||||
|
|
||||||
digest[0] ^= x[index + 1] >> ( 0 + remain * 8);
|
digest[0] ^= x[index + 1] >> ( 0 + remain * 8);
|
||||||
digest[0] ^= x[index + 2] << (32 - remain * 8);
|
digest[0] ^= x[index + 2] << (32 - remain * 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
digest[1] ^= x[index + 0];
|
digest[1] ^= x[index + 0];
|
||||||
digest[0] ^= x[index + 1];
|
digest[0] ^= x[index + 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __constant const u32x *words_buf_r, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __constant const u32x *words_buf_r, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* modifier
|
* modifier
|
||||||
*/
|
*/
|
||||||
@ -220,7 +220,7 @@ __kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
u32x out_len = pws[gid].pw_len;
|
u32x out_len = pws[gid].pw_len;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Salt prep
|
* Salt prep
|
||||||
*/
|
*/
|
||||||
|
|
||||||
u32 iv[2] = { 0 };
|
u32 iv[2] = { 0 };
|
||||||
@ -232,7 +232,7 @@ __kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
position[1] = esalt_bufs[digests_offset].position[1];
|
position[1] = esalt_bufs[digests_offset].position[1];
|
||||||
|
|
||||||
offset = esalt_bufs[digests_offset].offset;
|
offset = esalt_bufs[digests_offset].offset;
|
||||||
|
|
||||||
iv[0] = esalt_bufs[digests_offset].iv[0];
|
iv[0] = esalt_bufs[digests_offset].iv[0];
|
||||||
iv[1] = esalt_bufs[digests_offset].iv[1];
|
iv[1] = esalt_bufs[digests_offset].iv[1];
|
||||||
|
|
||||||
@ -273,7 +273,7 @@ __kernel void m15400_m04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
|
|
||||||
COMPARE_M_SIMD(r0, r1, r2, r3);
|
COMPARE_M_SIMD(r0, r1, r2, r3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_m08 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_m08 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
@ -284,7 +284,7 @@ __kernel void m15400_m16 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __constant const u32x *words_buf_r, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __constant const u32x *words_buf_r, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* modifier
|
* modifier
|
||||||
*/
|
*/
|
||||||
@ -307,7 +307,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
u32 out_len = pws[gid].pw_len;
|
u32 out_len = pws[gid].pw_len;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Salt prep
|
* Salt prep
|
||||||
*/
|
*/
|
||||||
|
|
||||||
u32 iv[2] = { 0 };
|
u32 iv[2] = { 0 };
|
||||||
@ -348,7 +348,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
{
|
{
|
||||||
const u32x w0r = words_buf_r[il_pos / VECT_SIZE];
|
const u32x w0r = words_buf_r[il_pos / VECT_SIZE];
|
||||||
const u32x w0x = w0l | w0r;
|
const u32x w0x = w0l | w0r;
|
||||||
|
|
||||||
u32x w0_t[4];
|
u32x w0_t[4];
|
||||||
u32x w1_t[4];
|
u32x w1_t[4];
|
||||||
|
|
||||||
@ -372,7 +372,7 @@ __kernel void m15400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
|
|
||||||
COMPARE_S_SIMD(r0, r1, r2, r3);
|
COMPARE_S_SIMD(r0, r1, r2, r3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__kernel void m15400_s08 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
__kernel void m15400_s08 (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const chacha20_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_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 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
|
||||||
{
|
{
|
||||||
|
@ -322,7 +322,7 @@ __kernel void m16400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule
|
|||||||
w3[1] = (wordl3[1] | wordr3[1]) ^ 0x5c5c5c5c;
|
w3[1] = (wordl3[1] | wordr3[1]) ^ 0x5c5c5c5c;
|
||||||
w3[2] = 0x5c5c5c5c;
|
w3[2] = 0x5c5c5c5c;
|
||||||
w3[3] = 0x5c5c5c5c;
|
w3[3] = 0x5c5c5c5c;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* md5
|
* md5
|
||||||
*/
|
*/
|
||||||
|
@ -242,7 +242,7 @@ DECLSPEC int decrypt_and_check (__local RC4_KEY *rc4_key, u32 *data, __global co
|
|||||||
else if length > 256:
|
else if length > 256:
|
||||||
length is on 3 bytes, the first byte is 0x82, and the fourth byte is 0x30 (class=SEQUENCE)
|
length is on 3 bytes, the first byte is 0x82, and the fourth byte is 0x30 (class=SEQUENCE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rc4_next_16 (rc4_key, 0, 0, edata2 + 0, out0);
|
rc4_next_16 (rc4_key, 0, 0, edata2 + 0, out0);
|
||||||
|
|
||||||
if (((out0[2] & 0x00ff80ff) != 0x00300079) &&
|
if (((out0[2] & 0x00ff80ff) != 0x00300079) &&
|
||||||
|
10
README.md
10
README.md
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
### License ###
|
### License ###
|
||||||
|
|
||||||
**hashcat** is licensed under the MIT license. Refer to [docs/license.txt](docs/license.txt) for more information.
|
**hashcat** is licensed under the MIT license. Refer to [docs/license.txt](docs/license.txt) for more information.
|
||||||
|
|
||||||
### Installation ###
|
### Installation ###
|
||||||
|
|
||||||
@ -12,13 +12,13 @@ Download the [latest release](https://hashcat.net/hashcat/) and unpack it in the
|
|||||||
|
|
||||||
### Usage/Help ###
|
### Usage/Help ###
|
||||||
|
|
||||||
Please refer to the [Hashcat Wiki](https://hashcat.net/wiki/) and the output of `--help` for usage information and general help. A list of frequently asked questions may also be found [here](https://hashcat.net/wiki/doku.php?id=frequently_asked_questions). The [Hashcat Forums](https://hashcat.net/forum/) also contains a plethora of information.
|
Please refer to the [Hashcat Wiki](https://hashcat.net/wiki/) and the output of `--help` for usage information and general help. A list of frequently asked questions may also be found [here](https://hashcat.net/wiki/doku.php?id=frequently_asked_questions). The [Hashcat Forum](https://hashcat.net/forum/) also contains a plethora of information.
|
||||||
|
|
||||||
### Building ###
|
### Building ###
|
||||||
|
|
||||||
Refer to [BUILD.md](BUILD.md) for instructions on how to build **hashcat** from source.
|
Refer to [BUILD.md](BUILD.md) for instructions on how to build **hashcat** from source.
|
||||||
|
|
||||||
Tests:
|
Tests:
|
||||||
|
|
||||||
Travis | Appveyor | Coverity
|
Travis | Appveyor | Coverity
|
||||||
------ | -------- | --------
|
------ | -------- | --------
|
||||||
@ -31,9 +31,9 @@ Contributions are welcome and encouraged, provided your code is of sufficient qu
|
|||||||
1. Licensed under MIT license, or dedicated to the public domain (BSD, GPL, etc. code is incompatible)
|
1. Licensed under MIT license, or dedicated to the public domain (BSD, GPL, etc. code is incompatible)
|
||||||
2. Adheres to gnu99 standard
|
2. Adheres to gnu99 standard
|
||||||
3. Compiles cleanly with no warnings when compiled with `-W -Wall -std=gnu99`
|
3. Compiles cleanly with no warnings when compiled with `-W -Wall -std=gnu99`
|
||||||
4. Uses [Allman-style](https://en.wikipedia.org/wiki/Indent_style#Allman_style) code blocks & indentation
|
4. Uses [Allman-style](https://en.wikipedia.org/wiki/Indent_style#Allman_style) code blocks & indentation
|
||||||
5. Uses 2-spaces as the indentation or a tab if it's required (for example: Makefiles)
|
5. Uses 2-spaces as the indentation or a tab if it's required (for example: Makefiles)
|
||||||
6. Uses lower-case function and variable names
|
6. Uses lower-case function and variable names
|
||||||
7. Avoids the use of `!` and uses positive conditionals wherever possible (e.g., `if (foo == 0)` instead of `if (!foo)`, and `if (foo)` instead of `if (foo != 0)`)
|
7. Avoids the use of `!` and uses positive conditionals wherever possible (e.g., `if (foo == 0)` instead of `if (!foo)`, and `if (foo)` instead of `if (foo != 0)`)
|
||||||
8. Use code like array[index + 0] if you also need to do array[index + 1], to keep it aligned
|
8. Use code like array[index + 0] if you also need to do array[index + 1], to keep it aligned
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Dedicated hash modes allow unlimited salt length support.
|
|||||||
|
|
||||||
UTF-16 is mostly seen on Windows. UTF-8 (as mostly used on Linux and macOS) are fine.
|
UTF-16 is mostly seen on Windows. UTF-8 (as mostly used on Linux and macOS) are fine.
|
||||||
|
|
||||||
Important: That does not mean UTF-16 file content, which is fully supported.
|
Important: That does not mean UTF-16 file content, which is fully supported.
|
||||||
|
|
||||||
It only means the filename itself.
|
It only means the filename itself.
|
||||||
|
|
||||||
@ -44,9 +44,9 @@ For example, on a Vega64: 64 * 512 * 1024 * 1024 * 20 = 687,194,767,360 bytes
|
|||||||
## Hashcat GPU memory usage may be limited by maximum allocation sizes of OpenCL drivers
|
## Hashcat GPU memory usage may be limited by maximum allocation sizes of OpenCL drivers
|
||||||
##
|
##
|
||||||
|
|
||||||
Most hashcat hash modes only use a single OpenCL allocation.
|
Most hashcat hash modes only use a single OpenCL allocation.
|
||||||
|
|
||||||
The size of this allocation is limited by GPU drivers / OpenCL runtimes.
|
The size of this allocation is limited by GPU drivers / OpenCL runtimes.
|
||||||
|
|
||||||
Only a few modes (like scrypt) make more than one allocation.
|
Only a few modes (like scrypt) make more than one allocation.
|
||||||
|
|
||||||
@ -54,13 +54,13 @@ Only a few modes (like scrypt) make more than one allocation.
|
|||||||
## The maximum number of functions per rule is limited to 31
|
## The maximum number of functions per rule is limited to 31
|
||||||
##
|
##
|
||||||
|
|
||||||
This makes the size of one rule 128 byte.
|
This makes the size of one rule 128 byte.
|
||||||
|
|
||||||
On the other hand, there is a 25% OpenCL single allocation memory limit.
|
On the other hand, there is a 25% OpenCL single allocation memory limit.
|
||||||
|
|
||||||
A typical GPU of today has 8GB = 2GB/128 = 16M rules max
|
A typical GPU of today has 8GB = 2GB/128 = 16M rules max
|
||||||
|
|
||||||
If hashcat supported more functions per rule, it would be limited to fewer rules.
|
If hashcat supported more functions per rule, it would be limited to fewer rules.
|
||||||
|
|
||||||
This is a trade-off game.
|
This is a trade-off game.
|
||||||
|
|
||||||
|
@ -10319,7 +10319,7 @@ sub rnd
|
|||||||
elsif ($mode == 18200)
|
elsif ($mode == 18200)
|
||||||
{
|
{
|
||||||
$salt_buf = get_random_kerberos5_as_rep_salt ();
|
$salt_buf = get_random_kerberos5_as_rep_salt ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
my @salt_arr;
|
my @salt_arr;
|
||||||
|
Loading…
Reference in New Issue
Block a user