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

Merge pull request #3171 from matrix/metal_vectors_4510

Added missing code to get vectors work with Metal on hash-type 4510
This commit is contained in:
Jens Steube 2022-02-25 13:24:08 +01:00 committed by GitHub
commit c356af5831
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 27 deletions

View File

@ -1015,10 +1015,10 @@ KERNEL_FQ void m04510_m04 (KERN_ATTR_RULES ())
wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u);
SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t);
b += digest[1] - SHA1M_B; b += digest[1] - make_u32x (SHA1M_B);
c += digest[2] - SHA1M_C; c += digest[2] - make_u32x (SHA1M_C);
d += digest[3] - SHA1M_D; d += digest[3] - make_u32x (SHA1M_D);
e += digest[4] - SHA1M_E; e += digest[4] - make_u32x (SHA1M_E);
COMPARE_M_SIMD (d, e, c, b); COMPARE_M_SIMD (d, e, c, b);
} }
@ -2028,7 +2028,7 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_RULES ())
wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u);
SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t); SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t);
if (MATCHES_NONE_VS (e + digest[4] - SHA1M_E, search[1])) if (MATCHES_NONE_VS ((e + digest[4] - make_u32x (SHA1M_E)), search[1]))
continue; continue;
we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u);
@ -2036,10 +2036,10 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_RULES ())
wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u);
SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t);
b += digest[1] - SHA1M_B; b += digest[1] - make_u32x (SHA1M_B);
c += digest[2] - SHA1M_C; c += digest[2] - make_u32x (SHA1M_C);
d += digest[3] - SHA1M_D; d += digest[3] - make_u32x (SHA1M_D);
e += digest[4] - SHA1M_E; e += digest[4] - make_u32x (SHA1M_E);
COMPARE_S_SIMD (d, e, c, b); COMPARE_S_SIMD (d, e, c, b);
} }

View File

@ -1070,10 +1070,10 @@ KERNEL_FQ void m04510_m04 (KERN_ATTR_BASIC ())
wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u);
SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t);
b += digest[1] - SHA1M_B; b += digest[1] - make_u32x (SHA1M_B);
c += digest[2] - SHA1M_C; c += digest[2] - make_u32x (SHA1M_C);
d += digest[3] - SHA1M_D; d += digest[3] - make_u32x (SHA1M_D);
e += digest[4] - SHA1M_E; e += digest[4] - make_u32x (SHA1M_E);
COMPARE_M_SIMD (d, e, c, b); COMPARE_M_SIMD (d, e, c, b);
} }
@ -2140,7 +2140,7 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_BASIC ())
wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u);
SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t); SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t);
if (MATCHES_NONE_VS (e + digest[4] - SHA1M_E, search[1])) if (MATCHES_NONE_VS ((e + digest[4] - make_u32x (SHA1M_E)), search[1]))
continue; continue;
we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u);
@ -2148,10 +2148,10 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_BASIC ())
wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u);
SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t);
b += digest[1] - SHA1M_B; b += digest[1] - make_u32x (SHA1M_B);
c += digest[2] - SHA1M_C; c += digest[2] - make_u32x (SHA1M_C);
d += digest[3] - SHA1M_D; d += digest[3] - make_u32x (SHA1M_D);
e += digest[4] - SHA1M_E; e += digest[4] - make_u32x (SHA1M_E);
COMPARE_S_SIMD (d, e, c, b); COMPARE_S_SIMD (d, e, c, b);
} }

View File

@ -969,10 +969,10 @@ DECLSPEC void m04510m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u);
SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t);
b += digest[1] - SHA1M_B; b += digest[1] - make_u32x (SHA1M_B);
c += digest[2] - SHA1M_C; c += digest[2] - make_u32x (SHA1M_C);
d += digest[3] - SHA1M_D; d += digest[3] - make_u32x (SHA1M_D);
e += digest[4] - SHA1M_E; e += digest[4] - make_u32x (SHA1M_E);
COMPARE_M_SIMD (d, e, c, b); COMPARE_M_SIMD (d, e, c, b);
} }
@ -1930,7 +1930,7 @@ DECLSPEC void m04510s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u);
SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t); SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t);
if (MATCHES_NONE_VS (e + digest[4] - SHA1M_E, search[1])) if (MATCHES_NONE_VS ((e + digest[4] - make_u32x (SHA1M_E)), search[1]))
continue; continue;
we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u);
@ -1938,10 +1938,10 @@ DECLSPEC void m04510s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u);
SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t);
b += digest[1] - SHA1M_B; b += digest[1] - make_u32x (SHA1M_B);
c += digest[2] - SHA1M_C; c += digest[2] - make_u32x (SHA1M_C);
d += digest[3] - SHA1M_D; d += digest[3] - make_u32x (SHA1M_D);
e += digest[4] - SHA1M_E; e += digest[4] - make_u32x (SHA1M_E);
COMPARE_S_SIMD (d, e, c, b); COMPARE_S_SIMD (d, e, c, b);
} }