diff --git a/OpenCL/m14000_a3-pure.cl b/OpenCL/m14000_a3-pure.cl index 50bf08343..72075cdc3 100644 --- a/OpenCL/m14000_a3-pure.cl +++ b/OpenCL/m14000_a3-pure.cl @@ -1772,135 +1772,71 @@ KERNEL_FQ void m14000_mxx (KERN_ATTR_BITSLICE ()) // salt1 first, because this is a 64 bit value actually - #define d00 (((salt1 >> 0) & 1) ? -1 : 0) - #define d01 (((salt1 >> 1) & 1) ? -1 : 0) - #define d02 (((salt1 >> 2) & 1) ? -1 : 0) - #define d03 (((salt1 >> 3) & 1) ? -1 : 0) - #define d04 (((salt1 >> 4) & 1) ? -1 : 0) - #define d05 (((salt1 >> 5) & 1) ? -1 : 0) - #define d06 (((salt1 >> 6) & 1) ? -1 : 0) - #define d07 (((salt1 >> 7) & 1) ? -1 : 0) - #define d08 (((salt1 >> 8) & 1) ? -1 : 0) - #define d09 (((salt1 >> 9) & 1) ? -1 : 0) - #define d10 (((salt1 >> 10) & 1) ? -1 : 0) - #define d11 (((salt1 >> 11) & 1) ? -1 : 0) - #define d12 (((salt1 >> 12) & 1) ? -1 : 0) - #define d13 (((salt1 >> 13) & 1) ? -1 : 0) - #define d14 (((salt1 >> 14) & 1) ? -1 : 0) - #define d15 (((salt1 >> 15) & 1) ? -1 : 0) - #define d16 (((salt1 >> 16) & 1) ? -1 : 0) - #define d17 (((salt1 >> 17) & 1) ? -1 : 0) - #define d18 (((salt1 >> 18) & 1) ? -1 : 0) - #define d19 (((salt1 >> 19) & 1) ? -1 : 0) - #define d20 (((salt1 >> 20) & 1) ? -1 : 0) - #define d21 (((salt1 >> 21) & 1) ? -1 : 0) - #define d22 (((salt1 >> 22) & 1) ? -1 : 0) - #define d23 (((salt1 >> 23) & 1) ? -1 : 0) - #define d24 (((salt1 >> 24) & 1) ? -1 : 0) - #define d25 (((salt1 >> 25) & 1) ? -1 : 0) - #define d26 (((salt1 >> 26) & 1) ? -1 : 0) - #define d27 (((salt1 >> 27) & 1) ? -1 : 0) - #define d28 (((salt1 >> 28) & 1) ? -1 : 0) - #define d29 (((salt1 >> 29) & 1) ? -1 : 0) - #define d30 (((salt1 >> 30) & 1) ? -1 : 0) - #define d31 (((salt1 >> 31) & 1) ? -1 : 0) - #define d32 (((salt0 >> 0) & 1) ? -1 : 0) - #define d33 (((salt0 >> 1) & 1) ? -1 : 0) - #define d34 (((salt0 >> 2) & 1) ? -1 : 0) - #define d35 (((salt0 >> 3) & 1) ? -1 : 0) - #define d36 (((salt0 >> 4) & 1) ? -1 : 0) - #define d37 (((salt0 >> 5) & 1) ? -1 : 0) - #define d38 (((salt0 >> 6) & 1) ? -1 : 0) - #define d39 (((salt0 >> 7) & 1) ? -1 : 0) - #define d40 (((salt0 >> 8) & 1) ? -1 : 0) - #define d41 (((salt0 >> 9) & 1) ? -1 : 0) - #define d42 (((salt0 >> 10) & 1) ? -1 : 0) - #define d43 (((salt0 >> 11) & 1) ? -1 : 0) - #define d44 (((salt0 >> 12) & 1) ? -1 : 0) - #define d45 (((salt0 >> 13) & 1) ? -1 : 0) - #define d46 (((salt0 >> 14) & 1) ? -1 : 0) - #define d47 (((salt0 >> 15) & 1) ? -1 : 0) - #define d48 (((salt0 >> 16) & 1) ? -1 : 0) - #define d49 (((salt0 >> 17) & 1) ? -1 : 0) - #define d50 (((salt0 >> 18) & 1) ? -1 : 0) - #define d51 (((salt0 >> 19) & 1) ? -1 : 0) - #define d52 (((salt0 >> 20) & 1) ? -1 : 0) - #define d53 (((salt0 >> 21) & 1) ? -1 : 0) - #define d54 (((salt0 >> 22) & 1) ? -1 : 0) - #define d55 (((salt0 >> 23) & 1) ? -1 : 0) - #define d56 (((salt0 >> 24) & 1) ? -1 : 0) - #define d57 (((salt0 >> 25) & 1) ? -1 : 0) - #define d58 (((salt0 >> 26) & 1) ? -1 : 0) - #define d59 (((salt0 >> 27) & 1) ? -1 : 0) - #define d60 (((salt0 >> 28) & 1) ? -1 : 0) - #define d61 (((salt0 >> 29) & 1) ? -1 : 0) - #define d62 (((salt0 >> 30) & 1) ? -1 : 0) - #define d63 (((salt0 >> 31) & 1) ? -1 : 0) - - u32 D00 = d00; - u32 D01 = d01; - u32 D02 = d02; - u32 D03 = d03; - u32 D04 = d04; - u32 D05 = d05; - u32 D06 = d06; - u32 D07 = d07; - u32 D08 = d08; - u32 D09 = d09; - u32 D10 = d10; - u32 D11 = d11; - u32 D12 = d12; - u32 D13 = d13; - u32 D14 = d14; - u32 D15 = d15; - u32 D16 = d16; - u32 D17 = d17; - u32 D18 = d18; - u32 D19 = d19; - u32 D20 = d20; - u32 D21 = d21; - u32 D22 = d22; - u32 D23 = d23; - u32 D24 = d24; - u32 D25 = d25; - u32 D26 = d26; - u32 D27 = d27; - u32 D28 = d28; - u32 D29 = d29; - u32 D30 = d30; - u32 D31 = d31; - u32 D32 = d32; - u32 D33 = d33; - u32 D34 = d34; - u32 D35 = d35; - u32 D36 = d36; - u32 D37 = d37; - u32 D38 = d38; - u32 D39 = d39; - u32 D40 = d40; - u32 D41 = d41; - u32 D42 = d42; - u32 D43 = d43; - u32 D44 = d44; - u32 D45 = d45; - u32 D46 = d46; - u32 D47 = d47; - u32 D48 = d48; - u32 D49 = d49; - u32 D50 = d50; - u32 D51 = d51; - u32 D52 = d52; - u32 D53 = d53; - u32 D54 = d54; - u32 D55 = d55; - u32 D56 = d56; - u32 D57 = d57; - u32 D58 = d58; - u32 D59 = d59; - u32 D60 = d60; - u32 D61 = d61; - u32 D62 = d62; - u32 D63 = d63; + + const u32 d00 = (((salt1 >> 0) & 1) ? -1 : 0); + const u32 d01 = (((salt1 >> 1) & 1) ? -1 : 0); + const u32 d02 = (((salt1 >> 2) & 1) ? -1 : 0); + const u32 d03 = (((salt1 >> 3) & 1) ? -1 : 0); + const u32 d04 = (((salt1 >> 4) & 1) ? -1 : 0); + const u32 d05 = (((salt1 >> 5) & 1) ? -1 : 0); + const u32 d06 = (((salt1 >> 6) & 1) ? -1 : 0); + const u32 d07 = (((salt1 >> 7) & 1) ? -1 : 0); + const u32 d08 = (((salt1 >> 8) & 1) ? -1 : 0); + const u32 d09 = (((salt1 >> 9) & 1) ? -1 : 0); + const u32 d10 = (((salt1 >> 10) & 1) ? -1 : 0); + const u32 d11 = (((salt1 >> 11) & 1) ? -1 : 0); + const u32 d12 = (((salt1 >> 12) & 1) ? -1 : 0); + const u32 d13 = (((salt1 >> 13) & 1) ? -1 : 0); + const u32 d14 = (((salt1 >> 14) & 1) ? -1 : 0); + const u32 d15 = (((salt1 >> 15) & 1) ? -1 : 0); + const u32 d16 = (((salt1 >> 16) & 1) ? -1 : 0); + const u32 d17 = (((salt1 >> 17) & 1) ? -1 : 0); + const u32 d18 = (((salt1 >> 18) & 1) ? -1 : 0); + const u32 d19 = (((salt1 >> 19) & 1) ? -1 : 0); + const u32 d20 = (((salt1 >> 20) & 1) ? -1 : 0); + const u32 d21 = (((salt1 >> 21) & 1) ? -1 : 0); + const u32 d22 = (((salt1 >> 22) & 1) ? -1 : 0); + const u32 d23 = (((salt1 >> 23) & 1) ? -1 : 0); + const u32 d24 = (((salt1 >> 24) & 1) ? -1 : 0); + const u32 d25 = (((salt1 >> 25) & 1) ? -1 : 0); + const u32 d26 = (((salt1 >> 26) & 1) ? -1 : 0); + const u32 d27 = (((salt1 >> 27) & 1) ? -1 : 0); + const u32 d28 = (((salt1 >> 28) & 1) ? -1 : 0); + const u32 d29 = (((salt1 >> 29) & 1) ? -1 : 0); + const u32 d30 = (((salt1 >> 30) & 1) ? -1 : 0); + const u32 d31 = (((salt1 >> 31) & 1) ? -1 : 0); + const u32 d32 = (((salt0 >> 0) & 1) ? -1 : 0); + const u32 d33 = (((salt0 >> 1) & 1) ? -1 : 0); + const u32 d34 = (((salt0 >> 2) & 1) ? -1 : 0); + const u32 d35 = (((salt0 >> 3) & 1) ? -1 : 0); + const u32 d36 = (((salt0 >> 4) & 1) ? -1 : 0); + const u32 d37 = (((salt0 >> 5) & 1) ? -1 : 0); + const u32 d38 = (((salt0 >> 6) & 1) ? -1 : 0); + const u32 d39 = (((salt0 >> 7) & 1) ? -1 : 0); + const u32 d40 = (((salt0 >> 8) & 1) ? -1 : 0); + const u32 d41 = (((salt0 >> 9) & 1) ? -1 : 0); + const u32 d42 = (((salt0 >> 10) & 1) ? -1 : 0); + const u32 d43 = (((salt0 >> 11) & 1) ? -1 : 0); + const u32 d44 = (((salt0 >> 12) & 1) ? -1 : 0); + const u32 d45 = (((salt0 >> 13) & 1) ? -1 : 0); + const u32 d46 = (((salt0 >> 14) & 1) ? -1 : 0); + const u32 d47 = (((salt0 >> 15) & 1) ? -1 : 0); + const u32 d48 = (((salt0 >> 16) & 1) ? -1 : 0); + const u32 d49 = (((salt0 >> 17) & 1) ? -1 : 0); + const u32 d50 = (((salt0 >> 18) & 1) ? -1 : 0); + const u32 d51 = (((salt0 >> 19) & 1) ? -1 : 0); + const u32 d52 = (((salt0 >> 20) & 1) ? -1 : 0); + const u32 d53 = (((salt0 >> 21) & 1) ? -1 : 0); + const u32 d54 = (((salt0 >> 22) & 1) ? -1 : 0); + const u32 d55 = (((salt0 >> 23) & 1) ? -1 : 0); + const u32 d56 = (((salt0 >> 24) & 1) ? -1 : 0); + const u32 d57 = (((salt0 >> 25) & 1) ? -1 : 0); + const u32 d58 = (((salt0 >> 26) & 1) ? -1 : 0); + const u32 d59 = (((salt0 >> 27) & 1) ? -1 : 0); + const u32 d60 = (((salt0 >> 28) & 1) ? -1 : 0); + const u32 d61 = (((salt0 >> 29) & 1) ? -1 : 0); + const u32 d62 = (((salt0 >> 30) & 1) ? -1 : 0); + const u32 d63 = (((salt0 >> 31) & 1) ? -1 : 0); /** * base @@ -2032,6 +1968,71 @@ KERNEL_FQ void m14000_mxx (KERN_ATTR_BITSLICE ()) k26 |= words_buf_s[pc_pos].b[26]; k27 |= words_buf_s[pc_pos].b[27]; + u32 D00 = d00; + u32 D01 = d01; + u32 D02 = d02; + u32 D03 = d03; + u32 D04 = d04; + u32 D05 = d05; + u32 D06 = d06; + u32 D07 = d07; + u32 D08 = d08; + u32 D09 = d09; + u32 D10 = d10; + u32 D11 = d11; + u32 D12 = d12; + u32 D13 = d13; + u32 D14 = d14; + u32 D15 = d15; + u32 D16 = d16; + u32 D17 = d17; + u32 D18 = d18; + u32 D19 = d19; + u32 D20 = d20; + u32 D21 = d21; + u32 D22 = d22; + u32 D23 = d23; + u32 D24 = d24; + u32 D25 = d25; + u32 D26 = d26; + u32 D27 = d27; + u32 D28 = d28; + u32 D29 = d29; + u32 D30 = d30; + u32 D31 = d31; + u32 D32 = d32; + u32 D33 = d33; + u32 D34 = d34; + u32 D35 = d35; + u32 D36 = d36; + u32 D37 = d37; + u32 D38 = d38; + u32 D39 = d39; + u32 D40 = d40; + u32 D41 = d41; + u32 D42 = d42; + u32 D43 = d43; + u32 D44 = d44; + u32 D45 = d45; + u32 D46 = d46; + u32 D47 = d47; + u32 D48 = d48; + u32 D49 = d49; + u32 D50 = d50; + u32 D51 = d51; + u32 D52 = d52; + u32 D53 = d53; + u32 D54 = d54; + u32 D55 = d55; + u32 D56 = d56; + u32 D57 = d57; + u32 D58 = d58; + u32 D59 = d59; + u32 D60 = d60; + u32 D61 = d61; + u32 D62 = d62; + u32 D63 = d63; + DES ( k00, k01, k02, k03, k04, k05, k06, @@ -2213,135 +2214,70 @@ KERNEL_FQ void m14000_sxx (KERN_ATTR_BITSLICE ()) // salt1 first, because this is a 64 bit value actually - #define d00 (((salt1 >> 0) & 1) ? -1 : 0) - #define d01 (((salt1 >> 1) & 1) ? -1 : 0) - #define d02 (((salt1 >> 2) & 1) ? -1 : 0) - #define d03 (((salt1 >> 3) & 1) ? -1 : 0) - #define d04 (((salt1 >> 4) & 1) ? -1 : 0) - #define d05 (((salt1 >> 5) & 1) ? -1 : 0) - #define d06 (((salt1 >> 6) & 1) ? -1 : 0) - #define d07 (((salt1 >> 7) & 1) ? -1 : 0) - #define d08 (((salt1 >> 8) & 1) ? -1 : 0) - #define d09 (((salt1 >> 9) & 1) ? -1 : 0) - #define d10 (((salt1 >> 10) & 1) ? -1 : 0) - #define d11 (((salt1 >> 11) & 1) ? -1 : 0) - #define d12 (((salt1 >> 12) & 1) ? -1 : 0) - #define d13 (((salt1 >> 13) & 1) ? -1 : 0) - #define d14 (((salt1 >> 14) & 1) ? -1 : 0) - #define d15 (((salt1 >> 15) & 1) ? -1 : 0) - #define d16 (((salt1 >> 16) & 1) ? -1 : 0) - #define d17 (((salt1 >> 17) & 1) ? -1 : 0) - #define d18 (((salt1 >> 18) & 1) ? -1 : 0) - #define d19 (((salt1 >> 19) & 1) ? -1 : 0) - #define d20 (((salt1 >> 20) & 1) ? -1 : 0) - #define d21 (((salt1 >> 21) & 1) ? -1 : 0) - #define d22 (((salt1 >> 22) & 1) ? -1 : 0) - #define d23 (((salt1 >> 23) & 1) ? -1 : 0) - #define d24 (((salt1 >> 24) & 1) ? -1 : 0) - #define d25 (((salt1 >> 25) & 1) ? -1 : 0) - #define d26 (((salt1 >> 26) & 1) ? -1 : 0) - #define d27 (((salt1 >> 27) & 1) ? -1 : 0) - #define d28 (((salt1 >> 28) & 1) ? -1 : 0) - #define d29 (((salt1 >> 29) & 1) ? -1 : 0) - #define d30 (((salt1 >> 30) & 1) ? -1 : 0) - #define d31 (((salt1 >> 31) & 1) ? -1 : 0) - #define d32 (((salt0 >> 0) & 1) ? -1 : 0) - #define d33 (((salt0 >> 1) & 1) ? -1 : 0) - #define d34 (((salt0 >> 2) & 1) ? -1 : 0) - #define d35 (((salt0 >> 3) & 1) ? -1 : 0) - #define d36 (((salt0 >> 4) & 1) ? -1 : 0) - #define d37 (((salt0 >> 5) & 1) ? -1 : 0) - #define d38 (((salt0 >> 6) & 1) ? -1 : 0) - #define d39 (((salt0 >> 7) & 1) ? -1 : 0) - #define d40 (((salt0 >> 8) & 1) ? -1 : 0) - #define d41 (((salt0 >> 9) & 1) ? -1 : 0) - #define d42 (((salt0 >> 10) & 1) ? -1 : 0) - #define d43 (((salt0 >> 11) & 1) ? -1 : 0) - #define d44 (((salt0 >> 12) & 1) ? -1 : 0) - #define d45 (((salt0 >> 13) & 1) ? -1 : 0) - #define d46 (((salt0 >> 14) & 1) ? -1 : 0) - #define d47 (((salt0 >> 15) & 1) ? -1 : 0) - #define d48 (((salt0 >> 16) & 1) ? -1 : 0) - #define d49 (((salt0 >> 17) & 1) ? -1 : 0) - #define d50 (((salt0 >> 18) & 1) ? -1 : 0) - #define d51 (((salt0 >> 19) & 1) ? -1 : 0) - #define d52 (((salt0 >> 20) & 1) ? -1 : 0) - #define d53 (((salt0 >> 21) & 1) ? -1 : 0) - #define d54 (((salt0 >> 22) & 1) ? -1 : 0) - #define d55 (((salt0 >> 23) & 1) ? -1 : 0) - #define d56 (((salt0 >> 24) & 1) ? -1 : 0) - #define d57 (((salt0 >> 25) & 1) ? -1 : 0) - #define d58 (((salt0 >> 26) & 1) ? -1 : 0) - #define d59 (((salt0 >> 27) & 1) ? -1 : 0) - #define d60 (((salt0 >> 28) & 1) ? -1 : 0) - #define d61 (((salt0 >> 29) & 1) ? -1 : 0) - #define d62 (((salt0 >> 30) & 1) ? -1 : 0) - #define d63 (((salt0 >> 31) & 1) ? -1 : 0) - - u32 D00 = d00; - u32 D01 = d01; - u32 D02 = d02; - u32 D03 = d03; - u32 D04 = d04; - u32 D05 = d05; - u32 D06 = d06; - u32 D07 = d07; - u32 D08 = d08; - u32 D09 = d09; - u32 D10 = d10; - u32 D11 = d11; - u32 D12 = d12; - u32 D13 = d13; - u32 D14 = d14; - u32 D15 = d15; - u32 D16 = d16; - u32 D17 = d17; - u32 D18 = d18; - u32 D19 = d19; - u32 D20 = d20; - u32 D21 = d21; - u32 D22 = d22; - u32 D23 = d23; - u32 D24 = d24; - u32 D25 = d25; - u32 D26 = d26; - u32 D27 = d27; - u32 D28 = d28; - u32 D29 = d29; - u32 D30 = d30; - u32 D31 = d31; - u32 D32 = d32; - u32 D33 = d33; - u32 D34 = d34; - u32 D35 = d35; - u32 D36 = d36; - u32 D37 = d37; - u32 D38 = d38; - u32 D39 = d39; - u32 D40 = d40; - u32 D41 = d41; - u32 D42 = d42; - u32 D43 = d43; - u32 D44 = d44; - u32 D45 = d45; - u32 D46 = d46; - u32 D47 = d47; - u32 D48 = d48; - u32 D49 = d49; - u32 D50 = d50; - u32 D51 = d51; - u32 D52 = d52; - u32 D53 = d53; - u32 D54 = d54; - u32 D55 = d55; - u32 D56 = d56; - u32 D57 = d57; - u32 D58 = d58; - u32 D59 = d59; - u32 D60 = d60; - u32 D61 = d61; - u32 D62 = d62; - u32 D63 = d63; + const u32 d00 = (((salt1 >> 0) & 1) ? -1 : 0); + const u32 d01 = (((salt1 >> 1) & 1) ? -1 : 0); + const u32 d02 = (((salt1 >> 2) & 1) ? -1 : 0); + const u32 d03 = (((salt1 >> 3) & 1) ? -1 : 0); + const u32 d04 = (((salt1 >> 4) & 1) ? -1 : 0); + const u32 d05 = (((salt1 >> 5) & 1) ? -1 : 0); + const u32 d06 = (((salt1 >> 6) & 1) ? -1 : 0); + const u32 d07 = (((salt1 >> 7) & 1) ? -1 : 0); + const u32 d08 = (((salt1 >> 8) & 1) ? -1 : 0); + const u32 d09 = (((salt1 >> 9) & 1) ? -1 : 0); + const u32 d10 = (((salt1 >> 10) & 1) ? -1 : 0); + const u32 d11 = (((salt1 >> 11) & 1) ? -1 : 0); + const u32 d12 = (((salt1 >> 12) & 1) ? -1 : 0); + const u32 d13 = (((salt1 >> 13) & 1) ? -1 : 0); + const u32 d14 = (((salt1 >> 14) & 1) ? -1 : 0); + const u32 d15 = (((salt1 >> 15) & 1) ? -1 : 0); + const u32 d16 = (((salt1 >> 16) & 1) ? -1 : 0); + const u32 d17 = (((salt1 >> 17) & 1) ? -1 : 0); + const u32 d18 = (((salt1 >> 18) & 1) ? -1 : 0); + const u32 d19 = (((salt1 >> 19) & 1) ? -1 : 0); + const u32 d20 = (((salt1 >> 20) & 1) ? -1 : 0); + const u32 d21 = (((salt1 >> 21) & 1) ? -1 : 0); + const u32 d22 = (((salt1 >> 22) & 1) ? -1 : 0); + const u32 d23 = (((salt1 >> 23) & 1) ? -1 : 0); + const u32 d24 = (((salt1 >> 24) & 1) ? -1 : 0); + const u32 d25 = (((salt1 >> 25) & 1) ? -1 : 0); + const u32 d26 = (((salt1 >> 26) & 1) ? -1 : 0); + const u32 d27 = (((salt1 >> 27) & 1) ? -1 : 0); + const u32 d28 = (((salt1 >> 28) & 1) ? -1 : 0); + const u32 d29 = (((salt1 >> 29) & 1) ? -1 : 0); + const u32 d30 = (((salt1 >> 30) & 1) ? -1 : 0); + const u32 d31 = (((salt1 >> 31) & 1) ? -1 : 0); + const u32 d32 = (((salt0 >> 0) & 1) ? -1 : 0); + const u32 d33 = (((salt0 >> 1) & 1) ? -1 : 0); + const u32 d34 = (((salt0 >> 2) & 1) ? -1 : 0); + const u32 d35 = (((salt0 >> 3) & 1) ? -1 : 0); + const u32 d36 = (((salt0 >> 4) & 1) ? -1 : 0); + const u32 d37 = (((salt0 >> 5) & 1) ? -1 : 0); + const u32 d38 = (((salt0 >> 6) & 1) ? -1 : 0); + const u32 d39 = (((salt0 >> 7) & 1) ? -1 : 0); + const u32 d40 = (((salt0 >> 8) & 1) ? -1 : 0); + const u32 d41 = (((salt0 >> 9) & 1) ? -1 : 0); + const u32 d42 = (((salt0 >> 10) & 1) ? -1 : 0); + const u32 d43 = (((salt0 >> 11) & 1) ? -1 : 0); + const u32 d44 = (((salt0 >> 12) & 1) ? -1 : 0); + const u32 d45 = (((salt0 >> 13) & 1) ? -1 : 0); + const u32 d46 = (((salt0 >> 14) & 1) ? -1 : 0); + const u32 d47 = (((salt0 >> 15) & 1) ? -1 : 0); + const u32 d48 = (((salt0 >> 16) & 1) ? -1 : 0); + const u32 d49 = (((salt0 >> 17) & 1) ? -1 : 0); + const u32 d50 = (((salt0 >> 18) & 1) ? -1 : 0); + const u32 d51 = (((salt0 >> 19) & 1) ? -1 : 0); + const u32 d52 = (((salt0 >> 20) & 1) ? -1 : 0); + const u32 d53 = (((salt0 >> 21) & 1) ? -1 : 0); + const u32 d54 = (((salt0 >> 22) & 1) ? -1 : 0); + const u32 d55 = (((salt0 >> 23) & 1) ? -1 : 0); + const u32 d56 = (((salt0 >> 24) & 1) ? -1 : 0); + const u32 d57 = (((salt0 >> 25) & 1) ? -1 : 0); + const u32 d58 = (((salt0 >> 26) & 1) ? -1 : 0); + const u32 d59 = (((salt0 >> 27) & 1) ? -1 : 0); + const u32 d60 = (((salt0 >> 28) & 1) ? -1 : 0); + const u32 d61 = (((salt0 >> 29) & 1) ? -1 : 0); + const u32 d62 = (((salt0 >> 30) & 1) ? -1 : 0); + const u32 d63 = (((salt0 >> 31) & 1) ? -1 : 0); /** * digest @@ -2545,6 +2481,71 @@ KERNEL_FQ void m14000_sxx (KERN_ATTR_BITSLICE ()) k26 |= words_buf_s[pc_pos].b[26]; k27 |= words_buf_s[pc_pos].b[27]; + u32 D00 = d00; + u32 D01 = d01; + u32 D02 = d02; + u32 D03 = d03; + u32 D04 = d04; + u32 D05 = d05; + u32 D06 = d06; + u32 D07 = d07; + u32 D08 = d08; + u32 D09 = d09; + u32 D10 = d10; + u32 D11 = d11; + u32 D12 = d12; + u32 D13 = d13; + u32 D14 = d14; + u32 D15 = d15; + u32 D16 = d16; + u32 D17 = d17; + u32 D18 = d18; + u32 D19 = d19; + u32 D20 = d20; + u32 D21 = d21; + u32 D22 = d22; + u32 D23 = d23; + u32 D24 = d24; + u32 D25 = d25; + u32 D26 = d26; + u32 D27 = d27; + u32 D28 = d28; + u32 D29 = d29; + u32 D30 = d30; + u32 D31 = d31; + u32 D32 = d32; + u32 D33 = d33; + u32 D34 = d34; + u32 D35 = d35; + u32 D36 = d36; + u32 D37 = d37; + u32 D38 = d38; + u32 D39 = d39; + u32 D40 = d40; + u32 D41 = d41; + u32 D42 = d42; + u32 D43 = d43; + u32 D44 = d44; + u32 D45 = d45; + u32 D46 = d46; + u32 D47 = d47; + u32 D48 = d48; + u32 D49 = d49; + u32 D50 = d50; + u32 D51 = d51; + u32 D52 = d52; + u32 D53 = d53; + u32 D54 = d54; + u32 D55 = d55; + u32 D56 = d56; + u32 D57 = d57; + u32 D58 = d58; + u32 D59 = d59; + u32 D60 = d60; + u32 D61 = d61; + u32 D62 = d62; + u32 D63 = d63; + DES ( k00, k01, k02, k03, k04, k05, k06, diff --git a/OpenCL/m20900_a0-optimized.cl b/OpenCL/m20900_a0-optimized.cl index 1b9c24e0c..9699c3211 100644 --- a/OpenCL/m20900_a0-optimized.cl +++ b/OpenCL/m20900_a0-optimized.cl @@ -421,7 +421,7 @@ KERNEL_FQ void m20900_m04 (KERN_ATTR_RULES ()) _w2[0] = 0; _w2[1] = 0; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -593,7 +593,7 @@ KERNEL_FQ void m20900_m04 (KERN_ATTR_RULES ()) _w2[1] = uint_to_hex_lower8 ((e0 >> 8) & 255) << 0 | uint_to_hex_lower8 ((e0 >> 0) & 255) << 16; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -1143,7 +1143,7 @@ KERNEL_FQ void m20900_s04 (KERN_ATTR_RULES ()) _w2[0] = 0; _w2[1] = 0; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -1315,7 +1315,7 @@ KERNEL_FQ void m20900_s04 (KERN_ATTR_RULES ()) _w2[1] = uint_to_hex_lower8 ((e0 >> 8) & 255) << 0 | uint_to_hex_lower8 ((e0 >> 0) & 255) << 16; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; diff --git a/OpenCL/m20900_a1-optimized.cl b/OpenCL/m20900_a1-optimized.cl index 89b25c3b0..d74c1c050 100644 --- a/OpenCL/m20900_a1-optimized.cl +++ b/OpenCL/m20900_a1-optimized.cl @@ -477,7 +477,7 @@ KERNEL_FQ void m20900_m04 (KERN_ATTR_BASIC ()) _w2[0] = 0; _w2[1] = 0; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -649,7 +649,7 @@ KERNEL_FQ void m20900_m04 (KERN_ATTR_BASIC ()) _w2[1] = uint_to_hex_lower8 ((e0 >> 8) & 255) << 0 | uint_to_hex_lower8 ((e0 >> 0) & 255) << 16; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -1257,7 +1257,7 @@ KERNEL_FQ void m20900_s04 (KERN_ATTR_BASIC ()) _w2[0] = 0; _w2[1] = 0; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -1429,7 +1429,7 @@ KERNEL_FQ void m20900_s04 (KERN_ATTR_BASIC ()) _w2[1] = uint_to_hex_lower8 ((e0 >> 8) & 255) << 0 | uint_to_hex_lower8 ((e0 >> 0) & 255) << 16; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; diff --git a/OpenCL/m20900_a3-optimized.cl b/OpenCL/m20900_a3-optimized.cl index ec8b4c3ab..88d705bb9 100644 --- a/OpenCL/m20900_a3-optimized.cl +++ b/OpenCL/m20900_a3-optimized.cl @@ -378,7 +378,7 @@ DECLSPEC void m20900m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER _w2[0] = 0; _w2[1] = 0; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -550,7 +550,7 @@ DECLSPEC void m20900m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER _w2[1] = uint_to_hex_lower8 ((e0 >> 8) & 255) << 0 | uint_to_hex_lower8 ((e0 >> 0) & 255) << 16; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -1051,7 +1051,7 @@ DECLSPEC void m20900s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER _w2[0] = 0; _w2[1] = 0; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; @@ -1223,7 +1223,7 @@ DECLSPEC void m20900s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER _w2[1] = uint_to_hex_lower8 ((e0 >> 8) & 255) << 0 | uint_to_hex_lower8 ((e0 >> 0) & 255) << 16; - _w2[2] = 0; + _w2[2] = 0; _w2[3] = 0; _w3[0] = 0; _w3[1] = 0; diff --git a/docs/changes.txt b/docs/changes.txt index 3d9745087..32874dcee 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -6,6 +6,12 @@ - Added pure kernels for hash-mode 600 (BLAKE2b-512) +## +## Bugs +## + +- Fixed uninitialized value in bitsliced DES kernel (BF mode only) leading to false negatives + ## ## Improvements ## diff --git a/docs/team.txt b/docs/team.txt index d0ce79285..0a6e4c771 100644 --- a/docs/team.txt +++ b/docs/team.txt @@ -36,7 +36,7 @@ BlowCane chancas Chick3nman coolbry95 dakykilla deutsch dropdead epixoip EvilMog franky gpufreak hashtka Hydraze J0hnnyBrav0 K9 kontrast23 Kryczek legion m3g9tr0n matrix -minga N|IGHT5 NSAKEY NullMode philsmd +Minga N|IGHT5 _NSAKEY NullMode philsmd purehate radix Rolf rurapenthe s3in!c SuperJames Szul tehnlulz The_Mechanic T0XlC TychoTithonus undeath unix-ninja Xanadrel xmisery diff --git a/src/main.c b/src/main.c index 7e045eb6a..48cf59e27 100644 --- a/src/main.c +++ b/src/main.c @@ -471,7 +471,7 @@ static void main_outerloop_mainscreen (MAYBE_UNUSED hashcat_ctx_t *hashcat_ctx, if (hashconfig->opti_type) { - event_log_info (hashcat_ctx, "Applicable optimizers:"); + event_log_info (hashcat_ctx, "Applicable optimizers applied:"); for (u32 i = 0; i < 32; i++) { diff --git a/src/modules/module_07500.c b/src/modules/module_07500.c index 468380134..cafc72608 100644 --- a/src/modules/module_07500.c +++ b/src/modules/module_07500.c @@ -22,7 +22,6 @@ static const u64 KERN_TYPE = 7500; static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE | OPTI_TYPE_NOT_ITERATED; static const u64 OPTS_TYPE = OPTS_TYPE_PT_GENERATE_LE; -static const u32 PWDUMP_COLUMN = PWDUMP_COLUMN_NTLM_HASH; static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; static const char *ST_PASS = "hashcat"; static const char *ST_HASH = "$krb5pa$23$user$realm$salt$5cbb0c882a2b26956e81644edbdb746326f4f5f0e947144fb3095dffe4b4b03e854fc1d631323632303636373330383333353630"; @@ -38,7 +37,6 @@ const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } -u32 module_pwdump_column (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return PWDUMP_COLUMN; } u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } @@ -305,7 +303,7 @@ void module_init (module_ctx_t *module_ctx) module_ctx->module_potfile_custom_check = MODULE_DEFAULT; module_ctx->module_potfile_disable = MODULE_DEFAULT; module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; - module_ctx->module_pwdump_column = module_pwdump_column; + module_ctx->module_pwdump_column = MODULE_DEFAULT; module_ctx->module_pw_max = MODULE_DEFAULT; module_ctx->module_pw_min = MODULE_DEFAULT; module_ctx->module_salt_max = MODULE_DEFAULT; diff --git a/src/modules/module_18200.c b/src/modules/module_18200.c index 3db491d68..de48f8034 100644 --- a/src/modules/module_18200.c +++ b/src/modules/module_18200.c @@ -22,7 +22,6 @@ static const u64 KERN_TYPE = 18200; static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE | OPTI_TYPE_NOT_ITERATED; static const u64 OPTS_TYPE = OPTS_TYPE_PT_GENERATE_LE; -static const u32 PWDUMP_COLUMN = PWDUMP_COLUMN_NTLM_HASH; static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED; static const char *ST_PASS = "hashcat"; static const char *ST_HASH = "$krb5asrep$23$user@domain.com:3e156ada591263b8aab0965f5aebd837$007497cb51b6c8116d6407a782ea0e1c5402b17db7afa6b05a6d30ed164a9933c754d720e279c6c573679bd27128fe77e5fea1f72334c1193c8ff0b370fadc6368bf2d49bbfdba4c5dccab95e8c8ebfdc75f438a0797dbfb2f8a1a5f4c423f9bfc1fea483342a11bd56a216f4d5158ccc4b224b52894fadfba3957dfe4b6b8f5f9f9fe422811a314768673e0c924340b8ccb84775ce9defaa3baa0910b676ad0036d13032b0dd94e3b13903cc738a7b6d00b0b3c210d1f972a6c7cae9bd3c959acf7565be528fc179118f28c679f6deeee1456f0781eb8154e18e49cb27b64bf74cd7112a0ebae2102ac"; @@ -38,7 +37,6 @@ const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTI_TYPE; } u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return OPTS_TYPE; } -u32 module_pwdump_column (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return PWDUMP_COLUMN; } u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return SALT_TYPE; } const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } @@ -301,7 +299,7 @@ void module_init (module_ctx_t *module_ctx) module_ctx->module_potfile_custom_check = MODULE_DEFAULT; module_ctx->module_potfile_disable = MODULE_DEFAULT; module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT; - module_ctx->module_pwdump_column = module_pwdump_column; + module_ctx->module_pwdump_column = MODULE_DEFAULT; module_ctx->module_pw_max = MODULE_DEFAULT; module_ctx->module_pw_min = MODULE_DEFAULT; module_ctx->module_salt_max = MODULE_DEFAULT;