mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-24 08:58:13 +00:00
Merge branch 'matrix-fix_m14000_a3'
This commit is contained in:
commit
f0cc7a55fd
@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
#define LUT(a,b,c,d,e) u32 a; asm ("lop3.b32 %0, %1, %2, %3, "#e";" : "=r"(a): "r"(b), "r"(c), "r"(d));
|
#define LUT(a,b,c,d,e) u32 a; asm ("lop3.b32 %0, %1, %2, %3, "#e";" : "=r"(a): "r"(b), "r"(c), "r"(d));
|
||||||
|
|
||||||
void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(xAA55AA5500550055, a1, a4, a6, 0xC1)
|
LUT(xAA55AA5500550055, a1, a4, a6, 0xC1)
|
||||||
LUT(xA55AA55AF0F5F0F5, a3, a6, xAA55AA5500550055, 0x9E)
|
LUT(xA55AA55AF0F5F0F5, a3, a6, xAA55AA5500550055, 0x9E)
|
||||||
@ -90,7 +90,7 @@ void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(xEEEEEEEE99999999, a1, a2, a6, 0x97)
|
LUT(xEEEEEEEE99999999, a1, a2, a6, 0x97)
|
||||||
LUT(xFFFFEEEE66666666, a5, a6, xEEEEEEEE99999999, 0x67)
|
LUT(xFFFFEEEE66666666, a5, a6, xEEEEEEEE99999999, 0x67)
|
||||||
@ -123,7 +123,7 @@ void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(xA50FA50FA50FA50F, a1, a3, a4, 0xC9)
|
LUT(xA50FA50FA50FA50F, a1, a3, a4, 0xC9)
|
||||||
LUT(xF0F00F0FF0F0F0F0, a3, a5, a6, 0x4B)
|
LUT(xF0F00F0FF0F0F0F0, a3, a5, a6, 0x4B)
|
||||||
@ -157,7 +157,7 @@ void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(x55F055F055F055F0, a1, a3, a4, 0x72)
|
LUT(x55F055F055F055F0, a1, a3, a4, 0x72)
|
||||||
LUT(xA500F5F0A500F5F0, a3, a5, x55F055F055F055F0, 0xAD)
|
LUT(xA500F5F0A500F5F0, a3, a5, x55F055F055F055F0, 0xAD)
|
||||||
@ -184,7 +184,7 @@ void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(xA0A0A0A0FFFFFFFF, a1, a3, a6, 0xAB)
|
LUT(xA0A0A0A0FFFFFFFF, a1, a3, a6, 0xAB)
|
||||||
LUT(xFFFF00005555FFFF, a1, a5, a6, 0xB9)
|
LUT(xFFFF00005555FFFF, a1, a5, a6, 0xB9)
|
||||||
@ -218,7 +218,7 @@ void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(x5050F5F55050F5F5, a1, a3, a5, 0xB2)
|
LUT(x5050F5F55050F5F5, a1, a3, a5, 0xB2)
|
||||||
LUT(x6363C6C66363C6C6, a1, a2, x5050F5F55050F5F5, 0x66)
|
LUT(x6363C6C66363C6C6, a1, a2, x5050F5F55050F5F5, 0x66)
|
||||||
@ -251,7 +251,7 @@ void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(x88AA88AA88AA88AA, a1, a2, a4, 0x0B)
|
LUT(x88AA88AA88AA88AA, a1, a2, a4, 0x0B)
|
||||||
LUT(xAAAAFF00AAAAFF00, a1, a4, a5, 0x27)
|
LUT(xAAAAFF00AAAAFF00, a1, a4, a5, 0x27)
|
||||||
@ -284,7 +284,7 @@ void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x4;
|
*out4 ^= x4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
LUT(xEEEE3333EEEE3333, a1, a2, a5, 0x9D)
|
LUT(xEEEE3333EEEE3333, a1, a2, a5, 0x9D)
|
||||||
LUT(xBBBBBBBBBBBBBBBB, a1, a1, a2, 0x83)
|
LUT(xBBBBBBBBBBBBBBBB, a1, a1, a2, 0x83)
|
||||||
@ -342,7 +342,7 @@ void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
* The effort has been sponsored by Rapid7: http://www.rapid7.com
|
* The effort has been sponsored by Rapid7: http://www.rapid7.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x55005500, x5A0F5A0F, x3333FFFF, x66666666, x22226666, x2D2D6969,
|
u32 x55005500, x5A0F5A0F, x3333FFFF, x66666666, x22226666, x2D2D6969,
|
||||||
x25202160;
|
x25202160;
|
||||||
@ -417,7 +417,7 @@ void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x31;
|
*out4 ^= x31;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x33CC33CC;
|
u32 x33CC33CC;
|
||||||
u32 x55550000, x00AA00FF, x33BB33FF;
|
u32 x55550000, x00AA00FF, x33BB33FF;
|
||||||
@ -488,7 +488,7 @@ void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x31;
|
*out4 ^= x31;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x44444444, x0F0FF0F0, x4F4FF4F4, x00FFFF00, x00AAAA00, x4FE55EF4;
|
u32 x44444444, x0F0FF0F0, x4F4FF4F4, x00FFFF00, x00AAAA00, x4FE55EF4;
|
||||||
u32 x3C3CC3C3, x3C3C0000, x7373F4F4, x0C840A00;
|
u32 x3C3CC3C3, x3C3C0000, x7373F4F4, x0C840A00;
|
||||||
@ -559,7 +559,7 @@ void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out3 ^= x21;
|
*out3 ^= x21;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x5A5A5A5A, x0F0FF0F0;
|
u32 x5A5A5A5A, x0F0FF0F0;
|
||||||
u32 x33FF33FF, x33FFCC00, x0C0030F0, x0C0CC0C0, x0CF3C03F, x5EFBDA7F,
|
u32 x33FF33FF, x33FFCC00, x0C0030F0, x0C0CC0C0, x0CF3C03F, x5EFBDA7F,
|
||||||
@ -613,7 +613,7 @@ void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out4 ^= x31;
|
*out4 ^= x31;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x77777777, x77770000, x22225555, x11116666, x1F1F6F6F;
|
u32 x77777777, x77770000, x22225555, x11116666, x1F1F6F6F;
|
||||||
u32 x70700000, x43433333, x00430033, x55557777, x55167744, x5A19784B;
|
u32 x70700000, x43433333, x00430033, x55557777, x55167744, x5A19784B;
|
||||||
@ -686,7 +686,7 @@ void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out2 ^= x11;
|
*out2 ^= x11;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x33CC33CC;
|
u32 x33CC33CC;
|
||||||
u32 x3333FFFF, x11115555, x22DD6699, x22DD9966, x00220099;
|
u32 x3333FFFF, x11115555, x22DD6699, x22DD9966, x00220099;
|
||||||
@ -759,7 +759,7 @@ void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out1 ^= x01;
|
*out1 ^= x01;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x0FF00FF0, x3CC33CC3, x00003CC3, x0F000F00, x5A555A55, x00001841;
|
u32 x0FF00FF0, x3CC33CC3, x00003CC3, x0F000F00, x5A555A55, x00001841;
|
||||||
u32 x00000F00, x33333C33, x7B777E77, x0FF0F00F, x74878E78;
|
u32 x00000F00, x33333C33, x7B777E77, x0FF0F00F, x74878E78;
|
||||||
@ -830,7 +830,7 @@ void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
*out2 ^= x11;
|
*out2 ^= x11;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x0C0C0C0C, x0000F0F0, x00FFF00F, x00555005, x00515001;
|
u32 x0C0C0C0C, x0000F0F0, x00FFF00F, x00555005, x00515001;
|
||||||
u32 x33000330, x77555775, x30303030, x3030CFCF, x30104745, x30555745;
|
u32 x33000330, x77555775, x30303030, x3030CFCF, x30104745, x30555745;
|
||||||
@ -928,7 +928,7 @@ void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
#define vxor(d,a,b) (d) = (a) ^ (b)
|
#define vxor(d,a,b) (d) = (a) ^ (b)
|
||||||
#define vsel(d,a,b,c) (d) = bitselect ((a), (b), (c))
|
#define vsel(d,a,b,c) (d) = bitselect ((a), (b), (c))
|
||||||
|
|
||||||
void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x0F0F3333, x3C3C3C3C, x55FF55FF, x69C369C3, x0903B73F, x09FCB7C0, x5CA9E295;
|
u32 x0F0F3333, x3C3C3C3C, x55FF55FF, x69C369C3, x0903B73F, x09FCB7C0, x5CA9E295;
|
||||||
u32 x55AFD1B7, x3C3C69C3, x6993B874;
|
u32 x55AFD1B7, x3C3C69C3, x6993B874;
|
||||||
@ -989,7 +989,7 @@ void s1 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out3, *out3, x2);
|
vxor(*out3, *out3, x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x55553333, x0055FF33, x33270F03, x66725A56, x00FFFF00, x668DA556;
|
u32 x55553333, x0055FF33, x33270F03, x66725A56, x00FFFF00, x668DA556;
|
||||||
u32 x0F0F5A56, xF0F0A5A9, xA5A5969A, xA55A699A;
|
u32 x0F0F5A56, xF0F0A5A9, xA5A5969A, xA55A699A;
|
||||||
@ -1047,7 +1047,7 @@ void s2 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out3, *out3, x2);
|
vxor(*out3, *out3, x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x0F330F33, x0F33F0CC, x5A66A599;
|
u32 x0F330F33, x0F33F0CC, x5A66A599;
|
||||||
u32 x2111B7BB, x03FF3033, x05BB50EE, x074F201F, x265E97A4;
|
u32 x2111B7BB, x03FF3033, x05BB50EE, x074F201F, x265E97A4;
|
||||||
@ -1105,7 +1105,7 @@ void s3 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out3, *out3, x2);
|
vxor(*out3, *out3, x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x0505AFAF, x0555AF55, x0A5AA05A, x46566456, x0A0A5F5F, x0AF55FA0,
|
u32 x0505AFAF, x0555AF55, x0A5AA05A, x46566456, x0A0A5F5F, x0AF55FA0,
|
||||||
x0AF50F0F, x4CA36B59;
|
x0AF50F0F, x4CA36B59;
|
||||||
@ -1153,7 +1153,7 @@ void s4 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out2, *out2, x1);
|
vxor(*out2, *out2, x1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x550F550F, xAAF0AAF0, xA5F5A5F5, x96C696C6, x00FFFF00, x963969C6;
|
u32 x550F550F, xAAF0AAF0, xA5F5A5F5, x96C696C6, x00FFFF00, x963969C6;
|
||||||
u32 x2E3C2E3C, xB73121F7, x1501DF0F, x00558A5F, x2E69A463;
|
u32 x2E3C2E3C, xB73121F7, x1501DF0F, x00558A5F, x2E69A463;
|
||||||
@ -1213,7 +1213,7 @@ void s5 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out1, *out1, x0);
|
vxor(*out1, *out1, x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x555500FF, x666633CC, x606F30CF, x353A659A, x353A9A65, xCAC5659A;
|
u32 x555500FF, x666633CC, x606F30CF, x353A659A, x353A9A65, xCAC5659A;
|
||||||
u32 x353A6565, x0A3F0A6F, x6C5939A3, x5963A3C6;
|
u32 x353A6565, x0A3F0A6F, x6C5939A3, x5963A3C6;
|
||||||
@ -1272,7 +1272,7 @@ void s6 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out3, *out3, x2);
|
vxor(*out3, *out3, x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x44447777, x4B4B7878, x22772277, x0505F5F5, x220522F5, x694E5A8D;
|
u32 x44447777, x4B4B7878, x22772277, x0505F5F5, x220522F5, x694E5A8D;
|
||||||
u32 x00FFFF00, x66666666, x32353235, x26253636, x26DAC936;
|
u32 x00FFFF00, x66666666, x32353235, x26253636, x26DAC936;
|
||||||
@ -1331,7 +1331,7 @@ void s7 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
vxor(*out4, *out4, x3);
|
vxor(*out4, *out4, x3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
static void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, const u32 a6, u32 *out1, u32 *out2, u32 *out3, u32 *out4)
|
||||||
{
|
{
|
||||||
u32 x0505F5F5, x05FAF50A, x0F0F00FF, x22227777, x07DA807F, x34E9B34C;
|
u32 x0505F5F5, x05FAF50A, x0F0F00FF, x22227777, x07DA807F, x34E9B34C;
|
||||||
u32 x00FFF00F, x0033FCCF, x5565B15C, x0C0C3F3F, x59698E63;
|
u32 x00FFF00F, x0033FCCF, x5565B15C, x0C0C3F3F, x59698E63;
|
||||||
@ -1443,7 +1443,7 @@ void s8 (const u32 a1, const u32 a2, const u32 a3, const u32 a4, const u32 a5, c
|
|||||||
#define KEYSET07 { k00 = K31; k01 = K35; k02 = K52; k03 = K43; k04 = K08; k05 = K37; k06 = K51; k07 = K15; k08 = K49; k09 = K30; k10 = K07; k11 = K02; k12 = K50; k13 = K21; k14 = K45; k15 = K44; k16 = K29; k17 = K16; k18 = K42; k19 = K23; k20 = K22; k21 = K14; k22 = K38; k23 = K01; k24 = K10; k25 = K47; k26 = K53; k27 = K11; k28 = K27; k29 = K26; k30 = K05; k31 = K17; k32 = K54; k33 = K41; k34 = K39; k35 = K20; k36 = K48; k37 = K13; k38 = K24; k39 = K19; k40 = K32; k41 = K40; k42 = K34; k43 = K03; k44 = K06; k45 = K18; k46 = K12; k47 = K46; }
|
#define KEYSET07 { k00 = K31; k01 = K35; k02 = K52; k03 = K43; k04 = K08; k05 = K37; k06 = K51; k07 = K15; k08 = K49; k09 = K30; k10 = K07; k11 = K02; k12 = K50; k13 = K21; k14 = K45; k15 = K44; k16 = K29; k17 = K16; k18 = K42; k19 = K23; k20 = K22; k21 = K14; k22 = K38; k23 = K01; k24 = K10; k25 = K47; k26 = K53; k27 = K11; k28 = K27; k29 = K26; k30 = K05; k31 = K17; k32 = K54; k33 = K41; k34 = K39; k35 = K20; k36 = K48; k37 = K13; k38 = K24; k39 = K19; k40 = K32; k41 = K40; k42 = K34; k43 = K03; k44 = K06; k45 = K18; k46 = K12; k47 = K46; }
|
||||||
#define KEYSET17 { k00 = K15; k01 = K51; k02 = K36; k03 = K02; k04 = K49; k05 = K21; k06 = K35; k07 = K31; k08 = K08; k09 = K14; k10 = K23; k11 = K43; k12 = K09; k13 = K37; k14 = K29; k15 = K28; k16 = K45; k17 = K00; k18 = K01; k19 = K07; k20 = K38; k21 = K30; k22 = K22; k23 = K42; k24 = K26; k25 = K04; k26 = K41; k27 = K54; k28 = K39; k29 = K10; k30 = K48; k31 = K33; k32 = K11; k33 = K53; k34 = K27; k35 = K32; k36 = K05; k37 = K25; k38 = K40; k39 = K03; k40 = K20; k41 = K24; k42 = K46; k43 = K19; k44 = K18; k45 = K06; k46 = K55; k47 = K34; }
|
#define KEYSET17 { k00 = K15; k01 = K51; k02 = K36; k03 = K02; k04 = K49; k05 = K21; k06 = K35; k07 = K31; k08 = K08; k09 = K14; k10 = K23; k11 = K43; k12 = K09; k13 = K37; k14 = K29; k15 = K28; k16 = K45; k17 = K00; k18 = K01; k19 = K07; k20 = K38; k21 = K30; k22 = K22; k23 = K42; k24 = K26; k25 = K04; k26 = K41; k27 = K54; k28 = K39; k29 = K10; k30 = K48; k31 = K33; k32 = K11; k33 = K53; k34 = K27; k35 = K32; k36 = K05; k37 = K25; k38 = K40; k39 = K03; k40 = K20; k41 = K24; k42 = K46; k43 = K19; k44 = K18; k45 = K06; k46 = K55; k47 = K34; }
|
||||||
|
|
||||||
void DES (const u32 K00, const u32 K01, const u32 K02, const u32 K03, const u32 K04, const u32 K05, const u32 K06, const u32 K07, const u32 K08, const u32 K09, const u32 K10, const u32 K11, const u32 K12, const u32 K13, const u32 K14, const u32 K15, const u32 K16, const u32 K17, const u32 K18, const u32 K19, const u32 K20, const u32 K21, const u32 K22, const u32 K23, const u32 K24, const u32 K25, const u32 K26, const u32 K27, const u32 K28, const u32 K29, const u32 K30, const u32 K31, const u32 K32, const u32 K33, const u32 K34, const u32 K35, const u32 K36, const u32 K37, const u32 K38, const u32 K39, const u32 K40, const u32 K41, const u32 K42, const u32 K43, const u32 K44, const u32 K45, const u32 K46, const u32 K47, const u32 K48, const u32 K49, const u32 K50, const u32 K51, const u32 K52, const u32 K53, const u32 K54, const u32 K55, u32 *D00, u32 *D01, u32 *D02, u32 *D03, u32 *D04, u32 *D05, u32 *D06, u32 *D07, u32 *D08, u32 *D09, u32 *D10, u32 *D11, u32 *D12, u32 *D13, u32 *D14, u32 *D15, u32 *D16, u32 *D17, u32 *D18, u32 *D19, u32 *D20, u32 *D21, u32 *D22, u32 *D23, u32 *D24, u32 *D25, u32 *D26, u32 *D27, u32 *D28, u32 *D29, u32 *D30, u32 *D31, u32 *D32, u32 *D33, u32 *D34, u32 *D35, u32 *D36, u32 *D37, u32 *D38, u32 *D39, u32 *D40, u32 *D41, u32 *D42, u32 *D43, u32 *D44, u32 *D45, u32 *D46, u32 *D47, u32 *D48, u32 *D49, u32 *D50, u32 *D51, u32 *D52, u32 *D53, u32 *D54, u32 *D55, u32 *D56, u32 *D57, u32 *D58, u32 *D59, u32 *D60, u32 *D61, u32 *D62, u32 *D63)
|
static void DES (const u32 K00, const u32 K01, const u32 K02, const u32 K03, const u32 K04, const u32 K05, const u32 K06, const u32 K07, const u32 K08, const u32 K09, const u32 K10, const u32 K11, const u32 K12, const u32 K13, const u32 K14, const u32 K15, const u32 K16, const u32 K17, const u32 K18, const u32 K19, const u32 K20, const u32 K21, const u32 K22, const u32 K23, const u32 K24, const u32 K25, const u32 K26, const u32 K27, const u32 K28, const u32 K29, const u32 K30, const u32 K31, const u32 K32, const u32 K33, const u32 K34, const u32 K35, const u32 K36, const u32 K37, const u32 K38, const u32 K39, const u32 K40, const u32 K41, const u32 K42, const u32 K43, const u32 K44, const u32 K45, const u32 K46, const u32 K47, const u32 K48, const u32 K49, const u32 K50, const u32 K51, const u32 K52, const u32 K53, const u32 K54, const u32 K55, u32 *D00, u32 *D01, u32 *D02, u32 *D03, u32 *D04, u32 *D05, u32 *D06, u32 *D07, u32 *D08, u32 *D09, u32 *D10, u32 *D11, u32 *D12, u32 *D13, u32 *D14, u32 *D15, u32 *D16, u32 *D17, u32 *D18, u32 *D19, u32 *D20, u32 *D21, u32 *D22, u32 *D23, u32 *D24, u32 *D25, u32 *D26, u32 *D27, u32 *D28, u32 *D29, u32 *D30, u32 *D31, u32 *D32, u32 *D33, u32 *D34, u32 *D35, u32 *D36, u32 *D37, u32 *D38, u32 *D39, u32 *D40, u32 *D41, u32 *D42, u32 *D43, u32 *D44, u32 *D45, u32 *D46, u32 *D47, u32 *D48, u32 *D49, u32 *D50, u32 *D51, u32 *D52, u32 *D53, u32 *D54, u32 *D55, u32 *D56, u32 *D57, u32 *D58, u32 *D59, u32 *D60, u32 *D61, u32 *D62, u32 *D63)
|
||||||
{
|
{
|
||||||
KXX_DECL u32 k00, k01, k02, k03, k04, k05;
|
KXX_DECL u32 k00, k01, k02, k03, k04, k05;
|
||||||
KXX_DECL u32 k06, k07, k08, k09, k10, k11;
|
KXX_DECL u32 k06, k07, k08, k09, k10, k11;
|
||||||
@ -1605,7 +1605,7 @@ void DES (const u32 K00, const u32 K01, const u32 K02, const u32 K03, const u32
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void transpose32c (u32 data[32])
|
static void transpose32c (u32 data[32])
|
||||||
{
|
{
|
||||||
#define swap(x,y,j,m) \
|
#define swap(x,y,j,m) \
|
||||||
t = ((x) ^ ((y) >> (j))) & (m); \
|
t = ((x) ^ ((y) >> (j))) & (m); \
|
||||||
@ -1696,7 +1696,7 @@ void transpose32c (u32 data[32])
|
|||||||
swap (data[30], data[31], 1, 0x55555555);
|
swap (data[30], data[31], 1, 0x55555555);
|
||||||
}
|
}
|
||||||
|
|
||||||
void m14000m (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const comb_t *combs_buf, __global bs_word_t * 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 void *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)
|
static void m14000m (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const comb_t *combs_buf, __global bs_word_t * 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 void *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)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* base
|
* base
|
||||||
@ -2205,7 +2205,7 @@ void m14000m (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __glo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void m14000s (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const comb_t *combs_buf, __global bs_word_t * 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 void *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)
|
static void m14000s (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const comb_t *combs_buf, __global bs_word_t * 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 void *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)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* base
|
* base
|
||||||
|
Loading…
Reference in New Issue
Block a user