1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-11-19 22:58:11 +00:00
hashcat/nv/check_multi_vect4_comp4.c
2015-12-04 15:47:52 +01:00

134 lines
3.1 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)
{
mark_hash_s0 (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)
{
mark_hash_s1 (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)
{
mark_hash_s2 (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)
{
mark_hash_s3 (plains_buf, hashes_shown, final_hash_pos, gid, il_pos);
d_return_buf[lid] = 1;
}
}
}