mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-13 19:28:56 +00:00
Merge branch 'master' of https://github.com/hashcat/hashcat
This commit is contained in:
commit
1797f3ffa4
@ -17,90 +17,30 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#endif
|
||||
|
||||
CONSTANT_VK u32a theMagicArray[80][16] =
|
||||
CONSTANT_VK u32a theMagicArray[64] =
|
||||
{
|
||||
{ 0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194 },
|
||||
{ 0xac51149f, 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f },
|
||||
{ 0x51149f67, 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b },
|
||||
{ 0x149f6754, 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1 },
|
||||
{ 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b },
|
||||
{ 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06 },
|
||||
{ 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605 },
|
||||
{ 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d },
|
||||
{ 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03 },
|
||||
{ 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d },
|
||||
{ 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e },
|
||||
{ 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13 },
|
||||
{ 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a },
|
||||
{ 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e },
|
||||
{ 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a },
|
||||
{ 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a },
|
||||
{ 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8 },
|
||||
{ 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9 },
|
||||
{ 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c },
|
||||
{ 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14 },
|
||||
{ 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417 },
|
||||
{ 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758 },
|
||||
{ 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7 },
|
||||
{ 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a },
|
||||
{ 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6 },
|
||||
{ 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1 },
|
||||
{ 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199 },
|
||||
{ 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963 },
|
||||
{ 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a },
|
||||
{ 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7 },
|
||||
{ 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd },
|
||||
{ 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70 },
|
||||
{ 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3 },
|
||||
{ 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6 },
|
||||
{ 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e },
|
||||
{ 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74 },
|
||||
{ 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413 },
|
||||
{ 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303 },
|
||||
{ 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9 },
|
||||
{ 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b },
|
||||
{ 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04 },
|
||||
{ 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426 },
|
||||
{ 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698 },
|
||||
{ 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7 },
|
||||
{ 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726 },
|
||||
{ 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a },
|
||||
{ 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92 },
|
||||
{ 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293 },
|
||||
{ 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325 },
|
||||
{ 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0 },
|
||||
{ 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2 },
|
||||
{ 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d },
|
||||
{ 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23 },
|
||||
{ 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed },
|
||||
{ 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63 },
|
||||
{ 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379 },
|
||||
{ 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d },
|
||||
{ 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13 },
|
||||
{ 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332 },
|
||||
{ 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa },
|
||||
{ 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c },
|
||||
{ 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35 },
|
||||
{ 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502 },
|
||||
{ 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a },
|
||||
{ 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3 },
|
||||
{ 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3 },
|
||||
{ 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd },
|
||||
{ 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e },
|
||||
{ 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a },
|
||||
{ 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24 },
|
||||
{ 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf },
|
||||
{ 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51 },
|
||||
{ 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3 },
|
||||
{ 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c },
|
||||
{ 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd },
|
||||
{ 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55 },
|
||||
{ 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f },
|
||||
{ 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c, 0xcd559f37 },
|
||||
{ 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd, 0x559f37af },
|
||||
{ 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55, 0x9f37af94 },
|
||||
0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f,
|
||||
0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194,
|
||||
0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3,
|
||||
0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3,
|
||||
0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f, 0x37af944c, 0x29085282, 0xb23b4e37, 0x9f170791, 0x113bfdcd,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
};
|
||||
|
||||
DECLSPEC u32 GETSHIFTEDINT_CONST (CONSTANT_AS u32a *a, const int n)
|
||||
{
|
||||
const int d = n / 4;
|
||||
const int m = n & 3;
|
||||
|
||||
u64 tmp = hl32_to_64_S (a[d + 0], a[d + 1]);
|
||||
|
||||
tmp <<= m * 8;
|
||||
|
||||
return h32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
{
|
||||
const int d = n / 4;
|
||||
@ -116,52 +56,20 @@ DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
|
||||
KERNEL_FQ void m07800_m04 (KERN_ATTR_RULES ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
/**
|
||||
* modifier
|
||||
*/
|
||||
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
u32 pw_buf0[4];
|
||||
u32 pw_buf1[4];
|
||||
|
||||
@ -182,14 +90,14 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -206,15 +114,6 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_RULES ())
|
||||
|
||||
const u32x out_len = apply_rules_vect_optimized (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -241,7 +140,7 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_RULES ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, out_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, out_len);
|
||||
|
||||
const u32x pw_salt_len = out_len + salt_len;
|
||||
|
||||
@ -251,20 +150,20 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -328,61 +227,49 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_RULES ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, out_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = out_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
@ -421,52 +308,20 @@ KERNEL_FQ void m07800_m16 (KERN_ATTR_RULES ())
|
||||
|
||||
KERNEL_FQ void m07800_s04 (KERN_ATTR_RULES ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
/**
|
||||
* modifier
|
||||
*/
|
||||
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
u32 pw_buf0[4];
|
||||
u32 pw_buf1[4];
|
||||
|
||||
@ -487,14 +342,14 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -523,15 +378,6 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_RULES ())
|
||||
|
||||
const u32x out_len = apply_rules_vect_optimized (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -558,7 +404,7 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_RULES ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, out_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, out_len);
|
||||
|
||||
const u32x pw_salt_len = out_len + salt_len;
|
||||
|
||||
@ -568,20 +414,20 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -645,61 +491,49 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_RULES ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, out_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = out_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
@ -15,90 +15,30 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#endif
|
||||
|
||||
CONSTANT_VK u32a theMagicArray[80][16] =
|
||||
CONSTANT_VK u32a theMagicArray[64] =
|
||||
{
|
||||
{ 0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194 },
|
||||
{ 0xac51149f, 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f },
|
||||
{ 0x51149f67, 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b },
|
||||
{ 0x149f6754, 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1 },
|
||||
{ 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b },
|
||||
{ 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06 },
|
||||
{ 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605 },
|
||||
{ 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d },
|
||||
{ 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03 },
|
||||
{ 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d },
|
||||
{ 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e },
|
||||
{ 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13 },
|
||||
{ 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a },
|
||||
{ 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e },
|
||||
{ 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a },
|
||||
{ 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a },
|
||||
{ 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8 },
|
||||
{ 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9 },
|
||||
{ 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c },
|
||||
{ 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14 },
|
||||
{ 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417 },
|
||||
{ 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758 },
|
||||
{ 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7 },
|
||||
{ 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a },
|
||||
{ 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6 },
|
||||
{ 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1 },
|
||||
{ 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199 },
|
||||
{ 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963 },
|
||||
{ 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a },
|
||||
{ 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7 },
|
||||
{ 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd },
|
||||
{ 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70 },
|
||||
{ 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3 },
|
||||
{ 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6 },
|
||||
{ 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e },
|
||||
{ 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74 },
|
||||
{ 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413 },
|
||||
{ 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303 },
|
||||
{ 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9 },
|
||||
{ 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b },
|
||||
{ 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04 },
|
||||
{ 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426 },
|
||||
{ 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698 },
|
||||
{ 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7 },
|
||||
{ 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726 },
|
||||
{ 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a },
|
||||
{ 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92 },
|
||||
{ 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293 },
|
||||
{ 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325 },
|
||||
{ 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0 },
|
||||
{ 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2 },
|
||||
{ 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d },
|
||||
{ 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23 },
|
||||
{ 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed },
|
||||
{ 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63 },
|
||||
{ 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379 },
|
||||
{ 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d },
|
||||
{ 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13 },
|
||||
{ 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332 },
|
||||
{ 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa },
|
||||
{ 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c },
|
||||
{ 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35 },
|
||||
{ 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502 },
|
||||
{ 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a },
|
||||
{ 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3 },
|
||||
{ 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3 },
|
||||
{ 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd },
|
||||
{ 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e },
|
||||
{ 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a },
|
||||
{ 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24 },
|
||||
{ 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf },
|
||||
{ 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51 },
|
||||
{ 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3 },
|
||||
{ 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c },
|
||||
{ 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd },
|
||||
{ 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55 },
|
||||
{ 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f },
|
||||
{ 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c, 0xcd559f37 },
|
||||
{ 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd, 0x559f37af },
|
||||
{ 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55, 0x9f37af94 },
|
||||
0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f,
|
||||
0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194,
|
||||
0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3,
|
||||
0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3,
|
||||
0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f, 0x37af944c, 0x29085282, 0xb23b4e37, 0x9f170791, 0x113bfdcd,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
};
|
||||
|
||||
DECLSPEC u32 GETSHIFTEDINT_CONST (CONSTANT_AS u32a *a, const int n)
|
||||
{
|
||||
const int d = n / 4;
|
||||
const int m = n & 3;
|
||||
|
||||
u64 tmp = hl32_to_64_S (a[d + 0], a[d + 1]);
|
||||
|
||||
tmp <<= m * 8;
|
||||
|
||||
return h32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
{
|
||||
const int d = n / 4;
|
||||
@ -114,45 +54,17 @@ DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
|
||||
KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* modifier
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -176,14 +88,14 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -260,23 +172,6 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
w3[2] = wordl3[2] | wordr3[2];
|
||||
w3[3] = wordl3[3] | wordr3[3];
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
w2[0] = hc_swap32_S (w2[0]);
|
||||
w2[1] = hc_swap32_S (w2[1]);
|
||||
w2[2] = hc_swap32_S (w2[2]);
|
||||
w2[3] = hc_swap32_S (w2[3]);
|
||||
w3[0] = hc_swap32_S (w3[0]);
|
||||
w3[1] = hc_swap32_S (w3[1]);
|
||||
w3[2] = hc_swap32_S (w3[2]);
|
||||
w3[3] = hc_swap32_S (w3[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -303,7 +198,7 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, pw_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, pw_len);
|
||||
|
||||
const u32x pw_salt_len = pw_len + salt_len;
|
||||
|
||||
@ -313,20 +208,20 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -390,61 +285,49 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1]);
|
||||
final[10] = hc_swap32_S (w2[2]);
|
||||
final[11] = hc_swap32_S (w2[3]);
|
||||
final[12] = hc_swap32_S (w3[0]);
|
||||
final[13] = hc_swap32_S (w3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
@ -483,45 +366,17 @@ KERNEL_FQ void m07800_m16 (KERN_ATTR_BASIC ())
|
||||
|
||||
KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* modifier
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -545,14 +400,14 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -641,23 +496,6 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
w3[2] = wordl3[2] | wordr3[2];
|
||||
w3[3] = wordl3[3] | wordr3[3];
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
w2[0] = hc_swap32_S (w2[0]);
|
||||
w2[1] = hc_swap32_S (w2[1]);
|
||||
w2[2] = hc_swap32_S (w2[2]);
|
||||
w2[3] = hc_swap32_S (w2[3]);
|
||||
w3[0] = hc_swap32_S (w3[0]);
|
||||
w3[1] = hc_swap32_S (w3[1]);
|
||||
w3[2] = hc_swap32_S (w3[2]);
|
||||
w3[3] = hc_swap32_S (w3[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -684,7 +522,7 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, pw_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, pw_len);
|
||||
|
||||
const u32x pw_salt_len = pw_len + salt_len;
|
||||
|
||||
@ -694,20 +532,20 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -771,61 +609,49 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1]);
|
||||
final[10] = hc_swap32_S (w2[2]);
|
||||
final[11] = hc_swap32_S (w2[3]);
|
||||
final[12] = hc_swap32_S (w3[0]);
|
||||
final[13] = hc_swap32_S (w3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
@ -15,90 +15,30 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#endif
|
||||
|
||||
CONSTANT_VK u32a theMagicArray[80][16] =
|
||||
CONSTANT_VK u32a theMagicArray[64] =
|
||||
{
|
||||
{ 0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194 },
|
||||
{ 0xac51149f, 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f },
|
||||
{ 0x51149f67, 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b },
|
||||
{ 0x149f6754, 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1 },
|
||||
{ 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b },
|
||||
{ 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06 },
|
||||
{ 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605 },
|
||||
{ 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d },
|
||||
{ 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03 },
|
||||
{ 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d },
|
||||
{ 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e },
|
||||
{ 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13 },
|
||||
{ 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a },
|
||||
{ 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e },
|
||||
{ 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a },
|
||||
{ 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a },
|
||||
{ 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8 },
|
||||
{ 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9 },
|
||||
{ 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c },
|
||||
{ 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14 },
|
||||
{ 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417 },
|
||||
{ 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758 },
|
||||
{ 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7 },
|
||||
{ 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a },
|
||||
{ 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6 },
|
||||
{ 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1 },
|
||||
{ 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199 },
|
||||
{ 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963 },
|
||||
{ 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a },
|
||||
{ 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7 },
|
||||
{ 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd },
|
||||
{ 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70 },
|
||||
{ 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3 },
|
||||
{ 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6 },
|
||||
{ 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e },
|
||||
{ 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74 },
|
||||
{ 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413 },
|
||||
{ 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303 },
|
||||
{ 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9 },
|
||||
{ 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b },
|
||||
{ 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04 },
|
||||
{ 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426 },
|
||||
{ 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698 },
|
||||
{ 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7 },
|
||||
{ 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726 },
|
||||
{ 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a },
|
||||
{ 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92 },
|
||||
{ 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293 },
|
||||
{ 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325 },
|
||||
{ 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0 },
|
||||
{ 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2 },
|
||||
{ 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d },
|
||||
{ 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23 },
|
||||
{ 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed },
|
||||
{ 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63 },
|
||||
{ 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379 },
|
||||
{ 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d },
|
||||
{ 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13 },
|
||||
{ 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332 },
|
||||
{ 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa },
|
||||
{ 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c },
|
||||
{ 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35 },
|
||||
{ 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502 },
|
||||
{ 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a },
|
||||
{ 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3 },
|
||||
{ 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3 },
|
||||
{ 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd },
|
||||
{ 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e },
|
||||
{ 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a },
|
||||
{ 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24 },
|
||||
{ 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf },
|
||||
{ 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51 },
|
||||
{ 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3 },
|
||||
{ 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c },
|
||||
{ 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd },
|
||||
{ 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55 },
|
||||
{ 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f },
|
||||
{ 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c, 0xcd559f37 },
|
||||
{ 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd, 0x559f37af },
|
||||
{ 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55, 0x9f37af94 },
|
||||
0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f,
|
||||
0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194,
|
||||
0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3,
|
||||
0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3,
|
||||
0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f, 0x37af944c, 0x29085282, 0xb23b4e37, 0x9f170791, 0x113bfdcd,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
};
|
||||
|
||||
DECLSPEC u32 GETSHIFTEDINT_CONST (CONSTANT_AS u32a *a, const int n)
|
||||
{
|
||||
const int d = n / 4;
|
||||
const int m = n & 3;
|
||||
|
||||
u64 tmp = hl32_to_64_S (a[d + 0], a[d + 1]);
|
||||
|
||||
tmp <<= m * 8;
|
||||
|
||||
return h32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
{
|
||||
const int d = n / 4;
|
||||
@ -112,7 +52,7 @@ DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
a[d + 1] = l32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void m07800m (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
DECLSPEC void m07800m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
{
|
||||
/**
|
||||
* modifier
|
||||
@ -261,59 +201,47 @@ DECLSPEC void m07800m (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = w0[0];
|
||||
final[ 1] = w0[1];
|
||||
final[ 2] = w0[2];
|
||||
final[ 3] = w0[3];
|
||||
final[ 4] = w1[0];
|
||||
final[ 5] = w1[1];
|
||||
final[ 6] = w1[2];
|
||||
final[ 7] = w1[3];
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
|
||||
@ -344,7 +272,7 @@ DECLSPEC void m07800m (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
}
|
||||
}
|
||||
|
||||
DECLSPEC void m07800s (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
DECLSPEC void m07800s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
{
|
||||
/**
|
||||
* modifier
|
||||
@ -505,59 +433,47 @@ DECLSPEC void m07800s (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = w0[0];
|
||||
final[ 1] = w0[1];
|
||||
final[ 2] = w0[2];
|
||||
final[ 3] = w0[3];
|
||||
final[ 4] = w1[0];
|
||||
final[ 5] = w1[1];
|
||||
final[ 6] = w1[2];
|
||||
final[ 7] = w1[3];
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
|
||||
@ -590,45 +506,11 @@ DECLSPEC void m07800s (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
|
||||
KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -636,6 +518,8 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -670,50 +554,16 @@ KERNEL_FQ void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07800m (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07800m (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07800_m08 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -721,6 +571,8 @@ KERNEL_FQ void m07800_m08 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -755,7 +607,7 @@ KERNEL_FQ void m07800_m08 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07800m (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07800m (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07800_m16 (KERN_ATTR_BASIC ())
|
||||
@ -764,45 +616,11 @@ KERNEL_FQ void m07800_m16 (KERN_ATTR_BASIC ())
|
||||
|
||||
KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -810,6 +628,8 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -844,50 +664,16 @@ KERNEL_FQ void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07800s (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07800s (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07800_s08 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -895,6 +681,8 @@ KERNEL_FQ void m07800_s08 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -929,7 +717,7 @@ KERNEL_FQ void m07800_s08 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07800s (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07800s (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07800_s16 (KERN_ATTR_BASIC ())
|
||||
|
@ -17,90 +17,30 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#endif
|
||||
|
||||
CONSTANT_VK u32a theMagicArray[80][16] =
|
||||
CONSTANT_VK u32a theMagicArray[64] =
|
||||
{
|
||||
{ 0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194 },
|
||||
{ 0xac51149f, 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f },
|
||||
{ 0x51149f67, 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b },
|
||||
{ 0x149f6754, 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1 },
|
||||
{ 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b },
|
||||
{ 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06 },
|
||||
{ 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605 },
|
||||
{ 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d },
|
||||
{ 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03 },
|
||||
{ 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d },
|
||||
{ 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e },
|
||||
{ 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13 },
|
||||
{ 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a },
|
||||
{ 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e },
|
||||
{ 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a },
|
||||
{ 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a },
|
||||
{ 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8 },
|
||||
{ 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9 },
|
||||
{ 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c },
|
||||
{ 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14 },
|
||||
{ 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417 },
|
||||
{ 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758 },
|
||||
{ 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7 },
|
||||
{ 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a },
|
||||
{ 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6 },
|
||||
{ 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1 },
|
||||
{ 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199 },
|
||||
{ 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963 },
|
||||
{ 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a },
|
||||
{ 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7 },
|
||||
{ 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd },
|
||||
{ 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70 },
|
||||
{ 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3 },
|
||||
{ 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6 },
|
||||
{ 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e },
|
||||
{ 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74 },
|
||||
{ 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413 },
|
||||
{ 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303 },
|
||||
{ 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9 },
|
||||
{ 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b },
|
||||
{ 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04 },
|
||||
{ 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426 },
|
||||
{ 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698 },
|
||||
{ 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7 },
|
||||
{ 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726 },
|
||||
{ 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a },
|
||||
{ 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92 },
|
||||
{ 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293 },
|
||||
{ 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325 },
|
||||
{ 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0 },
|
||||
{ 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2 },
|
||||
{ 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d },
|
||||
{ 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23 },
|
||||
{ 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed },
|
||||
{ 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63 },
|
||||
{ 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379 },
|
||||
{ 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d },
|
||||
{ 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13 },
|
||||
{ 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332 },
|
||||
{ 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa },
|
||||
{ 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c },
|
||||
{ 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35 },
|
||||
{ 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502 },
|
||||
{ 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a },
|
||||
{ 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3 },
|
||||
{ 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3 },
|
||||
{ 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd },
|
||||
{ 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e },
|
||||
{ 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a },
|
||||
{ 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24 },
|
||||
{ 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf },
|
||||
{ 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51 },
|
||||
{ 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3 },
|
||||
{ 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c },
|
||||
{ 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd },
|
||||
{ 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55 },
|
||||
{ 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f },
|
||||
{ 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c, 0xcd559f37 },
|
||||
{ 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd, 0x559f37af },
|
||||
{ 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55, 0x9f37af94 },
|
||||
0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f,
|
||||
0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194,
|
||||
0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3,
|
||||
0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3,
|
||||
0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f, 0x37af944c, 0x29085282, 0xb23b4e37, 0x9f170791, 0x113bfdcd,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
};
|
||||
|
||||
DECLSPEC u32 GETSHIFTEDINT_CONST (CONSTANT_AS u32a *a, const int n)
|
||||
{
|
||||
const int d = n / 4;
|
||||
const int m = n & 3;
|
||||
|
||||
u64 tmp = hl32_to_64_S (a[d + 0], a[d + 1]);
|
||||
|
||||
tmp <<= m * 8;
|
||||
|
||||
return h32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
{
|
||||
const int d = n / 4;
|
||||
@ -116,52 +56,20 @@ DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
|
||||
KERNEL_FQ void m07801_m04 (KERN_ATTR_RULES ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
/**
|
||||
* modifier
|
||||
*/
|
||||
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
u32 pw_buf0[4];
|
||||
u32 pw_buf1[4];
|
||||
|
||||
@ -182,14 +90,14 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -206,15 +114,6 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_RULES ())
|
||||
|
||||
const u32x out_len = apply_rules_vect_optimized (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -241,7 +140,7 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_RULES ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, out_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, out_len);
|
||||
|
||||
const u32x pw_salt_len = out_len + salt_len;
|
||||
|
||||
@ -251,20 +150,20 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -328,61 +227,49 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_RULES ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, out_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = out_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
@ -421,52 +308,20 @@ KERNEL_FQ void m07801_m16 (KERN_ATTR_RULES ())
|
||||
|
||||
KERNEL_FQ void m07801_s04 (KERN_ATTR_RULES ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
/**
|
||||
* modifier
|
||||
*/
|
||||
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
u32 pw_buf0[4];
|
||||
u32 pw_buf1[4];
|
||||
|
||||
@ -487,14 +342,14 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -523,15 +378,6 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_RULES ())
|
||||
|
||||
const u32x out_len = apply_rules_vect_optimized (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -558,7 +404,7 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_RULES ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, out_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, out_len);
|
||||
|
||||
const u32x pw_salt_len = out_len + salt_len;
|
||||
|
||||
@ -568,20 +414,20 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_RULES ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -645,61 +491,49 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_RULES ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, out_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = out_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
@ -15,90 +15,30 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#endif
|
||||
|
||||
CONSTANT_VK u32a theMagicArray[80][16] =
|
||||
CONSTANT_VK u32a theMagicArray[64] =
|
||||
{
|
||||
{ 0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194 },
|
||||
{ 0xac51149f, 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f },
|
||||
{ 0x51149f67, 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b },
|
||||
{ 0x149f6754, 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1 },
|
||||
{ 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b },
|
||||
{ 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06 },
|
||||
{ 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605 },
|
||||
{ 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d },
|
||||
{ 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03 },
|
||||
{ 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d },
|
||||
{ 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e },
|
||||
{ 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13 },
|
||||
{ 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a },
|
||||
{ 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e },
|
||||
{ 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a },
|
||||
{ 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a },
|
||||
{ 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8 },
|
||||
{ 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9 },
|
||||
{ 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c },
|
||||
{ 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14 },
|
||||
{ 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417 },
|
||||
{ 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758 },
|
||||
{ 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7 },
|
||||
{ 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a },
|
||||
{ 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6 },
|
||||
{ 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1 },
|
||||
{ 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199 },
|
||||
{ 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963 },
|
||||
{ 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a },
|
||||
{ 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7 },
|
||||
{ 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd },
|
||||
{ 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70 },
|
||||
{ 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3 },
|
||||
{ 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6 },
|
||||
{ 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e },
|
||||
{ 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74 },
|
||||
{ 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413 },
|
||||
{ 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303 },
|
||||
{ 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9 },
|
||||
{ 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b },
|
||||
{ 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04 },
|
||||
{ 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426 },
|
||||
{ 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698 },
|
||||
{ 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7 },
|
||||
{ 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726 },
|
||||
{ 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a },
|
||||
{ 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92 },
|
||||
{ 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293 },
|
||||
{ 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325 },
|
||||
{ 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0 },
|
||||
{ 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2 },
|
||||
{ 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d },
|
||||
{ 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23 },
|
||||
{ 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed },
|
||||
{ 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63 },
|
||||
{ 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379 },
|
||||
{ 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d },
|
||||
{ 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13 },
|
||||
{ 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332 },
|
||||
{ 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa },
|
||||
{ 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c },
|
||||
{ 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35 },
|
||||
{ 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502 },
|
||||
{ 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a },
|
||||
{ 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3 },
|
||||
{ 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3 },
|
||||
{ 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd },
|
||||
{ 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e },
|
||||
{ 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a },
|
||||
{ 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24 },
|
||||
{ 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf },
|
||||
{ 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51 },
|
||||
{ 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3 },
|
||||
{ 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c },
|
||||
{ 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd },
|
||||
{ 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55 },
|
||||
{ 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f },
|
||||
{ 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c, 0xcd559f37 },
|
||||
{ 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd, 0x559f37af },
|
||||
{ 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55, 0x9f37af94 },
|
||||
0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f,
|
||||
0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194,
|
||||
0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3,
|
||||
0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3,
|
||||
0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f, 0x37af944c, 0x29085282, 0xb23b4e37, 0x9f170791, 0x113bfdcd,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
};
|
||||
|
||||
DECLSPEC u32 GETSHIFTEDINT_CONST (CONSTANT_AS u32a *a, const int n)
|
||||
{
|
||||
const int d = n / 4;
|
||||
const int m = n & 3;
|
||||
|
||||
u64 tmp = hl32_to_64_S (a[d + 0], a[d + 1]);
|
||||
|
||||
tmp <<= m * 8;
|
||||
|
||||
return h32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
{
|
||||
const int d = n / 4;
|
||||
@ -114,45 +54,17 @@ DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
|
||||
KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* modifier
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -176,14 +88,14 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -260,23 +172,6 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
w3[2] = wordl3[2] | wordr3[2];
|
||||
w3[3] = wordl3[3] | wordr3[3];
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
w2[0] = hc_swap32_S (w2[0]);
|
||||
w2[1] = hc_swap32_S (w2[1]);
|
||||
w2[2] = hc_swap32_S (w2[2]);
|
||||
w2[3] = hc_swap32_S (w2[3]);
|
||||
w3[0] = hc_swap32_S (w3[0]);
|
||||
w3[1] = hc_swap32_S (w3[1]);
|
||||
w3[2] = hc_swap32_S (w3[2]);
|
||||
w3[3] = hc_swap32_S (w3[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -303,7 +198,7 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, pw_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, pw_len);
|
||||
|
||||
const u32x pw_salt_len = pw_len + salt_len;
|
||||
|
||||
@ -313,20 +208,20 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -390,61 +285,49 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1]);
|
||||
final[10] = hc_swap32_S (w2[2]);
|
||||
final[11] = hc_swap32_S (w2[3]);
|
||||
final[12] = hc_swap32_S (w3[0]);
|
||||
final[13] = hc_swap32_S (w3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
@ -483,45 +366,17 @@ KERNEL_FQ void m07801_m16 (KERN_ATTR_BASIC ())
|
||||
|
||||
KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* modifier
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
const u64 lid = get_local_id (0);
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -545,14 +400,14 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 salt_buf[8];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[salt_pos].salt_buf[7]);
|
||||
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
|
||||
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
|
||||
salt_buf[2] = salt_bufs[salt_pos].salt_buf[2];
|
||||
salt_buf[3] = salt_bufs[salt_pos].salt_buf[3];
|
||||
salt_buf[4] = salt_bufs[salt_pos].salt_buf[4];
|
||||
salt_buf[5] = salt_bufs[salt_pos].salt_buf[5];
|
||||
salt_buf[6] = salt_bufs[salt_pos].salt_buf[6];
|
||||
salt_buf[7] = salt_bufs[salt_pos].salt_buf[7];
|
||||
|
||||
const u32 salt_len = salt_bufs[salt_pos].salt_len;
|
||||
|
||||
@ -641,23 +496,6 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
w3[2] = wordl3[2] | wordr3[2];
|
||||
w3[3] = wordl3[3] | wordr3[3];
|
||||
|
||||
w0[0] = hc_swap32_S (w0[0]);
|
||||
w0[1] = hc_swap32_S (w0[1]);
|
||||
w0[2] = hc_swap32_S (w0[2]);
|
||||
w0[3] = hc_swap32_S (w0[3]);
|
||||
w1[0] = hc_swap32_S (w1[0]);
|
||||
w1[1] = hc_swap32_S (w1[1]);
|
||||
w1[2] = hc_swap32_S (w1[2]);
|
||||
w1[3] = hc_swap32_S (w1[3]);
|
||||
w2[0] = hc_swap32_S (w2[0]);
|
||||
w2[1] = hc_swap32_S (w2[1]);
|
||||
w2[2] = hc_swap32_S (w2[2]);
|
||||
w2[3] = hc_swap32_S (w2[3]);
|
||||
w3[0] = hc_swap32_S (w3[0]);
|
||||
w3[1] = hc_swap32_S (w3[1]);
|
||||
w3[2] = hc_swap32_S (w3[2]);
|
||||
w3[3] = hc_swap32_S (w3[3]);
|
||||
|
||||
/**
|
||||
* SAP
|
||||
*/
|
||||
@ -684,7 +522,7 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
s3[2] = 0;
|
||||
s3[3] = 0;
|
||||
|
||||
switch_buffer_by_offset_be_S (s0, s1, s2, s3, pw_len);
|
||||
switch_buffer_by_offset_le_VV (s0, s1, s2, s3, pw_len);
|
||||
|
||||
const u32x pw_salt_len = pw_len + salt_len;
|
||||
|
||||
@ -694,20 +532,20 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
|
||||
u32 final[32];
|
||||
|
||||
final[ 0] = w0[0] | s0[0];
|
||||
final[ 1] = w0[1] | s0[1];
|
||||
final[ 2] = w0[2] | s0[2];
|
||||
final[ 3] = w0[3] | s0[3];
|
||||
final[ 4] = w1[0] | s1[0];
|
||||
final[ 5] = w1[1] | s1[1];
|
||||
final[ 6] = w1[2] | s1[2];
|
||||
final[ 7] = w1[3] | s1[3];
|
||||
final[ 8] = w2[0] | s2[0];
|
||||
final[ 9] = w2[1] | s2[1];
|
||||
final[10] = w2[2] | s2[2];
|
||||
final[11] = w2[3] | s2[3];
|
||||
final[12] = w3[0] | s3[0];
|
||||
final[13] = w3[1] | s3[1];
|
||||
final[ 0] = hc_swap32_S (w0[0] | s0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1] | s0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2] | s0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3] | s0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0] | s1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1] | s1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2] | s1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3] | s1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0] | s2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1] | s2[1]);
|
||||
final[10] = hc_swap32_S (w2[2] | s2[2]);
|
||||
final[11] = hc_swap32_S (w2[3] | s2[3]);
|
||||
final[12] = hc_swap32_S (w3[0] | s3[0]);
|
||||
final[13] = hc_swap32_S (w3[1] | s3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = pw_salt_len * 8;
|
||||
final[16] = 0;
|
||||
@ -771,61 +609,49 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = hc_swap32_S (w0[0]);
|
||||
final[ 1] = hc_swap32_S (w0[1]);
|
||||
final[ 2] = hc_swap32_S (w0[2]);
|
||||
final[ 3] = hc_swap32_S (w0[3]);
|
||||
final[ 4] = hc_swap32_S (w1[0]);
|
||||
final[ 5] = hc_swap32_S (w1[1]);
|
||||
final[ 6] = hc_swap32_S (w1[2]);
|
||||
final[ 7] = hc_swap32_S (w1[3]);
|
||||
final[ 8] = hc_swap32_S (w2[0]);
|
||||
final[ 9] = hc_swap32_S (w2[1]);
|
||||
final[10] = hc_swap32_S (w2[2]);
|
||||
final[11] = hc_swap32_S (w2[3]);
|
||||
final[12] = hc_swap32_S (w3[0]);
|
||||
final[13] = hc_swap32_S (w3[1]);
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
const u32 tmp = hc_swap32_S (salt_buf[i / 4]); // attention, int[] not char[]
|
||||
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
@ -15,90 +15,30 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#endif
|
||||
|
||||
CONSTANT_VK u32a theMagicArray[80][16] =
|
||||
CONSTANT_VK u32a theMagicArray[64] =
|
||||
{
|
||||
{ 0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194 },
|
||||
{ 0xac51149f, 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f },
|
||||
{ 0x51149f67, 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b },
|
||||
{ 0x149f6754, 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1 },
|
||||
{ 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b },
|
||||
{ 0x67544324, 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06 },
|
||||
{ 0x544324e7, 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605 },
|
||||
{ 0x4324e73b, 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d },
|
||||
{ 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03 },
|
||||
{ 0xe73be028, 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d },
|
||||
{ 0x3be02874, 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e },
|
||||
{ 0xe028747b, 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13 },
|
||||
{ 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a },
|
||||
{ 0x747bc286, 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e },
|
||||
{ 0x7bc28633, 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a },
|
||||
{ 0xc2863313, 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a },
|
||||
{ 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8 },
|
||||
{ 0x3313eb5a, 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9 },
|
||||
{ 0x13eb5a4f, 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c },
|
||||
{ 0xeb5a4fcb, 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14 },
|
||||
{ 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417 },
|
||||
{ 0x4fcb5c08, 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758 },
|
||||
{ 0xcb5c080a, 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7 },
|
||||
{ 0x5c080a73, 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a },
|
||||
{ 0x080a7337, 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6 },
|
||||
{ 0x0a73370e, 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1 },
|
||||
{ 0x73370e5d, 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199 },
|
||||
{ 0x370e5d1c, 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963 },
|
||||
{ 0x0e5d1c2f, 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a },
|
||||
{ 0x5d1c2f33, 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7 },
|
||||
{ 0x1c2f338f, 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd },
|
||||
{ 0x2f338fe6, 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70 },
|
||||
{ 0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3 },
|
||||
{ 0x8fe6e5f8, 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6 },
|
||||
{ 0xe6e5f89b, 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e },
|
||||
{ 0xe5f89bae, 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74 },
|
||||
{ 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413 },
|
||||
{ 0x9baedd16, 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303 },
|
||||
{ 0xaedd16f2, 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9 },
|
||||
{ 0xdd16f24b, 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b },
|
||||
{ 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04 },
|
||||
{ 0xf24b8d2c, 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426 },
|
||||
{ 0x4b8d2ce1, 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698 },
|
||||
{ 0x8d2ce1d4, 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7 },
|
||||
{ 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726 },
|
||||
{ 0xe1d4dcb0, 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a },
|
||||
{ 0xd4dcb0cb, 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92 },
|
||||
{ 0xdcb0cbdf, 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293 },
|
||||
{ 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325 },
|
||||
{ 0xcbdf9dd4, 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0 },
|
||||
{ 0xdf9dd470, 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2 },
|
||||
{ 0x9dd4706d, 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d },
|
||||
{ 0xd4706d17, 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23 },
|
||||
{ 0x706d17f9, 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed },
|
||||
{ 0x6d17f94d, 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63 },
|
||||
{ 0x17f94d42, 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379 },
|
||||
{ 0xf94d423f, 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d },
|
||||
{ 0x4d423f9b, 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13 },
|
||||
{ 0x423f9b1b, 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332 },
|
||||
{ 0x3f9b1b11, 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa },
|
||||
{ 0x9b1b1194, 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c },
|
||||
{ 0x1b11949f, 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35 },
|
||||
{ 0x11949f5b, 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502 },
|
||||
{ 0x949f5bc1, 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a },
|
||||
{ 0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3 },
|
||||
{ 0x5bc19b06, 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3 },
|
||||
{ 0xc19b0605, 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd },
|
||||
{ 0x9b06059d, 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e },
|
||||
{ 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a },
|
||||
{ 0x059d039d, 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24 },
|
||||
{ 0x9d039d5e, 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf },
|
||||
{ 0x039d5e13, 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51 },
|
||||
{ 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3 },
|
||||
{ 0x5e138a1e, 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c },
|
||||
{ 0x138a1e9a, 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd },
|
||||
{ 0x8a1e9a6a, 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55 },
|
||||
{ 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3, 0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3, 0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f },
|
||||
{ 0x9a6ae8d9, 0x7c141758, 0xc72af6a1, 0x99630ad7, 0xfd70c3f6, 0x5e741303, 0xc90b0426, 0x98f7268a, 0x929325b0, 0xa20d23ed, 0x63796d13, 0x32fa3c35, 0x029aa3b3, 0xdd8e0a24, 0xbf51c37c, 0xcd559f37 },
|
||||
{ 0x6ae8d97c, 0x141758c7, 0x2af6a199, 0x630ad7fd, 0x70c3f65e, 0x741303c9, 0x0b042698, 0xf7268a92, 0x9325b0a2, 0x0d23ed63, 0x796d1332, 0xfa3c3502, 0x9aa3b3dd, 0x8e0a24bf, 0x51c37ccd, 0x559f37af },
|
||||
{ 0xe8d97c14, 0x1758c72a, 0xf6a19963, 0x0ad7fd70, 0xc3f65e74, 0x1303c90b, 0x042698f7, 0x268a9293, 0x25b0a20d, 0x23ed6379, 0x6d1332fa, 0x3c35029a, 0xa3b3dd8e, 0x0a24bf51, 0xc37ccd55, 0x9f37af94 },
|
||||
0x91ac5114, 0x9f675443, 0x24e73be0, 0x28747bc2, 0x863313eb, 0x5a4fcb5c, 0x080a7337, 0x0e5d1c2f,
|
||||
0x338fe6e5, 0xf89baedd, 0x16f24b8d, 0x2ce1d4dc, 0xb0cbdf9d, 0xd4706d17, 0xf94d423f, 0x9b1b1194,
|
||||
0x9f5bc19b, 0x06059d03, 0x9d5e138a, 0x1e9a6ae8, 0xd97c1417, 0x58c72af6, 0xa199630a, 0xd7fd70c3,
|
||||
0xf65e7413, 0x03c90b04, 0x2698f726, 0x8a929325, 0xb0a20d23, 0xed63796d, 0x1332fa3c, 0x35029aa3,
|
||||
0xb3dd8e0a, 0x24bf51c3, 0x7ccd559f, 0x37af944c, 0x29085282, 0xb23b4e37, 0x9f170791, 0x113bfdcd,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
};
|
||||
|
||||
DECLSPEC u32 GETSHIFTEDINT_CONST (CONSTANT_AS u32a *a, const int n)
|
||||
{
|
||||
const int d = n / 4;
|
||||
const int m = n & 3;
|
||||
|
||||
u64 tmp = hl32_to_64_S (a[d + 0], a[d + 1]);
|
||||
|
||||
tmp <<= m * 8;
|
||||
|
||||
return h32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
{
|
||||
const int d = n / 4;
|
||||
@ -112,7 +52,7 @@ DECLSPEC void SETSHIFTEDINT (u32 *a, const int n, const u32 v)
|
||||
a[d + 1] = l32_from_64_S (tmp);
|
||||
}
|
||||
|
||||
DECLSPEC void m07801m (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
DECLSPEC void m07801m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
{
|
||||
/**
|
||||
* modifier
|
||||
@ -261,59 +201,47 @@ DECLSPEC void m07801m (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = w0[0];
|
||||
final[ 1] = w0[1];
|
||||
final[ 2] = w0[2];
|
||||
final[ 3] = w0[3];
|
||||
final[ 4] = w1[0];
|
||||
final[ 5] = w1[1];
|
||||
final[ 6] = w1[2];
|
||||
final[ 7] = w1[3];
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
|
||||
@ -344,7 +272,7 @@ DECLSPEC void m07801m (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
}
|
||||
}
|
||||
|
||||
DECLSPEC void m07801s (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
DECLSPEC void m07801s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ())
|
||||
{
|
||||
/**
|
||||
* modifier
|
||||
@ -505,59 +433,47 @@ DECLSPEC void m07801s (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
digest[3] = SHA1M_D;
|
||||
digest[4] = SHA1M_E;
|
||||
|
||||
final[ 0] = w0[0];
|
||||
final[ 1] = w0[1];
|
||||
final[ 2] = w0[2];
|
||||
final[ 3] = w0[3];
|
||||
final[ 4] = w1[0];
|
||||
final[ 5] = w1[1];
|
||||
final[ 6] = w1[2];
|
||||
final[ 7] = w1[3];
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
final[13] = 0;
|
||||
final[14] = 0;
|
||||
final[15] = 0;
|
||||
|
||||
u32 final_len = pw_len;
|
||||
|
||||
u32 i;
|
||||
|
||||
// append MagicArray
|
||||
|
||||
final[ 0] = s_theMagicArray[offsetMagicArray][ 0];
|
||||
final[ 1] = s_theMagicArray[offsetMagicArray][ 1];
|
||||
final[ 2] = s_theMagicArray[offsetMagicArray][ 2];
|
||||
final[ 3] = s_theMagicArray[offsetMagicArray][ 3];
|
||||
final[ 4] = s_theMagicArray[offsetMagicArray][ 4];
|
||||
final[ 5] = s_theMagicArray[offsetMagicArray][ 5];
|
||||
final[ 6] = s_theMagicArray[offsetMagicArray][ 6];
|
||||
final[ 7] = s_theMagicArray[offsetMagicArray][ 7];
|
||||
final[ 8] = s_theMagicArray[offsetMagicArray][ 8];
|
||||
final[ 9] = s_theMagicArray[offsetMagicArray][ 9];
|
||||
final[10] = s_theMagicArray[offsetMagicArray][10];
|
||||
final[11] = s_theMagicArray[offsetMagicArray][11];
|
||||
final[12] = s_theMagicArray[offsetMagicArray][12];
|
||||
final[13] = s_theMagicArray[offsetMagicArray][13];
|
||||
final[14] = s_theMagicArray[offsetMagicArray][14];
|
||||
final[15] = s_theMagicArray[offsetMagicArray][15];
|
||||
final[16] = 0;
|
||||
final[17] = 0;
|
||||
final[18] = 0;
|
||||
final[19] = 0;
|
||||
final[20] = 0;
|
||||
final[21] = 0;
|
||||
final[22] = 0;
|
||||
final[23] = 0;
|
||||
final[24] = 0;
|
||||
final[25] = 0;
|
||||
final[26] = 0;
|
||||
final[27] = 0;
|
||||
final[28] = 0;
|
||||
final[29] = 0;
|
||||
final[30] = 0;
|
||||
final[31] = 0;
|
||||
for (i = 0; i < lengthMagicArray - 4; i += 4)
|
||||
{
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i);
|
||||
|
||||
truncate_block_16x4_be_S (final + 0, final + 4, final + 8, final + 12, lengthMagicArray);
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
}
|
||||
|
||||
switch_buffer_by_offset_8x4_be_S (final + 0, final + 4, final + 8, final + 12, final + 16, final + 20, final + 24, final + 28, pw_len);
|
||||
const u32 mask = 0xffffffff << (((4 - (lengthMagicArray - i)) & 3) * 8);
|
||||
|
||||
final[0] |= w0[0];
|
||||
final[1] |= w0[1];
|
||||
final[2] |= w0[2];
|
||||
final[3] |= w0[3];
|
||||
final[4] |= w1[0];
|
||||
final[5] |= w1[1];
|
||||
final[6] |= w1[2];
|
||||
final[7] |= w1[3];
|
||||
const u32 tmp = GETSHIFTEDINT_CONST (theMagicArray, offsetMagicArray + i) & mask;
|
||||
|
||||
u32 final_len = pw_len + lengthMagicArray;
|
||||
SETSHIFTEDINT (final, final_len + i, tmp);
|
||||
|
||||
final_len += lengthMagicArray;
|
||||
|
||||
// append Salt
|
||||
|
||||
for (int i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
for (i = 0; i < salt_len + 1; i += 4) // +1 for the 0x80
|
||||
{
|
||||
const u32 tmp = salt_buf[i / 4]; // attention, int[] not char[]
|
||||
|
||||
@ -590,45 +506,11 @@ DECLSPEC void m07801s (SHM_TYPE u32a (*s_theMagicArray)[16], u32 *w0, u32 *w1, u
|
||||
|
||||
KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -636,6 +518,8 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -670,50 +554,16 @@ KERNEL_FQ void m07801_m04 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07801m (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07801m (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07801_m08 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -721,6 +571,8 @@ KERNEL_FQ void m07801_m08 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -755,7 +607,7 @@ KERNEL_FQ void m07801_m08 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07801m (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07801m (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07801_m16 (KERN_ATTR_BASIC ())
|
||||
@ -764,45 +616,11 @@ KERNEL_FQ void m07801_m16 (KERN_ATTR_BASIC ())
|
||||
|
||||
KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -810,6 +628,8 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -844,50 +664,16 @@ KERNEL_FQ void m07801_s04 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07801s (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07801s (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07801_s08 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
/**
|
||||
* aes shared
|
||||
* base
|
||||
*/
|
||||
|
||||
#ifdef REAL_SHM
|
||||
|
||||
LOCAL_VK u32 s_theMagicArray[80][16];
|
||||
|
||||
for (u32 i = lid; i < 80; i += lsz)
|
||||
{
|
||||
s_theMagicArray[i][ 0] = theMagicArray[i][ 0];
|
||||
s_theMagicArray[i][ 1] = theMagicArray[i][ 1];
|
||||
s_theMagicArray[i][ 2] = theMagicArray[i][ 2];
|
||||
s_theMagicArray[i][ 3] = theMagicArray[i][ 3];
|
||||
s_theMagicArray[i][ 4] = theMagicArray[i][ 4];
|
||||
s_theMagicArray[i][ 5] = theMagicArray[i][ 5];
|
||||
s_theMagicArray[i][ 6] = theMagicArray[i][ 6];
|
||||
s_theMagicArray[i][ 7] = theMagicArray[i][ 7];
|
||||
s_theMagicArray[i][ 8] = theMagicArray[i][ 8];
|
||||
s_theMagicArray[i][ 9] = theMagicArray[i][ 9];
|
||||
s_theMagicArray[i][10] = theMagicArray[i][10];
|
||||
s_theMagicArray[i][11] = theMagicArray[i][11];
|
||||
s_theMagicArray[i][12] = theMagicArray[i][12];
|
||||
s_theMagicArray[i][13] = theMagicArray[i][13];
|
||||
s_theMagicArray[i][14] = theMagicArray[i][14];
|
||||
s_theMagicArray[i][15] = theMagicArray[i][15];
|
||||
}
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
#else
|
||||
|
||||
CONSTANT_AS u32a (*s_theMagicArray)[16] = theMagicArray;
|
||||
|
||||
#endif
|
||||
const u64 gid = get_global_id (0);
|
||||
|
||||
if (gid >= gid_max) return;
|
||||
|
||||
@ -895,6 +681,8 @@ KERNEL_FQ void m07801_s08 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -929,7 +717,7 @@ KERNEL_FQ void m07801_s08 (KERN_ATTR_BASIC ())
|
||||
* main
|
||||
*/
|
||||
|
||||
m07801s (s_theMagicArray, w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
m07801s (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, 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, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, bitmap_mask, bitmap_shift1, bitmap_shift2, salt_pos, loop_pos, loop_cnt, il_cnt, digests_cnt, digests_offset, combs_mode, gid_max);
|
||||
}
|
||||
|
||||
KERNEL_FQ void m07801_s16 (KERN_ATTR_BASIC ())
|
||||
|
@ -113,6 +113,7 @@
|
||||
- File handling: Print a truncation warning when an oversized line is detected
|
||||
- My Wallet: Added additional plaintext pattern used in newer versions
|
||||
- Office cracking: Support hash format with second block data for 40-bit oldoffice files (eliminates false positives)
|
||||
- OpenCL Runtime: Added a warning if OpenCL runtime NEO, Beignet, POCL or MESA is detected and skip associated devices (override with --force)
|
||||
- OpenCL Runtime: Disable OpenCL kernel cache on Apple for Intel CPU (throws CL_BUILD_PROGRAM_FAILURE for no reason)
|
||||
- OpenCL Runtime: Do not run shared- and constant-memory size checks if their memory type is of type global memory (typically CPU)
|
||||
- OpenCL Runtime: Improve ROCm detection and make sure to not confuse with recent AMDGPU drivers
|
||||
@ -166,7 +167,7 @@
|
||||
- OpenCL Options: Removed --opencl-platforms filter in order to force backend device numbers to stay constant
|
||||
- Parsers: switched from strtok() to strtok_r() for thread safety
|
||||
- Requirements: Add new requirement for NVIDIA GPU: CUDA Toolkit (9.0 or later)
|
||||
- Requirements: Update runtime check for minimum NVIDIA driver version from 367.x to 418.56 or later
|
||||
- Requirements: Update runtime check for minimum NVIDIA driver version from 367.x to 440.64 or later
|
||||
- Test Script: Switched from /bin/bash to generic /bin/sh and updated code accordingly
|
||||
|
||||
* changes v5.0.0 -> v5.1.0
|
||||
|
@ -10,12 +10,10 @@
|
||||
hashcat v5.1.0
|
||||
==============
|
||||
|
||||
AMD GPUs on Linux require "RadeonOpenCompute (ROCm)" Software Platform (1.6.180 or later)
|
||||
AMD GPUs on Windows require "AMD Radeon Software Crimson Edition" (15.12 or later)
|
||||
AMD GPUs on Linux require "RadeonOpenCompute (ROCm)" Software Platform (3.1 or later)
|
||||
AMD GPUs on Windows require "AMD Radeon Adrenalin 2020 Edition" (20.2.2 or later)
|
||||
Intel CPUs require "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 or later)
|
||||
Intel GPUs on Linux require "OpenCL 2.0 GPU Driver Package for Linux" (2.0 or later)
|
||||
Intel GPUs on Windows require "OpenCL Driver for Intel Iris and Intel HD Graphics"
|
||||
NVIDIA GPUs require "NVIDIA Driver" (418.56 or later) and "CUDA Toolkit" (9.0 or later)
|
||||
NVIDIA GPUs require "NVIDIA Driver" (440.64 or later) and "CUDA Toolkit" (9.0 or later)
|
||||
|
||||
##
|
||||
## Features
|
||||
@ -342,9 +340,7 @@ NVIDIA GPUs require "NVIDIA Driver" (418.56 or later) and "CUDA Toolkit" (9.0 or
|
||||
- AMD
|
||||
- Apple
|
||||
- Intel
|
||||
- Mesa (Gallium)
|
||||
- NVidia
|
||||
- pocl
|
||||
|
||||
##
|
||||
## Supported OpenCL device types
|
||||
@ -353,6 +349,3 @@ NVIDIA GPUs require "NVIDIA Driver" (418.56 or later) and "CUDA Toolkit" (9.0 or
|
||||
- GPU
|
||||
- CPU
|
||||
- APU
|
||||
- DSP
|
||||
- FPGA
|
||||
- Coprocessor
|
||||
|
@ -4976,25 +4976,17 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
||||
|
||||
#if defined (__linux__)
|
||||
event_log_warning (hashcat_ctx, "* AMD GPUs on Linux require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"RadeonOpenCompute (ROCm)\" Software Platform (1.6.180 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"RadeonOpenCompute (ROCm)\" Software Platform (3.1 or later)");
|
||||
#elif defined (_WIN)
|
||||
event_log_warning (hashcat_ctx, "* AMD GPUs on Windows require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"AMD Radeon Software Crimson Edition\" (15.12 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"AMD Radeon Adrenalin 2020 Edition\" (20.2.2 or later)");
|
||||
#endif
|
||||
|
||||
event_log_warning (hashcat_ctx, "* Intel CPUs require this runtime:");
|
||||
event_log_warning (hashcat_ctx, " \"OpenCL Runtime for Intel Core and Intel Xeon Processors\" (16.1.1 or later)");
|
||||
|
||||
#if defined (__linux__)
|
||||
event_log_warning (hashcat_ctx, "* Intel GPUs on Linux require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"OpenCL 2.0 GPU Driver Package for Linux\" (2.0 or later)");
|
||||
#elif defined (_WIN)
|
||||
event_log_warning (hashcat_ctx, "* Intel GPUs on Windows require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"OpenCL Driver for Intel Iris and Intel HD Graphics\"");
|
||||
#endif
|
||||
|
||||
event_log_warning (hashcat_ctx, "* NVIDIA GPUs require this runtime and/or driver (both):");
|
||||
event_log_warning (hashcat_ctx, " \"NVIDIA Driver\" (418.56 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"NVIDIA Driver\" (440.64 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"CUDA Toolkit\" (9.0 or later)");
|
||||
event_log_warning (hashcat_ctx, NULL);
|
||||
|
||||
@ -5258,25 +5250,17 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
||||
|
||||
#if defined (__linux__)
|
||||
event_log_warning (hashcat_ctx, "* AMD GPUs on Linux require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"RadeonOpenCompute (ROCm)\" Software Platform (1.6.180 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"RadeonOpenCompute (ROCm)\" Software Platform (3.1 or later)");
|
||||
#elif defined (_WIN)
|
||||
event_log_warning (hashcat_ctx, "* AMD GPUs on Windows require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"AMD Radeon Software Crimson Edition\" (15.12 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"AMD Radeon Adrenalin 2020 Edition\" (20.2.2 or later)");
|
||||
#endif
|
||||
|
||||
event_log_warning (hashcat_ctx, "* Intel CPUs require this runtime:");
|
||||
event_log_warning (hashcat_ctx, " \"OpenCL Runtime for Intel Core and Intel Xeon Processors\" (16.1.1 or later)");
|
||||
|
||||
#if defined (__linux__)
|
||||
event_log_warning (hashcat_ctx, "* Intel GPUs on Linux require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"OpenCL 2.0 GPU Driver Package for Linux\" (2.0 or later)");
|
||||
#elif defined (_WIN)
|
||||
event_log_warning (hashcat_ctx, "* Intel GPUs on Windows require this driver:");
|
||||
event_log_warning (hashcat_ctx, " \"OpenCL Driver for Intel Iris and Intel HD Graphics\"");
|
||||
#endif
|
||||
|
||||
event_log_warning (hashcat_ctx, "* NVIDIA GPUs require this runtime and/or driver (both):");
|
||||
event_log_warning (hashcat_ctx, " \"NVIDIA Driver\" (418.56 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"NVIDIA Driver\" (440.64 or later)");
|
||||
event_log_warning (hashcat_ctx, " \"CUDA Toolkit\" (9.0 or later)");
|
||||
event_log_warning (hashcat_ctx, NULL);
|
||||
|
||||
@ -6002,12 +5986,45 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
||||
{
|
||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, "* Device #%u: Not a native Intel OpenCL runtime. Expect massive speed loss.", device_id + 1);
|
||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, " You can use --force to override, but do not report related errors.");
|
||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, NULL);
|
||||
|
||||
device_param->skipped = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char *opencl_device_version_lower = hcstrdup (opencl_device_version);
|
||||
|
||||
lowercase ((u8 *) opencl_device_version_lower, strlen (opencl_device_version_lower));
|
||||
|
||||
if ((strstr (opencl_device_version_lower, "neo "))
|
||||
|| (strstr (opencl_device_version_lower, " neo"))
|
||||
|| (strstr (opencl_device_version_lower, "beignet "))
|
||||
|| (strstr (opencl_device_version_lower, " beignet"))
|
||||
|| (strstr (opencl_device_version_lower, "pocl "))
|
||||
|| (strstr (opencl_device_version_lower, " pocl"))
|
||||
|| (strstr (opencl_device_version_lower, "mesa "))
|
||||
|| (strstr (opencl_device_version_lower, " mesa")))
|
||||
{
|
||||
// NEO: https://github.com/hashcat/hashcat/issues/2342
|
||||
// BEIGNET: https://github.com/hashcat/hashcat/issues/2243
|
||||
// POCL: https://github.com/hashcat/hashcat/issues/2344
|
||||
// MESA: https://github.com/hashcat/hashcat/issues/2269
|
||||
|
||||
if (user_options->force == false)
|
||||
{
|
||||
event_log_error (hashcat_ctx, "* Device #%u: Unstable OpenCL driver detected!", device_id + 1);
|
||||
|
||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, "This OpenCL driver has been marked as likely to fail kernel compilation or to produce false negatives.");
|
||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, "You can use --force to override this, but do not report related errors.");
|
||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, NULL);
|
||||
|
||||
device_param->skipped = true;
|
||||
}
|
||||
}
|
||||
|
||||
hcfree (opencl_device_version_lower);
|
||||
|
||||
// Since some times we get reports from users about not working hashcat, dropping error messages like:
|
||||
// CL_INVALID_COMMAND_QUEUE and CL_OUT_OF_RESOURCES
|
||||
// Turns out that this is caused by Intel OpenCL runtime handling their GPU devices
|
||||
@ -6245,24 +6262,19 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
||||
|
||||
if (r == 2)
|
||||
{
|
||||
if (version_maj >= 367)
|
||||
if (version_maj >= 440)
|
||||
{
|
||||
if (version_maj == 418)
|
||||
{
|
||||
// older 418.x versions are known to be broken.
|
||||
// for instance, NVIDIA-Linux-x86_64-418.43.run
|
||||
// run ./hashcat -b -m 2501 results in self-test fail
|
||||
|
||||
if (version_min >= 56)
|
||||
{
|
||||
nv_warn = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (version_min >= 64)
|
||||
{
|
||||
nv_warn = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// unknown version scheme, probably new driver version
|
||||
|
||||
nv_warn = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -242,7 +242,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
tmp_salt[salt_len] = 0;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%s:%s", tmp_buf, tmp_salt);
|
||||
const int line_len = snprintf (line_buf, line_size, "%s%c%s", tmp_buf, hashconfig->separator, tmp_salt);
|
||||
|
||||
return line_len;
|
||||
}
|
||||
|
@ -138,11 +138,12 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
tmp_salt[salt_len] = 0;
|
||||
|
||||
const int out_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x:%s",
|
||||
const int out_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%c%s",
|
||||
byte_swap_32 (tmp[0]),
|
||||
byte_swap_32 (tmp[1]),
|
||||
byte_swap_32 (tmp[2]),
|
||||
byte_swap_32 (tmp[3]),
|
||||
hashconfig->separator,
|
||||
tmp_salt);
|
||||
|
||||
return out_len;
|
||||
|
@ -51,7 +51,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
token.token_cnt = 2;
|
||||
|
||||
token.sep[0] = ':';
|
||||
token.sep[0] = hashconfig->separator;
|
||||
token.len_min[0] = 16;
|
||||
token.len_max[0] = 16;
|
||||
token.attr[0] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
|
@ -44,6 +44,17 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
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; }
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -208,6 +219,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -46,6 +46,17 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
|
||||
static const char *SIGNATURE_MEDIAWIKI_B = "$B$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -211,6 +222,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -49,10 +49,7 @@ bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: self-test failure.
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
if ((hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL) == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -42,6 +42,17 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
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; }
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: self-test failure.
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -206,6 +217,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -410,6 +410,17 @@ static void sha512aix_encode (const u8 digest[64], u8 buf[86])
|
||||
buf[85] = int_to_itoa64 (l & 0x3f); //l >>= 6;
|
||||
}
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (sha512aix_tmp_t);
|
||||
@ -599,6 +610,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -61,6 +61,17 @@ typedef struct pbkdf2_sha512_tmp
|
||||
|
||||
static const char *SIGNATURE_SHA512MACOS = "$ml$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (pbkdf2_sha512_tmp_t);
|
||||
@ -300,6 +311,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -60,6 +60,17 @@ typedef struct pbkdf2_sha512_tmp
|
||||
|
||||
static const char *SIGNATURE_SHA512GRUB = "grub.pbkdf2.sha512.";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 esalt_size = (const u64) sizeof (pbkdf2_sha512_t);
|
||||
@ -271,6 +282,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -147,7 +147,8 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
line_len += snprintf (line_buf + line_len, line_size - line_len, "%02x", ptr[i ^ 3]); // the ^ 3 index converts LE -> BE
|
||||
}
|
||||
|
||||
line_len += snprintf (line_buf + line_len, line_size - line_len, ":%08x%08x%08x%08x%08x",
|
||||
line_len += snprintf (line_buf + line_len, line_size - line_len, "%c%08x%08x%08x%08x%08x",
|
||||
hashconfig->separator,
|
||||
digest[0],
|
||||
digest[1],
|
||||
digest[2],
|
||||
|
@ -58,6 +58,17 @@ typedef struct pbkdf2_sha512_tmp
|
||||
|
||||
} pbkdf2_sha512_tmp_t;
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
char *jit_build_options = NULL;
|
||||
@ -317,6 +328,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -64,6 +64,17 @@ typedef struct bitcoin_wallet_tmp
|
||||
|
||||
static const char *SIGNATURE_BITCOIN_WALLET = "$bitcoin$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
char *jit_build_options = NULL;
|
||||
@ -330,6 +341,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
tmp_salt[salt_len] = 0;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x:%s", digest[0], tmp_salt);
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%c%s", digest[0], hashconfig->separator, tmp_salt);
|
||||
|
||||
return line_len;
|
||||
}
|
||||
|
@ -41,6 +41,17 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
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; }
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -49,7 +60,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
token.token_cnt = 2;
|
||||
|
||||
token.sep[0] = ':';
|
||||
token.sep[0] = hashconfig->separator;
|
||||
token.len_min[0] = 64;
|
||||
token.len_max[0] = 64;
|
||||
token.attr[0] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
@ -201,6 +212,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -41,6 +41,17 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
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; }
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -49,7 +60,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
token.token_cnt = 2;
|
||||
|
||||
token.sep[0] = ':';
|
||||
token.sep[0] = hashconfig->separator;
|
||||
token.len_min[0] = 64;
|
||||
token.len_max[0] = 64;
|
||||
token.attr[0] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
@ -201,6 +212,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -41,6 +41,17 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
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; }
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -49,7 +60,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
token.token_cnt = 2;
|
||||
|
||||
token.sep[0] = ':';
|
||||
token.sep[0] = hashconfig->separator;
|
||||
token.len_min[0] = 128;
|
||||
token.len_max[0] = 128;
|
||||
token.attr[0] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
@ -225,6 +236,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -41,6 +41,17 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
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; }
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -49,7 +60,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
token.token_cnt = 2;
|
||||
|
||||
token.sep[0] = ':';
|
||||
token.sep[0] = hashconfig->separator;
|
||||
token.len_min[0] = 128;
|
||||
token.len_max[0] = 128;
|
||||
token.attr[0] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
@ -225,6 +236,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -62,6 +62,17 @@ typedef struct pbkdf2_sha512_tmp
|
||||
|
||||
static const char *SIGNATURE_PBKDF2_SHA512 = "sha512";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 esalt_size = (const u64) sizeof (pbkdf2_sha512_t);
|
||||
@ -258,6 +269,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -54,6 +54,17 @@ typedef struct oraclet_tmp
|
||||
|
||||
static const int ROUNDS_ORACLET = 4096;
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (oraclet_tmp_t);
|
||||
@ -235,6 +246,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -185,12 +185,13 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
sprintf (pstoken_tmp + j, "%02x", ptr[i]);
|
||||
}
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%08x:%s",
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%08x%c%s",
|
||||
digest[0],
|
||||
digest[1],
|
||||
digest[2],
|
||||
digest[3],
|
||||
digest[4],
|
||||
hashconfig->separator,
|
||||
pstoken_tmp);
|
||||
|
||||
return line_len;
|
||||
|
@ -165,7 +165,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
sprintf (buf + j, "%08x", esalt->salt_buf[i]);
|
||||
}
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%08x%08x%08x%08x:%s",
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%08x%08x%08x%08x%c%s",
|
||||
digest[0],
|
||||
digest[1],
|
||||
digest[2],
|
||||
@ -174,6 +174,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
digest[5],
|
||||
digest[6],
|
||||
digest[7],
|
||||
hashconfig->separator,
|
||||
buf);
|
||||
|
||||
return line_len;
|
||||
|
@ -109,7 +109,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
{
|
||||
const u32 *digest = (const u32 *) digest_buf;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x:%08x", byte_swap_32 (digest[0]), byte_swap_32 (salt->salt_buf[0]));
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%c%08x", byte_swap_32 (digest[0]), hashconfig->separator, byte_swap_32 (salt->salt_buf[0]));
|
||||
|
||||
return line_len;
|
||||
}
|
||||
|
@ -75,6 +75,17 @@ typedef struct dpapimk_tmp_v1
|
||||
|
||||
static const char *SIGNATURE_DPAPIMK = "$DPAPImk$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: self-test failure.
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (dpapimk_tmp_v1_t);
|
||||
@ -439,6 +450,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u64 tmp_salt_buf = (((u64) (salt->salt_buf[2])) << 32) | ((u64) (salt->salt_buf[3]));
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%06d:%" PRIu64, digest[0], tmp_salt_buf);
|
||||
const int line_len = snprintf (line_buf, line_size, "%06d%c%" PRIu64, digest[0], hashconfig->separator, tmp_salt_buf);
|
||||
|
||||
return line_len;
|
||||
}
|
||||
|
@ -63,6 +63,17 @@ static const int DISKCRYPTOR_VERSION = 0;
|
||||
static const int ROUNDS_DISKCRYPTOR = 1000;
|
||||
static const char *SIGNATURE_DISKCRYPTOR = "$diskcryptor$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (pbkdf2_sha512_tmp_t);
|
||||
@ -251,6 +262,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -63,6 +63,17 @@ static const int DISKCRYPTOR_VERSION = 0;
|
||||
static const int ROUNDS_DISKCRYPTOR = 1000;
|
||||
static const char *SIGNATURE_DISKCRYPTOR = "$diskcryptor$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (pbkdf2_sha512_tmp_t);
|
||||
@ -251,6 +262,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -63,6 +63,17 @@ static const int DISKCRYPTOR_VERSION = 0;
|
||||
static const int ROUNDS_DISKCRYPTOR = 1000;
|
||||
static const char *SIGNATURE_DISKCRYPTOR = "$diskcryptor$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (pbkdf2_sha512_tmp_t);
|
||||
@ -251,6 +262,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -63,6 +63,17 @@ typedef struct pbkdf2_sha512_tmp
|
||||
|
||||
static const char *SIGNATURE_PASSLIB_PBKDF2_SHA512 = "pbkdf2-sha512";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: password not found
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 esalt_size = (const u64) sizeof (pbkdf2_sha512_t);
|
||||
@ -289,6 +300,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -62,6 +62,17 @@ static const u32 ROUNDS_SOLARWINDS_ORION = 1000;
|
||||
|
||||
static const char *SIGNATURE_SOLARWINDS_ORION = "$solarwinds$0$";
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||
{
|
||||
// amdgpu-pro-19.30-934563-ubuntu-18.04: self-test failure.
|
||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 esalt_size = (const u64) sizeof (solarwinds_t);
|
||||
@ -277,6 +288,6 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_st_hash = module_st_hash;
|
||||
module_ctx->module_st_pass = module_st_pass;
|
||||
module_ctx->module_tmp_size = module_tmp_size;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = module_unstable_warning;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
|
@ -97,6 +97,12 @@ bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE
|
||||
}
|
||||
}
|
||||
|
||||
// self-test failed
|
||||
if (device_param->opencl_platform_vendor_id == VENDOR_ID_AMD)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user