From e30febc8b8d52ab0f1300b0ca3d01f4fd6da4cee Mon Sep 17 00:00:00 2001 From: Gabriele Gristina Date: Sat, 8 May 2021 02:06:05 +0200 Subject: [PATCH] cryptoapi opts (2) and test unit --- OpenCL/m14511_a0-pure.cl | 16 +- OpenCL/m14511_a1-pure.cl | 16 +- OpenCL/m14511_a3-pure.cl | 34 +-- OpenCL/m14512_a0-pure.cl | 17 +- OpenCL/m14512_a1-pure.cl | 16 +- OpenCL/m14512_a3-pure.cl | 32 +-- OpenCL/m14513_a0-pure.cl | 16 +- OpenCL/m14513_a1-pure.cl | 16 +- OpenCL/m14513_a3-pure.cl | 32 +-- OpenCL/m14541_a0-pure.cl | 17 +- OpenCL/m14541_a1-pure.cl | 16 +- OpenCL/m14541_a3-pure.cl | 32 +-- OpenCL/m14542_a0-pure.cl | 16 +- OpenCL/m14542_a1-pure.cl | 16 +- OpenCL/m14542_a3-pure.cl | 32 +-- OpenCL/m14543_a0-pure.cl | 17 +- OpenCL/m14543_a1-pure.cl | 16 +- OpenCL/m14543_a3-pure.cl | 32 +-- tools/cl_tests/hashcat_ripemd160_aes_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_ripemd160_aes_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_ripemd160_aes_256.img | Bin 0 -> 2048 bytes .../hashcat_ripemd160_serpent_128.img | Bin 0 -> 2048 bytes .../hashcat_ripemd160_serpent_192.img | Bin 0 -> 2048 bytes .../hashcat_ripemd160_serpent_256.img | Bin 0 -> 2048 bytes .../hashcat_ripemd160_twofish_128.img | Bin 0 -> 2048 bytes .../hashcat_ripemd160_twofish_192.img | Bin 0 -> 2048 bytes .../hashcat_ripemd160_twofish_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_aes_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_aes_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_aes_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_serpent_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_serpent_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_serpent_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_twofish_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_twofish_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha1_twofish_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_aes_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_aes_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_aes_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_serpent_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_serpent_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_serpent_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_twofish_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_twofish_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha256_twofish_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_aes_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_aes_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_aes_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_serpent_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_serpent_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_serpent_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_twofish_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_twofish_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_sha512_twofish_256.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_whirlpool_aes_128.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_whirlpool_aes_192.img | Bin 0 -> 2048 bytes tools/cl_tests/hashcat_whirlpool_aes_256.img | Bin 0 -> 2048 bytes .../hashcat_whirlpool_serpent_128.img | Bin 0 -> 2048 bytes .../hashcat_whirlpool_serpent_192.img | Bin 0 -> 2048 bytes .../hashcat_whirlpool_serpent_256.img | Bin 0 -> 2048 bytes .../hashcat_whirlpool_twofish_128.img | Bin 0 -> 2048 bytes .../hashcat_whirlpool_twofish_192.img | Bin 0 -> 2048 bytes .../hashcat_whirlpool_twofish_256.img | Bin 0 -> 2048 bytes tools/cryptoloop2hashcat.py | 3 +- tools/test.sh | 231 ++++++++++++++++-- 65 files changed, 335 insertions(+), 288 deletions(-) create mode 100644 tools/cl_tests/hashcat_ripemd160_aes_128.img create mode 100644 tools/cl_tests/hashcat_ripemd160_aes_192.img create mode 100644 tools/cl_tests/hashcat_ripemd160_aes_256.img create mode 100644 tools/cl_tests/hashcat_ripemd160_serpent_128.img create mode 100644 tools/cl_tests/hashcat_ripemd160_serpent_192.img create mode 100644 tools/cl_tests/hashcat_ripemd160_serpent_256.img create mode 100644 tools/cl_tests/hashcat_ripemd160_twofish_128.img create mode 100644 tools/cl_tests/hashcat_ripemd160_twofish_192.img create mode 100644 tools/cl_tests/hashcat_ripemd160_twofish_256.img create mode 100644 tools/cl_tests/hashcat_sha1_aes_128.img create mode 100644 tools/cl_tests/hashcat_sha1_aes_192.img create mode 100644 tools/cl_tests/hashcat_sha1_aes_256.img create mode 100644 tools/cl_tests/hashcat_sha1_serpent_128.img create mode 100644 tools/cl_tests/hashcat_sha1_serpent_192.img create mode 100644 tools/cl_tests/hashcat_sha1_serpent_256.img create mode 100644 tools/cl_tests/hashcat_sha1_twofish_128.img create mode 100644 tools/cl_tests/hashcat_sha1_twofish_192.img create mode 100644 tools/cl_tests/hashcat_sha1_twofish_256.img create mode 100644 tools/cl_tests/hashcat_sha256_aes_128.img create mode 100644 tools/cl_tests/hashcat_sha256_aes_192.img create mode 100644 tools/cl_tests/hashcat_sha256_aes_256.img create mode 100644 tools/cl_tests/hashcat_sha256_serpent_128.img create mode 100644 tools/cl_tests/hashcat_sha256_serpent_192.img create mode 100644 tools/cl_tests/hashcat_sha256_serpent_256.img create mode 100644 tools/cl_tests/hashcat_sha256_twofish_128.img create mode 100644 tools/cl_tests/hashcat_sha256_twofish_192.img create mode 100644 tools/cl_tests/hashcat_sha256_twofish_256.img create mode 100644 tools/cl_tests/hashcat_sha512_aes_128.img create mode 100644 tools/cl_tests/hashcat_sha512_aes_192.img create mode 100644 tools/cl_tests/hashcat_sha512_aes_256.img create mode 100644 tools/cl_tests/hashcat_sha512_serpent_128.img create mode 100644 tools/cl_tests/hashcat_sha512_serpent_192.img create mode 100644 tools/cl_tests/hashcat_sha512_serpent_256.img create mode 100644 tools/cl_tests/hashcat_sha512_twofish_128.img create mode 100644 tools/cl_tests/hashcat_sha512_twofish_192.img create mode 100644 tools/cl_tests/hashcat_sha512_twofish_256.img create mode 100644 tools/cl_tests/hashcat_whirlpool_aes_128.img create mode 100644 tools/cl_tests/hashcat_whirlpool_aes_192.img create mode 100644 tools/cl_tests/hashcat_whirlpool_aes_256.img create mode 100644 tools/cl_tests/hashcat_whirlpool_serpent_128.img create mode 100644 tools/cl_tests/hashcat_whirlpool_serpent_192.img create mode 100644 tools/cl_tests/hashcat_whirlpool_serpent_256.img create mode 100644 tools/cl_tests/hashcat_whirlpool_twofish_128.img create mode 100644 tools/cl_tests/hashcat_whirlpool_twofish_192.img create mode 100644 tools/cl_tests/hashcat_whirlpool_twofish_256.img diff --git a/OpenCL/m14511_a0-pure.cl b/OpenCL/m14511_a0-pure.cl index 11e2ea4df..52189158e 100644 --- a/OpenCL/m14511_a0-pure.cl +++ b/OpenCL/m14511_a0-pure.cl @@ -76,10 +76,6 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -121,7 +117,9 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; sha1_update_swap (&ctx, w, w_len); @@ -271,10 +269,6 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) * base */ - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -316,7 +310,9 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; sha1_update_swap (&ctx, w, w_len); diff --git a/OpenCL/m14511_a1-pure.cl b/OpenCL/m14511_a1-pure.cl index 8abf47d99..33e337030 100644 --- a/OpenCL/m14511_a1-pure.cl +++ b/OpenCL/m14511_a1-pure.cl @@ -74,10 +74,6 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - sha1_ctx_t ctx0, ctx0_padding; sha1_init (&ctx0); @@ -94,7 +90,9 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - sha1_update_swap (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x41000000; + + ctx0_padding.len = 1; sha1_update_swap (&ctx0_padding, w, w_len); } @@ -276,10 +274,6 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - sha1_ctx_t ctx0, ctx0_padding; sha1_init (&ctx0); @@ -296,7 +290,9 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - sha1_update_swap (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x41000000; + + ctx0_padding.len = 1; sha1_update_swap (&ctx0_padding, w, w_len); } diff --git a/OpenCL/m14511_a3-pure.cl b/OpenCL/m14511_a3-pure.cl index baf8bcccf..3e0afc6cf 100644 --- a/OpenCL/m14511_a3-pure.cl +++ b/OpenCL/m14511_a3-pure.cl @@ -74,10 +74,6 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -101,12 +97,6 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - sha1_ctx_t ctx0; sha1_init (&ctx0); @@ -130,9 +120,11 @@ KERNEL_FQ void m14511_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap(&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; - sha1_update_swap(&ctx, _w, _w_len); + sha1_update_swap (&ctx, w, pw_len); sha1_final (&ctx); @@ -275,10 +267,6 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -302,17 +290,11 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - sha1_ctx_t ctx0; sha1_init (&ctx0); - sha1_update_swap(&ctx0, w, pw_len); + sha1_update_swap (&ctx0, w, pw_len); sha1_final (&ctx0); @@ -331,9 +313,11 @@ KERNEL_FQ void m14511_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap(&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; - sha1_update_swap(&ctx, _w, _w_len); + sha1_update_swap (&ctx, w, pw_len); sha1_final (&ctx); diff --git a/OpenCL/m14512_a0-pure.cl b/OpenCL/m14512_a0-pure.cl index c9fce0e80..8e42b89fb 100644 --- a/OpenCL/m14512_a0-pure.cl +++ b/OpenCL/m14512_a0-pure.cl @@ -40,10 +40,6 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -85,7 +81,9 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; sha1_update_swap (&ctx, w, w_len); @@ -198,10 +196,6 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) * base */ - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -243,7 +237,10 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; + sha1_update_swap (&ctx, w, w_len); sha1_final (&ctx); diff --git a/OpenCL/m14512_a1-pure.cl b/OpenCL/m14512_a1-pure.cl index 503766809..161741e96 100644 --- a/OpenCL/m14512_a1-pure.cl +++ b/OpenCL/m14512_a1-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - sha1_ctx_t ctx0, ctx0_padding; sha1_init (&ctx0); @@ -58,7 +54,9 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - sha1_update_swap (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x41000000; + + ctx0_padding.len = 1; sha1_update_swap (&ctx0_padding, w, w_len); } @@ -204,10 +202,6 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - sha1_ctx_t ctx0, ctx0_padding; sha1_init (&ctx0); @@ -224,7 +218,9 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - sha1_update_swap (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x41000000; + + ctx0_padding.len = 1; sha1_update_swap (&ctx0_padding, w, w_len); } diff --git a/OpenCL/m14512_a3-pure.cl b/OpenCL/m14512_a3-pure.cl index 2cc2448bc..47193000b 100644 --- a/OpenCL/m14512_a3-pure.cl +++ b/OpenCL/m14512_a3-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -65,12 +61,6 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - sha1_ctx_t ctx0; sha1_init (&ctx0); @@ -94,9 +84,11 @@ KERNEL_FQ void m14512_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; - sha1_update_swap (&ctx, _w, _w_len); + sha1_update_swap (&ctx, w, pw_len); sha1_final (&ctx); @@ -203,10 +195,6 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -230,12 +218,6 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - sha1_ctx_t ctx0; sha1_init (&ctx0); @@ -259,9 +241,11 @@ KERNEL_FQ void m14512_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; - sha1_update_swap (&ctx, _w, _w_len); + sha1_update_swap (&ctx, w, pw_len); sha1_final (&ctx); diff --git a/OpenCL/m14513_a0-pure.cl b/OpenCL/m14513_a0-pure.cl index 28de69e7e..2e7c9919b 100644 --- a/OpenCL/m14513_a0-pure.cl +++ b/OpenCL/m14513_a0-pure.cl @@ -40,10 +40,6 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -85,7 +81,9 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; sha1_update_swap (&ctx, w, w_len); @@ -199,10 +197,6 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) * base */ - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -244,7 +238,9 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; sha1_update_swap (&ctx, w, w_len); diff --git a/OpenCL/m14513_a1-pure.cl b/OpenCL/m14513_a1-pure.cl index 6a0181183..8bf808a3c 100644 --- a/OpenCL/m14513_a1-pure.cl +++ b/OpenCL/m14513_a1-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - sha1_ctx_t ctx0, ctx0_padding; sha1_init (&ctx0); @@ -58,7 +54,9 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - sha1_update_swap (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x41000000; + + ctx0_padding.len = 1; sha1_update_swap (&ctx0_padding, w, w_len); } @@ -205,10 +203,6 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - sha1_ctx_t ctx0, ctx0_padding; sha1_init (&ctx0); @@ -225,7 +219,9 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - sha1_update_swap (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x41000000; + + ctx0_padding.len = 1; sha1_update_swap (&ctx0_padding, w, w_len); } diff --git a/OpenCL/m14513_a3-pure.cl b/OpenCL/m14513_a3-pure.cl index 45f00c9f5..0cb812e59 100644 --- a/OpenCL/m14513_a3-pure.cl +++ b/OpenCL/m14513_a3-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -65,12 +61,6 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - sha1_ctx_t ctx0; sha1_init (&ctx0); @@ -94,9 +84,11 @@ KERNEL_FQ void m14513_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; - sha1_update_swap (&ctx, _w, _w_len); + sha1_update_swap (&ctx, w, pw_len); sha1_final (&ctx); @@ -204,10 +196,6 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -231,12 +219,6 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - sha1_ctx_t ctx0; sha1_init (&ctx0); @@ -260,9 +242,11 @@ KERNEL_FQ void m14513_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) sha1_init (&ctx); - sha1_update_swap (&ctx, padding, 1); + ctx.w0[0] = 0x41000000; + + ctx.len = 1; - sha1_update_swap (&ctx, _w, _w_len); + sha1_update_swap (&ctx, w, pw_len); sha1_final (&ctx); diff --git a/OpenCL/m14541_a0-pure.cl b/OpenCL/m14541_a0-pure.cl index f7deec8fb..2ed23a0ba 100644 --- a/OpenCL/m14541_a0-pure.cl +++ b/OpenCL/m14541_a0-pure.cl @@ -76,10 +76,6 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -121,7 +117,9 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; ripemd160_update (&ctx, w, w_len); @@ -271,10 +269,6 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) * base */ - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -288,6 +282,7 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) tmp.pw_len = apply_rules (rules_buf[il_pos].cmds, tmp.i, tmp.pw_len); u32 w[64]; + u32 w_len = tmp.pw_len; for (u32 i = 0; i < 64; i++) w[i] = tmp.i[i]; @@ -315,7 +310,9 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; ripemd160_update (&ctx, w, w_len); diff --git a/OpenCL/m14541_a1-pure.cl b/OpenCL/m14541_a1-pure.cl index 1fd92b779..f18137677 100644 --- a/OpenCL/m14541_a1-pure.cl +++ b/OpenCL/m14541_a1-pure.cl @@ -74,10 +74,6 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - ripemd160_ctx_t ctx0, ctx0_padding; ripemd160_init (&ctx0); @@ -94,7 +90,9 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - ripemd160_update (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x00000041; + + ctx0_padding.len = 1; ripemd160_update (&ctx0_padding, w, w_len); } @@ -276,10 +274,6 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - ripemd160_ctx_t ctx0, ctx0_padding; ripemd160_init (&ctx0); @@ -296,7 +290,9 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - ripemd160_update (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x00000041; + + ctx0_padding.len = 1; ripemd160_update (&ctx0_padding, w, w_len); } diff --git a/OpenCL/m14541_a3-pure.cl b/OpenCL/m14541_a3-pure.cl index b5c193e01..112b9d452 100644 --- a/OpenCL/m14541_a3-pure.cl +++ b/OpenCL/m14541_a3-pure.cl @@ -74,10 +74,6 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -101,12 +97,6 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - ripemd160_ctx_t ctx0; ripemd160_init (&ctx0); @@ -130,9 +120,11 @@ KERNEL_FQ void m14541_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; - ripemd160_update (&ctx, _w, _w_len); + ripemd160_update (&ctx, w, pw_len); ripemd160_final (&ctx); @@ -275,10 +267,6 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 aes_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -302,12 +290,6 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - ripemd160_ctx_t ctx0; ripemd160_init (&ctx0); @@ -331,9 +313,11 @@ KERNEL_FQ void m14541_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; - ripemd160_update (&ctx, _w, _w_len); + ripemd160_update (&ctx, w, pw_len); ripemd160_final (&ctx); diff --git a/OpenCL/m14542_a0-pure.cl b/OpenCL/m14542_a0-pure.cl index ee6a4bd4c..bd1038fb9 100644 --- a/OpenCL/m14542_a0-pure.cl +++ b/OpenCL/m14542_a0-pure.cl @@ -40,10 +40,6 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -85,7 +81,9 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; ripemd160_update (&ctx, w, w_len); @@ -198,10 +196,6 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) * base */ - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -243,7 +237,9 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; ripemd160_update (&ctx, w, w_len); diff --git a/OpenCL/m14542_a1-pure.cl b/OpenCL/m14542_a1-pure.cl index 88f27946f..06ade940a 100644 --- a/OpenCL/m14542_a1-pure.cl +++ b/OpenCL/m14542_a1-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - ripemd160_ctx_t ctx0, ctx0_padding; ripemd160_init (&ctx0); @@ -58,7 +54,9 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - ripemd160_update (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x00000041; + + ctx0_padding.len = 1; ripemd160_update (&ctx0_padding, w, w_len); } @@ -204,10 +202,6 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - ripemd160_ctx_t ctx0, ctx0_padding; ripemd160_init (&ctx0); @@ -224,7 +218,9 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - ripemd160_update (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x00000041; + + ctx0_padding.len = 1; ripemd160_update (&ctx0_padding, w, w_len); } diff --git a/OpenCL/m14542_a3-pure.cl b/OpenCL/m14542_a3-pure.cl index 8d56c7e7c..5e37f44b1 100644 --- a/OpenCL/m14542_a3-pure.cl +++ b/OpenCL/m14542_a3-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -65,12 +61,6 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - ripemd160_ctx_t ctx0; ripemd160_init (&ctx0); @@ -94,9 +84,11 @@ KERNEL_FQ void m14542_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; - ripemd160_update (&ctx, _w, _w_len); + ripemd160_update (&ctx, w, pw_len); ripemd160_final (&ctx); @@ -203,10 +195,6 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 serpent_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -230,12 +218,6 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - ripemd160_ctx_t ctx0; ripemd160_init (&ctx0); @@ -259,9 +241,11 @@ KERNEL_FQ void m14542_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; - ripemd160_update (&ctx, _w, _w_len); + ripemd160_update (&ctx, w, pw_len); ripemd160_final (&ctx); diff --git a/OpenCL/m14543_a0-pure.cl b/OpenCL/m14543_a0-pure.cl index 70268b5f9..13b0910c8 100644 --- a/OpenCL/m14543_a0-pure.cl +++ b/OpenCL/m14543_a0-pure.cl @@ -40,10 +40,6 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -85,7 +81,9 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; ripemd160_update (&ctx, w, w_len); @@ -199,10 +197,6 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) * base */ - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - COPY_PW (pws[gid]); /** @@ -244,7 +238,9 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; ripemd160_update (&ctx, w, w_len); @@ -260,6 +256,7 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_RULES_ESALT (cryptoapi_t)) } // key + u32 ukey[8] = { 0 }; ukey[0] = k0; diff --git a/OpenCL/m14543_a1-pure.cl b/OpenCL/m14543_a1-pure.cl index 86a6d0a27..3db0f2791 100644 --- a/OpenCL/m14543_a1-pure.cl +++ b/OpenCL/m14543_a1-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - ripemd160_ctx_t ctx0, ctx0_padding; ripemd160_init (&ctx0); @@ -58,7 +54,9 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - ripemd160_update (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x00000041; + + ctx0_padding.len = 1; ripemd160_update (&ctx0_padding, w, w_len); } @@ -205,10 +203,6 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - ripemd160_ctx_t ctx0, ctx0_padding; ripemd160_init (&ctx0); @@ -225,7 +219,9 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_ESALT (cryptoapi_t)) ctx0_padding = ctx0; - ripemd160_update (&ctx0_padding, padding, 1); + ctx0_padding.w0[0] = 0x00000041; + + ctx0_padding.len = 1; ripemd160_update (&ctx0_padding, w, w_len); } diff --git a/OpenCL/m14543_a3-pure.cl b/OpenCL/m14543_a3-pure.cl index cf76fed06..e8f8977fa 100644 --- a/OpenCL/m14543_a3-pure.cl +++ b/OpenCL/m14543_a3-pure.cl @@ -38,10 +38,6 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -65,12 +61,6 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - ripemd160_ctx_t ctx0; ripemd160_init (&ctx0); @@ -94,9 +84,11 @@ KERNEL_FQ void m14543_mxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; - ripemd160_update (&ctx, _w, _w_len); + ripemd160_update (&ctx, w, pw_len); ripemd160_final (&ctx); @@ -204,10 +196,6 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) u32 twofish_key_len = esalt_bufs[DIGESTS_OFFSET].key_size; - u32 padding[64] = { 0 }; - - padding[0] = 0x00000041; - const u32 pw_len = pws[gid].pw_len; u32x w[64] = { 0 }; @@ -231,12 +219,6 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) w[0] = w0; - u32x _w[64]; - - u32 _w_len = pw_len; - - for (u32 i = 0; i < 64; i++) _w[i] = w[i]; - ripemd160_ctx_t ctx0; ripemd160_init (&ctx0); @@ -260,9 +242,11 @@ KERNEL_FQ void m14543_sxx (KERN_ATTR_VECTOR_ESALT (cryptoapi_t)) ripemd160_init (&ctx); - ripemd160_update (&ctx, padding, 1); + ctx.w0[0] = 0x00000041; + + ctx.len = 1; - ripemd160_update (&ctx, _w, _w_len); + ripemd160_update (&ctx, w, pw_len); ripemd160_final (&ctx); diff --git a/tools/cl_tests/hashcat_ripemd160_aes_128.img b/tools/cl_tests/hashcat_ripemd160_aes_128.img new file mode 100644 index 0000000000000000000000000000000000000000..630c39aa3d3083cb4e323f7acfaef25273a46e34 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_ripemd160_aes_256.img b/tools/cl_tests/hashcat_ripemd160_aes_256.img new file mode 100644 index 0000000000000000000000000000000000000000..67b21f64c3715324d3c77015b4db25245ef7f463 GIT binary patch literal 2048 zcmV+b2>1EIj_*u%uv}$nKaHcOdOUE&Z2N{5)V&hYAoLH2*%UT9q*FA1 zp@r_I;tBlR>jS28(}r5)C6T+&ejN2QRQ5A|X#KYL;>c;lrbeL+ym_5%YaYqUfY(uW z$;0|3BR`j{ugr8}mF(Y&|E2#*3K>d$#G4e-6yOEE7q(*KVXyIU;hQD^uE-J(!#5c* zPzMPNW5GjM$ZQr7Hm{-#slQ_XsvjLgNtee|ZB}HavcSb5klIBgJJf$Mn|e38Q{34n zK%GVtb!*6H%px#~?DU9gU^<>&2)mMW5bXhohKosJ=N^11|D1YK1FM#7g)>p6!2z4~ zul%_7yh;&zd$U4kFpreI+38N8idC)gaHOdd4I+J&a_5eY|0FE_h9yKTl4y2cP2!h1 z4yJki17W8aKRe9%fz4j+?JTOEs^DbSpn$fq!tb;pPMwwhq3c0ww^Im~`KaaZMZo7c zeB_a{M^FbIr94qmYOJ!X6NGdZJS~+3u#8>-W1LVVh> z?`)nr4H(>D0_oGpRX2|Bl?#`%^xC^S7nD(3RVc`9K|@s*b~78x^joTtWAqGbev?>1 z8$d(v7&uDjb>L~1)l$G0$YDq0ye!u}>sjjhWp&Mpp|$88T+UfJAgqB9ke-zvrsvMG zWN|!z&XF5hGuT8`HJ6l@h_M+Bb1lexSxUx@0~{(r_R$9FivLl;4#y;|k?gX!ZYDI7 z3J!Nra92KRQ>(Ob^#Wyei^b6G>wEW}9CJiZ*Qy6@aBSp5u*38}=2T?13sywX{v8A= zh+c6wO*C2ub7%jcTW?&#<^^eaO>bfI()Hf;wh@C|vt(;oqHS-C>FQf)H++{zD*LzU zPl{hapSk$w`)Cyx)sD~*8SV#PkZ99T20F6*V!#z6!_IG24+9eSK_dmRMI<)EZG^1N zvxsUTu59uYmpaapej(WS3LCnALX&J_M}>#*+e}cxIxmAmH$zj!A#g@d#UN#W2z9sc zpzd7M^c-UM#8}eG^BK<7SwlDaw`qlU;bscz*m6fTgzr^rkw`&^;`9>}bKKI=FQ-k- zwo*HbhYVBo*QrNod$!OCtJYquGUs%5^5aXmIx|RB5tP!q2AhQKeRt~qzDvU}I1#8f z1pQ#+2Y|WqZt7-xyx@PZf}ka(&oz$S;jxsR(8#6foWKf$EUPd$AaCh?uOc`4=APcH z#L5@JQ?r%(Pf&Uc*V$RQ%CE02qFKb<6lH78L0LR3LIVRvG<8l;FDJxvr4Bk{$RHTV zv{#f1w`<5}_q@4ic>^4zO4Is}NzGp|2tK`OC6lnGHLi{8sq8M%4Twy@O)%_esds2> zgHW%Vd4z;5qihSsPP#+=FU-(E_9M~IS2>L>aFj2x5(C`Pmhx+5j}r~IQ1USzZ~@3U z^dVEpzs5H}9mIlQ4VQ8LempUp_Y)UZ%5A({#VugtEx%w9Mj6RuPGqHM7)sCZ8U&f< zD|@BSEc}f#0d^-nntt55@w_iOTEOo)0&*XpsWpnG_w(C-7D*x8q8MBenyR)!yRHJ(B0 z&5Sw~|AxMc@xx&z>5|f`y3@OH!cP)7^LD?B^rsKh2Rfo=#HLSWkB*$mADf>iu(ukM zZ1?o;)J#D>eF}k)oI>l@s=BLcAeY>b)3Yo15#$d-dQ1=ttLH#j=(vT_ceasfW7N`6 zmqLyDRZiNPTvONXzNv;+DOQXRpmFZx*>|eXqWdEM#8phu(hiZR^5KYq+<7*giuYkI zrG_F~!!dLCS8EE$v)a^7)q)&@r61G59b>n!`MZKr;<=zZJE&j1yj|(Od4ZO-#oWj! zfSz_e54PA})iQ#np9z=-XsGWkFVb6wIWo+nQCf%!NeuD4oMT-X zMzJG7c_YUY+ZP1y{YwxdZ>phsTe>?e1TtMAUI!<&+Wb<*m%o3V3_3#WPyq&oF(;9E e8p&?1^XY9NY(VZLp^8WRo{@FQ!p=90Ya% literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_ripemd160_serpent_128.img b/tools/cl_tests/hashcat_ripemd160_serpent_128.img new file mode 100644 index 0000000000000000000000000000000000000000..2edccd33f4d87d45dab9dff9e7b18b3bb918a246 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_ripemd160_serpent_256.img b/tools/cl_tests/hashcat_ripemd160_serpent_256.img new file mode 100644 index 0000000000000000000000000000000000000000..a213662f0fe53b20fb4ebed8165a9b56f21ab279 GIT binary patch literal 2048 zcmV+b2>Ev<(O- zB6s=KHuHL|x6}}0iR9AiRW*OJHX^EpIaZSl(OTCO){Q-LiaFBq<}b-TO7r3UH@IY+ z3~od=$s1Yg0Mc*YC-#9;>RjMxjCF39Er##)FY*9&m#ulb$lz;edRy|V0uV9mQ%2lh zYD^kr>rbVf+~Ar2LT$Dv)M;%+uUK4j+7@6b0RQwgAn zX90hnlle;J<0lyRSte!F3M&Lhgc^*ni$Qpaoq+~~EdX#?nq|>6T2=CGiy!@H%&N2`E&XHGXylDyBTwXG)zVgC zO*Fo-tFLs6*GTiQPw`ntxmZALbYdnB+>wf?Hn<5Yp^hsO587ww`xJ6KWN+q*|T97s)29N${CUZI4=YK{W zw$D4vIONyNI`9HMd~|r`X8!73*_bY0ZL;IClO>QZg8jhn)ljI|yFV`0OnA!mmt$Pu z0!5UU*HgB<|J>Qn?)j0%uMBqE1JU<5+DQ>yWOr4&tQ+Ffn(=Y$k4U&0jaa=Ij0vC8 zFSBxAF^pqSYXQC8%oPD(glAGGj8oG%Q8ZVLm+@@QE%Qxp#l;2m);6Kv^NwSnh2SCo zD2@RaFw<9d!3uehRsxd7D^%5m3W_?QY<|1xXmq$n_K%|@iCMC;QlaIGZMtwB)Wxd` z#C`c`u4(nwo>nm%iU@)eD}|38Vv#Xq;;#Tu9^jz+)(P}hm}?_*Cb9I&opC%E+UF^q z8DP_D?2}i={|nJYlW)Wth>;(H=^bhF5XH#|yjW>4ms+8W{35H?y-*X|Y6j{j z?wxaw?hmAoV%T)Z*-=#(UgDp$nxIcPVRT+I&3pK>%yM(p)cYMgm+91^s@b5#YW6rD zT*K%_w_*H$V@*&l7X1WJixOFHmYyKk4So79t_JurbcVO02wsXNR`KQy^_XCph)_K0V&;^wELz)_JT5Ffx5dlDDpNvVYiR z5~ASd<1tEy-1%6aBugEd#zJ^C1DC*?JI?pjL?$Xao4ap)@^J@0%I#?-#5jLwtIv4? z!F|vrrRWj<{2&HyVh9Wwe{Ob;QK}w<-FEv$m`81)hX{q*y~6$-fAdbexUs115Zy1) z)|65Hnb;qFxNlKCeM1e~0V}(4z(MknlG<(EA#H(|w3s4 zMlC6U7t$LZ0P~=}Ami=PZ2X`y&RtT^k3@{6q|<%3M+R~W@2!db>hoGeN+JTsB%08P zAWloKBG!89FWXN>U{y<<@ezv9jflmO!9QHgut4W}+<5G_=SS$bXI5Tvwsa^;rR{>v zU9|_Y;FkxV0k7KG^>&f4r@?jVrB33W)9U#zl1-;D@Af|fd;>?}MvLV556@1K5D>uD zW>!99;gN6GyreZYM5J*j@)jfSfFjQ^2mfC%--9M<4EGaQs`uQGU}OF9H)SgRh64Z3 zeB;$;Z!8v+P!o7Fjgplu%BQr6c6z>R7BY1%FC^=3flRf=imY*i26k`z!KFzm;x7O? zw|e{}hw@~zq8>eO2ir^t`IpKw8*?H-`Q1I@$o5#w2G=OYD3fHb0?_X9UN1mFby=1U zBHiPGA7bmjtdAl8v~X?_u%s}=SO=zwZc8~BUYcfIRf_Txudn4_o23J+qoXm@R-6=xPaxp_3C+(D=f#4JXqos7NFJC&;R&-OVwU)vNKn*o_w@J$F54UAsi784@5pLN=mLq*Yoa5{Z|& zpC~$#eFZx~Rc9TwUqyG)4{iCK!G&1r>X2km9d%0oJa`C%N7wp_A-=d+V}vjMU7P0M zvtc5k3u0e7L11$n)lluGZIr?+zPf$K&~=xZv| e0?o0k`i>9*FD3Itn2AFrLa)pQmXi}+r3?(DPzXH$ literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_ripemd160_twofish_128.img b/tools/cl_tests/hashcat_ripemd160_twofish_128.img new file mode 100644 index 0000000000000000000000000000000000000000..c53e7edb9f2e9e3dc2636b8cb3ac038808ee09e5 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_ripemd160_twofish_256.img b/tools/cl_tests/hashcat_ripemd160_twofish_256.img new file mode 100644 index 0000000000000000000000000000000000000000..f6d2f79fc2f6ebb51e8bc36c5370690664378176 GIT binary patch literal 2048 zcmV+b2>21XOx@k{gIe3L4!i zX;#WNJtmO_J`(!cPDAnCtT^tUD3hQOcWw&>c%_O-ya<39s@dNo3~uvS{%opK_o&Q^ z#tO*eM7!rC{lMQ@S`F43+T@M4n71Cy3ueD|!N-dEb!iME&`*PAusSj&X$In<9MY$|4nN+$+^!dE^Q>IXhBtamp*M~~d12wtxK&K+@`!sdkNgl?{)vZPt<&9j z0UQ&YZ%6QSE0*^gEY;{Dd8#A20Vu^ZhsWy zTO}JQ&JHY|>cXSPAwIQMqB_KH<-vb?ecKz{W|{;ujj(KD^N~SAE;Vcu)&d2cEnUQA zpRiiFD6IUOyLi3lZzbF0M6TeR25w4y8jE?5EO^&x41f|?1OGWv_N2u zM)2TD(knn{b>2@}d0X3k|5H^Gm0_viNNc7{PTET+EWWqOaV0>Ed^4tPzA# zddcFuk{xHqb)JXOp_G-TVSJd7J%8=9KFl=j4zaZDD0M|uTwJEdzn&xq|3`SUxj~z@ zWQ`$rh&}YHW3hLWgd?Z>GDbKR<9Hgs)YHbquUMHWQ z;6=n(p)}vj&8$7_Hr~1!5oz@t5^f&$`fa!V5JA~*YA!U|P%)vd5rgxDOMU_JuB)Ld zl7!E=dy4JxbIRx`wO@UIbL%9*rlc9Tf;B|v@f4OgYgm+Z_8lb^8)r-atf8xD6*ic@ zi3}E`{ZrouNfR=T6PX+O$MA2V32Fsil`Fud0i4cMCIcG9<1X6EQpbVg zSs&cA`%w*F>x!1EN_0QLu&ktpvQUxg(EaVVaTV eS34l)NhN0*ix?B?Ym?l7uiiEMveu>zkneWe1p^QO literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_aes_128.img b/tools/cl_tests/hashcat_sha1_aes_128.img new file mode 100644 index 0000000000000000000000000000000000000000..2353825309a0796847e200c570ae73bb611f1b48 GIT binary patch literal 2048 zcmV+b2>Njnf?{s#xZOt(h?-~({`^JxZWMzq+(LdBQ82QjILT(sE zm}Dd0!9a|4+#t_JV73_HBtq&X^D2P$KrM)qEPk>f!po7sc3Q;%|Hm>|aUCp+UdDkW zTbjfvv9LiG{Yf=F_RUv7F>;O6^3}^b0!NqooD@i6b70njhx(6mbCiB8WDIIR#>eY0 ztX=JjtKH&XA+htbBsXsH9eCQq7b+^O=1xm`1|88x`a3@*0qO}xddw}-9h6^+IG3=7 zZL?w28E$+|)B^=V@R%^j8&(bqyS@-qve2C5x`gn;jSHp%Rm5?uRZ8draFa-#7dn}L zi#7Pyp7Wix&yXYve@eYAJu5m80nQrSG|Ww9vmg?0;k`=xsdx7PLR?I(L1YuQy7-<{ z@dU*8k~szkggFgSHgwj=FC^PF)mys}Y?CvR!&l(A!Gm}Bw=PmWYW{Y|!EeAn0gJPw zbdZpfuk46WY?iOj;P7Jm|BWANR>8Lj2gE2B-WnF4i^BxQ?oKi`l<141xGc+PjwF%WDj@BZbV>>dK$FYEBazJRcmnnDa6@Yo{_%ug7X%7yT%4L zBEC$P{b5^@&ft(20vMws{G{MKp1~c^Mv$5xTG!r8)ETnr+GiJ=AXj zfTHNFfJNy`!@iC;{_rVxdGEe0X;37NCwfZc5AH@YdkQnD(;b(gDP#OYbLb~UfKojs zC(pLFPNn=D-@p2(qK~j(DDw7yDah)9>h@7A{g5`%e1{6`AkG)lxnH0(J3w>(rx2#j zkfHPF;g9bf&{KrB?Tbvstl|P;HPDH~2n+&zEE1}uCVl%ZnWAtDZ zeUV{k)CRmuy6#`PdKz7?JDMcSin10XBNZ4~2UY+TVkLQQMHoq+K zs~~4Qd``(>76Z&8jB7@G6Y@w}Ywv)K*;x{Z9P1`kU6@{nICnc&x)eSA&K+WAs8igy zlq-v7#R>^a)o;h0A2nfxPl~{6r=T1zaE>DbDu?Ic28vXeW}_?6!7(V~Z>b=aHFC3AFgN`e2oXrhuvaZHr?iGSOe{^RSng||SktRt!N!wB_U z+{iKJ8ZAfmJ|P>3;O!}jJ8{cK0VOd-JLW-#h)uz4>=yC=s1_Cu`fChibs9HQSbNl`GFfwbIPZHxvfRplr&v?C zgfiq3l@wHP6JLt>q@%%`5@@rE(=_JxZ9>enYYH%pi!=1L__RZCWyFDgRu%+mdSV%M zCCx3CsOvrIxIWpOm!t){*<%;jhHdTs-teL^&3DyK?|L|>2!i1(uNEo?;c`7`(aWS~ z{4@P>UF7ui{r*R?RfejZ`aLA zvJ;1=v9co%-+A)a4EN^AR5AoMGobck<*0t_IB+~hBp7o;=3%}}QW)9%PWd&U)O$rP zoQ?-m5}BLeE>&_EHjRPCkQez%hx2v~M~?|Ig=Df}HS^8e8 zgVXS_%?ft7eIeL!BnsuJiUvs2YzF}id)q|5`mtU00ccY&>4aUy-wKib9Lnv+<^8FT zn#cq$u|pG3G`pk^CJkmh2*Bl~4{Le&3QUM#t0Y zC*@1zB8`23FcxCletn|Si8flj&Iu?aN-)ihNFW7M?uDgc(a%4T+%Kmr>bd;9y+T_u zk%0dn4-wDK78DUZ2O_+81n1qLOF*7%iVVXAQgn literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_aes_192.img b/tools/cl_tests/hashcat_sha1_aes_192.img new file mode 100644 index 0000000000000000000000000000000000000000..56f64145041b43ceb529ec24da502c1aceeeca57 GIT binary patch literal 2048 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 eoon_T->HU(8=!@uk8@u#;q@1Mg!1 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_serpent_192.img b/tools/cl_tests/hashcat_sha1_serpent_192.img new file mode 100644 index 0000000000000000000000000000000000000000..fc6847863e827451c78c47c9371dbee07872b2d2 GIT binary patch literal 2048 zcmV+b2>^azFwcEHLJclKvh;qlW_5xKw|H0MvK=3!>K`nOES;(V zT>KL@cd~D-n0lHtGbtgKeAlpN9-Y@_?lW8-vd!RtEz4G$MWfk?h%y8_)Bsy-R95up zIlMtdh06d`WTmoZo80IWaPKr$r{FewRW1+9$(t<#*HaYDpqG06e-t*dzs*k6+|f0| zu1JuVWa{W_HmWd2j2O^zom6;8ZYqnLQE&e`ja^${jC)CbmN-VUaB};nz6J~`w{Qqf zVP&^~N?@(P)EKwXTrGUz4*;_ER00kHhKuDyR#$rq9a;+2sPui{+B0if2t^46cFOCe zp5a(F#g;@Qa%yECbg^hUHqG;XZwr7doRagY=VfLP5bx}5_!UupU{5zeW>~PW+?^L( zBBsHtPVpLLmgWa0h2sVWzx3bMf!)5xki7nwJAf_9U!dQiiR}4R(dY-H(;h;1$mHk+2Guo^{x=mwKiR^DH)S+DQJb)9>v4De(bET;}5Mc-@KGRFAzI zL2${(&%&Z*I^L=%EXs2_(ohRfmCFhX)F8DS94_TNM|i%e{` zq(6?JdY~2Ai}>eWpCY5*1(lSPNt*3FOd+8%+q0Jl&oGQ9l;UIm2(U)fAf7yJD6~wM z*!M5a2T_@NJKP=Bj$WxnaU^9_Z7k9DR? zd63-R{@o_sLN-B_IMc~5-%UD6UsOu7tOwhbiEG(4qM6D)SlbSA1xXozJA)M1&rX>> z-G>#yY2Y&H?#^W_%ijrBG>1^WzQkRNUuBLM>ze0OKbTK1Pg!o}iH`Oaep><909boj z2AK3JM^SLCB?}$auR)N4lyqECh~8DObXYC+uBit{?r>TQ|MvhVA#f%UAzPV{xNa$H z96EV0m*{T05OOlfwN%C@>id#C%+*WYv^Sf5U6=#X`9qL-HR`PXXPf;u<|Gfs6})MH z9_u>3GF0p0l87YgQlf{n2No4Lu<0tmF!p`qv=+TTpGI0dXR-~0GFJ$Rp?wfAG=l^Z z8>f{mSqI`Sz)#gfdEs-5Amh_z=2Z2Ba|=x=NKC^-0eYmQ4u|T+-^8bvGB>hd&r}0U z`Ac2lEw8*HsaI3~9-!^aVrRBHvVmA3F46cw~2qNr$l$hZV7l|~FB4Gs(me+8tKgZv|UXG+5lkgO%S zq)bv{sJ>^R`^1*_-zeA-T20bSAxdaJ4Dl^_*26IHxqkNbT|Sz_yA>genEPE$jKSdQ z#H(~%>7Kq2upOmXIc9)k9k>|8I^$X-IH7as0BsazJMT#cKD5dBbz9EK@($#MtZw2lVLDn3K_02s`A32S!W~5FY7h$F{&U)>q7fOTl zOG;LrJtnWF4>t=#*@TXvB%sO!F$0&HXCSci8XCJjn92;1&0RaOv4~4>70BSk@Bmem zv0rrzT1{xR)rvexL6cRw+ z=&kNJWMd7twjdbMWl-fdp{bj)ASw^savJy7KUVF=MhrR7UptMSAb)dE{C2M+`Qlle z`|YH7-w>j6Z#q?(%RoMHK8Pq7^V95lBq1lgVlk0wXFJBOML`I^P%rv80yR{Fz5hs%hBVS!}#2EelT;0i6pUEpLL;m)w8v@B@-wU zoVOjUK^~3Eh>5t2CN7FHr;{Fz0IUGbEL{hKnx94dX-Qq7quh)Ha^{Y?6_A5 e8>pCq$Bov^G-0)i|~5@ literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_serpent_256.img b/tools/cl_tests/hashcat_sha1_serpent_256.img new file mode 100644 index 0000000000000000000000000000000000000000..429f8ed98788fee593bbbf744c4153b2e148de91 GIT binary patch literal 2048 zcmV+b2>??W-e0p4`6vJsrWPMJ zvcK)xRl(#%rN}E+Awk^>j%9EpJuPfQv972=jDW*W&*r@a00)%YhzNnbEe`Gz<4r%N}dBZ0-Wu}%$YEZw7KxRB_sm*8U5Ya zqan+bcP461EFt24no2;q1?oN3>JMizQ6d&eMbw#z9Y#XXQ{Kkh}>|kO(ix3o%n2e5_r=ljdQnJO z3?{-92OCe77DvUuyWTcCLxlzXD>)At6tC?Y&(N7H7G?Vl9}z4}|A3Ui-h%I(g+On9bc0`{ITv>_{@3DfUV7c5WoRs44W3 zeNvZ=mPqj!E9u1cqw&P48B46xqDg)EtlxJxjHhzu~!@+ z=MVio_#dY!YD%2_v&37p2+N;bHKBA_zOPbyCSk(Dl2|h1)R%itaQ4D>SW;G9V$9jG z2Azc`IzBdSSNoksQb>`Q?P<(G-FGukm}>go&vbuYH(n6~rM%he+Qy)1xNDVP1_Dam zt#Cg ztXFrfb~w>JAIxwgo))#=klTKN=rBNV1=wdP$d25tRl zVq!|%cTg`p;3uRa{Hqx9f({)l3RH&bH){VWh5dN4BTb|KV8~~b7=0=reh>d?Wd}>3 zIYN<#)H`d?7Jo(~>St>Y@W9`Gz3liCjSBHK4~&j$gI&jlt(^g`C`T64bQKax$6M8q zO#g+_n2$%)E>i%u$*%qx7*1H6I_0dqy~#6I#@CZFteetSuh!+@lc?DmZsrONO*s+B zs+ru!BQvm6yrvpo>Y%fZ08a9|(M>NZd6wS%3a3c*^L=vR`pR(H;g5dQ00=1O;F&F| zUtK6ej+Gj1?q`8zHK=1r*;^|KHmoduYv7`7g>&Dt0pk4>jMO~b8u)jsrYqhN^1crS z&VIBJth(l0y*F2En!VW-H{>D;!KszxsTht-SVjkWV$Xi(0Q*s?R3ezie$1*=*W*p* zaZ-;O_nB?hj4I3ff|el26wvJVFuScS@Kb?LmsYwbYR@@HcG6}%B5}*fD^G8{&Mvyq z&$-4gyt+*SIQX<*dgohVyc5v-5Vd`oXQ@))v=n{l_W;3*4-CxB3LNd*Ky>{HtP977 z#t+sYx5pDe6CDPglSL$zBknPZX;)8#{pUsORuB2KKUYIh@J2fNrx`)1b8%c?u3Fsg z;3s=U?@^d_w=L<7#HkK@txOLe#c`@}+qSkiw^ybH;=|ES4`lI4sq{c6-#~L!jG5st z?abVS+811N<+~IcB0BD)rTb2jh=B)ACuNZo^=NU~{&6vwe^KrDtu{#uX~}3W+Z3rY z!PsY|bV!>-@qe2-q!fj4h;QfSOYtA-ZnD3#rCg-!a~jnKPVaXqwGuf5$}S-v8I|Ys_}~sIh*9v+I+C~rov)!s;2S*59+%P7lW6C+-Pke4-!FSG4a{yE$KeSw^_)0Xsn6 zI#WAKHQ(64pv8-NP9Y%P2f2+3E!M$7=;6R$xW@~RhANlIdZ93>cU9A>qvPIb%h%v9 z^k3@vyPR eMD3t6J1t*B`x49th{FZS-GoW6o%9a8BjyA-;0I;^ literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_twofish_128.img b/tools/cl_tests/hashcat_sha1_twofish_128.img new file mode 100644 index 0000000000000000000000000000000000000000..def845faa319a0ac97132a815bc1b1087606b1f4 GIT binary patch literal 2048 zcmV+b2>Ab9RjWwhF24r|CX|hK%S32 zUO(7sQf+nEXv5nfV30kO0iDF}Cy4`$#yY4_Z+oe;V-d??9)%moW0I=;5p5GgZ2L)MbaN+r8m3nD3S zh^RH&$A)y6>7U_MZA1?Pdi5DrZuR{981bum1z3zIE0-&J%#KsG9Yr;*fG42J8JRL` zYbw^}vlHA#p{BRZs0pR@Oss$IRYvD=`5E{nrg2lEk`JWRYV-KrgvKU)BdcI*16pTY z|HY|g(Jwi&{L-6BPWaGKw0D2R4UENzOl~-lCf6UqgBm!cr2y%EW2yCLXE4*RWEArH z>tH3ckUA~NiiWpzlXLR_q1AI|1?Ga9Rg0Bcz^$-u!dp+jUUbim#wDgHZ5u22=ejVg z1N=>nTvE_@4_a2V<;F_a;KA-|XYI;|+oDRcsMC_b$dhzm_G7otEWVl>QM8?eiJ#-q z#I9z7Toalgz4wrl@*lHcxzMuCH&5>6CLw)^_0A25E}PMGTStIJ8T-p{&oW`fvr|db zNFhGnSh6DCTo0!BZ8^@b)*z0qvn`@l69C2QV&s6-WBp*8f1t=UM&};B<@NljlIisrtfH~hcM4 z`H?V6iqYc7pR%5QnwX25j&V3~6a8p6c(4N(lYKc9l#!JS=DtTvj^;W{1Z}HlA49)m zd*bpqG?d+AtX**BU=G?R{`lgm2tSc|zcqTVR6gORan(g>WEcu@eKS5h6q6*IzGV-(fjtyIl zqv1(vI&C6Ww3$+}o#mDhj0387nDXxPB3vS})>V8o5vcxsBFH>35Z79~cFn;zKezBo z*HVZQ7}9=gU@DSxy_APQh}Ovp@>uV0-lDv=L3KH!Q(*B(coKOYY&zs`7Xj>JP(Y@H z1UObjncloDA>k>eF`Kg1lS$>&_Pc4{6${%N+C&@9~;Wik5 zuHSIEYST@GXipIhUS#ez_*FbjQ>sO`z<)vX=jy8NoZ~#*{^gvY>_(G8Jc_J(L#~H< zXPj6)HQLNIrk=v*GT`OY#Sk%q9I9IjM6~9-YdCo1a3KF{aXA)_wTw$pjhCj=DQA+w zCZDA&|H@s;!0UUhJQ`!#w?A_Uodi!65KyHAeLJ%P+9OJ zx>}!!9$~6gAuYpBw10MbPPtCEB605)2HImQSzLcFcI-SZulrXJZ9L}VOx1qIi?J(& z^MOjBan&Cq&sQa;U)Ptm_33==vB zC32T}9gyaA9K_c6N!h|M0FXlabdPYzL};=0kt)i{`XJr=(}4)GeoBP-jbS(&0D{+S zpa4jI^l?u%8|_GMWYW*x$%|KwjOIqyt22kre`*HV@JXlvd>gSE;k6k47R_%NTnG4S ziFth|l>*lqQEy(rft0`N_A4m;(6Zb!+p$brEgio2%K1ouS5}+Cxz>mCKz<}?k9l&N z22w%OR3J#Nn(izKtDj~72d{;9?opaSh5sB2LDM&|zY{)M|zII!Q@&M#1KmW literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_twofish_192.img b/tools/cl_tests/hashcat_sha1_twofish_192.img new file mode 100644 index 0000000000000000000000000000000000000000..4432f84e15b19077b3ff994eea97624030067b03 GIT binary patch literal 2048 zcmV+b2>|2g zfpQjTfZZxY;(3Jrhq;=5XhytmrCsxNSKMbW~kjHa#NpY zUar67mW%ICM@RvuAtJstA8N_+T!V?>7YlgPJe0|Srj`Y5H}k#>cM(w~Mmv$`AA<0j zCmFcayKT{=hDn2gRIH!(h@pCv&=%VqEf!`8=)GS0gG}jGFYaZXX%JS2H2VF7c;qeN zjzTH4UIrfm^EX2=WMVPwKjlnz+AJI^YEY$Tgagf) zzqCjfzDVC)y+o2C-RZ~7*jy*wyUmMz9#QMs12-&&JYZOlQ!PRJ4S)5jsG6e%k%j2B~Dm%36do_NJV8GiZxnoPh-Hv)}?yg@;oBygR(&QNrspFf;LZb)pNF^ zG61@Sx4CjfiNz$zCLz>K_ixi1Q&k$m04-`n&6T8~8er=HJ|;345|=}~P45vWmSr?* z{pHPz;7&&F*wJMo-VJ)?8x%E z*cjb<$u1TXQ%%#YcPpq7&Nxqhl8H+n4jI9`26q;E`5H_*azMPOO*L}3Uqy$pkBU}- z`jBf0VM3D14d@8xTM$%8D_W=%_45~I(!r1lT&Im}Gr+OnNpH-O zjw75$Mr_G0%|d?@QD35!O$NEUp?c266~w0Ac@tyL{**L^4*Z7xsQz?yFy=3;d}gN+ zia~kFZA$c?PVXj>1~jn*ou*RrHvFT`RcRWC&)*q@tVd@keRebiu*bit8#kjAH_K7$ z3ac100cmn7p42T*)jRpo2)tEj(SrDUqW04 z*eVZ799x6+w`p2pHb8aLGi}#Z8#lu6V|wUkDrdnC?n#D-Wi7E#q7#yiUA^@vAcRf+}_mhG^_b;|17sikJh0z)jqU$_2NkgqiYma%@uA z0`gw_R5B{7X2X-lL5>@*EFx37Ib81P-w7hH z&^GAFt00`lMy;jZ6Iv{@%vVZd%?~fQrO(F-P9od_**Ju&OoPcSYUl41u@*32xi0%^ z5P|0HfXuKk@ep@>kyA{?-7hBaG!I?aIC4oTaV#r+AzcoV@w)m0EV$lP;uW$LxP+CG z%-jd(<0Le=Abi!oeM1d77sXGFShK$uC&LVm^^ewf79x`*GL zs8Xfp+uPxImxN-*1xq)H)W%wBl%CXm*}9@9>qpap&@Eobrkf8BIez?jY*VSiZf-kGEM4cV$zYA8Rbw>R#iimfL6L{7S#1u2S3PO= zIt%AcX-!Oe}252v*EIe-l}*?y4t$3K#q}1pZ@s z+b~qH@UEPJ#P*C&;#NR~N`eoaF@WD|)&g!BvECL5fce!^>r9WjHXc~K zNhA4Z{!w5A#V332QG};`1BNA8y0ph`&*I)z;7_l)CnZc()aQ9vv9@Bi*g3q1^ZLE<-yKBr&05z zx{McTgczeR!lyNi;t6LqMQ$D>wZXk^>91?>4|D9y?vrIg2)J*%UJ+##Qgl_~N_-2e zOoD{Zr*kD$bc@YuHW1Vv@X`!VgUWP3$vIFDk%nKZI)3vydN<2U(AV!*!`NAEW?d7n e^nE;bH>~v`jraJx5P!pT@NJd8QYzX1vpn)9z~j^a literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha1_twofish_256.img b/tools/cl_tests/hashcat_sha1_twofish_256.img new file mode 100644 index 0000000000000000000000000000000000000000..08a58e6aa7d80f37f8b0161a59e79b9b5f71c4c4 GIT binary patch literal 2048 zcmV+b2>WvVVAsQ-UM4_>T8IH+($g?1uhQ;S4 zxA39QrJ4kTdto66m6AlR*}LV$)pGjV*|x_hVGQxl7XiK|C>sJM#U8ha9<)WDlXUf3 z8h;&7);bC6-8C|bhi!=j{^<&x%5%3e8zL{#*1tSVH_}`GUf0S798-E!2eu%tXJ<1h ztO}(3SiO0YE0#$v36O(&@#O!MM};Azxh9~`+H9M51BB$yqivss)v2B1ewhML-vJO- zwuL7h_S(b{tWo4lzzuhemG=4Ept)|a+*+T%^Ud(mW$DS;oueYH&13L#)v?@=>8yJ99SJ9Q%Jq!`(}Qn44!?igoT?mW^Hi zN1o(_*3Y@IUO+Y98PcBLW#p(zsv~VjuZ8#2 z5dqd2YAZUA;LUMpPi#aApMVaPHa@;p;Z8xWgx^VAc03?_u&|8;>LdJ2{9(mSU?1eK zPQORaLU5vJzs*wWLb~?FgnmbE%W9UaLapJ%3pO1Ghg2K%-T(h%sAxO61IEI}zXKJ6 zs;;4rk!3dEnU#f!IlKxdZUR6YGs$CKz^@c(xy6SwM!Fd!TD6vhZW(FCY>iJOrEN(O z0kA7ZEdfjXkhHZ~xkv`*&bL@uqR<`YydkhOD}K@bwgK>TzwFYT zaeOOYC34Mw2l%(RAk#wYIVys z(e^iJw&XfX9og@_H_@!D>)W8qyCxkBlPHFqzAabA-2}Q9l|H(K$$s}q#AvH@m}B+i zGuOk>p9ZiIG1zjNdX(!&hK!Vnx9L(z0*(ESj@)@%uYcWIWzD3a=giWA4&_SNk=Q2H zbXbVSifLqhe16^hOYxk!G0#?0L6RJ(y?&7q$ey|ib%ZgM?HC)u^SMG*!Ng#GxAY;s zopP;(X?4L@X%Yu7Rgx4||3D~H>-08{Vt;+Yqj~{f@Z+Iq76d57nFqe>FmDql7g0gp zNQjIA&=5O4s>Qr>T)aW|!MGh1opv>>fjm++pZlhz*0p8=pD^ZaN#*B|KVR=f#URA& zd;Pf@^NC*Nq+te)axie9YOghw%**%n0L0s0H_jY0!?SB=>T>;?j6`48)vEFm`ohy5Srv=~R?+C}>kcDR=4&;^e@+rS)%Sf-{M)=Iw(cb*-x3M2c0q0XT+{8lyoISF zhrcg}MyC>W>Di`*zW`@GbskH@sPhmi)ynBQx5C`}GK22jFQeC0Wkp8SNsjll(g{QcR(cw{Y%)0vp_$> zF6)66kUeQoqzq4={J1XjXnd3@&0cw^3n;Skb3X)6t#;o1SRA{{YRn_LL~CAErz>pigaIzt@`IA|9Kx)T!PY5uu<-ww-=K*=yk-&vSbKDdmFuw@TF zLY-4#-GgNOlFUp(nJd!)uW^(d(_n3=I#pemZ?ZBBGCh`=5dGKy>VYsmej+>cL0^4vsPkbA7iVxikbx0DF zto8C7<)u9vyM@T1gReiyb4vH1bZ5B~RS}k+G5z{B6)jv8wX`A`hdJ#64GPrqOm4=> z(rwqt%uxpUB_(dBH?m-4j3%(lF@FGpl@PRqcL<2`C{KwcE4Bu)C@yfai72=~$~NYA e3!wH;z44*paJ7#VBn^kCe#T=!Eym1jp*0Y*+yglP literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha256_aes_128.img b/tools/cl_tests/hashcat_sha256_aes_128.img new file mode 100644 index 0000000000000000000000000000000000000000..1fcb454168e38bedefbf06a97e8dffe91da2416e GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha256_aes_256.img b/tools/cl_tests/hashcat_sha256_aes_256.img new file mode 100644 index 0000000000000000000000000000000000000000..aa380c6fd439221be37639eb773191ae6f458a60 GIT binary patch literal 2048 zcmV+b2>D3;#b+7&Az#C9W0P2KgA7TWEhr79y`VIKx8a8drX3fqCUx2+GLm-52rXK>+rV9^ z#KcQjck>M57~l&(Bj7saT2uGIPv2959rwbK7$%%1p03ZESt|zoBj+MfgIv10s{z66 zBOG(MwxkwGDQ3k+EFLNSmJ)dn(d~ zYNGWK01gTX@{25T^7O8!=BAYU+ZFifHa*ew?e3kF;vg;5Gxf&w+__Tl%jTD_fTk+KLuLT zaPthgH3;sBwcy;|iwqs2l+$#K(@PQF$bQ{s$t|{u&XaUyXY9o=hpp0deLI<(hlIYf z5qm7mEaGeDA8woY9KCCwSds+7Ar_jkD|nxyGvb6#4*Ix>=}>TRE_S@oc(yVYi7Y(Y z*~JI&YJRrZzL0?CN}e$GtkyNq$Wz3LD%T(mvek5Gh|A&uKL6`gFh>sYCES#4u{B6N z`$c+J;Xx>j&$qB#mDix^+G@|s<7JMt?+H6Yr&Zl?YEswqz$IJhAuV zM=O)|4qOL?=ka=&eb|dG3jzpGk$vj%MANw9L0q1J1%I?$g(Ar&Jz$%W)G*u*(^^rr{?UgBMh~n1;sVYT*K3NzZ~7iZhbu)gHnI@$r#~} z8E*P*YBN9~Jcz_0QS52|A!W$ua7__%J0HLF*u_cY)NvdwgnZ2;~ zOw!p(LHBb?eMRO(N)5 zD|UG_r4paGHykGi3eoB_)4)=*e;Q+I3AxT_IF)4Ou6i$lAN!_G!IZ}DsC9sP74jKj97=gK*Ya$|uC>uEO; zP;bwT7_~MOs{Mi#t3NI_hFNZD0*U@?l|s%Yn!qNZBNsY0oR=wcEH*SQL=obrLG_$$ zc&Up?V{a)imwl_lHlDHOix1$&&{x;b?F+u~S4S}0K9%fLl#+rtZYO~+Kd!q}SaQ^} z2@4zR^el3nywmbIeTYA!&u#np+C&nMJa^=5b)J-=pSg#89zfeo1Q@=NO+eN-A-WJZkADMn}O zC1fKNrJ{AEHty<}hzg}z7e3!R+P}LU9EQf8;Ox(U7N%vz>Ed{A3Px|v+hLNXX>s)& z(q3M9$}(4o71Q#pOEbQ#2szIjrlKqii@68yt_R~s3N@p59r+x{d$=K}dhHXDv=-ww z%MmrxT=i~y_^;?PV`W@qL|WF%ax=Vb8JCx=?jEUc;D*WdH~MgVG*@n!4ubieq~z)L zED0K_N?kjFsX1!;E-8CVWPk)tyT_dyh4NK>Y8tS%~^!Dy<~<)s$5TC6PY z^b`(o05J3e1hX&KFgGRNz#&YJ=$Oml?>Mr02Y$|$`#Og;DP@UF#9DR3!$_NNXxt%k zv6);TZSE-&P7rm}gJ#f_XIn#dD{@^~Q~Xt$lI9UOd%Yw8lUmYJxZQH%oFcy^m-jq} zG6>5#SlBFnrfnklHKa=$=Pl8}LNY+}!vvOGOS)>rT`(<*UZBP<%Av4#klJH{)Sbey er%7np!xS`o6_fFa61oR-Ay)*PH<#oadC!RjjObAS literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha256_serpent_128.img b/tools/cl_tests/hashcat_sha256_serpent_128.img new file mode 100644 index 0000000000000000000000000000000000000000..9bae9196dbabb08fad8a99460142d4a5730f3c8e GIT binary patch literal 2048 zcmV+b2>;L} z8cy6t7u7`_6P1<>2S*e!2fwUdaA))yzY+2pQuIOYQaf!-YmHpi<5XZ*dm0u64>SFn zhsS-2U!PS)e`J_w=*ANkshP!NpdfjoaE;!jGP2~ZJs;k;jvT6Y&&a!o#B3|>mc=E* zUnHsaUk>?eQ*F3FX2f5c7Y`{fWUQt+Tpo+R6R4xa?4E=4f%qAFPL#8P?vq9VdM$tY ze8QB}$~hlB_T^EFs)5Te<$)i@?O!v7?wkP-#(LlC%M(+NhT)Y{^s+vfW;aKcLeqNF z0>`6`0o|4EAovJ(H44-LisUG!^*mVn{u6xltQ;D%hkE0?G^dk!$?gc7MtfG5XjuJv zF02>w73R7w?rAdWOs>>N>aD}S7)1Oo3D{9LyXY~N}lD)W?K#^YPuQT3H)czjtxN^M`u5? z)eeq!%j8U6SH9zTiGbc2+%qk?)fTY|gyd4YZys2oY`y}r}8M50;|#9 z_4(F~ByUd0^I(q6cV$0YxjpyOGD?g_RV2H8b~`$7i~WXW%>ICPrl6FJ)CMMh;xxQHvWKakj+`$GfDZLplE8_$7r74l=F(4 z@&AhxLwSHiBc;(#!sTogZpE$NAI56UDaa}cKY;jK9-+Q=L1|GNa+BT}^)^S}z#Nv5 zi%#TX>@kn=4Z#u;AZ(&%tm;k|x!AITP(VMK)wWnv&7z1-%}K!p3p7Zi3rV+cxIOiF zXj*qfEkp$V_jA3q{Jl1s*z¥!CI2tTn^lZ8+AmKjB?j2io~$L^At=isBW?GPHS zBR0f4_WD38%2;7jkW=DXEK`F%J8IZk4qEAVEBe8jzIQ9)Fz1-k7W4uGzc=l7lzcre z-6fg~vwqV;UA9zW7MD)YBQV+iV33Syf`)-%2M!XzPe;rF&#MP5*s)-(7AU9>=HAEy zQa52M$HohVr#6TLV!~D0w;DO-PRFh#$C1IkQmLKYcw(FN^S&ad5%A=#^VfeCFM9@a zPgG8zzFIZK*?V+yC*cT1Ojz2`WT{1fzqpNjvLjLv1!RE6j&&7;Wdx!v+d@jLnpHYC zdL1f~@EJ)!_)gUZ>FDtqn0rv#p&ifN>!2TJ775fyp)>jbOWYgX1?l@!6~NL@UGu$? z?H7(@pC~u#l9}b>SwY)BY9HwLT=OH@bm>NNRk+AMzMRC&^5@A0m&8Oh+RFsbdiDX- zS{M=RgM^$@t6=@=1BABp`okotMJ43HqofDJr(kdu3m}} zuRh642IGp5BE2?+zYga_x^i$F4ZvGB|9U0WF+x%a_CR-%MejW_lYelAhy+mv205L; zEuu_T>ir_CI2}=}=h!}w#E@Bnvk3=i-d_QO%h5N}EM*Fu|A#tbx^!<5p3y)B=6fCr zPPy?8Wmb6rHiW}HfB<-})?Do785>>IE6aipd!XKkScoi$yrrfw2W{XDmOAw_IX0ok z=4dCK3Sh3O#RVYQVz^j4b~!xyC-~y8%H!9g1sdmp9$RJQ0rEBZL=x9>48gm$+SxpQ zLI>Ho*BhrdAS=t8YUOntY``o_Bv($SO zYMI)TaW2#7Zof&EbjcpkKBGs}2UcL(H#b4;0hQ`Td^}7`KuZOy*ScJ3DaSz;{+2O| zP%1M40Os$T24+wB39N_<0lFma-avmoG`@R9$Cp@s7+K^J#nD&$T{_=-i0o8{jh~D7d>U;D(Z$N(6t+c%f>s& z&&iC1%YbMf+%f7Qu`qau8|1ag#@dH`#)@WB>PKE?K|b2`c$N}_m+v$x0M^-3;p$Af z%SdSKE54+kF~mW)emr<0w-ry;^#YC8&#e9s{}BWFsX3+)IQK zSLswUF%~M8K+bX&q3T4NHq>3`(MyrZNzv0xnQ*Ap-bxr-wPkd|Dg_>LK5?LdA|M!n zfpa@4xd54+X;0!t+9@eu6Y2v@J{SQ~o@zXR*ZuFE-I|_0B<3vpN`)>dO0uO9nKQ}U e>|6Bz>X*Kzb~lTKik$N!K@B(!4V5*2{^fLPbNT83 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha256_serpent_192.img b/tools/cl_tests/hashcat_sha256_serpent_192.img new file mode 100644 index 0000000000000000000000000000000000000000..78f5a25022afd2cd4d5ef473b31371d1c185dabb GIT binary patch literal 2048 zcmV+b2>4vzwcz;^B)*W zs>UTm%gx+LnK3=%cG54SR&IWITH8@dn}z)ctQ6=ImoY*XW0CKghgg4R)bdPWyE)7C zaY6C@liwHLIFtNrvr&ReYlv%G^osyw&N3BcET4TZ)D|V94O~HA0#uXHY}33V#WhQ0 zQ0xNGX7qF;7-Ane@9(DDAH=q>F&ZJJRwbUG_6)s|oUpm01@-c`HH)dew0m7DV3v}1 z#We!)1#6Ao3PU?@{8aaaJAs7EjB2x-c4p0)omco4PwsCxrZvM?CX}{}h=<#q__)mf zkW@s{Wy&7Gf$jGHi}C}-548b`nMO={iEj_1>ej{~o81N0wran{x+2ucL|Jw1J?U+j zG^`Mrr`L>%Q@f%PD{0`~`%hC*ACY($b$Tof9gqx6Sc|XG)LrIN7-+ZWmLMYDc%Js( zfLdBk)|Fkn+=T3=?%A3yf}ftna3;}TgY6wq>Jwkp4E|up21QK=+2u_AVixR!Au7)< zjUsfNSX3c%bXcuO=%v`oU|jHuTW2;75Rs_;2ZKdQqp1KXO8^5lG?CbX*`gN95;>A` zhY-uIEgA8g)>4_c)8?gtwvGC&bEqK4?SP`gdNA^}GfvPeVGlrU;($1tQc7(LR13Bv z_P7~DE2%DxM;`H5ggBerVel}x;JzxgLKOCOOH&@6Vq+I_27qvM^|t zT$|=fZF;YnRcU-R@3W=m`i4W(sX2#YS70~tKidhGVgYD>9BrpF2<(hg)o!CzpL?4~ z$O!?NM+(7~rR|o7Q(e09m$?G+*VO%0u$}Dcs^OE0+b|U)C(SJ<)L=jvsmja*Y_j7< zo_M~HR$`nk$0u)_APP6A{A_LJZ#Cli~jZl&>E$&6??Zu~APSVHy;?s8-yuMg~Tu5Piaermjv z?dY@3MJc&=v8aVl&DFRK_!s7N0uq!{1gm0?(vEN(eS^~6wYI?p)CA#rhGMdj^1w-) zmTyG~>XH^5n5OJSQ_dOw@iz&4!Dkm?Jek=OCaaiB$(3f+xJ1_{4R2+-PXMdJ0UPBDb7e+Sv@=$I3JM8?ceW+5pdTFD*ow5q4m^M6P@=qJn0lGg^|;)1hx< zn``$D*CzqhFn5C>UvFw^VZ5h*9tJ+74-sh?rRP$jgsH1HxOhsZAjOQIx0?8#0zbQBo*O{OzqsfUJxydkkuGv|2?!v^Ut!GAXv zf0dv|YykLy z)Gc$gSt91tP0q+c`HISn2?7z~y+CSYWy)7an1=!^KvkhADjM!t?_$zSgZXKlb@K${ zf;z2`RqXRblxYiyRe?YvMsEo62=js5HasdGlX!MwRjClHmGUW9#lC+%ui8P?z6dns41g# eO3ociHwj7Sx0B#hQ-+mGCyo8>Xl0GKzXO%P3IPQG literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha256_serpent_256.img b/tools/cl_tests/hashcat_sha256_serpent_256.img new file mode 100644 index 0000000000000000000000000000000000000000..d4abea45361a7f72599757e5e5822ab0785bc3fe GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha256_twofish_256.img b/tools/cl_tests/hashcat_sha256_twofish_256.img new file mode 100644 index 0000000000000000000000000000000000000000..b412e36bd38cf4c8d6653277ab0fdd4b214cb89c GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha512_aes_256.img b/tools/cl_tests/hashcat_sha512_aes_256.img new file mode 100644 index 0000000000000000000000000000000000000000..2786b264895d4e85f1cbe97a85add6258fdcf717 GIT binary patch literal 2048 zcmV+b2>%vV3y-piC#1;6?G6K5s$UdMGA~||K05Qm}9PvVFi@sDCR|= zzBj;`Q@0d00Fel!>4Q^otShfm*BreJrd)2%d;qvQYv~wPl4r;+C%_-rhZ!_1^axjT z2kSsSmc(nh-&r781Oxz?rg;{f&bOAaEHFnk|G?g8|6wDAMKOIQTSn2z|ABdJbcB#8 z_uTkzwm}Fx@H+B=z*e-pi%9UO_JJ!|#0MIqQ$de>r(|?|PLu!R5{9}P`d@L*Y@wnC zA?dc2@Xzex#rpANj)5|>*nlcNG8@BzL;e*vQ5mbro!OiJrhYI;UUhVOZLg3h;}384 z%2k*#($$mhQP!kSI-@*tykCx_thRYE`<{V;eoX@JQ%w%y}(-g1b>?+}0H z!sD)CWmTmDIT?otxs7zO8j$v&*t62Sv%VKy?k$%j67CCazZ1gX0x^?SzF?e@?6HTm z>g*JOX&f>++xGzGYALZ-|5X!loix?ThSTk_=DEH6)sArrlP60B`xwMsly-2%p-iu2 z-vtQG1<~sGJOC8ebpP91G~hl`v~Kjpk6`3QRA08b&o{O-{7R<&QJnLO+#-_F^s(U3 zvTqQuC#9#yqlcFgI8NCv5#dQ6?7T<|tL6-+GKtjA-6pbuc0)Nw26d3w}l)i6FTtS;SMSLXCJ zAffnDw(N_WL}vWipd%8M(6Q3cgsuT$*ne1+QUdM$KrCLWIie`c8>Fe;9nYjWr|b7! zSZY{r`sSHb{xJE23O04ip66&X?{7HVaDUHel7F202IhuXr6wFNzwi;)s~|X;94)`O z);@GWTrOUS!P9?$be5~qhc!jN-Z+I?>JQLI3rQC+wFB+->uH|As90Pjc4Fe{kc#JD zV*gf}wAA}?i1F0m)uAUE0dIL>EVQ!IkgYRcJYDP|Xtj|ZKgsg(WhGkyst>i`u2`eY zR8c3oV1hBAkG;V!zpMK6(PJ9k;OW~)?Z2N^Rj4i3K0N&H6s{ICRXhKGYs7pKBxe|< z*TRTWn$KCcIoXA@W46R%a+BlW-3$I#Wm>z?JQ4P$)~XI24Ya2WV7__JJS($}U%MQXH#V1z71`pKG9li(`+_mmDlAPs{YNP} z{tGA9YGo2ZPFAmLa9Ny5VYcAHTjVSub4;bJXk}8Jp*Zg7%i>?`NZ0 zy8%BiO7NjLOpM~QS{6FBO6g^xoY_KN^61A-3q`W{El$v7szOy~+Q5^hqgHc&XA;&( z=BYi!!ldU#4jzDJ0o=mu8u0yMIu{y}U$38{$QOGsuo;(Mp5sOc1op~OOG#~Ff&(Wu>%D>9kcRH%Zl2B&MW&-!@*?A3m_^zFHgzpRhduihyH9q?)uWupw3+;} zyB(yW3)XIBy@!WEPhg^5@TB29^z0t`l0sE618ec5IhieuG{CEga7W_8>1wYwlT|Qc zFpp{Q`@(R3<4XPsb>dUx#t9@;^f0I@YRFb6NYM&TT9W+}sHLhmh{Gt1TNyZ`ABR&3 zvoL-&H2CFa>?gQG+OP`JT9Aez;WSZ07p9$d0p!elZYccLe#)1POchb~;{cBH%~vWx zIA+}Tfw`*Ex_P_FDjWHh8QGeN7dcPz1l2jrs;$p6|KCXi>=Hc-@1rrgviSq?b40h% z(7Z4_)|AEA`4ha{fNWh1%KU9Vy0Uw#%S|H|FH+AH!I;_LhYN;~VtYw{;TPwb6z#|u9Vr)~rArt3>7je2tQ+L$fBX!*CQ5|Tc|RUH!>sw^)K`hh zO9`305AeTy2@09jbDz>>Y&VJW$6##8!@^)U!k?8J-1w#W9a}naiZ&NmKeA91*%+9+ zEd)!<%A${vh7x8Wmj>XV)T$@l_FwM9+w-wW;hUpD6kV#T;Y0&FSDn(a|1OQ7XaICv zBlDHsZh_`f+qW|)2f29}eA{U+paM@cV)}?at|4Ji22)1p7AiJLP$R(<fyIR$A>$1Ca4hh=; literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha512_serpent_128.img b/tools/cl_tests/hashcat_sha512_serpent_128.img new file mode 100644 index 0000000000000000000000000000000000000000..0282f5ac367db9c57019a5d160f16123ad716e4c GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha512_twofish_192.img b/tools/cl_tests/hashcat_sha512_twofish_192.img new file mode 100644 index 0000000000000000000000000000000000000000..068d4037882ce4270ce317e9501f98bfdc9e20b7 GIT binary patch literal 2048 zcmV+b2>BlJk4!g`*$eI>N&7Ol_^ zH(`%~4gDM!ixI3W40<%V+ZKmdf&DT@f>fy{asg47eBWOogAM-980P>tUWHU~a} zdYbB99~dE$(Or??pT16>2`@>%{y}+Jy}n;E@(6>CavjIeRa73a`C|SWPqECKv&EOI zcd0;!rY)uo`W2u<+xN0g;LMm(j{+CQ5EpM}VMlu_bYtcKO43asIf3syI<>_;Q7> z@o%z?3qit~g?TPvBY4l@#R7HRJ3}XY=VtpaWEQ$vT$JauQLyfK1&kUJelnvUvdN%o zOhl~OcC1hr_xrc;okWy{`}4p<{`9S$l+E*r3uc>?pdz^1{b!KbzY$YkHb*a91!>km zxwj}1Iw7xMkboB~0(IxfvFQ_btFhVW=rm))5ho-o(lUT;l=Y^C5QG`y4_QwUaXmxv zD+Eq8oRL)Ad()G))ZcFsN?TCGaZE#x@bnyj4-t1Fupfs+0V`MTQQwu_Pe&y^fSneGaS9EU%Qk7p$rneSxsL-%8dL07&b%S$8pQ$bq=>Gf@ z2PwHiIA&|izMgS#WK0%XtBsBbbre~%ikk4+eA`e2D7~h;6$lNC%g(mFg0kVj z8OWwk^h&O%!LQ8)`-_k^qs2lH3~&Vo`9A~K({pHNF^jiv?jXXIk-lP?C#+<#j666< zf8MKI0if-|%QyGr`O}`1F_TaEwe8DEo2TD0j?`(_7cv$8_*ARcvSc`VFQG{z8JywM z>W|E~e;J*tfZro2Q8fsPXRG9{!&HrcPgFP1I~Sm_>8FC+3%+$!brof$b=WitXvN5| zH=-|>wF8iwn&kIv-FJ7i)O>{8pOD+y0>5El|d1!j9Mr zfaYr6dbyC-#kK|dM`XIHd5k>d43m@ULRLgV!?((lNMRv*v6!Q5SKO#RsQ}HHop3

1T~agMuC|>W9|6Hj=Rf9@%!vO1N{4%AQ}_0NvziTjMMY$_foP zJ-E_8p@c|IhDXJe91;>(#eV5;9*2g1>INK&_7lZ zcc{@A+2M3}Adq`pM{L>FqWe4vL0bFFr7CUkhoUVkmw`^833Ii(5A$2Ee~OWshF0VDTQu7e z*bIgtUz`P)HmA=VWof_$%N3?I>A&?$P*Y)9AMe#hoEGWQLFq0Iv97^ei*=&p$dbnH zvD_R2c>*T!pc9z-A=dnSdAh1ASu z@k9)s7tigax<$CkxsHe@Ib-mv$xI!VCMv`&>_CfwfZ5Z-kE>T=0q18D{U{^*Y7H+A zksoA_wLH8W6oIcEkawrWhrO5JN=p_B_6GsE$W(F;VNmcN#pWK$06{Wlh5XiO(syJ( zOmoy*<^2HZeMjmnyrW0?yR|)ov+_Oa(bOAxJqS9MQ`u8{E+k2p*YA%;i-)>}O-oxngL+3r)yTNrWAS3-k1?xp;qqeAwu>r+HO6 z@~szU+EU8`!p>z$Y?7_b(e3!0&*aUFiMuLY4RgV#f54ov!5FgUd9hku^g za>YA%V*H_gryLgz3wm0vn}?+A_6m5{D*r&Pw2?K#5VAt{4P5Epp1xY#vq+FhpQ*|$ z2`)3tq~mY+g>iCL+&zkL(4O(#JF!eq?^ggrDm1ejY3P%Jvtwv>W@7^Y7Iw2^R6hAv zU;kjagqvx-+vDKN?4$`Uk@Hz`D&b^uGW97H8vVK3t^0|H-y~lHSjh@6j~f7ko3tqX z4#>NSYR3Ciy?D@y_afx?ys2(Fl%eui(6VUJ^XNaABnvdKa$s2rI+5YV0Vy`Gt$22C z2>#lc=Tz>jRe!nyU2Xu@0uCD|w~fA%X9oIRpqk%fSWL}P^Brd7iG zXQl$3j@0J<``fK>ykGSvcYwdq!)9C=HU6=Ioh{DO*>+T!cKg!171_oDUK#^&61`3F eVCeIguBw${LGtQ`t@XcrZGu8B0a2dX&&sA4P!7TX literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_sha512_twofish_256.img b/tools/cl_tests/hashcat_sha512_twofish_256.img new file mode 100644 index 0000000000000000000000000000000000000000..1ed9a640f848c3f725400d53bd8139610ed49457 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_whirlpool_aes_192.img b/tools/cl_tests/hashcat_whirlpool_aes_192.img new file mode 100644 index 0000000000000000000000000000000000000000..89fdd60390b471824233ebf5461293e19b87ed57 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_whirlpool_serpent_128.img b/tools/cl_tests/hashcat_whirlpool_serpent_128.img new file mode 100644 index 0000000000000000000000000000000000000000..0a107729e333876fa9237f9dfa98c4af651e9764 GIT binary patch literal 2048 zcmV+b2>)#~O zrsxI{p5mdHEkjukXZnXSq~3#ioj^)I&`+k5#S1A~*KaGl(;nhyj6#ah--@k>5{<(1 zT(_;}Z0Q0p?BNuJl-SCfh;_`u&Vf02!GGClWM7uW+l5YeFhnb}u(<4$0p|H1GQ8U% zcO>*Aj6Za|Wey(W^IQ+Kl!UUVm~UbFcR(3wuE++Aww7zN*{#4V<3b6iXz4M&^uz6|&K|Rg zSmU6-rI&XT4!}-Mc7F=8`@oJLJ(~X1?y1#vEq=_ARf;A~SP3EvOggY@!PZ4A9XgUq z7?LPP8tkG0!7P&`$-CS=E3zre=YLTC;~Bby1$$H5=gzRc6j--& z=h7_5eytSAwOU846~9g^K|g>Lk^WEnyaqT7s3>#dB@}#q>lI5g)bO*_xsCzrEqobI_69N#s9 zukEjk$l-TBxIP;bg$p#26a7O? zlWIxmh}V8$Mofm+k{V~jhv0H4m&e;e5k|CEYt5`r*=_rS9uYDD>s$xD=-k@~ae>kb zPWbA0n6F43z>n@ZB^aE>O&xQN(meeRYp0(Bb8f(^L8>2 zE@@|cz?J~FZMgy)>k;8L0wrkj>`cdRJBvE;9R?gVzMH`V& zpZ;PTVG^0hLs}&y#9BuF^MDQX& zF@vUo^C;=MfWg9$R8j}rd?s;4k|7#DO zXxRSFfJDkVEF(qXP)K0P`(|*EsdOVoSTf~)ENIuz)xnzwjKR;lr;YmI`Egrl9iz9{ zv|EvynMyc;p8YPoFcr#tO-!hd(mM(auwp4SW@#DdNYO&KgXOT%^LbKaneo~uxq2Pp z=$6df&P1CH4l{n9#wYaS6B^4C%ptqSw-z8};T<{qhf`NEOrpKV&sNWNfb za=^wqRw!YIg#SF}EErUk%c7|ET%9-By{E`z+y=C95bY%0IP-Y1LD}7~KR+A+oe@Z- zQNATe5y}qzjK#|>HBF|aTGG%i6Tb~pr(%v})gNv%66R5U_Y zZ@knng0u{CP>l)6hoT>y+1p?Xe5O#&dAggFH?sDsq)LN7+Hr@5hw&!D%-*`{p@t8iQ-t zMAqNd6>GO9wBwf~j=7y$-n_n1RW;ajuR(*-D}EC(!FvOmrU2ZrKhd172JJKK`6oYp z8Qob_=M!~PcRmtzRv}yEKpQ(OfUp7961l^;XAM-D$ugtQl1+OHJ>xtI0`wCAU%&I4 z&4&fHlj3n0h#_C%a?bg-$T@J3$vRX=6}SubQ&&8f}e3MTr->TR9kqv94pVC5a$Okv@Sm2lxz+o3rKNm5LFHE zzo-0)2he#Ps3!p~hIphxgPo1a;L1tTG8xUwWsxAFa>hCla8eU&&K}AKKo12oAgN1$ z9T{JaS&D&7H^8lu)U9S3R3|eh!*@JG+VQGAs#g1XBF(8URP#|DLVvrBoellNS}gWTsYD$`bE(a=DkfJQmLJ91O9IGz0yXJfagxqq-&qA(1%x eI$k^7GCN+>0?A$fi7;M7TYi#tHiQENx*={K4e3Py literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_whirlpool_serpent_192.img b/tools/cl_tests/hashcat_whirlpool_serpent_192.img new file mode 100644 index 0000000000000000000000000000000000000000..2c862dee7201bfa2210c66bcbd88ff193fea7518 GIT binary patch literal 2048 zcmV+b2>J(+9TY86B{_!q7_BlZ^0Aot0My$yhz;+aL?@_{dR@(Foo9OENRZ< zmm=eN9*3#kF|4(jA{>NJ5R7;2w!M=P5sh9M9h(NQ_mhtgg=E3t){kx4kb9&*EcPRm zh@=08u6Z-G=E0i(=5hatg++(6E= z-7T|E-qA*!qvXi9amr*~?ux5{#kl#d~qDsrT#15<5GY!W}(%&J--hLz8Dx+ zs!Kr*ukwKGHvuygJM$j5f$HV2aDE{8N}S#$nUkSgV_qFo)CNq$j`{wNerwOYQyN(V z4lTmvx!lJE!J+#`V(Q74E^lpnlg&Q+!UN?_JShqSK_ibj$x&vsc||aQKg(7lD>p`{ zrS%8yt7NNu4vqtOuOzT%Vpf|gzoZXxD$d;DZ57@MaaS>JN30-Jfpxd z30Azfd8?z7%M=rU@kXK0&=Z_U4CL3*t{fhUAD^j(5V5%MHX(~PNbY9rumgtE(x)t= zX5|<#C~-ysz20@!4jb!~*IK8nG@eoB5U0W`cdCqbU4o5uhK+l332!oBF?jX@0N8y; zf}~QYV(|!)iM&M;IBxUoW0}_g2PVw#adVSvZrn@vXlru0S(ATYN%{YoD25Hu?eGfk zTCU6g!2cwGrsoj9_-F%gvQ~gAokUN0!?VhHpgWi;?%_@Z`Zm3K-8RK((ryv-Tx*hE zRX{r#u9?TyH^v-g<@28hK|IuQg;(ogx`e4AlmN={pYFLZ`{UfN zku$7IKG#AJgWMXxTga1Y@AtLaPFGx~1F$!htghZF`3^&u?nb#cMRI++9aZZNysSWO zYy@%gX%yo^_QBetqFAKf5`~{$@x&pvq)k~Kucv>}LiM>svJwpYS{B0_WS-n2pNR4h z%K6^C1IXgYMaqJL{87k z>|=fg)Z}*=0%gkqLG8Y&kDT>cd;O9%lAw&$HNnj^+CKb^>1=-s1erFkw-vC`H{XdM z*)F_=gg}Q&cpS+2COKZSB(U_EV!*1TZP;u%fa@@hZi4xP>-;L*uS#sTz{OwOartO{ z>Uy!?zDagp3z-; z7ZQsD`^*E51Q{m$qqVzl(4<*?Cu)4yqp?AqO z=J>5uLRn`kPs>u630ih&voJtAeNHL}CK-DlHj=on7q;2c=)62dCVl|wab6k2i_kDTCN z=;I$p)hG5P-OY(vvyr7jFnkR(4Q5@;_FOcgj^TbW9_wfAFo^0O1d&tZAWO2S3rT=8 zu%B|RbKn!hLo-6Vw^Cwr$D$*}JLz-Lq)y8!y5>=(>EcCjvK@EXQiMC=P?8@yoNmZ@b>|@_D zotRu2^D@fX&_pV(AIk-QE+FdD#L|Pb7?gSEK^I{<6X5!U;!;8_@+wu->q))j6j&~q za$azAWl>3fGwCR|ESd$DSQQn}=aO>NH3IvBn}G9$rBT`WF;%#WZH}X?&iRF6jg64c eo<%QBXr?`%k*v^RB39_U+EfaYHx@EXOl2|cK?a5Z literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_whirlpool_serpent_256.img b/tools/cl_tests/hashcat_whirlpool_serpent_256.img new file mode 100644 index 0000000000000000000000000000000000000000..2e63be48461f745a8fdedcf35249155392f34dee GIT binary patch literal 2048 zcmV+b2>^#XblH$D1#Zj z7}`oIXSPOp;$oEERJZ_3*x-Ism8`bTgtl;dkGO!7S}`{3tt6 zoj%#n|HJYn5sNYXEr2p2{4$^ZwvYNw`Zc`bsFcozxRS>g=8nvdHg+?~Fi_{YPg8UD z$Sx4WpB>wdjt=Mf{p2E0CDQy& zVSR{NwD^|8kLQ4jIp}FwjEX-B-is>AB0NFWqHXYfadhmNn6P)sqrJf38XLEG6&$v{ zJ54_2(A@fEo(E72vR=T#F;9pvu|1eTSS&S`AV+GS@-cC%{z zo#WtLdgSP?X8zqU=Qz(*!@;qPr3IJjcan;mvwtOer)6x0i+oi+12UDn`tDDA2Z}jW zzjrNH69YJuObyF@I8ds?Q3DUT9vko6l>?!6wa>17Bov6!dY~h4KAU|_+4RMlEuBjRA3 zY)%=eE~!8lC!UE=jkqDnx64Adn?4u-fX+m_JYY{@YoW^DAT_w_`$-LNkZ#pa2{YVs zqsCAdbI5-gFv@zw2|2@WhC}Q$@JygjXIH_5R&zNu@TWTiGzC)BUvFntvVkqadnU`) zQ-eTD1fSLl@aj#-W;TSqKJf9+hF)A;SHH1UFT+0VX+3!?;kVj~s-U}iPD8$Mb8?%0 zr18!FFe-FAp@de>hAPPh_$?C@@?(*#x3;BQ13kqq`VxBpYsIY2v$j}_aW-RHUKYT= zV|=-xD@|)#?cg4jppqg0rjRtLeowH{=*SdAWUoNP*#9&hvtfExyQQzvEp1ld*oD-N zk|RY*Q0xkR^Szz?v4ffOZV}Fa=G$}|bhuApH z6{=Na(mY-Ac8`~GC*1>GBZM4oZ%HSUHEQWEL+md8JAN=p20;2?cW*>fei>NdyV0J! zi5$y6v`W2Wt{G(BQY>8Ch|XMfNS^eyzhMc5d@jXA6K8`bGWY4Qf~GgOFL)m|Jt+K7 z>fdE;Ux{EB?yKqOL2~~JsBJF5S%ANr$C2?~DSN;545iXi>b5K(*2bqJCL>FaoNGVY zo7*vQ%YOj()bCG?ZiQ!st(@#(Xp+-Eq;UW{eSqIiArHHbd7qV4J~|6^r%~%^gRJTD zMjC)gFOg7=K>-|L1Q{7}KIQdu<|A^YQw86;ovOaw_<&7OSxvl;3oqBh;d{tkc!uGF zfDw0Mt-mD*`w(?BGlo!{{auGtVbBrw|7E(Zfr#J|KmOr$wJ9uCwSPj@2*9#vl|SYd zHF)UlErDAM^zFSf7ej|X+n)-+Bh29n``9jFt#3K4E{^O@e&X(De{)u}gho&jB2fTMFy-c0~s_tBj=&OyF-$L+fMIjR|*% zg9`~Uf1t_G#Tf43|)wF+FY##4gbo$ z^0w{(voPkNA#j>exoC&BSr45i1+g=uo;^5z44Nt0Jt1^Kt%1IjqzzDrybI-xb(rHw zsd1;4E}l}KUCD<1tPuM{Z%9;J2u>52oMdnEY4L>eG>Kp1@`uncoUP?41|q$;-6qa? zF0d=Dn48NW>4q&+=8%pGWwR%(+;yb?5CkAXj-trX(o(A_25|CWS9`Gx1p#F(t4)sm>cq_0z=54qgmp zKhI4s`Y1qfDfRJP($E#sjKCMpOli5@A>~G&&>_?ZeAjE2)Z5WC8BL6udTn9COt5L~ zt{e-0G=IM>NQP+(>0L=kq*ht9yR4pDeUn!vmTnD$yT56v;~R)d%2s$hCi<_uV5F%C z*@IhVh_FnfGQsMPSQd5ExMPu|l<)OeLiY}Z!SlOb1f_>*YN{t%$A) zIS@}NCfrJZT)QBKXUZ$iI5T3Zl8wxV>FBLhWPw_CIBJZ!nb;9E8#@Yvr2wn%K>*am ec$}{Yj1pfgu}k)VzGMCoteK?hOvTGiL7xS>uJnok literal 0 HcmV?d00001 diff --git a/tools/cl_tests/hashcat_whirlpool_twofish_128.img b/tools/cl_tests/hashcat_whirlpool_twofish_128.img new file mode 100644 index 0000000000000000000000000000000000000000..263a3fa56145e3aedd97f169ea7c394342bc9fd7 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/tools/cryptoloop2hashcat.py b/tools/cryptoloop2hashcat.py index 79d8ad7fc..b6c51671d 100644 --- a/tools/cryptoloop2hashcat.py +++ b/tools/cryptoloop2hashcat.py @@ -98,5 +98,4 @@ else: f.close() -print('Hashcat mode: ' + str(hash_mode)) -print('Hash: $cryptoapi$' + str(kern_type) + '$' + str(key_size) + '$03000000000000000000000000000000$00000000000000000000000000000000$' + ct) +print('$cryptoapi$' + str(kern_type) + '$' + str(key_size) + '$03000000000000000000000000000000$00000000000000000000000000000000$' + ct) diff --git a/tools/test.sh b/tools/test.sh index 91e218514..8611c91c0 100755 --- a/tools/test.sh +++ b/tools/test.sh @@ -24,10 +24,13 @@ NOCHECK_ENCODING="16800 22000" # LUKS mode has test containers LUKS_MODE="14600" +# Cryptoloop mode which have test containers +CL_MODES="14511 14512 14513 14521 14522 14523 14531 14532 14533 14541 14542 14543 14551 14552 14553" + # missing hash types: 5200 HASH_TYPES=$(ls "${TDIR}"/test_modules/*.pm | sed -E 's/.*m0*([0-9]+).pm/\1/') -HASH_TYPES="${HASH_TYPES} ${TC_MODES} ${VC_MODES} ${LUKS_MODE}" +HASH_TYPES="${HASH_TYPES} ${TC_MODES} ${VC_MODES} ${LUKS_MODE} ${CL_MODES}" HASH_TYPES=$(echo -n "${HASH_TYPES}" | tr ' ' '\n' | sort -u -n | tr '\n' ' ') VECTOR_WIDTHS="1 2 4 8 16" @@ -156,24 +159,23 @@ function is_in_array() function init() { if [ "${PACKAGE}" -eq 1 ]; then - echo "[ ${OUTD} ] > Generate tests for hash type $hash_type." - else - echo "[ ${OUTD} ] > Init test for hash type $hash_type." - fi rm -rf "${OUTD}/${hash_type}.sh" "${OUTD}/${hash_type}_passwords.txt" "${OUTD}/${hash_type}_hashes.txt" - # Exclude TrueCrypt and VeraCrypt testing modes + # Exclude TrueCrypt, VeraCrypt and CryptoLoop testing modes if is_in_array "${hash_type}" ${TC_MODES}; then return 0 fi if is_in_array "${hash_type}" ${VC_MODES}; then return 0 fi + if is_in_array "${hash_type}" ${CL_MODES}; then + return 0 + fi if [ "${hash_type}" -eq ${LUKS_MODE} ]; then @@ -2375,6 +2377,176 @@ function attack_7() fi } +function cryptoloop_test() +{ + hashType=$1 + keySize=$2 + CMD="unset" + + mkdir -p ${OUTD}/cl_tests + + case $hashType in + + 14511) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha1_aes_${keySize}.img --hash sha1 --cipher aes --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha1_aes_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha1_aes_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14512) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha1_serpent_${keySize}.img --hash sha1 --cipher serpent --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha1_serpent_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha1_serpent_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14513) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha1_twofish_${keySize}.img --hash sha1 --cipher twofish --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha1_twofish_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha1_twofish_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14521) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha256_aes_${keySize}.img --hash sha256 --cipher aes --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha256_aes_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha256_aes_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14522) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha256_serpent_${keySize}.img --hash sha256 --cipher serpent --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha256_serpent_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha256_serpent_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14523) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha256_twofish_${keySize}.img --hash sha256 --cipher twofish --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha256_twofish_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha256_twofish_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14531) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha512_aes_${keySize}.img --hash sha512 --cipher aes --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha512_aes_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha512_aes_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14532) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha512_serpent_${keySize}.img --hash sha512 --cipher serpent --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha512_serpent_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha512_serpent_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14533) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_sha512_twofish_${keySize}.img --hash sha512 --cipher twofish --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_sha512_twofish_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_sha512_twofish_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14541) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_ripemd160_aes_${keySize}.img --hash ripemd160 --cipher aes --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_ripemd160_aes_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_ripemd160_aes_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14542) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_ripemd160_serpent_${keySize}.img --hash ripemd160 --cipher serpent --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_ripemd160_serpent_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_ripemd160_serpent_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14543) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_ripemd160_twofish_${keySize}.img --hash ripemd160 --cipher twofish --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_ripemd160_twofish_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_ripemd160_twofish_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14551) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_whirlpool_aes_${keySize}.img --hash whirlpool --cipher aes --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_whirlpool_aes_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_whirlpool_aes_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14552) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_whirlpool_serpent_${keySize}.img --hash whirlpool --cipher serpent --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_whirlpool_serpent_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_whirlpool_serpent_${keySize}.hash hashca?l" + ;; + esac + ;; + + 14553) + case $keySize in + 128|192|256) + ${TDIR}/cryptoloop2hashcat.py --source ${TDIR}/cl_tests/hashcat_whirlpool_twofish_${keySize}.img --hash whirlpool --cipher twofish --keysize ${keySize} > ${OUTD}/cl_tests/hashcat_whirlpool_twofish_${keySize}.hash + CMD="./${BIN} ${OPTS} -a 3 -m 14500 ${OUTD}/cl_tests/hashcat_whirlpool_twofish_${keySize}.hash hashca?l" + ;; + esac + ;; + esac + + if [ ${#CMD} -gt 5 ]; then + echo "> Testing hash type $hashType with attack mode 3, markov ${MARKOV}, single hash, Device-Type ${TYPE}, Kernel-Type ${KERNEL_TYPE}, Vector-Width ${VECTOR}, Key-Size ${keySize}" >> "${OUTD}/logfull.txt" 2>> "${OUTD}/logfull.txt" + + output=$(${CMD} 2>&1) + + ret=${?} + + echo "${output}" >> "${OUTD}/logfull.txt" + + cnt=1 + e_nf=0 + msg="OK" + + if [ ${ret} -ne 0 ]; then + e_nf=1 + msg="Error" + fi + + echo "[ ${OUTD} ] [ Type ${hash_type}, Attack 3, Mode single, Device-Type ${TYPE}, Kernel-Type ${KERNEL_TYPE}, Vector-Width ${VECTOR}, Key-Size ${keySize} ] > $msg : ${e_nf}/${cnt} not found" + + status ${ret} + fi +} + function truecrypt_test() { hashType=$1 @@ -3072,7 +3244,9 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then if [ "${TMP_HT}" -ne ${LUKS_MODE} ]; then if ! is_in_array "${TMP_HT}" ${TC_MODES}; then if ! is_in_array "${TMP_HT}" ${VC_MODES}; then - perl tools/test.pl single "${TMP_HT}" >> "${OUTD}/all.sh" + if ! is_in_array "${TMP_HT}" ${CL_MODES}; then + perl tools/test.pl single "${TMP_HT}" >> "${OUTD}/all.sh" + fi fi fi fi @@ -3087,7 +3261,9 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then # Exclude TrueCrypt and VeraCrypt testing modes if ! is_in_array "${TMP_HT}" ${TC_MODES}; then if ! is_in_array "${TMP_HT}" ${VC_MODES}; then - perl tools/test.pl single "${TMP_HT}" >> "${OUTD}/all.sh" + if ! is_in_array "${TMP_HT}" ${CL_MODES}; then + perl tools/test.pl single "${TMP_HT}" >> "${OUTD}/all.sh" + fi fi fi fi @@ -3197,7 +3373,6 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then veracrypt_test 4 # camellia (alternative cascade) veracrypt_test 5 # kuznyechik veracrypt_test 6 # kuznyechik (alternative cascade) - elif is_in_array "${hash_type}" ${TC_MODES}; then # run truecrypt tests truecrypt_test "${hash_type}" 0 @@ -3213,20 +3388,27 @@ if [ "${PACKAGE}" -eq 0 ] || [ -z "${PACKAGE_FOLDER}" ]; then else - # run attack mode 0 (stdin) - if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 0 ]; then attack_0; fi + if is_in_array "${hash_type}" ${CL_MODES}; then + # run cryptoloop tests + cryptoloop_test "${hash_type}" 128 + cryptoloop_test "${hash_type}" 192 + cryptoloop_test "${hash_type}" 256 + else + # run attack mode 0 (stdin) + if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 0 ]; then attack_0; fi - # run attack mode 1 (combinator) - if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 1 ]; then attack_1; fi + # run attack mode 1 (combinator) + if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 1 ]; then attack_1; fi - # run attack mode 3 (bruteforce) - if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 3 ]; then attack_3; fi + # run attack mode 3 (bruteforce) + if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 3 ]; then attack_3; fi - # run attack mode 6 (dict+mask) - if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 6 ]; then attack_6; fi + # run attack mode 6 (dict+mask) + if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 6 ]; then attack_6; fi - # run attack mode 7 (mask+dict) - if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 7 ]; then attack_7; fi + # run attack mode 7 (mask+dict) + if [ ${ATTACK} -eq 65535 ] || [ ${ATTACK} -eq 7 ]; then attack_7; fi + fi fi fi @@ -3245,9 +3427,7 @@ fi # fix logfile if [ "${PACKAGE}" -eq 0 ]; then - cat -vet "${OUTD}/logfull.txt" | sed -e 's/\^M \^M//g' | sed -e 's/\$$//g' > "${OUTD}/test_report.log" - fi rm -rf "${OUTD}/logfull.txt" @@ -3261,11 +3441,13 @@ if [ "${PACKAGE}" -eq 1 ]; then copy_luks_dir=0 copy_tc_dir=0 copy_vc_dir=0 + copy_cl_dir=0 if [ "${HT}" -eq 65535 ]; then copy_luks_dir=1 copy_tc_dir=1 copy_vc_dir=1 + copy_cl_dir=1 else for TMP_HT in $(seq "${HT_MIN}" "${HT_MAX}"); do if [ "${TMP_HT}" -eq "${LUKS_MODE}" ]; then @@ -3274,6 +3456,8 @@ if [ "${PACKAGE}" -eq 1 ]; then copy_tc_dir=1 elif is_in_array "${TMP_HT}" ${VC_MODES}; then copy_vc_dir=1 + elif is_in_array "${TMP_HT}" ${CL_MODES}; then + copy_cl_dir=1 fi done fi @@ -3293,6 +3477,11 @@ if [ "${PACKAGE}" -eq 1 ]; then cp ${TDIR}/vc_tests/* "${OUTD}/vc_tests/" fi + if [ "${copy_cl_dir}" -eq 1 ]; then + mkdir "${OUTD}/cl_tests/" + cp ${TDIR}/cl_tests/* "${OUTD}/cl_tests/" + fi + # if we package from a given folder, we need to check if e.g. the files needed for multi mode are there if [ -n "${PACKAGE_FOLDER}" ]; then