mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-22 14:48:12 +00:00
134 lines
3.4 KiB
C
134 lines
3.4 KiB
C
u32 digest_tp[4];
|
|
|
|
digest_tp[0] = r0.x;
|
|
digest_tp[1] = r1.x;
|
|
digest_tp[2] = r2.x;
|
|
digest_tp[3] = r3.x;
|
|
|
|
if (check (digest_tp,
|
|
bitmaps_buf_s1_a,
|
|
bitmaps_buf_s1_b,
|
|
bitmaps_buf_s1_c,
|
|
bitmaps_buf_s1_d,
|
|
bitmaps_buf_s2_a,
|
|
bitmaps_buf_s2_b,
|
|
bitmaps_buf_s2_c,
|
|
bitmaps_buf_s2_d,
|
|
bitmap_mask,
|
|
bitmap_shift1,
|
|
bitmap_shift2))
|
|
{
|
|
int hash_pos = find_hash (digest_tp, digests_cnt, &digests_buf[digests_offset]);
|
|
|
|
if (hash_pos != -1)
|
|
{
|
|
const u32 final_hash_pos = digests_offset + hash_pos;
|
|
|
|
if ((atomicAdd (&hashes_shown[final_hash_pos], 1) == 0) && (check_vector_accessible (il_pos, bf_loops, bfs_cnt, 0) == 1))
|
|
{
|
|
mark_hash_s0_warp (plains_buf, hashes_shown, final_hash_pos, gid, il_pos);
|
|
|
|
d_return_buf[lid] = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
digest_tp[0] = r0.y;
|
|
digest_tp[1] = r1.y;
|
|
digest_tp[2] = r2.y;
|
|
digest_tp[3] = r3.y;
|
|
|
|
if (check (digest_tp,
|
|
bitmaps_buf_s1_a,
|
|
bitmaps_buf_s1_b,
|
|
bitmaps_buf_s1_c,
|
|
bitmaps_buf_s1_d,
|
|
bitmaps_buf_s2_a,
|
|
bitmaps_buf_s2_b,
|
|
bitmaps_buf_s2_c,
|
|
bitmaps_buf_s2_d,
|
|
bitmap_mask,
|
|
bitmap_shift1,
|
|
bitmap_shift2))
|
|
{
|
|
int hash_pos = find_hash (digest_tp, digests_cnt, &digests_buf[digests_offset]);
|
|
|
|
if (hash_pos != -1)
|
|
{
|
|
const u32 final_hash_pos = digests_offset + hash_pos;
|
|
|
|
if ((atomicAdd (&hashes_shown[final_hash_pos], 1) == 0) && (check_vector_accessible (il_pos, bf_loops, bfs_cnt, 1) == 1))
|
|
{
|
|
mark_hash_s1_warp (plains_buf, hashes_shown, final_hash_pos, gid, il_pos);
|
|
|
|
d_return_buf[lid] = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
digest_tp[0] = r0.z;
|
|
digest_tp[1] = r1.z;
|
|
digest_tp[2] = r2.z;
|
|
digest_tp[3] = r3.z;
|
|
|
|
if (check (digest_tp,
|
|
bitmaps_buf_s1_a,
|
|
bitmaps_buf_s1_b,
|
|
bitmaps_buf_s1_c,
|
|
bitmaps_buf_s1_d,
|
|
bitmaps_buf_s2_a,
|
|
bitmaps_buf_s2_b,
|
|
bitmaps_buf_s2_c,
|
|
bitmaps_buf_s2_d,
|
|
bitmap_mask,
|
|
bitmap_shift1,
|
|
bitmap_shift2))
|
|
{
|
|
int hash_pos = find_hash (digest_tp, digests_cnt, &digests_buf[digests_offset]);
|
|
|
|
if (hash_pos != -1)
|
|
{
|
|
const u32 final_hash_pos = digests_offset + hash_pos;
|
|
|
|
if ((atomicAdd (&hashes_shown[final_hash_pos], 1) == 0) && (check_vector_accessible (il_pos, bf_loops, bfs_cnt, 2) == 1))
|
|
{
|
|
mark_hash_s2_warp (plains_buf, hashes_shown, final_hash_pos, gid, il_pos);
|
|
|
|
d_return_buf[lid] = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
digest_tp[0] = r0.w;
|
|
digest_tp[1] = r1.w;
|
|
digest_tp[2] = r2.w;
|
|
digest_tp[3] = r3.w;
|
|
|
|
if (check (digest_tp,
|
|
bitmaps_buf_s1_a,
|
|
bitmaps_buf_s1_b,
|
|
bitmaps_buf_s1_c,
|
|
bitmaps_buf_s1_d,
|
|
bitmaps_buf_s2_a,
|
|
bitmaps_buf_s2_b,
|
|
bitmaps_buf_s2_c,
|
|
bitmaps_buf_s2_d,
|
|
bitmap_mask,
|
|
bitmap_shift1,
|
|
bitmap_shift2))
|
|
{
|
|
int hash_pos = find_hash (digest_tp, digests_cnt, &digests_buf[digests_offset]);
|
|
|
|
if (hash_pos != -1)
|
|
{
|
|
const u32 final_hash_pos = digests_offset + hash_pos;
|
|
|
|
if ((atomicAdd (&hashes_shown[final_hash_pos], 1) == 0) && (check_vector_accessible (il_pos, bf_loops, bfs_cnt, 3) == 1))
|
|
{
|
|
mark_hash_s3_warp (plains_buf, hashes_shown, final_hash_pos, gid, il_pos);
|
|
|
|
d_return_buf[lid] = 1;
|
|
}
|
|
}
|
|
}
|