From 7d4bea41a06a4536d5094c32809df0c216a22e70 Mon Sep 17 00:00:00 2001 From: jsteube Date: Thu, 21 Mar 2019 23:00:38 +0100 Subject: [PATCH] Get rid of OpenCL/inc_hash_constants.h and OpenCL/inc_hash_functions.cl --- OpenCL/amp_a0.cl | 5 +- OpenCL/amp_a1.cl | 4 +- OpenCL/amp_a3.cl | 5 +- OpenCL/inc_cipher_aes.cl | 20 - OpenCL/inc_cipher_camellia.cl | 5 - OpenCL/inc_cipher_des.cl | 3 - OpenCL/inc_cipher_kuznyechik.cl | 5 - OpenCL/inc_cipher_serpent.cl | 6 - OpenCL/inc_cipher_twofish.cl | 9 - OpenCL/inc_common.cl | 1450 +++++++++++- OpenCL/inc_hash_functions.cl | 406 ---- OpenCL/inc_hash_md4.cl | 89 +- OpenCL/inc_hash_md5.cl | 102 +- OpenCL/inc_hash_ripemd160.cl | 113 +- OpenCL/inc_hash_sha1.cl | 105 +- OpenCL/inc_hash_sha224.cl | 96 +- OpenCL/inc_hash_sha256.cl | 97 +- OpenCL/inc_hash_sha384.cl | 228 +- OpenCL/inc_hash_sha512.cl | 98 +- OpenCL/inc_hash_streebog256.cl | 31 - OpenCL/inc_hash_streebog512.cl | 31 - OpenCL/inc_hash_whirlpool.cl | 41 - OpenCL/inc_luks_aes.cl | 62 - OpenCL/inc_luks_af.cl | 16 - OpenCL/inc_luks_essiv.cl | 3 - OpenCL/inc_luks_serpent.cl | 62 - OpenCL/inc_luks_twofish.cl | 62 - OpenCL/inc_luks_xts.cl | 1 - OpenCL/inc_simd.cl | 3 - OpenCL/inc_truecrypt_crc32.cl | 2 - OpenCL/inc_truecrypt_keyfile.cl | 1 - OpenCL/inc_truecrypt_xts.cl | 15 - OpenCL/inc_types.cl | 1668 ------------- OpenCL/{inc_hash_constants.h => inc_types.h} | 198 ++ OpenCL/{inc_vendor.cl => inc_vendor.h} | 0 OpenCL/inc_veracrypt_xts.cl | 11 - OpenCL/m00000_a0-optimized.cl | 7 +- OpenCL/m00000_a0-pure.cl | 6 +- OpenCL/m00000_a1-optimized.cl | 6 +- OpenCL/m00000_a1-pure.cl | 6 +- OpenCL/m00000_a3-optimized.cl | 6 +- OpenCL/m00000_a3-pure.cl | 6 +- OpenCL/m00010_a0-optimized.cl | 7 +- OpenCL/m00010_a0-pure.cl | 6 +- OpenCL/m00010_a1-optimized.cl | 7 +- OpenCL/m00010_a1-pure.cl | 6 +- OpenCL/m00010_a3-optimized.cl | 7 +- OpenCL/m00010_a3-pure.cl | 6 +- OpenCL/m00020_a0-optimized.cl | 7 +- OpenCL/m00020_a0-pure.cl | 6 +- OpenCL/m00020_a1-optimized.cl | 7 +- OpenCL/m00020_a1-pure.cl | 6 +- OpenCL/m00020_a3-optimized.cl | 7 +- OpenCL/m00020_a3-pure.cl | 6 +- OpenCL/m00030_a0-optimized.cl | 7 +- OpenCL/m00030_a0-pure.cl | 6 +- OpenCL/m00030_a1-optimized.cl | 7 +- OpenCL/m00030_a1-pure.cl | 6 +- OpenCL/m00030_a3-optimized.cl | 7 +- OpenCL/m00030_a3-pure.cl | 6 +- OpenCL/m00040_a0-optimized.cl | 7 +- OpenCL/m00040_a0-pure.cl | 6 +- OpenCL/m00040_a1-optimized.cl | 7 +- OpenCL/m00040_a1-pure.cl | 6 +- OpenCL/m00040_a3-optimized.cl | 7 +- OpenCL/m00040_a3-pure.cl | 6 +- OpenCL/m00050_a0-optimized.cl | 6 +- OpenCL/m00050_a0-pure.cl | 6 +- OpenCL/m00050_a1-optimized.cl | 6 +- OpenCL/m00050_a1-pure.cl | 6 +- OpenCL/m00050_a3-optimized.cl | 6 +- OpenCL/m00050_a3-pure.cl | 6 +- OpenCL/m00060_a0-optimized.cl | 6 +- OpenCL/m00060_a0-pure.cl | 6 +- OpenCL/m00060_a1-optimized.cl | 6 +- OpenCL/m00060_a1-pure.cl | 6 +- OpenCL/m00060_a3-optimized.cl | 6 +- OpenCL/m00060_a3-pure.cl | 6 +- OpenCL/m00100_a0-optimized.cl | 7 +- OpenCL/m00100_a0-pure.cl | 6 +- OpenCL/m00100_a1-optimized.cl | 7 +- OpenCL/m00100_a1-pure.cl | 6 +- OpenCL/m00100_a3-optimized.cl | 7 +- OpenCL/m00100_a3-pure.cl | 6 +- OpenCL/m00110_a0-optimized.cl | 7 +- OpenCL/m00110_a0-pure.cl | 6 +- OpenCL/m00110_a1-optimized.cl | 7 +- OpenCL/m00110_a1-pure.cl | 6 +- OpenCL/m00110_a3-optimized.cl | 7 +- OpenCL/m00110_a3-pure.cl | 6 +- OpenCL/m00120_a0-optimized.cl | 7 +- OpenCL/m00120_a0-pure.cl | 6 +- OpenCL/m00120_a1-optimized.cl | 7 +- OpenCL/m00120_a1-pure.cl | 6 +- OpenCL/m00120_a3-optimized.cl | 7 +- OpenCL/m00120_a3-pure.cl | 6 +- OpenCL/m00130_a0-optimized.cl | 7 +- OpenCL/m00130_a0-pure.cl | 6 +- OpenCL/m00130_a1-optimized.cl | 7 +- OpenCL/m00130_a1-pure.cl | 6 +- OpenCL/m00130_a3-optimized.cl | 7 +- OpenCL/m00130_a3-pure.cl | 6 +- OpenCL/m00140_a0-optimized.cl | 7 +- OpenCL/m00140_a0-pure.cl | 6 +- OpenCL/m00140_a1-optimized.cl | 7 +- OpenCL/m00140_a1-pure.cl | 6 +- OpenCL/m00140_a3-optimized.cl | 7 +- OpenCL/m00140_a3-pure.cl | 6 +- OpenCL/m00150_a0-optimized.cl | 6 +- OpenCL/m00150_a0-pure.cl | 6 +- OpenCL/m00150_a1-optimized.cl | 6 +- OpenCL/m00150_a1-pure.cl | 6 +- OpenCL/m00150_a3-optimized.cl | 6 +- OpenCL/m00150_a3-pure.cl | 6 +- OpenCL/m00160_a0-optimized.cl | 6 +- OpenCL/m00160_a0-pure.cl | 6 +- OpenCL/m00160_a1-optimized.cl | 6 +- OpenCL/m00160_a1-pure.cl | 6 +- OpenCL/m00160_a3-optimized.cl | 6 +- OpenCL/m00160_a3-pure.cl | 6 +- OpenCL/m00200_a0-optimized.cl | 6 +- OpenCL/m00200_a1-optimized.cl | 6 +- OpenCL/m00200_a3-optimized.cl | 6 +- OpenCL/m00300_a0-optimized.cl | 7 +- OpenCL/m00300_a0-pure.cl | 6 +- OpenCL/m00300_a1-optimized.cl | 7 +- OpenCL/m00300_a1-pure.cl | 6 +- OpenCL/m00300_a3-optimized.cl | 7 +- OpenCL/m00300_a3-pure.cl | 6 +- OpenCL/m00400-optimized.cl | 6 +- OpenCL/m00400-pure.cl | 6 +- OpenCL/m00500-optimized.cl | 6 +- OpenCL/m00500-pure.cl | 6 +- OpenCL/m00600_a0-optimized.cl | 6 +- OpenCL/m00600_a1-optimized.cl | 6 +- OpenCL/m00600_a3-optimized.cl | 6 +- OpenCL/m00900_a0-optimized.cl | 7 +- OpenCL/m00900_a0-pure.cl | 6 +- OpenCL/m00900_a1-optimized.cl | 7 +- OpenCL/m00900_a1-pure.cl | 6 +- OpenCL/m00900_a3-optimized.cl | 7 +- OpenCL/m00900_a3-pure.cl | 6 +- OpenCL/m01000_a0-optimized.cl | 7 +- OpenCL/m01000_a0-pure.cl | 6 +- OpenCL/m01000_a1-optimized.cl | 7 +- OpenCL/m01000_a1-pure.cl | 6 +- OpenCL/m01000_a3-optimized.cl | 7 +- OpenCL/m01000_a3-pure.cl | 6 +- OpenCL/m01100_a0-optimized.cl | 6 +- OpenCL/m01100_a0-pure.cl | 6 +- OpenCL/m01100_a1-optimized.cl | 7 +- OpenCL/m01100_a1-pure.cl | 6 +- OpenCL/m01100_a3-optimized.cl | 7 +- OpenCL/m01100_a3-pure.cl | 6 +- OpenCL/m01300_a0-optimized.cl | 7 +- OpenCL/m01300_a0-pure.cl | 6 +- OpenCL/m01300_a1-optimized.cl | 7 +- OpenCL/m01300_a1-pure.cl | 6 +- OpenCL/m01300_a3-optimized.cl | 7 +- OpenCL/m01300_a3-pure.cl | 6 +- OpenCL/m01400_a0-optimized.cl | 7 +- OpenCL/m01400_a0-pure.cl | 6 +- OpenCL/m01400_a1-optimized.cl | 7 +- OpenCL/m01400_a1-pure.cl | 6 +- OpenCL/m01400_a3-optimized.cl | 7 +- OpenCL/m01400_a3-pure.cl | 6 +- OpenCL/m01410_a0-optimized.cl | 7 +- OpenCL/m01410_a0-pure.cl | 6 +- OpenCL/m01410_a1-optimized.cl | 7 +- OpenCL/m01410_a1-pure.cl | 6 +- OpenCL/m01410_a3-optimized.cl | 7 +- OpenCL/m01410_a3-pure.cl | 6 +- OpenCL/m01420_a0-optimized.cl | 7 +- OpenCL/m01420_a0-pure.cl | 6 +- OpenCL/m01420_a1-optimized.cl | 7 +- OpenCL/m01420_a1-pure.cl | 6 +- OpenCL/m01420_a3-optimized.cl | 7 +- OpenCL/m01420_a3-pure.cl | 6 +- OpenCL/m01430_a0-optimized.cl | 7 +- OpenCL/m01430_a0-pure.cl | 6 +- OpenCL/m01430_a1-optimized.cl | 7 +- OpenCL/m01430_a1-pure.cl | 6 +- OpenCL/m01430_a3-optimized.cl | 7 +- OpenCL/m01430_a3-pure.cl | 6 +- OpenCL/m01440_a0-optimized.cl | 7 +- OpenCL/m01440_a0-pure.cl | 6 +- OpenCL/m01440_a1-optimized.cl | 7 +- OpenCL/m01440_a1-pure.cl | 6 +- OpenCL/m01440_a3-optimized.cl | 7 +- OpenCL/m01440_a3-pure.cl | 6 +- OpenCL/m01450_a0-optimized.cl | 6 +- OpenCL/m01450_a0-pure.cl | 6 +- OpenCL/m01450_a1-optimized.cl | 6 +- OpenCL/m01450_a1-pure.cl | 6 +- OpenCL/m01450_a3-optimized.cl | 6 +- OpenCL/m01450_a3-pure.cl | 6 +- OpenCL/m01460_a0-optimized.cl | 6 +- OpenCL/m01460_a0-pure.cl | 6 +- OpenCL/m01460_a1-optimized.cl | 6 +- OpenCL/m01460_a1-pure.cl | 6 +- OpenCL/m01460_a3-optimized.cl | 6 +- OpenCL/m01460_a3-pure.cl | 6 +- OpenCL/m01500_a0-pure.cl | 6 +- OpenCL/m01500_a1-pure.cl | 6 +- OpenCL/m01500_a3-pure.cl | 6 +- OpenCL/m01600-optimized.cl | 6 +- OpenCL/m01600-pure.cl | 6 +- OpenCL/m01700_a0-optimized.cl | 37 +- OpenCL/m01700_a0-pure.cl | 6 +- OpenCL/m01700_a1-optimized.cl | 37 +- OpenCL/m01700_a1-pure.cl | 6 +- OpenCL/m01700_a3-optimized.cl | 37 +- OpenCL/m01700_a3-pure.cl | 6 +- OpenCL/m01710_a0-optimized.cl | 37 +- OpenCL/m01710_a0-pure.cl | 6 +- OpenCL/m01710_a1-optimized.cl | 37 +- OpenCL/m01710_a1-pure.cl | 6 +- OpenCL/m01710_a3-optimized.cl | 37 +- OpenCL/m01710_a3-pure.cl | 6 +- OpenCL/m01720_a0-optimized.cl | 37 +- OpenCL/m01720_a0-pure.cl | 6 +- OpenCL/m01720_a1-optimized.cl | 37 +- OpenCL/m01720_a1-pure.cl | 6 +- OpenCL/m01720_a3-optimized.cl | 37 +- OpenCL/m01720_a3-pure.cl | 6 +- OpenCL/m01730_a0-optimized.cl | 37 +- OpenCL/m01730_a0-pure.cl | 6 +- OpenCL/m01730_a1-optimized.cl | 37 +- OpenCL/m01730_a1-pure.cl | 6 +- OpenCL/m01730_a3-optimized.cl | 37 +- OpenCL/m01730_a3-pure.cl | 6 +- OpenCL/m01740_a0-optimized.cl | 31 +- OpenCL/m01740_a0-pure.cl | 6 +- OpenCL/m01740_a1-optimized.cl | 37 +- OpenCL/m01740_a1-pure.cl | 6 +- OpenCL/m01740_a3-optimized.cl | 37 +- OpenCL/m01740_a3-pure.cl | 6 +- OpenCL/m01750_a0-optimized.cl | 18 +- OpenCL/m01750_a0-pure.cl | 6 +- OpenCL/m01750_a1-optimized.cl | 6 +- OpenCL/m01750_a1-pure.cl | 6 +- OpenCL/m01750_a3-optimized.cl | 6 +- OpenCL/m01750_a3-pure.cl | 6 +- OpenCL/m01760_a0-optimized.cl | 6 +- OpenCL/m01760_a0-pure.cl | 6 +- OpenCL/m01760_a1-optimized.cl | 6 +- OpenCL/m01760_a1-pure.cl | 6 +- OpenCL/m01760_a3-optimized.cl | 6 +- OpenCL/m01760_a3-pure.cl | 6 +- OpenCL/m01800-optimized.cl | 6 +- OpenCL/m01800-pure.cl | 6 +- OpenCL/m02000_a0-pure.cl | 4 +- OpenCL/m02000_a1-pure.cl | 4 +- OpenCL/m02000_a3-pure.cl | 4 +- OpenCL/m02100-pure.cl | 6 +- OpenCL/m02400_a0-optimized.cl | 7 +- OpenCL/m02400_a1-optimized.cl | 7 +- OpenCL/m02400_a3-optimized.cl | 7 +- OpenCL/m02410_a0-optimized.cl | 7 +- OpenCL/m02410_a1-optimized.cl | 7 +- OpenCL/m02410_a3-optimized.cl | 7 +- OpenCL/m02500-pure.cl | 6 +- OpenCL/m02501-pure.cl | 6 +- OpenCL/m02610_a0-optimized.cl | 7 +- OpenCL/m02610_a0-pure.cl | 6 +- OpenCL/m02610_a1-optimized.cl | 7 +- OpenCL/m02610_a1-pure.cl | 6 +- OpenCL/m02610_a3-optimized.cl | 7 +- OpenCL/m02610_a3-pure.cl | 6 +- OpenCL/m02710_a0-optimized.cl | 7 +- OpenCL/m02710_a1-optimized.cl | 7 +- OpenCL/m02710_a3-optimized.cl | 7 +- OpenCL/m02810_a0-optimized.cl | 7 +- OpenCL/m02810_a0-pure.cl | 6 +- OpenCL/m02810_a1-optimized.cl | 7 +- OpenCL/m02810_a1-pure.cl | 6 +- OpenCL/m02810_a3-optimized.cl | 7 +- OpenCL/m02810_a3-pure.cl | 6 +- OpenCL/m03000_a0-pure.cl | 6 +- OpenCL/m03000_a1-pure.cl | 6 +- OpenCL/m03000_a3-pure.cl | 6 +- OpenCL/m03100_a0-optimized.cl | 6 +- OpenCL/m03100_a1-optimized.cl | 6 +- OpenCL/m03100_a3-optimized.cl | 6 +- OpenCL/m03200-pure.cl | 6 +- OpenCL/m03710_a0-optimized.cl | 7 +- OpenCL/m03710_a0-pure.cl | 6 +- OpenCL/m03710_a1-optimized.cl | 7 +- OpenCL/m03710_a1-pure.cl | 6 +- OpenCL/m03710_a3-optimized.cl | 7 +- OpenCL/m03710_a3-pure.cl | 6 +- OpenCL/m03800_a0-optimized.cl | 7 +- OpenCL/m03800_a0-pure.cl | 6 +- OpenCL/m03800_a1-optimized.cl | 7 +- OpenCL/m03800_a1-pure.cl | 6 +- OpenCL/m03800_a3-optimized.cl | 7 +- OpenCL/m03800_a3-pure.cl | 6 +- OpenCL/m03910_a0-optimized.cl | 7 +- OpenCL/m03910_a0-pure.cl | 6 +- OpenCL/m03910_a1-optimized.cl | 7 +- OpenCL/m03910_a1-pure.cl | 6 +- OpenCL/m03910_a3-optimized.cl | 7 +- OpenCL/m03910_a3-pure.cl | 6 +- OpenCL/m04010_a0-optimized.cl | 7 +- OpenCL/m04010_a0-pure.cl | 6 +- OpenCL/m04010_a1-optimized.cl | 7 +- OpenCL/m04010_a1-pure.cl | 6 +- OpenCL/m04010_a3-optimized.cl | 7 +- OpenCL/m04010_a3-pure.cl | 6 +- OpenCL/m04110_a0-optimized.cl | 7 +- OpenCL/m04110_a0-pure.cl | 6 +- OpenCL/m04110_a1-optimized.cl | 7 +- OpenCL/m04110_a1-pure.cl | 6 +- OpenCL/m04110_a3-optimized.cl | 7 +- OpenCL/m04110_a3-pure.cl | 6 +- OpenCL/m04310_a0-optimized.cl | 7 +- OpenCL/m04310_a0-pure.cl | 6 +- OpenCL/m04310_a1-optimized.cl | 7 +- OpenCL/m04310_a1-pure.cl | 6 +- OpenCL/m04310_a3-optimized.cl | 7 +- OpenCL/m04310_a3-pure.cl | 6 +- OpenCL/m04400_a0-optimized.cl | 8 +- OpenCL/m04400_a0-pure.cl | 6 +- OpenCL/m04400_a1-optimized.cl | 8 +- OpenCL/m04400_a1-pure.cl | 6 +- OpenCL/m04400_a3-optimized.cl | 8 +- OpenCL/m04400_a3-pure.cl | 6 +- OpenCL/m04500_a0-optimized.cl | 7 +- OpenCL/m04500_a0-pure.cl | 6 +- OpenCL/m04500_a1-optimized.cl | 7 +- OpenCL/m04500_a1-pure.cl | 6 +- OpenCL/m04500_a3-optimized.cl | 7 +- OpenCL/m04500_a3-pure.cl | 6 +- OpenCL/m04520_a0-optimized.cl | 7 +- OpenCL/m04520_a0-pure.cl | 6 +- OpenCL/m04520_a1-optimized.cl | 7 +- OpenCL/m04520_a1-pure.cl | 6 +- OpenCL/m04520_a3-optimized.cl | 7 +- OpenCL/m04520_a3-pure.cl | 6 +- OpenCL/m04700_a0-optimized.cl | 8 +- OpenCL/m04700_a0-pure.cl | 6 +- OpenCL/m04700_a1-optimized.cl | 8 +- OpenCL/m04700_a1-pure.cl | 6 +- OpenCL/m04700_a3-optimized.cl | 8 +- OpenCL/m04700_a3-pure.cl | 6 +- OpenCL/m04800_a0-optimized.cl | 7 +- OpenCL/m04800_a0-pure.cl | 6 +- OpenCL/m04800_a1-optimized.cl | 7 +- OpenCL/m04800_a1-pure.cl | 6 +- OpenCL/m04800_a3-optimized.cl | 7 +- OpenCL/m04800_a3-pure.cl | 6 +- OpenCL/m04900_a0-optimized.cl | 7 +- OpenCL/m04900_a0-pure.cl | 6 +- OpenCL/m04900_a1-optimized.cl | 7 +- OpenCL/m04900_a1-pure.cl | 6 +- OpenCL/m04900_a3-optimized.cl | 7 +- OpenCL/m04900_a3-pure.cl | 6 +- OpenCL/m05100_a0-optimized.cl | 7 +- OpenCL/m05100_a0-pure.cl | 6 +- OpenCL/m05100_a1-optimized.cl | 7 +- OpenCL/m05100_a1-pure.cl | 6 +- OpenCL/m05100_a3-optimized.cl | 7 +- OpenCL/m05100_a3-pure.cl | 6 +- OpenCL/m05200-pure.cl | 6 +- OpenCL/m05300_a0-optimized.cl | 6 +- OpenCL/m05300_a0-pure.cl | 6 +- OpenCL/m05300_a1-optimized.cl | 6 +- OpenCL/m05300_a1-pure.cl | 6 +- OpenCL/m05300_a3-optimized.cl | 6 +- OpenCL/m05300_a3-pure.cl | 6 +- OpenCL/m05400_a0-optimized.cl | 6 +- OpenCL/m05400_a0-pure.cl | 6 +- OpenCL/m05400_a1-optimized.cl | 6 +- OpenCL/m05400_a1-pure.cl | 6 +- OpenCL/m05400_a3-optimized.cl | 6 +- OpenCL/m05400_a3-pure.cl | 6 +- OpenCL/m05500_a0-optimized.cl | 7 +- OpenCL/m05500_a0-pure.cl | 6 +- OpenCL/m05500_a1-optimized.cl | 7 +- OpenCL/m05500_a1-pure.cl | 6 +- OpenCL/m05500_a3-optimized.cl | 7 +- OpenCL/m05500_a3-pure.cl | 6 +- OpenCL/m05600_a0-optimized.cl | 6 +- OpenCL/m05600_a0-pure.cl | 6 +- OpenCL/m05600_a1-optimized.cl | 6 +- OpenCL/m05600_a1-pure.cl | 6 +- OpenCL/m05600_a3-optimized.cl | 6 +- OpenCL/m05600_a3-pure.cl | 6 +- OpenCL/m05800-optimized.cl | 6 +- OpenCL/m05800-pure.cl | 6 +- OpenCL/m06000_a0-optimized.cl | 6 +- OpenCL/m06000_a0-pure.cl | 6 +- OpenCL/m06000_a1-optimized.cl | 6 +- OpenCL/m06000_a1-pure.cl | 6 +- OpenCL/m06000_a3-optimized.cl | 6 +- OpenCL/m06000_a3-pure.cl | 6 +- OpenCL/m06100_a0-optimized.cl | 6 +- OpenCL/m06100_a0-pure.cl | 6 +- OpenCL/m06100_a1-optimized.cl | 6 +- OpenCL/m06100_a1-pure.cl | 6 +- OpenCL/m06100_a3-optimized.cl | 6 +- OpenCL/m06100_a3-pure.cl | 6 +- OpenCL/m06211-pure.cl | 6 +- OpenCL/m06212-pure.cl | 6 +- OpenCL/m06213-pure.cl | 6 +- OpenCL/m06221-pure.cl | 6 +- OpenCL/m06222-pure.cl | 6 +- OpenCL/m06223-pure.cl | 6 +- OpenCL/m06231-pure.cl | 6 +- OpenCL/m06232-pure.cl | 6 +- OpenCL/m06233-pure.cl | 6 +- OpenCL/m06300-optimized.cl | 6 +- OpenCL/m06300-pure.cl | 6 +- OpenCL/m06400-pure.cl | 6 +- OpenCL/m06500-pure.cl | 6 +- OpenCL/m06600-pure.cl | 6 +- OpenCL/m06700-pure.cl | 6 +- OpenCL/m06800-pure.cl | 6 +- OpenCL/m06900_a0-optimized.cl | 6 +- OpenCL/m06900_a1-optimized.cl | 6 +- OpenCL/m06900_a3-optimized.cl | 6 +- OpenCL/m07000_a0-optimized.cl | 7 +- OpenCL/m07000_a0-pure.cl | 6 +- OpenCL/m07000_a1-optimized.cl | 7 +- OpenCL/m07000_a1-pure.cl | 6 +- OpenCL/m07000_a3-optimized.cl | 7 +- OpenCL/m07000_a3-pure.cl | 6 +- OpenCL/m07100-pure.cl | 6 +- OpenCL/m07300_a0-optimized.cl | 6 +- OpenCL/m07300_a0-pure.cl | 6 +- OpenCL/m07300_a1-optimized.cl | 6 +- OpenCL/m07300_a1-pure.cl | 6 +- OpenCL/m07300_a3-optimized.cl | 6 +- OpenCL/m07300_a3-pure.cl | 6 +- OpenCL/m07400-optimized.cl | 6 +- OpenCL/m07400-pure.cl | 6 +- OpenCL/m07500_a0-optimized.cl | 6 +- OpenCL/m07500_a0-pure.cl | 6 +- OpenCL/m07500_a1-optimized.cl | 6 +- OpenCL/m07500_a1-pure.cl | 6 +- OpenCL/m07500_a3-optimized.cl | 6 +- OpenCL/m07500_a3-pure.cl | 6 +- OpenCL/m07700_a0-optimized.cl | 6 +- OpenCL/m07700_a1-optimized.cl | 6 +- OpenCL/m07700_a3-optimized.cl | 6 +- OpenCL/m07701_a0-optimized.cl | 6 +- OpenCL/m07701_a1-optimized.cl | 6 +- OpenCL/m07701_a3-optimized.cl | 6 +- OpenCL/m07800_a0-optimized.cl | 6 +- OpenCL/m07800_a1-optimized.cl | 6 +- OpenCL/m07800_a3-optimized.cl | 6 +- OpenCL/m07801_a0-optimized.cl | 6 +- OpenCL/m07801_a1-optimized.cl | 6 +- OpenCL/m07801_a3-optimized.cl | 6 +- OpenCL/m07900-pure.cl | 6 +- OpenCL/m08000_a0-optimized.cl | 38 +- OpenCL/m08000_a1-optimized.cl | 38 +- OpenCL/m08000_a3-optimized.cl | 38 +- OpenCL/m08100_a0-optimized.cl | 7 +- OpenCL/m08100_a0-pure.cl | 6 +- OpenCL/m08100_a1-optimized.cl | 7 +- OpenCL/m08100_a1-pure.cl | 6 +- OpenCL/m08100_a3-optimized.cl | 7 +- OpenCL/m08100_a3-pure.cl | 6 +- OpenCL/m08200-pure.cl | 6 +- OpenCL/m08300_a0-optimized.cl | 6 +- OpenCL/m08300_a0-pure.cl | 6 +- OpenCL/m08300_a1-optimized.cl | 6 +- OpenCL/m08300_a1-pure.cl | 6 +- OpenCL/m08300_a3-optimized.cl | 6 +- OpenCL/m08300_a3-pure.cl | 6 +- OpenCL/m08400_a0-optimized.cl | 6 +- OpenCL/m08400_a0-pure.cl | 6 +- OpenCL/m08400_a1-optimized.cl | 6 +- OpenCL/m08400_a1-pure.cl | 6 +- OpenCL/m08400_a3-optimized.cl | 6 +- OpenCL/m08400_a3-pure.cl | 6 +- OpenCL/m08500_a0-pure.cl | 6 +- OpenCL/m08500_a1-pure.cl | 6 +- OpenCL/m08500_a3-pure.cl | 6 +- OpenCL/m08600_a0-pure.cl | 6 +- OpenCL/m08600_a1-pure.cl | 6 +- OpenCL/m08600_a3-pure.cl | 6 +- OpenCL/m08700_a0-optimized.cl | 6 +- OpenCL/m08700_a1-optimized.cl | 6 +- OpenCL/m08700_a3-optimized.cl | 6 +- OpenCL/m08800-pure.cl | 6 +- OpenCL/m08900-pure.cl | 6 +- OpenCL/m09000-pure.cl | 135 +- OpenCL/m09100-pure.cl | 6 +- OpenCL/m09400-pure.cl | 6 +- OpenCL/m09500-pure.cl | 6 +- OpenCL/m09600-pure.cl | 6 +- OpenCL/m09700_a0-optimized.cl | 6 +- OpenCL/m09700_a1-optimized.cl | 6 +- OpenCL/m09700_a3-optimized.cl | 6 +- OpenCL/m09710_a0-optimized.cl | 6 +- OpenCL/m09710_a1-optimized.cl | 6 +- OpenCL/m09710_a3-optimized.cl | 6 +- OpenCL/m09720_a0-optimized.cl | 6 +- OpenCL/m09720_a1-optimized.cl | 6 +- OpenCL/m09720_a3-optimized.cl | 6 +- OpenCL/m09800_a0-optimized.cl | 6 +- OpenCL/m09800_a1-optimized.cl | 6 +- OpenCL/m09800_a3-optimized.cl | 6 +- OpenCL/m09810_a0-optimized.cl | 6 +- OpenCL/m09810_a1-optimized.cl | 6 +- OpenCL/m09810_a3-optimized.cl | 6 +- OpenCL/m09820_a0-optimized.cl | 6 +- OpenCL/m09820_a1-optimized.cl | 6 +- OpenCL/m09820_a3-optimized.cl | 6 +- OpenCL/m09900_a0-optimized.cl | 7 +- OpenCL/m09900_a0-pure.cl | 6 +- OpenCL/m09900_a1-optimized.cl | 7 +- OpenCL/m09900_a1-pure.cl | 6 +- OpenCL/m09900_a3-optimized.cl | 7 +- OpenCL/m09900_a3-pure.cl | 6 +- OpenCL/m10100_a0-optimized.cl | 6 +- OpenCL/m10100_a1-optimized.cl | 6 +- OpenCL/m10100_a3-optimized.cl | 6 +- OpenCL/m10300-pure.cl | 6 +- OpenCL/m10400_a0-optimized.cl | 6 +- OpenCL/m10400_a1-optimized.cl | 6 +- OpenCL/m10400_a3-optimized.cl | 6 +- OpenCL/m10410_a0-optimized.cl | 6 +- OpenCL/m10410_a1-optimized.cl | 6 +- OpenCL/m10410_a3-optimized.cl | 6 +- OpenCL/m10420_a0-optimized.cl | 6 +- OpenCL/m10420_a1-optimized.cl | 6 +- OpenCL/m10420_a3-optimized.cl | 6 +- OpenCL/m10500-pure.cl | 6 +- OpenCL/m10700-optimized.cl | 6 +- OpenCL/m10700-pure.cl | 6 +- OpenCL/m10800_a0-optimized.cl | 37 +- OpenCL/m10800_a0-pure.cl | 6 +- OpenCL/m10800_a1-optimized.cl | 37 +- OpenCL/m10800_a1-pure.cl | 6 +- OpenCL/m10800_a3-optimized.cl | 37 +- OpenCL/m10800_a3-pure.cl | 6 +- OpenCL/m10900-pure.cl | 6 +- OpenCL/m11000_a0-optimized.cl | 7 +- OpenCL/m11000_a0-pure.cl | 6 +- OpenCL/m11000_a1-optimized.cl | 7 +- OpenCL/m11000_a1-pure.cl | 6 +- OpenCL/m11000_a3-optimized.cl | 7 +- OpenCL/m11000_a3-pure.cl | 6 +- OpenCL/m11100_a0-optimized.cl | 7 +- OpenCL/m11100_a0-pure.cl | 6 +- OpenCL/m11100_a1-optimized.cl | 7 +- OpenCL/m11100_a1-pure.cl | 6 +- OpenCL/m11100_a3-optimized.cl | 7 +- OpenCL/m11100_a3-pure.cl | 6 +- OpenCL/m11200_a0-optimized.cl | 7 +- OpenCL/m11200_a0-pure.cl | 6 +- OpenCL/m11200_a1-optimized.cl | 7 +- OpenCL/m11200_a1-pure.cl | 6 +- OpenCL/m11200_a3-optimized.cl | 7 +- OpenCL/m11200_a3-pure.cl | 6 +- OpenCL/m11300-pure.cl | 6 +- OpenCL/m11400_a0-pure.cl | 6 +- OpenCL/m11400_a1-pure.cl | 6 +- OpenCL/m11400_a3-pure.cl | 6 +- OpenCL/m11500_a0-optimized.cl | 6 +- OpenCL/m11500_a1-optimized.cl | 6 +- OpenCL/m11500_a3-optimized.cl | 6 +- OpenCL/m11600-pure.cl | 6 +- OpenCL/m11700_a0-optimized.cl | 2223 +----------------- OpenCL/m11700_a0-pure.cl | 6 +- OpenCL/m11700_a1-optimized.cl | 2223 +----------------- OpenCL/m11700_a1-pure.cl | 6 +- OpenCL/m11700_a3-optimized.cl | 2223 +----------------- OpenCL/m11700_a3-pure.cl | 6 +- OpenCL/m11750_a0-pure.cl | 6 +- OpenCL/m11750_a1-pure.cl | 6 +- OpenCL/m11750_a3-pure.cl | 6 +- OpenCL/m11760_a0-pure.cl | 6 +- OpenCL/m11760_a1-pure.cl | 6 +- OpenCL/m11760_a3-pure.cl | 6 +- OpenCL/m11800_a0-optimized.cl | 2223 +----------------- OpenCL/m11800_a0-pure.cl | 6 +- OpenCL/m11800_a1-optimized.cl | 2223 +----------------- OpenCL/m11800_a1-pure.cl | 6 +- OpenCL/m11800_a3-optimized.cl | 2223 +----------------- OpenCL/m11800_a3-pure.cl | 6 +- OpenCL/m11850_a0-pure.cl | 6 +- OpenCL/m11850_a1-pure.cl | 6 +- OpenCL/m11850_a3-pure.cl | 6 +- OpenCL/m11860_a0-pure.cl | 6 +- OpenCL/m11860_a1-pure.cl | 6 +- OpenCL/m11860_a3-pure.cl | 6 +- OpenCL/m11900-pure.cl | 6 +- OpenCL/m12000-pure.cl | 6 +- OpenCL/m12200-pure.cl | 6 +- OpenCL/m12300-pure.cl | 6 +- OpenCL/m12400-pure.cl | 6 +- OpenCL/m12500-pure.cl | 15 +- OpenCL/m12600_a0-optimized.cl | 8 +- OpenCL/m12600_a0-pure.cl | 6 +- OpenCL/m12600_a1-optimized.cl | 8 +- OpenCL/m12600_a1-pure.cl | 6 +- OpenCL/m12600_a3-optimized.cl | 8 +- OpenCL/m12600_a3-pure.cl | 6 +- OpenCL/m12700-pure.cl | 6 +- OpenCL/m12800-pure.cl | 6 +- OpenCL/m12900-pure.cl | 6 +- OpenCL/m13000-pure.cl | 6 +- OpenCL/m13100_a0-optimized.cl | 6 +- OpenCL/m13100_a0-pure.cl | 6 +- OpenCL/m13100_a1-optimized.cl | 6 +- OpenCL/m13100_a1-pure.cl | 6 +- OpenCL/m13100_a3-optimized.cl | 6 +- OpenCL/m13100_a3-pure.cl | 6 +- OpenCL/m13200-pure.cl | 6 +- OpenCL/m13300_a0-optimized.cl | 7 +- OpenCL/m13300_a0-pure.cl | 6 +- OpenCL/m13300_a1-optimized.cl | 7 +- OpenCL/m13300_a1-pure.cl | 6 +- OpenCL/m13300_a3-optimized.cl | 7 +- OpenCL/m13300_a3-pure.cl | 6 +- OpenCL/m13400-pure.cl | 6 +- OpenCL/m13500_a0-optimized.cl | 7 +- OpenCL/m13500_a0-pure.cl | 6 +- OpenCL/m13500_a1-optimized.cl | 7 +- OpenCL/m13500_a1-pure.cl | 6 +- OpenCL/m13500_a3-optimized.cl | 7 +- OpenCL/m13500_a3-pure.cl | 6 +- OpenCL/m13600-pure.cl | 6 +- OpenCL/m13711-pure.cl | 6 +- OpenCL/m13712-pure.cl | 6 +- OpenCL/m13713-pure.cl | 6 +- OpenCL/m13721-pure.cl | 6 +- OpenCL/m13722-pure.cl | 6 +- OpenCL/m13723-pure.cl | 6 +- OpenCL/m13731-pure.cl | 6 +- OpenCL/m13732-pure.cl | 6 +- OpenCL/m13733-pure.cl | 6 +- OpenCL/m13751-pure.cl | 6 +- OpenCL/m13752-pure.cl | 6 +- OpenCL/m13753-pure.cl | 6 +- OpenCL/m13771-pure.cl | 6 +- OpenCL/m13772-pure.cl | 6 +- OpenCL/m13773-pure.cl | 6 +- OpenCL/m13800_a0-optimized.cl | 6 +- OpenCL/m13800_a0-pure.cl | 6 +- OpenCL/m13800_a1-optimized.cl | 6 +- OpenCL/m13800_a1-pure.cl | 6 +- OpenCL/m13800_a3-optimized.cl | 6 +- OpenCL/m13800_a3-pure.cl | 6 +- OpenCL/m13900_a0-optimized.cl | 6 +- OpenCL/m13900_a0-pure.cl | 6 +- OpenCL/m13900_a1-optimized.cl | 6 +- OpenCL/m13900_a1-pure.cl | 6 +- OpenCL/m13900_a3-optimized.cl | 6 +- OpenCL/m13900_a3-pure.cl | 6 +- OpenCL/m14000_a0-pure.cl | 6 +- OpenCL/m14000_a1-pure.cl | 6 +- OpenCL/m14000_a3-pure.cl | 6 +- OpenCL/m14100_a0-pure.cl | 6 +- OpenCL/m14100_a1-pure.cl | 6 +- OpenCL/m14100_a3-pure.cl | 6 +- OpenCL/m14400_a0-optimized.cl | 6 +- OpenCL/m14400_a0-pure.cl | 6 +- OpenCL/m14400_a1-optimized.cl | 6 +- OpenCL/m14400_a1-pure.cl | 6 +- OpenCL/m14400_a3-optimized.cl | 6 +- OpenCL/m14400_a3-pure.cl | 6 +- OpenCL/m14611-pure.cl | 9 +- OpenCL/m14612-pure.cl | 9 +- OpenCL/m14613-pure.cl | 9 +- OpenCL/m14621-pure.cl | 8 +- OpenCL/m14622-pure.cl | 8 +- OpenCL/m14623-pure.cl | 8 +- OpenCL/m14631-pure.cl | 8 +- OpenCL/m14632-pure.cl | 8 +- OpenCL/m14633-pure.cl | 8 +- OpenCL/m14641-pure.cl | 8 +- OpenCL/m14642-pure.cl | 8 +- OpenCL/m14643-pure.cl | 8 +- OpenCL/m14700-pure.cl | 6 +- OpenCL/m14800-pure.cl | 6 +- OpenCL/m14900_a0-optimized.cl | 6 +- OpenCL/m14900_a1-optimized.cl | 6 +- OpenCL/m14900_a3-optimized.cl | 6 +- OpenCL/m15000_a0-optimized.cl | 37 +- OpenCL/m15000_a0-pure.cl | 6 +- OpenCL/m15000_a1-optimized.cl | 37 +- OpenCL/m15000_a1-pure.cl | 6 +- OpenCL/m15000_a3-optimized.cl | 37 +- OpenCL/m15000_a3-pure.cl | 6 +- OpenCL/m15100-pure.cl | 6 +- OpenCL/m15300-pure.cl | 6 +- OpenCL/m15400_a0-optimized.cl | 6 +- OpenCL/m15400_a1-optimized.cl | 6 +- OpenCL/m15400_a3-optimized.cl | 6 +- OpenCL/m15500_a0-optimized.cl | 7 +- OpenCL/m15500_a0-pure.cl | 6 +- OpenCL/m15500_a1-optimized.cl | 7 +- OpenCL/m15500_a1-pure.cl | 6 +- OpenCL/m15500_a3-optimized.cl | 7 +- OpenCL/m15500_a3-pure.cl | 6 +- OpenCL/m15600-pure.cl | 6 +- OpenCL/m15700-pure.cl | 6 +- OpenCL/m15900-pure.cl | 6 +- OpenCL/m16000_a0-pure.cl | 6 +- OpenCL/m16000_a1-pure.cl | 6 +- OpenCL/m16000_a3-pure.cl | 6 +- OpenCL/m16100_a0-optimized.cl | 7 +- OpenCL/m16100_a0-pure.cl | 6 +- OpenCL/m16100_a1-optimized.cl | 7 +- OpenCL/m16100_a1-pure.cl | 6 +- OpenCL/m16100_a3-optimized.cl | 7 +- OpenCL/m16100_a3-pure.cl | 6 +- OpenCL/m16200-pure.cl | 6 +- OpenCL/m16300-pure.cl | 6 +- OpenCL/m16400_a0-optimized.cl | 7 +- OpenCL/m16400_a0-pure.cl | 6 +- OpenCL/m16400_a1-optimized.cl | 6 +- OpenCL/m16400_a1-pure.cl | 6 +- OpenCL/m16400_a3-optimized.cl | 6 +- OpenCL/m16400_a3-pure.cl | 6 +- OpenCL/m16511_a0-pure.cl | 6 +- OpenCL/m16511_a1-pure.cl | 6 +- OpenCL/m16511_a3-pure.cl | 6 +- OpenCL/m16512_a0-pure.cl | 6 +- OpenCL/m16512_a1-pure.cl | 6 +- OpenCL/m16512_a3-pure.cl | 6 +- OpenCL/m16513_a0-pure.cl | 6 +- OpenCL/m16513_a1-pure.cl | 6 +- OpenCL/m16513_a3-pure.cl | 6 +- OpenCL/m16600_a0-optimized.cl | 7 +- OpenCL/m16600_a0-pure.cl | 6 +- OpenCL/m16600_a1-optimized.cl | 7 +- OpenCL/m16600_a1-pure.cl | 6 +- OpenCL/m16600_a3-optimized.cl | 7 +- OpenCL/m16600_a3-pure.cl | 6 +- OpenCL/m16800-pure.cl | 6 +- OpenCL/m16801-pure.cl | 6 +- OpenCL/m16900-pure.cl | 6 +- OpenCL/m17300_a0-optimized.cl | 6 +- OpenCL/m17300_a1-optimized.cl | 6 +- OpenCL/m17300_a3-optimized.cl | 6 +- OpenCL/m17400_a0-optimized.cl | 6 +- OpenCL/m17400_a1-optimized.cl | 6 +- OpenCL/m17400_a3-optimized.cl | 6 +- OpenCL/m17500_a0-optimized.cl | 6 +- OpenCL/m17500_a1-optimized.cl | 6 +- OpenCL/m17500_a3-optimized.cl | 6 +- OpenCL/m17600_a0-optimized.cl | 6 +- OpenCL/m17600_a1-optimized.cl | 6 +- OpenCL/m17600_a3-optimized.cl | 6 +- OpenCL/m17700_a0-optimized.cl | 6 +- OpenCL/m17700_a1-optimized.cl | 6 +- OpenCL/m17700_a3-optimized.cl | 6 +- OpenCL/m17800_a0-optimized.cl | 6 +- OpenCL/m17800_a1-optimized.cl | 6 +- OpenCL/m17800_a3-optimized.cl | 6 +- OpenCL/m17900_a0-optimized.cl | 6 +- OpenCL/m17900_a1-optimized.cl | 6 +- OpenCL/m17900_a3-optimized.cl | 6 +- OpenCL/m18000_a0-optimized.cl | 6 +- OpenCL/m18000_a1-optimized.cl | 6 +- OpenCL/m18000_a3-optimized.cl | 6 +- OpenCL/m18100_a0-pure.cl | 6 +- OpenCL/m18100_a1-pure.cl | 6 +- OpenCL/m18100_a3-pure.cl | 6 +- OpenCL/m18200_a0-optimized.cl | 6 +- OpenCL/m18200_a0-pure.cl | 6 +- OpenCL/m18200_a1-optimized.cl | 6 +- OpenCL/m18200_a1-pure.cl | 6 +- OpenCL/m18200_a3-optimized.cl | 6 +- OpenCL/m18200_a3-pure.cl | 6 +- OpenCL/m18300-pure.cl | 6 +- OpenCL/m18400-pure.cl | 6 +- OpenCL/m18500_a0-pure.cl | 6 +- OpenCL/m18500_a1-pure.cl | 6 +- OpenCL/m18500_a3-pure.cl | 6 +- OpenCL/m18600-pure.cl | 6 +- OpenCL/m18700_a0-optimized.cl | 6 +- OpenCL/m18700_a0-pure.cl | 6 +- OpenCL/m18700_a1-optimized.cl | 6 +- OpenCL/m18700_a1-pure.cl | 6 +- OpenCL/m18700_a3-optimized.cl | 6 +- OpenCL/m18700_a3-pure.cl | 6 +- OpenCL/m18800-pure.cl | 6 +- OpenCL/m18900-pure.cl | 6 +- OpenCL/m19000-pure.cl | 6 +- OpenCL/m19100-pure.cl | 6 +- OpenCL/m19200-pure.cl | 6 +- OpenCL/m19300_a0-pure.cl | 6 +- OpenCL/m19300_a1-pure.cl | 6 +- OpenCL/m19300_a3-pure.cl | 6 +- OpenCL/m19500_a0-pure.cl | 6 +- OpenCL/m19500_a1-pure.cl | 6 +- OpenCL/m19500_a3-pure.cl | 6 +- OpenCL/m19600-pure.cl | 6 +- OpenCL/m19700-pure.cl | 6 +- OpenCL/markov_be.cl | 5 +- OpenCL/markov_le.cl | 5 +- include/cpu_aes.h | 1 - include/cpu_des.h | 62 +- include/types.h | 653 +++++ src/Makefile | 2 +- src/cpu_aes.c | 5 - src/cpu_crc32.c | 2 - src/cpu_des.c | 26 +- src/cpu_md4.c | 31 +- src/cpu_md5.c | 42 +- src/cpu_sha1.c | 34 +- src/cpu_sha256.c | 42 +- src/modules/module_00000.c | 1 - src/modules/module_00010.c | 1 - src/modules/module_00011.c | 1 - src/modules/module_00012.c | 1 - src/modules/module_00020.c | 1 - src/modules/module_00021.c | 1 - src/modules/module_00022.c | 1 - src/modules/module_00023.c | 1 - src/modules/module_00030.c | 1 - src/modules/module_00040.c | 1 - src/modules/module_00050.c | 1 - src/modules/module_00060.c | 1 - src/modules/module_00100.c | 1 - src/modules/module_00101.c | 1 - src/modules/module_00110.c | 1 - src/modules/module_00111.c | 1 - src/modules/module_00112.c | 1 - src/modules/module_00120.c | 1 - src/modules/module_00121.c | 1 - src/modules/module_00122.c | 1 - src/modules/module_00124.c | 1 - src/modules/module_00125.c | 1 - src/modules/module_00130.c | 1 - src/modules/module_00131.c | 1 - src/modules/module_00132.c | 1 - src/modules/module_00133.c | 1 - src/modules/module_00140.c | 1 - src/modules/module_00141.c | 1 - src/modules/module_00150.c | 1 - src/modules/module_00160.c | 1 - src/modules/module_00200.c | 1 - src/modules/module_00300.c | 1 - src/modules/module_00600.c | 1 - src/modules/module_00900.c | 1 - src/modules/module_01000.c | 1 - src/modules/module_01100.c | 1 - src/modules/module_01300.c | 1 - src/modules/module_01400.c | 1 - src/modules/module_01410.c | 1 - src/modules/module_01411.c | 1 - src/modules/module_01420.c | 1 - src/modules/module_01421.c | 1 - src/modules/module_01430.c | 1 - src/modules/module_01440.c | 1 - src/modules/module_01441.c | 1 - src/modules/module_01450.c | 1 - src/modules/module_01460.c | 1 - src/modules/module_01500.c | 8 +- src/modules/module_01700.c | 1 - src/modules/module_01710.c | 1 - src/modules/module_01711.c | 1 - src/modules/module_01720.c | 1 - src/modules/module_01722.c | 1 - src/modules/module_01730.c | 1 - src/modules/module_01731.c | 1 - src/modules/module_01740.c | 1 - src/modules/module_01750.c | 1 - src/modules/module_01760.c | 1 - src/modules/module_02400.c | 1 - src/modules/module_02410.c | 1 - src/modules/module_02600.c | 1 - src/modules/module_02611.c | 1 - src/modules/module_02612.c | 1 - src/modules/module_02711.c | 1 - src/modules/module_02811.c | 1 - src/modules/module_03000.c | 8 +- src/modules/module_03710.c | 1 - src/modules/module_03711.c | 1 - src/modules/module_03800.c | 1 - src/modules/module_03910.c | 1 - src/modules/module_04010.c | 1 - src/modules/module_04110.c | 1 - src/modules/module_04300.c | 1 - src/modules/module_04400.c | 1 - src/modules/module_04500.c | 1 - src/modules/module_04520.c | 1 - src/modules/module_04521.c | 1 - src/modules/module_04522.c | 1 - src/modules/module_04700.c | 1 - src/modules/module_04800.c | 1 - src/modules/module_04900.c | 1 - src/modules/module_05500.c | 15 +- src/modules/module_05700.c | 1 - src/modules/module_07000.c | 1 - src/modules/module_08100.c | 1 - src/modules/module_08500.c | 10 +- src/modules/module_10600.c | 1 - src/modules/module_10800.c | 1 - src/modules/module_11100.c | 1 - src/modules/module_12400.c | 8 +- src/modules/module_12600.c | 1 - src/modules/module_13500.c | 1 - src/modules/module_14000.c | 10 +- src/modules/module_14100.c | 10 +- src/modules/module_15000.c | 1 - src/modules/module_16000.c | 8 +- src/modules/module_16400.c | 1 - src/modules/module_18500.c | 1 - src/modules/module_18700.c | 1 - src/modules/module_19300.c | 1 - src/modules/module_19500.c | 1 - src/modules/module_99999.c | 1 - src/shared.c | 1 - src/user_options.c | 13 +- 913 files changed, 4778 insertions(+), 20304 deletions(-) delete mode 100644 OpenCL/inc_hash_functions.cl delete mode 100644 OpenCL/inc_types.cl rename OpenCL/{inc_hash_constants.h => inc_types.h} (85%) rename OpenCL/{inc_vendor.cl => inc_vendor.h} (100%) diff --git a/OpenCL/amp_a0.cl b/OpenCL/amp_a0.cl index 32f1fc4f7..66afddbf9 100644 --- a/OpenCL/amp_a0.cl +++ b/OpenCL/amp_a0.cl @@ -3,9 +3,8 @@ * License.....: MIT */ -#include "inc_hash_constants.h" -#include "inc_vendor.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/amp_a1.cl b/OpenCL/amp_a1.cl index 68dc8000a..97cc81608 100644 --- a/OpenCL/amp_a1.cl +++ b/OpenCL/amp_a1.cl @@ -3,8 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" __kernel void amp (__global pw_t * restrict pws, __global pw_t * restrict pws_amp, __global const kernel_rule_t * restrict rules_buf, __global const pw_t * restrict combs_buf, __global const bf_t * restrict bfs_buf, const u32 combs_mode, const u64 gid_max) diff --git a/OpenCL/amp_a3.cl b/OpenCL/amp_a3.cl index 33282f977..9cf14d894 100644 --- a/OpenCL/amp_a3.cl +++ b/OpenCL/amp_a3.cl @@ -3,9 +3,8 @@ * License.....: MIT */ -#include "inc_hash_constants.h" -#include "inc_vendor.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" __kernel void amp (__global pw_t * restrict pws, __global pw_t * restrict pws_amp, __global const kernel_rule_t * restrict rules_buf, __global const pw_t * restrict combs_buf, __constant const bf_t * restrict bfs_buf, const u32 combs_mode, const u64 gid_max) { diff --git a/OpenCL/inc_cipher_aes.cl b/OpenCL/inc_cipher_aes.cl index c0e2513de..9fa9de0d2 100644 --- a/OpenCL/inc_cipher_aes.cl +++ b/OpenCL/inc_cipher_aes.cl @@ -685,7 +685,6 @@ __constant u32a td4[256] = // 128 bit key -DECLSPEC void aes128_ExpandKey (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void aes128_ExpandKey (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { ks[ 0] = ukey[0]; @@ -774,7 +773,6 @@ DECLSPEC void aes128_ExpandKey (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, S ks[43] = ks[39] ^ ks[42]; } -DECLSPEC void aes128_InvertKey (u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes128_InvertKey (u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 temp; @@ -838,7 +836,6 @@ DECLSPEC void aes128_InvertKey (u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te ks[39] = td0[te1[(ks[39] >> 24) & 0xff] & 0xff] ^ td1[te1[(ks[39] >> 16) & 0xff] & 0xff] ^ td2[te1[(ks[39] >> 8) & 0xff] & 0xff] ^ td3[te1[(ks[39] >> 0) & 0xff] & 0xff]; } -DECLSPEC void aes128_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void aes128_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 ukey_s[4]; @@ -851,7 +848,6 @@ DECLSPEC void aes128_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes128_ExpandKey (ks, ukey_s, s_te0, s_te1, s_te2, s_te3, s_te4); } -DECLSPEC void aes128_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes128_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ukey_s[4]; @@ -866,7 +862,6 @@ DECLSPEC void aes128_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes128_InvertKey (ks, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } -DECLSPEC void aes128_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void aes128_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 in_s[4]; @@ -953,7 +948,6 @@ DECLSPEC void aes128_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u out[3] = swap32_S (out[3]); } -DECLSPEC void aes128_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes128_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 in_s[4]; @@ -1042,7 +1036,6 @@ DECLSPEC void aes128_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u // 256 bit key -DECLSPEC void aes256_ExpandKey (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void aes256_ExpandKey (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { ks[ 0] = ukey[0]; @@ -1159,7 +1152,6 @@ DECLSPEC void aes256_ExpandKey (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, S ks[59] = ks[51] ^ ks[58]; } -DECLSPEC void aes256_InvertKey (u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_InvertKey (u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 temp; @@ -1247,7 +1239,6 @@ DECLSPEC void aes256_InvertKey (u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te ks[55] = td0[te1[(ks[55] >> 24) & 0xff] & 0xff] ^ td1[te1[(ks[55] >> 16) & 0xff] & 0xff] ^ td2[te1[(ks[55] >> 8) & 0xff] & 0xff] ^ td3[te1[(ks[55] >> 0) & 0xff] & 0xff]; } -DECLSPEC void aes256_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void aes256_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 ukey_s[8]; @@ -1264,7 +1255,6 @@ DECLSPEC void aes256_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes256_ExpandKey (ks, ukey_s, s_te0, s_te1, s_te2, s_te3, s_te4); } -DECLSPEC void aes256_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ukey_s[8]; @@ -1283,7 +1273,6 @@ DECLSPEC void aes256_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes256_InvertKey (ks, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } -DECLSPEC void aes256_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void aes256_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 in_s[4]; @@ -1386,7 +1375,6 @@ DECLSPEC void aes256_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u out[3] = swap32_S (out[3]); } -DECLSPEC void aes256_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 in_s[4]; @@ -1491,7 +1479,6 @@ DECLSPEC void aes256_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u // wrapper to avoid swap32_S() confusion in the kernel code -DECLSPEC void AES128_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void AES128_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 ukey_s[4]; @@ -1504,7 +1491,6 @@ DECLSPEC void AES128_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes128_set_encrypt_key (ks, ukey_s, s_te0, s_te1, s_te2, s_te3, s_te4); } -DECLSPEC void AES128_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void AES128_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ukey_s[4]; @@ -1517,7 +1503,6 @@ DECLSPEC void AES128_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes128_set_decrypt_key (ks, ukey_s, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } -DECLSPEC void AES128_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void AES128_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 in_s[4]; @@ -1537,7 +1522,6 @@ DECLSPEC void AES128_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u out[3] = swap32_S (out_s[3]); } -DECLSPEC void AES128_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void AES128_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 in_s[4]; @@ -1557,7 +1541,6 @@ DECLSPEC void AES128_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u out[3] = swap32_S (out_s[3]); } -DECLSPEC void AES256_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void AES256_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 ukey_s[8]; @@ -1574,7 +1557,6 @@ DECLSPEC void AES256_set_encrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes256_set_encrypt_key (ks, ukey_s, s_te0, s_te1, s_te2, s_te3, s_te4); } -DECLSPEC void AES256_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void AES256_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ukey_s[8]; @@ -1591,7 +1573,6 @@ DECLSPEC void AES256_set_decrypt_key (u32 *ks, const u32 *ukey, SHM_TYPE u32 *s_ aes256_set_decrypt_key (ks, ukey_s, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4); } -DECLSPEC void AES256_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4); DECLSPEC void AES256_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4) { u32 in_s[4]; @@ -1611,7 +1592,6 @@ DECLSPEC void AES256_encrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u out[3] = swap32_S (out_s[3]); } -DECLSPEC void AES256_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void AES256_decrypt (const u32 *ks, const u32 *in, u32 *out, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 in_s[4]; diff --git a/OpenCL/inc_cipher_camellia.cl b/OpenCL/inc_cipher_camellia.cl index ad849ad04..152239441 100644 --- a/OpenCL/inc_cipher_camellia.cl +++ b/OpenCL/inc_cipher_camellia.cl @@ -60,7 +60,6 @@ __constant const u32a c_sbox[256] = #define extract_byte(x,n) (((x) >> (8 * (n))) & 0xff) -DECLSPEC void cam_feistel (const u32 *x, const u32 *k, u32 *y); DECLSPEC void cam_feistel (const u32 *x, const u32 *k, u32 *y) { u32 b[8]; @@ -90,7 +89,6 @@ DECLSPEC void cam_feistel (const u32 *x, const u32 *k, u32 *y) y[1] ^= tmp[1]; } -DECLSPEC void cam_fl (u32 *x, const u32 *kl, const u32 *kr); DECLSPEC void cam_fl (u32 *x, const u32 *kl, const u32 *kr) { u32 t[4]; @@ -127,7 +125,6 @@ DECLSPEC void cam_fl (u32 *x, const u32 *kl, const u32 *kr) x[3] = swap32_S (t[3]); } -DECLSPEC void camellia256_set_key (u32 *ks, const u32 *ukey); DECLSPEC void camellia256_set_key (u32 *ks, const u32 *ukey) { const u32 sigma[12] = @@ -263,7 +260,6 @@ DECLSPEC void camellia256_set_key (u32 *ks, const u32 *ukey) ks[67] = cam_rotate (14, 15, 15); } -DECLSPEC void camellia256_encrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void camellia256_encrypt (const u32 *ks, const u32 *in, u32 *out) { out[0] = in[0] ^ ks[0]; @@ -316,7 +312,6 @@ DECLSPEC void camellia256_encrypt (const u32 *ks, const u32 *in, u32 *out) out[3] = tmp[1] ^ ks[67]; } -DECLSPEC void camellia256_decrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void camellia256_decrypt (const u32 *ks, const u32 *in, u32 *out) { out[0] = in[0] ^ ks[64]; diff --git a/OpenCL/inc_cipher_des.cl b/OpenCL/inc_cipher_des.cl index 503221532..b60e09132 100644 --- a/OpenCL/inc_cipher_des.cl +++ b/OpenCL/inc_cipher_des.cl @@ -355,7 +355,6 @@ __constant u32a c_skb[8][64] = #define DES_BOX(i,n,S) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) #endif -DECLSPEC void _des_crypt_encrypt (u32x *iv, u32x *data, u32x *Kc, u32x *Kd, SHM_TYPE u32 (*s_SPtrans)[64]); DECLSPEC void _des_crypt_encrypt (u32x *iv, u32x *data, u32x *Kc, u32x *Kd, SHM_TYPE u32 (*s_SPtrans)[64]) { u32x r = data[0]; @@ -405,7 +404,6 @@ DECLSPEC void _des_crypt_encrypt (u32x *iv, u32x *data, u32x *Kc, u32x *Kd, SHM_ iv[1] = r; } -DECLSPEC void _des_crypt_decrypt (u32x *iv, u32x *data, u32x *Kc, u32x *Kd, SHM_TYPE u32 (*s_SPtrans)[64]); DECLSPEC void _des_crypt_decrypt (u32x *iv, u32x *data, u32x *Kc, u32x *Kd, SHM_TYPE u32 (*s_SPtrans)[64]) { u32x r = data[0]; @@ -455,7 +453,6 @@ DECLSPEC void _des_crypt_decrypt (u32x *iv, u32x *data, u32x *Kc, u32x *Kd, SHM_ iv[1] = r; } -DECLSPEC void _des_crypt_keysetup (u32x c, u32x d, u32x *Kc, u32x *Kd, SHM_TYPE u32 (*s_skb)[64]); DECLSPEC void _des_crypt_keysetup (u32x c, u32x d, u32x *Kc, u32x *Kd, SHM_TYPE u32 (*s_skb)[64]) { PERM_OP (d, c, 4, 0x0f0f0f0f); diff --git a/OpenCL/inc_cipher_kuznyechik.cl b/OpenCL/inc_cipher_kuznyechik.cl index d532168c5..7bbbd119f 100644 --- a/OpenCL/inc_cipher_kuznyechik.cl +++ b/OpenCL/inc_cipher_kuznyechik.cl @@ -101,7 +101,6 @@ __constant const u32a k_sbox_inv[256] = x &= 0xff; \ } -DECLSPEC void kuznyechik_linear (u32 *w); DECLSPEC void kuznyechik_linear (u32 *w) { // used in k_xor macro @@ -138,7 +137,6 @@ DECLSPEC void kuznyechik_linear (u32 *w) } } -DECLSPEC void kuznyechik_linear_inv (u32 *w); DECLSPEC void kuznyechik_linear_inv (u32 *w) { // used in k_xor macro @@ -176,7 +174,6 @@ DECLSPEC void kuznyechik_linear_inv (u32 *w) } } -DECLSPEC void kuznyechik_set_key (u32 *ks, const u32 *ukey); DECLSPEC void kuznyechik_set_key (u32 *ks, const u32 *ukey) { u32 counter[4]; @@ -251,7 +248,6 @@ DECLSPEC void kuznyechik_set_key (u32 *ks, const u32 *ukey) } } -DECLSPEC void kuznyechik_encrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void kuznyechik_encrypt (const u32 *ks, const u32 *in, u32 *out) { out[0] = in[0]; @@ -277,7 +273,6 @@ DECLSPEC void kuznyechik_encrypt (const u32 *ks, const u32 *in, u32 *out) out[3] ^= ks[4 * 9 + 3]; } -DECLSPEC void kuznyechik_decrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void kuznyechik_decrypt (const u32 *ks, const u32 *in, u32 *out) { out[0] = in[0]; diff --git a/OpenCL/inc_cipher_serpent.cl b/OpenCL/inc_cipher_serpent.cl index 19aadd954..5e8afbbe5 100644 --- a/OpenCL/inc_cipher_serpent.cl +++ b/OpenCL/inc_cipher_serpent.cl @@ -403,7 +403,6 @@ // 128 bit key -DECLSPEC void serpent128_set_key (u32 *ks, const u32 *ukey); DECLSPEC void serpent128_set_key (u32 *ks, const u32 *ukey) { ks[ 0] = ukey[0]; @@ -585,7 +584,6 @@ DECLSPEC void serpent128_set_key (u32 *ks, const u32 *ukey) k_set(32,a,b,c,d); sb3(a,b,c,d,e,f,g,h); k_get(32,e,f,g,h); } -DECLSPEC void serpent128_encrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void serpent128_encrypt (const u32 *ks, const u32 *in, u32 *out) { u32 a,b,c,d,e,f,g,h; @@ -636,7 +634,6 @@ DECLSPEC void serpent128_encrypt (const u32 *ks, const u32 *in, u32 *out) out[3] = d; } -DECLSPEC void serpent128_decrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void serpent128_decrypt (const u32 *ks, const u32 *in, u32 *out) { u32 a,b,c,d,e,f,g,h; @@ -689,7 +686,6 @@ DECLSPEC void serpent128_decrypt (const u32 *ks, const u32 *in, u32 *out) // 256 bit key -DECLSPEC void serpent256_set_key (u32 *ks, const u32 *ukey); DECLSPEC void serpent256_set_key (u32 *ks, const u32 *ukey) { ks[ 0] = ukey[0]; @@ -871,7 +867,6 @@ DECLSPEC void serpent256_set_key (u32 *ks, const u32 *ukey) k_set(32,a,b,c,d); sb3(a,b,c,d,e,f,g,h); k_get(32,e,f,g,h); } -DECLSPEC void serpent256_encrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void serpent256_encrypt (const u32 *ks, const u32 *in, u32 *out) { u32 a,b,c,d,e,f,g,h; @@ -922,7 +917,6 @@ DECLSPEC void serpent256_encrypt (const u32 *ks, const u32 *in, u32 *out) out[3] = d; } -DECLSPEC void serpent256_decrypt (const u32 *ks, const u32 *in, u32 *out); DECLSPEC void serpent256_decrypt (const u32 *ks, const u32 *in, u32 *out) { u32 a,b,c,d,e,f,g,h; diff --git a/OpenCL/inc_cipher_twofish.cl b/OpenCL/inc_cipher_twofish.cl index f5ca58b54..956b5ea7a 100644 --- a/OpenCL/inc_cipher_twofish.cl +++ b/OpenCL/inc_cipher_twofish.cl @@ -266,7 +266,6 @@ __constant u32a m_tab[4][256] = #define q42(x,k) q (1, q (0, q (0, q (0, x) ^ extract_byte (k[3], 2)) ^ extract_byte (k[2], 2)) ^ extract_byte (k[1], 2)) ^ extract_byte (k[0], 2) #define q43(x,k) q (1, q (1, q (0, q (1, x) ^ extract_byte (k[3], 3)) ^ extract_byte (k[2], 3)) ^ extract_byte (k[1], 3)) ^ extract_byte (k[0], 3) -DECLSPEC u32 mds_rem (u32 p0, u32 p1); DECLSPEC u32 mds_rem (u32 p0, u32 p1) { #define G_MOD 0x14d @@ -336,7 +335,6 @@ DECLSPEC u32 mds_rem (u32 p0, u32 p1) data[1] = rotr32_S (data[1] ^ (t2 + 2 * t3 + lk[4 * (i) + 9]), 1); \ } -DECLSPEC u32 h_fun128 (u32 *sk, u32 *lk, const u32 x, const u32 *key); DECLSPEC u32 h_fun128 (u32 *sk, u32 *lk, const u32 x, const u32 *key) { u32 b0, b1, b2, b3; @@ -354,7 +352,6 @@ DECLSPEC u32 h_fun128 (u32 *sk, u32 *lk, const u32 x, const u32 *key) return mds (0, b0) ^ mds (1, b1) ^ mds (2, b2) ^ mds (3, b3); } -DECLSPEC void twofish128_set_key (u32 *sk, u32 *lk, const u32 *ukey); DECLSPEC void twofish128_set_key (u32 *sk, u32 *lk, const u32 *ukey) { u32 me_key[2]; @@ -385,7 +382,6 @@ DECLSPEC void twofish128_set_key (u32 *sk, u32 *lk, const u32 *ukey) } } -DECLSPEC void twofish128_encrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out); DECLSPEC void twofish128_encrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out) { u32 data[4]; @@ -410,7 +406,6 @@ DECLSPEC void twofish128_encrypt (const u32 *sk, const u32 *lk, const u32 *in, u out[3] = data[1] ^ lk[7]; } -DECLSPEC void twofish128_decrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out); DECLSPEC void twofish128_decrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out) { u32 data[4]; @@ -473,7 +468,6 @@ DECLSPEC void twofish128_decrypt (const u32 *sk, const u32 *lk, const u32 *in, u data[1] = rotr32_S (data[1] ^ (t2 + 2 * t3 + lk[4 * (i) + 9]), 1); \ } -DECLSPEC u32 h_fun256 (u32 *sk, u32 *lk, const u32 x, const u32 *key); DECLSPEC u32 h_fun256 (u32 *sk, u32 *lk, const u32 x, const u32 *key) { u32 b0, b1, b2, b3; @@ -501,7 +495,6 @@ DECLSPEC u32 h_fun256 (u32 *sk, u32 *lk, const u32 x, const u32 *key) return mds (0, b0) ^ mds (1, b1) ^ mds (2, b2) ^ mds (3, b3); } -DECLSPEC void twofish256_set_key (u32 *sk, u32 *lk, const u32 *ukey); DECLSPEC void twofish256_set_key (u32 *sk, u32 *lk, const u32 *ukey) { u32 me_key[4]; @@ -538,7 +531,6 @@ DECLSPEC void twofish256_set_key (u32 *sk, u32 *lk, const u32 *ukey) } } -DECLSPEC void twofish256_encrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out); DECLSPEC void twofish256_encrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out) { u32 data[4]; @@ -563,7 +555,6 @@ DECLSPEC void twofish256_encrypt (const u32 *sk, const u32 *lk, const u32 *in, u out[3] = data[1] ^ lk[7]; } -DECLSPEC void twofish256_decrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out); DECLSPEC void twofish256_decrypt (const u32 *sk, const u32 *lk, const u32 *in, u32 *out) { u32 data[4]; diff --git a/OpenCL/inc_common.cl b/OpenCL/inc_common.cl index bb03282fa..e9f18360b 100644 --- a/OpenCL/inc_common.cl +++ b/OpenCL/inc_common.cl @@ -79,11 +79,1388 @@ #define KERN_ATTR_VECTOR() KERN_ATTR (__global, __constant const u32x * restrict words_buf_r, void, void, void) #define KERN_ATTR_VECTOR_ESALT(e) KERN_ATTR (__global, __constant const u32x * restrict words_buf_r, void, void, e) +// moved from inc_types.cl + +DECLSPEC u32 l32_from_64_S (u64 a) +{ + const u32 r = (u32) (a); + + return r; +} + +DECLSPEC u32 h32_from_64_S (u64 a) +{ + a >>= 32; + + const u32 r = (u32) (a); + + return r; +} + +DECLSPEC u64 hl32_to_64_S (const u32 a, const u32 b) +{ + return as_ulong ((uint2) (b, a)); +} + +DECLSPEC u32x l32_from_64 (u64x a) +{ + u32x r; + + #if VECT_SIZE == 1 + r = (u32) a; + #endif + + #if VECT_SIZE >= 2 + r.s0 = (u32) a.s0; + r.s1 = (u32) a.s1; + #endif + + #if VECT_SIZE >= 4 + r.s2 = (u32) a.s2; + r.s3 = (u32) a.s3; + #endif + + #if VECT_SIZE >= 8 + r.s4 = (u32) a.s4; + r.s5 = (u32) a.s5; + r.s6 = (u32) a.s6; + r.s7 = (u32) a.s7; + #endif + + #if VECT_SIZE >= 16 + r.s8 = (u32) a.s8; + r.s9 = (u32) a.s9; + r.sa = (u32) a.sa; + r.sb = (u32) a.sb; + r.sc = (u32) a.sc; + r.sd = (u32) a.sd; + r.se = (u32) a.se; + r.sf = (u32) a.sf; + #endif + + return r; +} + +DECLSPEC u32x h32_from_64 (u64x a) +{ + a >>= 32; + + u32x r; + + #if VECT_SIZE == 1 + r = (u32) a; + #endif + + #if VECT_SIZE >= 2 + r.s0 = (u32) a.s0; + r.s1 = (u32) a.s1; + #endif + + #if VECT_SIZE >= 4 + r.s2 = (u32) a.s2; + r.s3 = (u32) a.s3; + #endif + + #if VECT_SIZE >= 8 + r.s4 = (u32) a.s4; + r.s5 = (u32) a.s5; + r.s6 = (u32) a.s6; + r.s7 = (u32) a.s7; + #endif + + #if VECT_SIZE >= 16 + r.s8 = (u32) a.s8; + r.s9 = (u32) a.s9; + r.sa = (u32) a.sa; + r.sb = (u32) a.sb; + r.sc = (u32) a.sc; + r.sd = (u32) a.sd; + r.se = (u32) a.se; + r.sf = (u32) a.sf; + #endif + + return r; +} + +DECLSPEC u64x hl32_to_64 (const u32x a, const u32x b) +{ + u64x r; + + #if VECT_SIZE == 1 + r = as_ulong ((uint2) (b, a)); + #endif + + #if VECT_SIZE >= 2 + r.s0 = as_ulong ((uint2) (b.s0, a.s0)); + r.s1 = as_ulong ((uint2) (b.s1, a.s1)); + #endif + + #if VECT_SIZE >= 4 + r.s2 = as_ulong ((uint2) (b.s2, a.s2)); + r.s3 = as_ulong ((uint2) (b.s3, a.s3)); + #endif + + #if VECT_SIZE >= 8 + r.s4 = as_ulong ((uint2) (b.s4, a.s4)); + r.s5 = as_ulong ((uint2) (b.s5, a.s5)); + r.s6 = as_ulong ((uint2) (b.s6, a.s6)); + r.s7 = as_ulong ((uint2) (b.s7, a.s7)); + #endif + + #if VECT_SIZE >= 16 + r.s8 = as_ulong ((uint2) (b.s8, a.s8)); + r.s9 = as_ulong ((uint2) (b.s9, a.s9)); + r.sa = as_ulong ((uint2) (b.sa, a.sa)); + r.sb = as_ulong ((uint2) (b.sb, a.sb)); + r.sc = as_ulong ((uint2) (b.sc, a.sc)); + r.sd = as_ulong ((uint2) (b.sd, a.sd)); + r.se = as_ulong ((uint2) (b.se, a.se)); + r.sf = as_ulong ((uint2) (b.sf, a.sf)); + #endif + + return r; +} + +#ifdef IS_AMD + +#if HAS_VPERM +DECLSPEC u32 swap32_S (const u32 v) +{ + u32 r; + + __asm__ __volatile__ ("V_PERM_B32 %0, 0, %1, %2;" : "=v"(r) : "v"(v), "v"(0x00010203)); + + return r; +} + +DECLSPEC u64 swap64_S (const u64 v) +{ + const u32 v0 = h32_from_64_S (v); + const u32 v1 = l32_from_64_S (v); + + u32 t0; + u32 t1; + + __asm__ __volatile__ ("V_PERM_B32 %0, 0, %1, %2;" : "=v"(t0) : "v"(v0), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, 0, %1, %2;" : "=v"(t1) : "v"(v1), "v"(0x00010203)); + + const u64 r = hl32_to_64_S (t1, t0); + + return r; +} +#else +DECLSPEC u32 swap32_S (const u32 v) +{ + return as_uint (as_uchar4 (v).s3210); +} + +DECLSPEC u64 swap64_S (const u64 v) +{ + return (as_ulong (as_uchar8 (v).s76543210)); +} +#endif + +DECLSPEC u32 rotr32_S (const u32 a, const u32 n) +{ + return rotate (a, (32 - n)); +} + +DECLSPEC u32 rotl32_S (const u32 a, const u32 n) +{ + return rotate (a, n); +} + +DECLSPEC u64 rotr64_S (const u64 a, const u32 n) +{ + const u32 a0 = h32_from_64_S (a); + const u32 a1 = l32_from_64_S (a); + + const u32 t0 = (n >= 32) ? amd_bitalign (a0, a1, n - 32) : amd_bitalign (a1, a0, n); + const u32 t1 = (n >= 32) ? amd_bitalign (a1, a0, n - 32) : amd_bitalign (a0, a1, n); + + const u64 r = hl32_to_64_S (t0, t1); + + return r; +} + +DECLSPEC u64 rotl64_S (const u64 a, const u32 n) +{ + return rotr64_S (a, 64 - n); +} + +#if HAS_VPERM +DECLSPEC u32x swap32 (const u32x v) +{ + return bitselect (rotate (v, 24u), rotate (v, 8u), 0x00ff00ffu); +} + +DECLSPEC u64x swap64 (const u64x v) +{ + const u32x a0 = h32_from_64 (v); + const u32x a1 = l32_from_64 (v); + + u32x t0; + u32x t1; + + #if VECT_SIZE == 1 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0) : "v"(0), "v"(a0), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1) : "v"(0), "v"(a1), "v"(0x00010203)); + #endif + + #if VECT_SIZE >= 2 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s0) : "v"(0), "v"(a0.s0), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s0) : "v"(0), "v"(a1.s0), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s1) : "v"(0), "v"(a0.s1), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s1) : "v"(0), "v"(a1.s1), "v"(0x00010203)); + #endif + + #if VECT_SIZE >= 4 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s2) : "v"(0), "v"(a0.s2), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s2) : "v"(0), "v"(a1.s2), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s3) : "v"(0), "v"(a0.s3), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s3) : "v"(0), "v"(a1.s3), "v"(0x00010203)); + #endif + + #if VECT_SIZE >= 8 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s4) : "v"(0), "v"(a0.s4), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s4) : "v"(0), "v"(a1.s4), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s5) : "v"(0), "v"(a0.s5), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s5) : "v"(0), "v"(a1.s5), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s6) : "v"(0), "v"(a0.s6), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s6) : "v"(0), "v"(a1.s6), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s7) : "v"(0), "v"(a0.s7), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s7) : "v"(0), "v"(a1.s7), "v"(0x00010203)); + #endif + + #if VECT_SIZE >= 16 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s8) : "v"(0), "v"(a0.s8), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s8) : "v"(0), "v"(a1.s8), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s9) : "v"(0), "v"(a0.s9), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s9) : "v"(0), "v"(a1.s9), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sa) : "v"(0), "v"(a0.sa), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sa) : "v"(0), "v"(a1.sa), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sb) : "v"(0), "v"(a0.sb), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sb) : "v"(0), "v"(a1.sb), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sc) : "v"(0), "v"(a0.sc), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sc) : "v"(0), "v"(a1.sc), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sd) : "v"(0), "v"(a0.sd), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sd) : "v"(0), "v"(a1.sd), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.se) : "v"(0), "v"(a0.se), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.se) : "v"(0), "v"(a1.se), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sf) : "v"(0), "v"(a0.sf), "v"(0x00010203)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sf) : "v"(0), "v"(a1.sf), "v"(0x00010203)); + #endif + + const u64x r = hl32_to_64 (t1, t0); + + return r; +} +#else +DECLSPEC u32x swap32 (const u32x v) +{ + return bitselect (rotate (v, 24u), rotate (v, 8u), 0x00ff00ffu); +} + +DECLSPEC u64x swap64 (const u64x v) +{ + return bitselect (bitselect (rotate (v, 24ul), + rotate (v, 8ul), 0x000000ff000000fful), + bitselect (rotate (v, 56ul), + rotate (v, 40ul), 0x00ff000000ff0000ul), + 0xffff0000ffff0000ul); +} +#endif + +DECLSPEC u32x rotr32 (const u32x a, const u32 n) +{ + return rotate (a, (32 - n)); +} + +DECLSPEC u32x rotl32 (const u32x a, const u32 n) +{ + return rotate (a, n); +} + +DECLSPEC u64x rotr64 (const u64x a, const u32 n) +{ + const u32x a0 = h32_from_64 (a); + const u32x a1 = l32_from_64 (a); + + const u32x t0 = (n >= 32) ? amd_bitalign (a0, a1, n - 32) : amd_bitalign (a1, a0, n); + const u32x t1 = (n >= 32) ? amd_bitalign (a1, a0, n - 32) : amd_bitalign (a0, a1, n); + + const u64x r = hl32_to_64 (t0, t1); + + return r; +} + +DECLSPEC u64x rotl64 (const u64x a, const u32 n) +{ + return rotr64 (a, 64 - n); +} + +DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c) +{ + #define BIT(x) ((u32x) (1u) << (x)) + #define BIT_MASK(x) (BIT (x) - 1) + #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) + + return BFE (a, b, c); + + #undef BIT + #undef BIT_MASK + #undef BFE +} + +DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c) +{ + #define BIT(x) (1u << (x)) + #define BIT_MASK(x) (BIT (x) - 1) + #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) + + return BFE (a, b, c); + + #undef BIT + #undef BIT_MASK + #undef BFE +} + +DECLSPEC u32x hc_bytealign_be (const u32x a, const u32x b, const u32 c) +{ + u32x r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a << 24) | (b >> 8); break; + case 2: r = (a << 16) | (b >> 16); break; + case 3: r = (a << 8) | (b >> 24); break; + } + + return r; +} + +DECLSPEC u32 hc_bytealign_be_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a << 24) | (b >> 8); break; + case 2: r = (a << 16) | (b >> 16); break; + case 3: r = (a << 8) | (b >> 24); break; + } + + return r; +} + +DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32 c) +{ + u32x r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a >> 24) | (b << 8); break; + case 2: r = (a >> 16) | (b << 16); break; + case 3: r = (a >> 8) | (b << 24); break; + } + + return r; +} + +DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a >> 24) | (b << 8); break; + case 2: r = (a >> 16) | (b << 16); break; + case 3: r = (a >> 8) | (b << 24); break; + } + + return r; +} + +#if HAS_VPERM +DECLSPEC u32x hc_byte_perm (const u32x a, const u32x b, const u32x c) +{ + u32x r; + + #if VECT_SIZE == 1 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); + #endif + + #if VECT_SIZE >= 2 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + #endif + + #if VECT_SIZE >= 4 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); + #endif + + #if VECT_SIZE >= 8 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); + #endif + + #if VECT_SIZE >= 16 + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s8) : "v"(b.s8), "v"(a.s8), "v"(c.s8)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s9) : "v"(b.s9), "v"(a.s9), "v"(c.s9)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sa) : "v"(b.sa), "v"(a.sa), "v"(c.sa)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sb) : "v"(b.sb), "v"(a.sb), "v"(c.sb)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sc) : "v"(b.sc), "v"(a.sc), "v"(c.sc)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sd) : "v"(b.sd), "v"(a.sd), "v"(c.sd)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.se) : "v"(b.se), "v"(a.se), "v"(c.se)); + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sf) : "v"(b.sf), "v"(a.sf), "v"(c.sf)); + #endif + + return r; +} + +DECLSPEC u32 hc_byte_perm_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); + + return r; +} +#endif + +#if HAS_VADD3 +DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) +{ + u32x r; + + #if VECT_SIZE == 1 + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); + #endif + + #if VECT_SIZE >= 2 + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + #endif + + #if VECT_SIZE >= 4 + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); + #endif + + #if VECT_SIZE >= 8 + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); + #endif + + #if VECT_SIZE >= 16 + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s8) : "v"(b.s8), "v"(a.s8), "v"(c.s8)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s9) : "v"(b.s9), "v"(a.s9), "v"(c.s9)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sa) : "v"(b.sa), "v"(a.sa), "v"(c.sa)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sb) : "v"(b.sb), "v"(a.sb), "v"(c.sb)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sc) : "v"(b.sc), "v"(a.sc), "v"(c.sc)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sd) : "v"(b.sd), "v"(a.sd), "v"(c.sd)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.se) : "v"(b.se), "v"(a.se), "v"(c.se)); + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sf) : "v"(b.sf), "v"(a.sf), "v"(c.sf)); + #endif + + return r; +} + +DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); + + return r; +} +#else +DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) +{ + return a + b + c; +} + +DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) +{ + return a + b + c; +} +#endif + +DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c) +{ + return a ^ b ^ c; +} + +DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c) +{ + return a ^ b ^ c; +} + +#endif + +#ifdef IS_NV +DECLSPEC u32 swap32_S (const u32 v) +{ + u32 r; + + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r) : "r"(v)); + + return r; +} + +DECLSPEC u64 swap64_S (const u64 v) +{ + u32 il; + u32 ir; + + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il), "=r"(ir) : "l"(v)); + + u32 tl; + u32 tr; + + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl) : "r"(il)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr) : "r"(ir)); + + u64 r; + + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r) : "r"(tr), "r"(tl)); + + return r; +} + +DECLSPEC u32 rotr32_S (const u32 a, const u32 n) +{ + return rotate (a, (32 - n)); +} + +DECLSPEC u32 rotl32_S (const u32 a, const u32 n) +{ + return rotate (a, n); +} + +DECLSPEC u64 rotr64_S (const u64 a, const u32 n) +{ + return rotate (a, (u64) (64 - n)); +} + +DECLSPEC u64 rotl64_S (const u64 a, const u32 n) +{ + return rotate (a, (u64) n); +} + +DECLSPEC u32x swap32 (const u32x v) +{ + u32x r; + + #if VECT_SIZE == 1 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r) : "r"(v)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s0) : "r"(v.s0)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s1) : "r"(v.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s2) : "r"(v.s2)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s3) : "r"(v.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s4) : "r"(v.s4)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s5) : "r"(v.s5)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s6) : "r"(v.s6)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s7) : "r"(v.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s8) : "r"(v.s8)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s9) : "r"(v.s9)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sa) : "r"(v.sa)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sb) : "r"(v.sb)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sc) : "r"(v.sc)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sd) : "r"(v.sd)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.se) : "r"(v.se)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sf) : "r"(v.sf)); + #endif + + return r; +} + +DECLSPEC u64x swap64 (const u64x v) +{ + u32x il; + u32x ir; + + #if VECT_SIZE == 1 + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il), "=r"(ir) : "l"(v)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s0), "=r"(ir.s0) : "l"(v.s0)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s1), "=r"(ir.s1) : "l"(v.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s2), "=r"(ir.s2) : "l"(v.s2)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s3), "=r"(ir.s3) : "l"(v.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s4), "=r"(ir.s4) : "l"(v.s4)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s5), "=r"(ir.s5) : "l"(v.s5)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s6), "=r"(ir.s6) : "l"(v.s6)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s7), "=r"(ir.s7) : "l"(v.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s8), "=r"(ir.s8) : "l"(v.s8)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s9), "=r"(ir.s9) : "l"(v.s9)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sa), "=r"(ir.sa) : "l"(v.sa)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sb), "=r"(ir.sb) : "l"(v.sb)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sc), "=r"(ir.sc) : "l"(v.sc)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sd), "=r"(ir.sd) : "l"(v.sd)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.se), "=r"(ir.se) : "l"(v.se)); + asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sf), "=r"(ir.sf) : "l"(v.sf)); + #endif + + u32x tl; + u32x tr; + + #if VECT_SIZE == 1 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl) : "r"(il)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr) : "r"(ir)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s0) : "r"(il.s0)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s0) : "r"(ir.s0)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s1) : "r"(il.s1)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s1) : "r"(ir.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s2) : "r"(il.s2)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s2) : "r"(ir.s2)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s3) : "r"(il.s3)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s3) : "r"(ir.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s4) : "r"(il.s4)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s4) : "r"(ir.s4)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s5) : "r"(il.s5)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s5) : "r"(ir.s5)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s6) : "r"(il.s6)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s6) : "r"(ir.s6)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s7) : "r"(il.s7)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s7) : "r"(ir.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s8) : "r"(il.s8)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s8) : "r"(ir.s8)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s9) : "r"(il.s9)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s9) : "r"(ir.s9)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sa) : "r"(il.sa)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sa) : "r"(ir.sa)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sb) : "r"(il.sb)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sb) : "r"(ir.sb)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sc) : "r"(il.sc)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sc) : "r"(ir.sc)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sd) : "r"(il.sd)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sd) : "r"(ir.sd)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.se) : "r"(il.se)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.se) : "r"(ir.se)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sf) : "r"(il.sf)); + asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sf) : "r"(ir.sf)); + #endif + + u64x r; + + #if VECT_SIZE == 1 + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r) : "r"(tr), "r"(tl)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s0) : "r"(tr.s0), "r"(tl.s0)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s1) : "r"(tr.s1), "r"(tl.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s2) : "r"(tr.s2), "r"(tl.s2)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s3) : "r"(tr.s3), "r"(tl.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s4) : "r"(tr.s4), "r"(tl.s4)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s5) : "r"(tr.s5), "r"(tl.s5)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s6) : "r"(tr.s6), "r"(tl.s6)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s7) : "r"(tr.s7), "r"(tl.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s8) : "r"(tr.s8), "r"(tl.s8)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s9) : "r"(tr.s9), "r"(tl.s9)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sa) : "r"(tr.sa), "r"(tl.sa)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sb) : "r"(tr.sb), "r"(tl.sb)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sc) : "r"(tr.sc), "r"(tl.sc)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sd) : "r"(tr.sd), "r"(tl.sd)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.se) : "r"(tr.se), "r"(tl.se)); + asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sf) : "r"(tr.sf), "r"(tl.sf)); + #endif + + return r; +} + +DECLSPEC u32x rotr32 (const u32x a, const u32 n) +{ + return rotate (a, (32 - n)); +} + +DECLSPEC u32x rotl32 (const u32x a, const u32 n) +{ + return rotate (a, n); +} + +DECLSPEC u64x rotr64 (const u64x a, const u32 n) +{ + return rotate (a, (u64x) (64 - n)); +} + +DECLSPEC u64x rotl64 (const u64x a, const u32 n) +{ + return rotate (a, (u64x) n); +} + +DECLSPEC u32x hc_byte_perm (const u32x a, const u32x b, const u32x c) +{ + u32x r; + + #if VECT_SIZE == 1 + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c) ); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s0) : "r"(a.s0), "r"(b.s0), "r"(c.s0)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s1) : "r"(a.s1), "r"(b.s1), "r"(c.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s2) : "r"(a.s2), "r"(b.s2), "r"(c.s2)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s3) : "r"(a.s3), "r"(b.s3), "r"(c.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s4) : "r"(a.s4), "r"(b.s4), "r"(c.s4)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s5) : "r"(a.s5), "r"(b.s5), "r"(c.s5)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s6) : "r"(a.s6), "r"(b.s6), "r"(c.s6)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s7) : "r"(a.s7), "r"(b.s7), "r"(c.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s8) : "r"(a.s8), "r"(b.s8), "r"(c.s8)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s9) : "r"(a.s9), "r"(b.s9), "r"(c.s9)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sa) : "r"(a.sa), "r"(b.sa), "r"(c.sa)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sb) : "r"(a.sb), "r"(b.sb), "r"(c.sb)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sc) : "r"(a.sc), "r"(b.sc), "r"(c.sc)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sd) : "r"(a.sd), "r"(b.sd), "r"(c.sd)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.se) : "r"(a.se), "r"(b.se), "r"(c.se)); + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sf) : "r"(a.sf), "r"(b.sf), "r"(c.sf)); + #endif + + return r; +} + +DECLSPEC u32 hc_byte_perm_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c)); + + return r; +} + +DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c) +{ + u32x r; + + #if VECT_SIZE == 1 + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s0) : "r"(a.s0), "r"(b.s0), "r"(c.s0)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s1) : "r"(a.s1), "r"(b.s1), "r"(c.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s2) : "r"(a.s2), "r"(b.s2), "r"(c.s2)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s3) : "r"(a.s3), "r"(b.s3), "r"(c.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s4) : "r"(a.s4), "r"(b.s4), "r"(c.s4)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s5) : "r"(a.s5), "r"(b.s5), "r"(c.s5)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s6) : "r"(a.s6), "r"(b.s6), "r"(c.s6)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s7) : "r"(a.s7), "r"(b.s7), "r"(c.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s8) : "r"(a.s8), "r"(b.s8), "r"(c.s8)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s9) : "r"(a.s9), "r"(b.s9), "r"(c.s9)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sa) : "r"(a.sa), "r"(b.sa), "r"(c.sa)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sb) : "r"(a.sb), "r"(b.sb), "r"(c.sb)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sc) : "r"(a.sc), "r"(b.sc), "r"(c.sc)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sd) : "r"(a.sd), "r"(b.sd), "r"(c.sd)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.se) : "r"(a.se), "r"(b.se), "r"(c.se)); + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sf) : "r"(a.sf), "r"(b.sf), "r"(c.sf)); + #endif + + return r; +} + +DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c)); + + return r; +} + +DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32x c) +{ + u32x r; + + #if CUDA_ARCH >= 350 + + #if VECT_SIZE == 1 + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(b), "r"(a), "r"((c & 3) * 8)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s0) : "r"(b.s0), "r"(a.s0), "r"((c.s0 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s1) : "r"(b.s1), "r"(a.s1), "r"((c.s1 & 3) * 8)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s2) : "r"(b.s2), "r"(a.s2), "r"((c.s2 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s3) : "r"(b.s3), "r"(a.s3), "r"((c.s3 & 3) * 8)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s4) : "r"(b.s4), "r"(a.s4), "r"((c.s4 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s5) : "r"(b.s5), "r"(a.s5), "r"((c.s5 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s6) : "r"(b.s6), "r"(a.s6), "r"((c.s6 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s7) : "r"(b.s7), "r"(a.s7), "r"((c.s7 & 3) * 8)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s8) : "r"(b.s8), "r"(a.s8), "r"((c.s8 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s9) : "r"(b.s9), "r"(a.s9), "r"((c.s9 & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sa) : "r"(b.sa), "r"(a.sa), "r"((c.sa & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sb) : "r"(b.sb), "r"(a.sb), "r"((c.sb & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sc) : "r"(b.sc), "r"(a.sc), "r"((c.sc & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sd) : "r"(b.sd), "r"(a.sd), "r"((c.sd & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.se) : "r"(b.se), "r"(a.se), "r"((c.se & 3) * 8)); + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sf) : "r"(b.sf), "r"(a.sf), "r"((c.sf & 3) * 8)); + #endif + + #else + + r = hc_byte_perm (b, a, ((u32x) (0x76543210) >> ((c & 3) * 4)) & 0xffff); + + #endif + + return r; +} + +DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + #if CUDA_ARCH >= 350 + + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(b), "r"(a), "r"((c & 3) * 8)); + + #else + + r = hc_byte_perm_S (b, a, (0x76543210 >> ((c & 3) * 4)) & 0xffff); + + #endif + + return r; +} + +DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) +{ + return a + b + c; +} + +DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) +{ + return a + b + c; +} + +DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c) +{ + u32x r; + + #if CUDA_ARCH >= 500 + + #if VECT_SIZE == 1 + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r): "r"(a), "r"(b), "r"(c)); + #endif + + #if VECT_SIZE >= 2 + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s0): "r"(a.s0), "r"(b.s0), "r"(c.s0)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s1): "r"(a.s1), "r"(b.s1), "r"(c.s1)); + #endif + + #if VECT_SIZE >= 4 + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s2): "r"(a.s2), "r"(b.s2), "r"(c.s2)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s3): "r"(a.s3), "r"(b.s3), "r"(c.s3)); + #endif + + #if VECT_SIZE >= 8 + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s4): "r"(a.s4), "r"(b.s4), "r"(c.s4)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s5): "r"(a.s5), "r"(b.s5), "r"(c.s5)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s6): "r"(a.s6), "r"(b.s6), "r"(c.s6)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s7): "r"(a.s7), "r"(b.s7), "r"(c.s7)); + #endif + + #if VECT_SIZE >= 16 + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s8): "r"(a.s8), "r"(b.s8), "r"(c.s8)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s9): "r"(a.s9), "r"(b.s9), "r"(c.s9)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sa): "r"(a.sa), "r"(b.sa), "r"(c.sa)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sb): "r"(a.sb), "r"(b.sb), "r"(c.sb)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sc): "r"(a.sc), "r"(b.sc), "r"(c.sc)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sd): "r"(a.sd), "r"(b.sd), "r"(c.sd)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.se): "r"(a.se), "r"(b.se), "r"(c.se)); + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sf): "r"(a.sf), "r"(b.sf), "r"(c.sf)); + #endif + + #else + + r = a ^ b ^ c; + + #endif + + return r; +} + +DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + #if CUDA_ARCH >= 500 + + asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r): "r"(a), "r"(b), "r"(c)); + + #else + + r = a ^ b ^ c; + + #endif + + return r; +} + +#endif + +#ifdef IS_GENERIC +DECLSPEC u32 swap32_S (const u32 v) +{ + return (as_uint (as_uchar4 (v).s3210)); +} + +DECLSPEC u64 swap64_S (const u64 v) +{ + return (as_ulong (as_uchar8 (v).s76543210)); +} + +DECLSPEC u32 rotr32_S (const u32 a, const u32 n) +{ + return rotate (a, (32 - n)); +} + +DECLSPEC u32 rotl32_S (const u32 a, const u32 n) +{ + return rotate (a, n); +} + +DECLSPEC u64 rotr64_S (const u64 a, const u32 n) +{ + return rotate (a, (u64) (64 - n)); +} + +DECLSPEC u64 rotl64_S (const u64 a, const u32 n) +{ + return rotate (a, (u64) n); +} + +DECLSPEC u32x swap32 (const u32x v) +{ + return ((v >> 24) & 0x000000ff) + | ((v >> 8) & 0x0000ff00) + | ((v << 8) & 0x00ff0000) + | ((v << 24) & 0xff000000); +} + +DECLSPEC u64x swap64 (const u64x v) +{ + return ((v >> 56) & 0x00000000000000ff) + | ((v >> 40) & 0x000000000000ff00) + | ((v >> 24) & 0x0000000000ff0000) + | ((v >> 8) & 0x00000000ff000000) + | ((v << 8) & 0x000000ff00000000) + | ((v << 24) & 0x0000ff0000000000) + | ((v << 40) & 0x00ff000000000000) + | ((v << 56) & 0xff00000000000000); +} + +DECLSPEC u32x rotr32 (const u32x a, const u32 n) +{ + return rotate (a, (32 - n)); +} + +DECLSPEC u32x rotl32 (const u32x a, const u32 n) +{ + return rotate (a, n); +} + +DECLSPEC u64x rotr64 (const u64x a, const u32 n) +{ + return rotate (a, (u64x) (64 - n)); +} + +DECLSPEC u64x rotl64 (const u64x a, const u32 n) +{ + return rotate (a, (u64x) n); +} + +DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c) +{ + #define BIT(x) ((u32x) (1u) << (x)) + #define BIT_MASK(x) (BIT (x) - 1) + #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) + + return BFE (a, b, c); + + #undef BIT + #undef BIT_MASK + #undef BFE +} + +DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c) +{ + #define BIT(x) (1u << (x)) + #define BIT_MASK(x) (BIT (x) - 1) + #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) + + return BFE (a, b, c); + + #undef BIT + #undef BIT_MASK + #undef BFE +} + +DECLSPEC u32x hc_bytealign_be (const u32x a, const u32x b, const u32 c) +{ + u32x r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a << 24) | (b >> 8); break; + case 2: r = (a << 16) | (b >> 16); break; + case 3: r = (a << 8) | (b >> 24); break; + } + + return r; +} + +DECLSPEC u32 hc_bytealign_be_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a << 24) | (b >> 8); break; + case 2: r = (a << 16) | (b >> 16); break; + case 3: r = (a << 8) | (b >> 24); break; + } + + return r; +} + +DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32 c) +{ + u32x r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a >> 24) | (b << 8); break; + case 2: r = (a >> 16) | (b << 16); break; + case 3: r = (a >> 8) | (b << 24); break; + } + + return r; +} + +DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c) +{ + u32 r; + + switch (c & 3) + { + case 0: r = b; break; + case 1: r = (a >> 24) | (b << 8); break; + case 2: r = (a >> 16) | (b << 16); break; + case 3: r = (a >> 8) | (b << 24); break; + } + + return r; +} + +DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) +{ + return a + b + c; +} + +DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) +{ + return a + b + c; +} + +DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c) +{ + return a ^ b ^ c; +} + +DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c) +{ + return a ^ b ^ c; +} + +#endif + +// functions + +DECLSPEC u8 v8a_from_v32_S (const u32 v32) +{ + vconv32_t v; + + v.v32 = v32; + + return v.v8a; +} + +DECLSPEC u8 v8b_from_v32_S (const u32 v32) +{ + vconv32_t v; + + v.v32 = v32; + + return v.v8b; +} + +DECLSPEC u8 v8c_from_v32_S (const u32 v32) +{ + vconv32_t v; + + v.v32 = v32; + + return v.v8c; +} + +DECLSPEC u8 v8d_from_v32_S (const u32 v32) +{ + vconv32_t v; + + v.v32 = v32; + + return v.v8d; +} + +DECLSPEC u16 v16a_from_v32_S (const u32 v32) +{ + vconv32_t v; + + v.v32 = v32; + + return v.v16a; +} + +DECLSPEC u16 v16b_from_v32_S (const u32 v32) +{ + vconv32_t v; + + v.v32 = v32; + + return v.v16b; +} + +DECLSPEC u32 v32_from_v16ab_S (const u16 v16a, const u16 v16b) +{ + vconv32_t v; + + v.v16a = v16a; + v.v16b = v16b; + + return v.v32; +} + +DECLSPEC u32 v32a_from_v64_S (const u64 v64) +{ + vconv64_t v; + + v.v64 = v64; + + return v.v32a; +} + +DECLSPEC u32 v32b_from_v64_S (const u64 v64) +{ + vconv64_t v; + + v.v64 = v64; + + return v.v32b; +} + +DECLSPEC u64 v64_from_v32ab_S (const u32 v32a, const u32 v32b) +{ + vconv64_t v; + + v.v32a = v32a; + v.v32b = v32b; + + return v.v64; +} + +// unpack function are similar, but always return u32 + +DECLSPEC u32 unpack_v8a_from_v32_S (const u32 v32) +{ + u32 r; + + #if defined IS_NV + asm volatile ("bfe.u32 %0, %1, 0, 8;" : "=r"(r) : "r"(v32)); + #elif defined IS_AMD + #if HAS_VBFE + __asm__ __volatile__ ("V_BFE_U32 %0, %1, 0, 8;" : "=v"(r) : "v"(v32)); + #else + r = (v32 >> 0) & 0xff; + #endif + #else + r = (v32 >> 0) & 0xff; + #endif + + return r; +} + +DECLSPEC u32 unpack_v8b_from_v32_S (const u32 v32) +{ + u32 r; + + #if defined IS_NV + asm volatile ("bfe.u32 %0, %1, 8, 8;" : "=r"(r) : "r"(v32)); + #elif defined IS_AMD + #if HAS_VBFE + __asm__ __volatile__ ("V_BFE_U32 %0, %1, 8, 8;" : "=v"(r) : "v"(v32)); + #else + r = (v32 >> 8) & 0xff; + #endif + #else + r = (v32 >> 8) & 0xff; + #endif + + return r; +} + +DECLSPEC u32 unpack_v8c_from_v32_S (const u32 v32) +{ + u32 r; + + #if defined IS_NV + asm volatile ("bfe.u32 %0, %1, 16, 8;" : "=r"(r) : "r"(v32)); + #elif defined IS_AMD + #if HAS_VBFE + __asm__ __volatile__ ("V_BFE_U32 %0, %1, 16, 8;" : "=v"(r) : "v"(v32)); + #else + r = (v32 >> 16) & 0xff; + #endif + #else + r = (v32 >> 16) & 0xff; + #endif + + return r; +} + +DECLSPEC u32 unpack_v8d_from_v32_S (const u32 v32) +{ + u32 r; + + #if defined IS_NV + asm volatile ("bfe.u32 %0, %1, 24, 8;" : "=r"(r) : "r"(v32)); + #elif defined IS_AMD + #if HAS_VBFE + __asm__ __volatile__ ("V_BFE_U32 %0, %1, 24, 8;" : "=v"(r) : "v"(v32)); + #else + r = (v32 >> 24) & 0xff; + #endif + #else + r = (v32 >> 24) & 0xff; + #endif + + return r; +} + /** * pure scalar functions */ -DECLSPEC int ffz (const u32 v); DECLSPEC int ffz (const u32 v) { #ifdef _unroll @@ -99,7 +1476,6 @@ DECLSPEC int ffz (const u32 v) return -1; } -DECLSPEC int hash_comp (const u32 *d1, __global const u32 *d2); DECLSPEC int hash_comp (const u32 *d1, __global const u32 *d2) { if (d1[3] > d2[DGST_R3]) return ( 1); @@ -114,7 +1490,6 @@ DECLSPEC int hash_comp (const u32 *d1, __global const u32 *d2) return (0); } -DECLSPEC int find_hash (const u32 *digest, const u32 digests_cnt, __global const digest_t *digests_buf); DECLSPEC int find_hash (const u32 *digest, const u32 digests_cnt, __global const digest_t *digests_buf) { for (u32 l = 0, r = digests_cnt; r; r >>= 1) @@ -138,13 +1513,11 @@ DECLSPEC int find_hash (const u32 *digest, const u32 digests_cnt, __global const return (-1); } -DECLSPEC u32 check_bitmap (__global const u32 *bitmap, const u32 bitmap_mask, const u32 bitmap_shift, const u32 digest); DECLSPEC u32 check_bitmap (__global const u32 *bitmap, const u32 bitmap_mask, const u32 bitmap_shift, const u32 digest) { return (bitmap[(digest >> bitmap_shift) & bitmap_mask] & (1 << (digest & 0x1f))); } -DECLSPEC u32 check (const u32 *digest, __global const u32 *bitmap_s1_a, __global const u32 *bitmap_s1_b, __global const u32 *bitmap_s1_c, __global const u32 *bitmap_s1_d, __global const u32 *bitmap_s2_a, __global const u32 *bitmap_s2_b, __global const u32 *bitmap_s2_c, __global const u32 *bitmap_s2_d, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2); DECLSPEC u32 check (const u32 *digest, __global const u32 *bitmap_s1_a, __global const u32 *bitmap_s1_b, __global const u32 *bitmap_s1_c, __global const u32 *bitmap_s1_d, __global const u32 *bitmap_s2_a, __global const u32 *bitmap_s2_b, __global const u32 *bitmap_s2_c, __global const u32 *bitmap_s2_d, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2) { if (check_bitmap (bitmap_s1_a, bitmap_mask, bitmap_shift1, digest[0]) == 0) return (0); @@ -160,7 +1533,6 @@ DECLSPEC u32 check (const u32 *digest, __global const u32 *bitmap_s1_a, __global return (1); } -DECLSPEC void mark_hash (__global plain_t *plains_buf, __global u32 *d_result, const u32 salt_pos, const u32 digests_cnt, const u32 digest_pos, const u32 hash_pos, const u64 gid, const u32 il_pos, const u32 extra1, const u32 extra2); DECLSPEC void mark_hash (__global plain_t *plains_buf, __global u32 *d_result, const u32 salt_pos, const u32 digests_cnt, const u32 digest_pos, const u32 hash_pos, const u64 gid, const u32 il_pos, const u32 extra1, const u32 extra2) { const u32 idx = atomic_inc (d_result); @@ -184,7 +1556,6 @@ DECLSPEC void mark_hash (__global plain_t *plains_buf, __global u32 *d_result, c plains_buf[idx].extra2 = extra2; // unused so far } -DECLSPEC int count_char (const u32 *buf, const int elems, const u32 c); DECLSPEC int count_char (const u32 *buf, const int elems, const u32 c) { int r = 0; @@ -202,7 +1573,6 @@ DECLSPEC int count_char (const u32 *buf, const int elems, const u32 c) return r; } -DECLSPEC float get_entropy (const u32 *buf, const int elems); DECLSPEC float get_entropy (const u32 *buf, const int elems) { const int length = elems * 4; @@ -226,7 +1596,6 @@ DECLSPEC float get_entropy (const u32 *buf, const int elems) return entropy; } -DECLSPEC int is_valid_hex_8 (const u8 v); DECLSPEC int is_valid_hex_8 (const u8 v) { // direct lookup table is slower thanks to CMOV @@ -237,7 +1606,6 @@ DECLSPEC int is_valid_hex_8 (const u8 v) return 0; } -DECLSPEC int is_valid_hex_32 (const u32 v); DECLSPEC int is_valid_hex_32 (const u32 v) { if (is_valid_hex_8 ((u8) (v >> 0)) == 0) return 0; @@ -248,7 +1616,6 @@ DECLSPEC int is_valid_hex_32 (const u32 v) return 1; } -DECLSPEC int is_valid_base58_8 (const u8 v); DECLSPEC int is_valid_base58_8 (const u8 v) { if (v > 'z') return 0; @@ -259,7 +1626,6 @@ DECLSPEC int is_valid_base58_8 (const u8 v) return 1; } -DECLSPEC int is_valid_base58_32 (const u32 v); DECLSPEC int is_valid_base58_32 (const u32 v) { if (is_valid_base58_8 ((u8) (v >> 0)) == 0) return 0; @@ -270,7 +1636,6 @@ DECLSPEC int is_valid_base58_32 (const u32 v) return 1; } -DECLSPEC int find_keyboard_layout_map (const u32 search, const int search_len, __local keyboard_layout_mapping_t *s_keyboard_layout_mapping_buf, const int keyboard_layout_mapping_cnt); DECLSPEC int find_keyboard_layout_map (const u32 search, const int search_len, __local keyboard_layout_mapping_t *s_keyboard_layout_mapping_buf, const int keyboard_layout_mapping_cnt) { for (int idx = 0; idx < keyboard_layout_mapping_cnt; idx++) @@ -289,7 +1654,6 @@ DECLSPEC int find_keyboard_layout_map (const u32 search, const int search_len, _ return -1; } -DECLSPEC int execute_keyboard_layout_mapping (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const int pw_len, __local keyboard_layout_mapping_t *s_keyboard_layout_mapping_buf, const int keyboard_layout_mapping_cnt); DECLSPEC int execute_keyboard_layout_mapping (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const int pw_len, __local keyboard_layout_mapping_t *s_keyboard_layout_mapping_buf, const int keyboard_layout_mapping_cnt) { u32 out_buf[16] = { 0 }; @@ -420,7 +1784,6 @@ DECLSPEC int execute_keyboard_layout_mapping (u32 w0[4], u32 w1[4], u32 w2[4], u * vector functions */ -DECLSPEC void make_utf16be (const u32x *in, u32x *out1, u32x *out2); DECLSPEC void make_utf16be (const u32x *in, u32x *out1, u32x *out2) { #if defined IS_NV @@ -459,7 +1822,6 @@ DECLSPEC void make_utf16be (const u32x *in, u32x *out1, u32x *out2) #endif } -DECLSPEC void make_utf16beN (const u32x *in, u32x *out1, u32x *out2); DECLSPEC void make_utf16beN (const u32x *in, u32x *out1, u32x *out2) { #if defined IS_NV @@ -498,7 +1860,6 @@ DECLSPEC void make_utf16beN (const u32x *in, u32x *out1, u32x *out2) #endif } -DECLSPEC void make_utf16le (const u32x *in, u32x *out1, u32x *out2); DECLSPEC void make_utf16le (const u32x *in, u32x *out1, u32x *out2) { #if defined IS_NV @@ -537,7 +1898,6 @@ DECLSPEC void make_utf16le (const u32x *in, u32x *out1, u32x *out2) #endif } -DECLSPEC void make_utf16leN (const u32x *in, u32x *out1, u32x *out2); DECLSPEC void make_utf16leN (const u32x *in, u32x *out1, u32x *out2) { #if defined IS_NV @@ -576,7 +1936,6 @@ DECLSPEC void make_utf16leN (const u32x *in, u32x *out1, u32x *out2) #endif } -DECLSPEC void undo_utf16be (const u32x *in1, const u32x *in2, u32x *out); DECLSPEC void undo_utf16be (const u32x *in1, const u32x *in2, u32x *out) { #if defined IS_NV @@ -607,7 +1966,6 @@ DECLSPEC void undo_utf16be (const u32x *in1, const u32x *in2, u32x *out) #endif } -DECLSPEC void undo_utf16le (const u32x *in1, const u32x *in2, u32x *out); DECLSPEC void undo_utf16le (const u32x *in1, const u32x *in2, u32x *out) { #if defined IS_NV @@ -638,7 +1996,6 @@ DECLSPEC void undo_utf16le (const u32x *in1, const u32x *in2, u32x *out) #endif } -DECLSPEC void set_mark_1x4 (u32 *v, const u32 offset); DECLSPEC void set_mark_1x4 (u32 *v, const u32 offset) { const u32 c = (offset & 15) / 4; @@ -650,7 +2007,6 @@ DECLSPEC void set_mark_1x4 (u32 *v, const u32 offset) v[3] = (c == 3) ? r : 0; } -DECLSPEC void append_helper_1x4 (u32x *r, const u32 v, const u32 *m); DECLSPEC void append_helper_1x4 (u32x *r, const u32 v, const u32 *m) { r[0] |= v & m[0]; @@ -659,7 +2015,6 @@ DECLSPEC void append_helper_1x4 (u32x *r, const u32 v, const u32 *m) r[3] |= v & m[3]; } -DECLSPEC void append_0x80_1x4 (u32x *w0, const u32 offset); DECLSPEC void append_0x80_1x4 (u32x *w0, const u32 offset) { u32 v[4]; @@ -669,7 +2024,6 @@ DECLSPEC void append_0x80_1x4 (u32x *w0, const u32 offset) append_helper_1x4 (w0, 0x80808080, v); } -DECLSPEC void append_0x80_2x4 (u32x *w0, u32x *w1, const u32 offset); DECLSPEC void append_0x80_2x4 (u32x *w0, u32x *w1, const u32 offset) { u32 v[4]; @@ -682,7 +2036,6 @@ DECLSPEC void append_0x80_2x4 (u32x *w0, u32x *w1, const u32 offset) append_helper_1x4 (w1, ((offset16 == 1) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_3x4 (u32x *w0, u32x *w1, u32x *w2, const u32 offset); DECLSPEC void append_0x80_3x4 (u32x *w0, u32x *w1, u32x *w2, const u32 offset) { u32 v[4]; @@ -696,7 +2049,6 @@ DECLSPEC void append_0x80_3x4 (u32x *w0, u32x *w1, u32x *w2, const u32 offset) append_helper_1x4 (w2, ((offset16 == 2) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_4x4 (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 offset); DECLSPEC void append_0x80_4x4 (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 offset) { u32 v[4]; @@ -711,7 +2063,6 @@ DECLSPEC void append_0x80_4x4 (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 append_helper_1x4 (w3, ((offset16 == 3) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_8x4 (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32 offset); DECLSPEC void append_0x80_8x4 (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32 offset) { u32 v[4]; @@ -730,7 +2081,6 @@ DECLSPEC void append_0x80_8x4 (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, append_helper_1x4 (w7, ((offset16 == 7) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_1x16 (u32x *w, const u32 offset); DECLSPEC void append_0x80_1x16 (u32x *w, const u32 offset) { u32 v[4]; @@ -745,7 +2095,6 @@ DECLSPEC void append_0x80_1x16 (u32x *w, const u32 offset) append_helper_1x4 (w + 12, ((offset16 == 3) ? 0x80808080 : 0), v); } -DECLSPEC void switch_buffer_by_offset_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 offset); DECLSPEC void switch_buffer_by_offset_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 offset) { const int offset_switch = offset / 4; @@ -1414,7 +2763,6 @@ DECLSPEC void switch_buffer_by_offset_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3 #endif } -DECLSPEC void switch_buffer_by_offset_carry_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *c0, u32x *c1, u32x *c2, u32x *c3, const u32 offset); DECLSPEC void switch_buffer_by_offset_carry_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *c0, u32x *c1, u32x *c2, u32x *c3, const u32 offset) { const int offset_switch = offset / 4; @@ -2684,7 +4032,6 @@ DECLSPEC void switch_buffer_by_offset_carry_le (u32x *w0, u32x *w1, u32x *w2, u3 #endif } -DECLSPEC void switch_buffer_by_offset_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 offset); DECLSPEC void switch_buffer_by_offset_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32 offset) { const int offset_switch = offset / 4; @@ -3349,7 +4696,6 @@ DECLSPEC void switch_buffer_by_offset_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3 #endif } -DECLSPEC void switch_buffer_by_offset_carry_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *c0, u32x *c1, u32x *c2, u32x *c3, const u32 offset); DECLSPEC void switch_buffer_by_offset_carry_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *c0, u32x *c1, u32x *c2, u32x *c3, const u32 offset) { const int offset_switch = offset / 4; @@ -4286,7 +5632,6 @@ DECLSPEC void switch_buffer_by_offset_carry_be (u32x *w0, u32x *w1, u32x *w2, u3 #endif } -DECLSPEC void switch_buffer_by_offset_8x4_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32 offset); DECLSPEC void switch_buffer_by_offset_8x4_le (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32 offset) { const int offset_switch = offset / 4; @@ -6027,7 +7372,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_le (u32x *w0, u32x *w1, u32x *w2, u32x #endif } -DECLSPEC void switch_buffer_by_offset_8x4_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32 offset); DECLSPEC void switch_buffer_by_offset_8x4_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32 offset) { const int offset_switch = offset / 4; @@ -8356,7 +9700,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_be (u32x *w0, u32x *w1, u32x *w2, u32x #endif } -DECLSPEC void switch_buffer_by_offset_8x4_carry_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, u32x *c0, u32x *c1, u32x *c2, u32x *c3, u32x *c4, u32x *c5, u32x *c6, u32x *c7, const u32 offset); DECLSPEC void switch_buffer_by_offset_8x4_carry_be (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, u32x *c0, u32x *c1, u32x *c2, u32x *c3, u32x *c4, u32x *c5, u32x *c6, u32x *c7, const u32 offset) { const int offset_switch = offset / 4; @@ -11741,7 +13084,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_carry_be (u32x *w0, u32x *w1, u32x *w2 #endif } -DECLSPEC void switch_buffer_by_offset_1x64_le (u32x *w, const u32 offset); DECLSPEC void switch_buffer_by_offset_1x64_le (u32x *w, const u32 offset) { const int offset_switch = offset / 4; @@ -20474,7 +21816,6 @@ DECLSPEC void switch_buffer_by_offset_1x64_le (u32x *w, const u32 offset) #endif } -DECLSPEC void switch_buffer_by_offset_1x64_be (u32x *w, const u32 offset); DECLSPEC void switch_buffer_by_offset_1x64_be (u32x *w, const u32 offset) { const int offset_switch = offset / 4; @@ -29207,7 +30548,6 @@ DECLSPEC void switch_buffer_by_offset_1x64_be (u32x *w, const u32 offset) * vector functions as scalar (for outer loop usage) */ -DECLSPEC void truncate_block_4x4_le_S (u32 *w0, const u32 len); DECLSPEC void truncate_block_4x4_le_S (u32 *w0, const u32 len) { switch (len) @@ -29318,7 +30658,6 @@ DECLSPEC void truncate_block_4x4_le_S (u32 *w0, const u32 len) } } -DECLSPEC void truncate_block_4x4_be_S (u32 *w0, const u32 len); DECLSPEC void truncate_block_4x4_be_S (u32 *w0, const u32 len) { switch (len) @@ -29429,7 +30768,6 @@ DECLSPEC void truncate_block_4x4_be_S (u32 *w0, const u32 len) } } -DECLSPEC void truncate_block_16x4_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 len); DECLSPEC void truncate_block_16x4_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 len) { switch (len) @@ -30236,7 +31574,6 @@ DECLSPEC void truncate_block_16x4_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, cons } } -DECLSPEC void truncate_block_16x4_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 len); DECLSPEC void truncate_block_16x4_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 len) { switch (len) @@ -31043,7 +32380,6 @@ DECLSPEC void truncate_block_16x4_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, cons } } -DECLSPEC void set_mark_1x4_S (u32 *v, const u32 offset); DECLSPEC void set_mark_1x4_S (u32 *v, const u32 offset) { const u32 c = (offset & 15) / 4; @@ -31055,7 +32391,6 @@ DECLSPEC void set_mark_1x4_S (u32 *v, const u32 offset) v[3] = (c == 3) ? r : 0; } -DECLSPEC void append_helper_1x4_S (u32 *r, const u32 v, const u32 *m); DECLSPEC void append_helper_1x4_S (u32 *r, const u32 v, const u32 *m) { r[0] |= v & m[0]; @@ -31064,7 +32399,6 @@ DECLSPEC void append_helper_1x4_S (u32 *r, const u32 v, const u32 *m) r[3] |= v & m[3]; } -DECLSPEC void append_0x01_2x4_S (u32 *w0, u32 *w1, const u32 offset); DECLSPEC void append_0x01_2x4_S (u32 *w0, u32 *w1, const u32 offset) { u32 v[4]; @@ -31077,7 +32411,6 @@ DECLSPEC void append_0x01_2x4_S (u32 *w0, u32 *w1, const u32 offset) append_helper_1x4_S (w1, ((offset16 == 1) ? 0x01010101 : 0), v); } -DECLSPEC void append_0x06_2x4_S (u32 *w0, u32 *w1, const u32 offset); DECLSPEC void append_0x06_2x4_S (u32 *w0, u32 *w1, const u32 offset) { u32 v[4]; @@ -31090,7 +32423,6 @@ DECLSPEC void append_0x06_2x4_S (u32 *w0, u32 *w1, const u32 offset) append_helper_1x4_S (w1, ((offset16 == 1) ? 0x06060606 : 0), v); } -DECLSPEC void append_0x01_4x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset); DECLSPEC void append_0x01_4x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset) { u32 v[4]; @@ -31105,7 +32437,6 @@ DECLSPEC void append_0x01_4x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 o append_helper_1x4_S (w3, ((offset16 == 3) ? 0x01010101 : 0), v); } -DECLSPEC void append_0x80_1x4_S (u32 *w0, const u32 offset); DECLSPEC void append_0x80_1x4_S (u32 *w0, const u32 offset) { u32 v[4]; @@ -31115,7 +32446,6 @@ DECLSPEC void append_0x80_1x4_S (u32 *w0, const u32 offset) append_helper_1x4_S (w0, 0x80808080, v); } -DECLSPEC void append_0x80_2x4_S (u32 *w0, u32 *w1, const u32 offset); DECLSPEC void append_0x80_2x4_S (u32 *w0, u32 *w1, const u32 offset) { u32 v[4]; @@ -31128,7 +32458,6 @@ DECLSPEC void append_0x80_2x4_S (u32 *w0, u32 *w1, const u32 offset) append_helper_1x4_S (w1, ((offset16 == 1) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_3x4_S (u32 *w0, u32 *w1, u32 *w2, const u32 offset); DECLSPEC void append_0x80_3x4_S (u32 *w0, u32 *w1, u32 *w2, const u32 offset) { u32 v[4]; @@ -31142,7 +32471,6 @@ DECLSPEC void append_0x80_3x4_S (u32 *w0, u32 *w1, u32 *w2, const u32 offset) append_helper_1x4_S (w2, ((offset16 == 2) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_4x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset); DECLSPEC void append_0x80_4x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset) { u32 v[4]; @@ -31157,7 +32485,6 @@ DECLSPEC void append_0x80_4x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 o append_helper_1x4_S (w3, ((offset16 == 3) ? 0x80808080 : 0), v); } -DECLSPEC void append_0x80_8x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const u32 offset); DECLSPEC void append_0x80_8x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const u32 offset) { u32 v[4]; @@ -31176,7 +32503,6 @@ DECLSPEC void append_0x80_8x4_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u3 append_helper_1x4_S (w7, ((offset16 == 7) ? 0x80808080 : 0), v); } -DECLSPEC void make_utf16be_S (const u32 *in, u32 *out1, u32 *out2); DECLSPEC void make_utf16be_S (const u32 *in, u32 *out1, u32 *out2) { #if defined IS_NV @@ -31215,7 +32541,6 @@ DECLSPEC void make_utf16be_S (const u32 *in, u32 *out1, u32 *out2) #endif } -DECLSPEC void make_utf16le_S (const u32 *in, u32 *out1, u32 *out2); DECLSPEC void make_utf16le_S (const u32 *in, u32 *out1, u32 *out2) { #if defined IS_NV @@ -31254,7 +32579,6 @@ DECLSPEC void make_utf16le_S (const u32 *in, u32 *out1, u32 *out2) #endif } -DECLSPEC void undo_utf16be_S (const u32 *in1, const u32 *in2, u32 *out); DECLSPEC void undo_utf16be_S (const u32 *in1, const u32 *in2, u32 *out) { #if defined IS_NV @@ -31285,7 +32609,6 @@ DECLSPEC void undo_utf16be_S (const u32 *in1, const u32 *in2, u32 *out) #endif } -DECLSPEC void undo_utf16le_S (const u32 *in1, const u32 *in2, u32 *out); DECLSPEC void undo_utf16le_S (const u32 *in1, const u32 *in2, u32 *out) { #if defined IS_NV @@ -31316,7 +32639,6 @@ DECLSPEC void undo_utf16le_S (const u32 *in1, const u32 *in2, u32 *out) #endif } -DECLSPEC void switch_buffer_by_offset_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset); DECLSPEC void switch_buffer_by_offset_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset) { const int offset_switch = offset / 4; @@ -31985,7 +33307,6 @@ DECLSPEC void switch_buffer_by_offset_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, #endif } -DECLSPEC void switch_buffer_by_offset_carry_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *c0, u32 *c1, u32 *c2, u32 *c3, const u32 offset); DECLSPEC void switch_buffer_by_offset_carry_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *c0, u32 *c1, u32 *c2, u32 *c3, const u32 offset) { const int offset_switch = offset / 4; @@ -33255,7 +34576,6 @@ DECLSPEC void switch_buffer_by_offset_carry_le_S (u32 *w0, u32 *w1, u32 *w2, u32 #endif } -DECLSPEC void switch_buffer_by_offset_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset); DECLSPEC void switch_buffer_by_offset_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 offset) { const int offset_switch = offset / 4; @@ -33920,7 +35240,6 @@ DECLSPEC void switch_buffer_by_offset_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, #endif } -DECLSPEC void switch_buffer_by_offset_carry_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *c0, u32 *c1, u32 *c2, u32 *c3, const u32 offset); DECLSPEC void switch_buffer_by_offset_carry_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *c0, u32 *c1, u32 *c2, u32 *c3, const u32 offset) { const int offset_switch = offset / 4; @@ -34857,7 +36176,6 @@ DECLSPEC void switch_buffer_by_offset_carry_be_S (u32 *w0, u32 *w1, u32 *w2, u32 #endif } -DECLSPEC void switch_buffer_by_offset_8x4_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const u32 offset); DECLSPEC void switch_buffer_by_offset_8x4_le_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const u32 offset) { const int offset_switch = offset / 4; @@ -36598,7 +37916,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_le_S (u32 *w0, u32 *w1, u32 *w2, u32 * #endif } -DECLSPEC void switch_buffer_by_offset_8x4_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const u32 offset); DECLSPEC void switch_buffer_by_offset_8x4_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const u32 offset) { const int offset_switch = offset / 4; @@ -38927,7 +40244,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_be_S (u32 *w0, u32 *w1, u32 *w2, u32 * #endif } -DECLSPEC void switch_buffer_by_offset_8x4_carry_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, u32 *c0, u32 *c1, u32 *c2, u32 *c3, u32 *c4, u32 *c5, u32 *c6, u32 *c7, const u32 offset); DECLSPEC void switch_buffer_by_offset_8x4_carry_be_S (u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, u32 *c0, u32 *c1, u32 *c2, u32 *c3, u32 *c4, u32 *c5, u32 *c6, u32 *c7, const u32 offset) { const int offset_switch = offset / 4; @@ -42312,7 +43628,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_carry_be_S (u32 *w0, u32 *w1, u32 *w2, #endif } -DECLSPEC void switch_buffer_by_offset_1x64_le_S (u32 *w, const u32 offset); DECLSPEC void switch_buffer_by_offset_1x64_le_S (u32 *w, const u32 offset) { const int offset_switch = offset / 4; @@ -51045,7 +52360,6 @@ DECLSPEC void switch_buffer_by_offset_1x64_le_S (u32 *w, const u32 offset) #endif } -DECLSPEC void switch_buffer_by_offset_1x64_be_S (u32 *w, const u32 offset); DECLSPEC void switch_buffer_by_offset_1x64_be_S (u32 *w, const u32 offset) { const int offset_switch = offset / 4; @@ -59838,7 +61152,6 @@ DECLSPEC void switch_buffer_by_offset_1x64_be_S (u32 *w, const u32 offset) PACKSV4 (s6, v6, e); \ PACKSV4 (s7, v7, e); -DECLSPEC void switch_buffer_by_offset_le_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32x offset); DECLSPEC void switch_buffer_by_offset_le_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32x offset) { #if VECT_SIZE == 1 @@ -59899,7 +61212,6 @@ DECLSPEC void switch_buffer_by_offset_le_VV (u32x *w0, u32x *w1, u32x *w2, u32x #endif } -DECLSPEC void switch_buffer_by_offset_8x4_le_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32x offset); DECLSPEC void switch_buffer_by_offset_8x4_le_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const u32x offset) { #if VECT_SIZE == 1 @@ -60080,7 +61392,6 @@ DECLSPEC void switch_buffer_by_offset_8x4_le_VV (u32x *w0, u32x *w1, u32x *w2, u #endif } -DECLSPEC void append_0x01_2x4_VV (u32x *w0, u32x *w1, const u32x offset); DECLSPEC void append_0x01_2x4_VV (u32x *w0, u32x *w1, const u32x offset) { #if VECT_SIZE == 1 @@ -60139,7 +61450,6 @@ DECLSPEC void append_0x01_2x4_VV (u32x *w0, u32x *w1, const u32x offset) #endif } -DECLSPEC void append_0x01_4x4_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32x offset); DECLSPEC void append_0x01_4x4_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32x offset) { #if VECT_SIZE == 1 @@ -60200,7 +61510,6 @@ DECLSPEC void append_0x01_4x4_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const #endif } -DECLSPEC void append_0x06_2x4_VV (u32x *w0, u32x *w1, const u32x offset); DECLSPEC void append_0x06_2x4_VV (u32x *w0, u32x *w1, const u32x offset) { #if VECT_SIZE == 1 @@ -60259,7 +61568,6 @@ DECLSPEC void append_0x06_2x4_VV (u32x *w0, u32x *w1, const u32x offset) #endif } -DECLSPEC void append_0x80_2x4_VV (u32x *w0, u32x *w1, const u32x offset); DECLSPEC void append_0x80_2x4_VV (u32x *w0, u32x *w1, const u32x offset) { #if VECT_SIZE == 1 @@ -60318,7 +61626,6 @@ DECLSPEC void append_0x80_2x4_VV (u32x *w0, u32x *w1, const u32x offset) #endif } -DECLSPEC void append_0x80_4x4_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32x offset); DECLSPEC void append_0x80_4x4_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const u32x offset) { #if VECT_SIZE == 1 @@ -60379,7 +61686,6 @@ DECLSPEC void append_0x80_4x4_VV (u32x *w0, u32x *w1, u32x *w2, u32x *w3, const #endif } -DECLSPEC void gpu_decompress_entry (__global pw_idx_t *pws_idx, __global u32 *pws_comp, pw_t *pw, const u64 gid); DECLSPEC void gpu_decompress_entry (__global pw_idx_t *pws_idx, __global u32 *pws_comp, pw_t *pw, const u64 gid) { const u32 off = pws_idx[gid].off; diff --git a/OpenCL/inc_hash_functions.cl b/OpenCL/inc_hash_functions.cl deleted file mode 100644 index adb4d3dba..000000000 --- a/OpenCL/inc_hash_functions.cl +++ /dev/null @@ -1,406 +0,0 @@ -/** - * Author......: See docs/credits.txt - * License.....: MIT - */ - -#define MD4_F_S(x,y,z) (((x) & (y)) | ((~(x)) & (z))) -#define MD4_G_S(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) -#define MD4_H_S(x,y,z) ((x) ^ (y) ^ (z)) - -#ifdef IS_NV -#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) -#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) -#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD4_Fo(x,y,z) (bitselect ((z), (y), (x))) -#define MD4_Go(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_AMD -#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) -#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) -#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD4_Fo(x,y,z) (bitselect ((z), (y), (x))) -#define MD4_Go(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_GENERIC -#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) -#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) -#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD4_Fo(x,y,z) (MD4_F((x), (y), (z))) -#define MD4_Go(x,y,z) (MD4_G((x), (y), (z))) -#endif - -#define MD4_STEP_S(f,a,b,c,d,x,K,s) \ -{ \ - a += K; \ - a = hc_add3_S (a, x, f (b, c, d)); \ - a = rotl32_S (a, s); \ -} - -#define MD4_STEP(f,a,b,c,d,x,K,s) \ -{ \ - a += K; \ - a = hc_add3 (a, x, f (b, c, d)); \ - a = rotl32 (a, s); \ -} - -#define MD4_STEP0(f,a,b,c,d,K,s) \ -{ \ - a = hc_add3 (a, K, f (b, c, d)); \ - a = rotl32 (a, s); \ -} - -#define MD5_F_S(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define MD5_G_S(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) -#define MD5_H_S(x,y,z) ((x) ^ (y) ^ (z)) -#define MD5_I_S(x,y,z) ((y) ^ ((x) | ~(z))) - -#ifdef IS_NV -#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) -#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) -#define MD5_H2(x,y,z) ((x) ^ t) -#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) -#define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) -#define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) -#endif - -#ifdef IS_AMD -#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) -#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) -#define MD5_H2(x,y,z) ((x) ^ t) -#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) -#define MD5_Fo(x,y,z) (bitselect ((z), (y), (x))) -#define MD5_Go(x,y,z) (bitselect ((y), (x), (z))) -#endif - -#ifdef IS_GENERIC -#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) -#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) -#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) -#define MD5_H2(x,y,z) ((x) ^ t) -#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) -#define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) -#define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) -#endif - -#define MD5_STEP_S(f,a,b,c,d,x,K,s) \ -{ \ - a += K; \ - a = hc_add3_S (a, x, f (b, c, d)); \ - a = rotl32_S (a, s); \ - a += b; \ -} - -#define MD5_STEP(f,a,b,c,d,x,K,s) \ -{ \ - a += K; \ - a = hc_add3 (a, x, f (b, c, d)); \ - a = rotl32 (a, s); \ - a += b; \ -} - -#define MD5_STEP0(f,a,b,c,d,K,s) \ -{ \ - a = hc_add3 (a, K, f (b, c, d)); \ - a = rotl32 (a, s); \ - a += b; \ -} - -#ifdef IS_NV -#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) -#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) -#define SHA1_F0o(x,y,z) (bitselect ((z), (y), (x))) -#define SHA1_F2o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_AMD -#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) -#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) -#define SHA1_F0o(x,y,z) (bitselect ((z), (y), (x))) -#define SHA1_F2o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_GENERIC -#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) -#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) -#define SHA1_F0o(x,y,z) (SHA1_F0 ((x), (y), (z))) -#define SHA1_F2o(x,y,z) (SHA1_F2 ((x), (y), (z))) -#endif - -#define SHA1_STEP_S(f,a,b,c,d,e,x) \ -{ \ - e += K; \ - e = hc_add3_S (e, x, f (b, c, d)); \ - e += rotl32_S (a, 5u); \ - b = rotl32_S (b, 30u); \ -} - -#define SHA1_STEP(f,a,b,c,d,e,x) \ -{ \ - e += K; \ - e = hc_add3 (e, x, f (b, c, d)); \ - e += rotl32 (a, 5u); \ - b = rotl32 (b, 30u); \ -} - -/* -#define SHA1_STEP0(f,a,b,c,d,e,x) \ -{ \ - e = hc_add3 (e, K, f (b, c, d)); \ - e += rotl32 (a, 5u); \ - b = rotl32 (b, 30u); \ -} -*/ - -#define SHA1_STEPX(f,a,b,c,d,e,x) \ -{ \ - e = hc_add3 (e, x, f (b, c, d)); \ - e += rotl32 (a, 5u); \ - b = rotl32 (b, 30u); \ -} - -#define SHIFT_RIGHT_32(x,n) ((x) >> (n)) - -#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) -#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) -#define SHA256_S2_S(x) (rotl32_S ((x), 30u) ^ rotl32_S ((x), 19u) ^ rotl32_S ((x), 10u)) -#define SHA256_S3_S(x) (rotl32_S ((x), 26u) ^ rotl32_S ((x), 21u) ^ rotl32_S ((x), 7u)) - -#define SHA256_S0(x) (rotl32 ((x), 25u) ^ rotl32 ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) -#define SHA256_S1(x) (rotl32 ((x), 15u) ^ rotl32 ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) -#define SHA256_S2(x) (rotl32 ((x), 30u) ^ rotl32 ((x), 19u) ^ rotl32 ((x), 10u)) -#define SHA256_S3(x) (rotl32 ((x), 26u) ^ rotl32 ((x), 21u) ^ rotl32 ((x), 7u)) - -#ifdef IS_NV -#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) -#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA256_F0o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#define SHA256_F1o(x,y,z) (bitselect ((z), (y), (x))) -#endif - -#ifdef IS_AMD -#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) -#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA256_F0o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#define SHA256_F1o(x,y,z) (bitselect ((z), (y), (x))) -#endif - -#ifdef IS_GENERIC -#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) -#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA256_F0o(x,y,z) (SHA256_F0 ((x), (y), (z))) -#define SHA256_F1o(x,y,z) (SHA256_F1 ((x), (y), (z))) -#endif - -#define SHA256_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ -{ \ - h = hc_add3_S (h, K, x); \ - h = hc_add3_S (h, SHA256_S3_S (e), F1 (e,f,g)); \ - d += h; \ - h = hc_add3_S (h, SHA256_S2_S (a), F0 (a,b,c)); \ -} - -#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) - -#define SHA256_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ -{ \ - h = hc_add3 (h, K, x); \ - h = hc_add3 (h, SHA256_S3 (e), F1 (e,f,g)); \ - d += h; \ - h = hc_add3 (h, SHA256_S2 (a), F0 (a,b,c)); \ -} - -#define SHA256_EXPAND(x,y,z,w) (SHA256_S1 (x) + y + SHA256_S0 (z) + w) - -#define SHIFT_RIGHT_64(x,n) ((x) >> (n)) - -#define SHA384_S0_S(x) (rotr64_S ((x), 28) ^ rotr64_S ((x), 34) ^ rotr64_S ((x), 39)) -#define SHA384_S1_S(x) (rotr64_S ((x), 14) ^ rotr64_S ((x), 18) ^ rotr64_S ((x), 41)) -#define SHA384_S2_S(x) (rotr64_S ((x), 1) ^ rotr64_S ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) -#define SHA384_S3_S(x) (rotr64_S ((x), 19) ^ rotr64_S ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) - -#define SHA384_S0(x) (rotr64 ((x), 28) ^ rotr64 ((x), 34) ^ rotr64 ((x), 39)) -#define SHA384_S1(x) (rotr64 ((x), 14) ^ rotr64 ((x), 18) ^ rotr64 ((x), 41)) -#define SHA384_S2(x) (rotr64 ((x), 1) ^ rotr64 ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) -#define SHA384_S3(x) (rotr64 ((x), 19) ^ rotr64 ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) - -#define SHA384_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA384_F1(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) - -#ifdef IS_NV -#define SHA384_F0o(x,y,z) (bitselect ((z), (y), (x))) -#define SHA384_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_AMD -#define SHA384_F0o(x,y,z) (bitselect ((z), (y), (x))) -#define SHA384_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_GENERIC -#define SHA384_F0o(x,y,z) (SHA384_F0 ((x), (y), (z))) -#define SHA384_F1o(x,y,z) (SHA384_F1 ((x), (y), (z))) -#endif - -#define SHA384_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ -{ \ - h += K; \ - h += x; \ - h += SHA384_S1_S (e); \ - h += F0 (e, f, g); \ - d += h; \ - h += SHA384_S0_S (a); \ - h += F1 (a, b, c); \ -} - -#define SHA384_EXPAND_S(x,y,z,w) (SHA384_S3_S (x) + y + SHA384_S2_S (z) + w) - -#define SHA384_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ -{ \ - h += K; \ - h += x; \ - h += SHA384_S1 (e); \ - h += F0 (e, f, g); \ - d += h; \ - h += SHA384_S0 (a); \ - h += F1 (a, b, c); \ -} - -#define SHA384_EXPAND(x,y,z,w) (SHA384_S3 (x) + y + SHA384_S2 (z) + w) - -#define SHIFT_RIGHT_64(x,n) ((x) >> (n)) - -#define SHA512_S0_S(x) (rotr64_S ((x), 28) ^ rotr64_S ((x), 34) ^ rotr64_S ((x), 39)) -#define SHA512_S1_S(x) (rotr64_S ((x), 14) ^ rotr64_S ((x), 18) ^ rotr64_S ((x), 41)) -#define SHA512_S2_S(x) (rotr64_S ((x), 1) ^ rotr64_S ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) -#define SHA512_S3_S(x) (rotr64_S ((x), 19) ^ rotr64_S ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) - -#define SHA512_S0(x) (rotr64 ((x), 28) ^ rotr64 ((x), 34) ^ rotr64 ((x), 39)) -#define SHA512_S1(x) (rotr64 ((x), 14) ^ rotr64 ((x), 18) ^ rotr64 ((x), 41)) -#define SHA512_S2(x) (rotr64 ((x), 1) ^ rotr64 ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) -#define SHA512_S3(x) (rotr64 ((x), 19) ^ rotr64 ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) - -#define SHA512_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) -#define SHA512_F1(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) - -#ifdef IS_NV -#define SHA512_F0o(x,y,z) (bitselect ((z), (y), (x))) -#define SHA512_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_AMD -#define SHA512_F0o(x,y,z) (bitselect ((z), (y), (x))) -#define SHA512_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) -#endif - -#ifdef IS_GENERIC -#define SHA512_F0o(x,y,z) (SHA512_F0 ((x), (y), (z))) -#define SHA512_F1o(x,y,z) (SHA512_F1 ((x), (y), (z))) -#endif - -#define SHA512_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ -{ \ - h += K; \ - h += x; \ - h += SHA512_S1_S (e); \ - h += F0 (e, f, g); \ - d += h; \ - h += SHA512_S0_S (a); \ - h += F1 (a, b, c); \ -} - -#define SHA512_EXPAND_S(x,y,z,w) (SHA512_S3_S (x) + y + SHA512_S2_S (z) + w) - -#define SHA512_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ -{ \ - h += K; \ - h += x; \ - h += SHA512_S1 (e); \ - h += F0 (e, f, g); \ - d += h; \ - h += SHA512_S0 (a); \ - h += F1 (a, b, c); \ -} - -#define SHA512_EXPAND(x,y,z,w) (SHA512_S3 (x) + y + SHA512_S2 (z) + w) - -#ifdef IS_NV -#define RIPEMD160_F(x,y,z) ((x) ^ (y) ^ (z)) -#define RIPEMD160_G(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) /* x ? y : z */ -#define RIPEMD160_H(x,y,z) (((x) | ~(y)) ^ (z)) -#define RIPEMD160_I(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) /* z ? x : y */ -#define RIPEMD160_J(x,y,z) ((x) ^ ((y) | ~(z))) -#define RIPEMD160_Go(x,y,z) (bitselect ((z), (y), (x))) -#define RIPEMD160_Io(x,y,z) (bitselect ((y), (x), (z))) -#endif - -#ifdef IS_AMD -#define RIPEMD160_F(x,y,z) ((x) ^ (y) ^ (z)) -#define RIPEMD160_G(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) /* x ? y : z */ -#define RIPEMD160_H(x,y,z) (((x) | ~(y)) ^ (z)) -#define RIPEMD160_I(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) /* z ? x : y */ -#define RIPEMD160_J(x,y,z) ((x) ^ ((y) | ~(z))) -#define RIPEMD160_Go(x,y,z) (bitselect ((z), (y), (x))) -#define RIPEMD160_Io(x,y,z) (bitselect ((y), (x), (z))) -#endif - -#ifdef IS_GENERIC -#define RIPEMD160_F(x,y,z) ((x) ^ (y) ^ (z)) -#define RIPEMD160_G(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) /* x ? y : z */ -#define RIPEMD160_H(x,y,z) (((x) | ~(y)) ^ (z)) -#define RIPEMD160_I(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) /* z ? x : y */ -#define RIPEMD160_J(x,y,z) ((x) ^ ((y) | ~(z))) -#define RIPEMD160_Go(x,y,z) (RIPEMD160_G ((x), (y), (z))) -#define RIPEMD160_Io(x,y,z) (RIPEMD160_I ((x), (y), (z))) -#endif - -#define RIPEMD160_STEP_S(f,a,b,c,d,e,x,K,s) \ -{ \ - a += K; \ - a += x; \ - a += f (b, c, d); \ - a = rotl32_S (a, s); \ - a += e; \ - c = rotl32_S (c, 10u); \ -} - -#define RIPEMD160_STEP(f,a,b,c,d,e,x,K,s) \ -{ \ - a += K; \ - a += x; \ - a += f (b, c, d); \ - a = rotl32 (a, s); \ - a += e; \ - c = rotl32 (c, 10u); \ -} - -#define ROTATE_LEFT_WORKAROUND_BUG(a,n) ((a << n) | (a >> (32 - n))) - -#define RIPEMD160_STEP_S_WORKAROUND_BUG(f,a,b,c,d,e,x,K,s) \ -{ \ - a += K; \ - a += x; \ - a += f (b, c, d); \ - a = ROTATE_LEFT_WORKAROUND_BUG (a, s); \ - a += e; \ - c = rotl32_S (c, 10u); \ -} - -#define RIPEMD160_STEP_WORKAROUND_BUG(f,a,b,c,d,e,x,K,s) \ -{ \ - a += K; \ - a += x; \ - a += f (b, c, d); \ - a = ROTATE_LEFT_WORKAROUND_BUG (a, s); \ - a += e; \ - c = rotl32 (c, 10u); \ -} diff --git a/OpenCL/inc_hash_md4.cl b/OpenCL/inc_hash_md4.cl index 61e7f7e3a..c93d5a4a1 100644 --- a/OpenCL/inc_hash_md4.cl +++ b/OpenCL/inc_hash_md4.cl @@ -4,6 +4,54 @@ // input buf needs to be in algorithm native byte order (md4 = LE, sha1 = BE, etc) // input buf needs to be 64 byte aligned when using md4_update() +#define MD4_F_S(x,y,z) (((x) & (y)) | ((~(x)) & (z))) +#define MD4_G_S(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define MD4_H_S(x,y,z) ((x) ^ (y) ^ (z)) + +#ifdef IS_NV +#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) +#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD4_Fo(x,y,z) (bitselect ((z), (y), (x))) +#define MD4_Go(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_AMD +#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) +#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD4_Fo(x,y,z) (bitselect ((z), (y), (x))) +#define MD4_Go(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_GENERIC +#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) +#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD4_Fo(x,y,z) (MD4_F((x), (y), (z))) +#define MD4_Go(x,y,z) (MD4_G((x), (y), (z))) +#endif + +#define MD4_STEP_S(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3_S (a, x, f (b, c, d)); \ + a = rotl32_S (a, s); \ +} + +#define MD4_STEP(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3 (a, x, f (b, c, d)); \ + a = rotl32 (a, s); \ +} + +#define MD4_STEP0(f,a,b,c,d,K,s) \ +{ \ + a = hc_add3 (a, K, f (b, c, d)); \ + a = rotl32 (a, s); \ +} + typedef struct md4_ctx { u32 h[4]; @@ -17,7 +65,6 @@ typedef struct md4_ctx } md4_ctx_t; -DECLSPEC void md4_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void md4_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -82,7 +129,6 @@ DECLSPEC void md4_transform (const u32 *w0, const u32 *w1, const u32 *w2, const digest[3] += d; } -DECLSPEC void md4_init (md4_ctx_t *ctx); DECLSPEC void md4_init (md4_ctx_t *ctx) { ctx->h[0] = MD4M_A; @@ -110,7 +156,6 @@ DECLSPEC void md4_init (md4_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void md4_update_64 (md4_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void md4_update_64 (md4_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -185,7 +230,6 @@ DECLSPEC void md4_update_64 (md4_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, } } -DECLSPEC void md4_update (md4_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_update (md4_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -238,7 +282,6 @@ DECLSPEC void md4_update (md4_ctx_t *ctx, const u32 *w, const int len) md4_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md4_update_swap (md4_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_update_swap (md4_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -325,7 +368,6 @@ DECLSPEC void md4_update_swap (md4_ctx_t *ctx, const u32 *w, const int len) md4_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md4_update_utf16le (md4_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_update_utf16le (md4_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -368,7 +410,6 @@ DECLSPEC void md4_update_utf16le (md4_ctx_t *ctx, const u32 *w, const int len) md4_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md4_update_utf16le_swap (md4_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_update_utf16le_swap (md4_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -445,7 +486,6 @@ DECLSPEC void md4_update_utf16le_swap (md4_ctx_t *ctx, const u32 *w, const int l md4_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md4_update_global (md4_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_update_global (md4_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -498,7 +538,6 @@ DECLSPEC void md4_update_global (md4_ctx_t *ctx, const __global u32 *w, const in md4_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md4_update_global_swap (md4_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_update_global_swap (md4_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -585,7 +624,6 @@ DECLSPEC void md4_update_global_swap (md4_ctx_t *ctx, const __global u32 *w, con md4_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md4_update_global_utf16le (md4_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_update_global_utf16le (md4_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -628,7 +666,6 @@ DECLSPEC void md4_update_global_utf16le (md4_ctx_t *ctx, const __global u32 *w, md4_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md4_update_global_utf16le_swap (md4_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_update_global_utf16le_swap (md4_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -705,7 +742,6 @@ DECLSPEC void md4_update_global_utf16le_swap (md4_ctx_t *ctx, const __global u32 md4_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md4_final (md4_ctx_t *ctx); DECLSPEC void md4_final (md4_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -749,7 +785,6 @@ typedef struct md4_hmac_ctx } md4_hmac_ctx_t; -DECLSPEC void md4_hmac_init_64 (md4_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void md4_hmac_init_64 (md4_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u32 t0[4]; @@ -804,7 +839,6 @@ DECLSPEC void md4_hmac_init_64 (md4_hmac_ctx_t *ctx, const u32 *w0, const u32 *w md4_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void md4_hmac_init (md4_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_hmac_init (md4_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -862,7 +896,6 @@ DECLSPEC void md4_hmac_init (md4_hmac_ctx_t *ctx, const u32 *w, const int len) md4_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md4_hmac_init_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_hmac_init_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -920,7 +953,6 @@ DECLSPEC void md4_hmac_init_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int l md4_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md4_hmac_init_global (md4_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void md4_hmac_init_global (md4_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -978,7 +1010,6 @@ DECLSPEC void md4_hmac_init_global (md4_hmac_ctx_t *ctx, __global const u32 *w, md4_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md4_hmac_init_global_swap (md4_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void md4_hmac_init_global_swap (md4_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1036,61 +1067,51 @@ DECLSPEC void md4_hmac_init_global_swap (md4_hmac_ctx_t *ctx, __global const u32 md4_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md4_hmac_update_64 (md4_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void md4_hmac_update_64 (md4_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { md4_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void md4_hmac_update (md4_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_hmac_update (md4_hmac_ctx_t *ctx, const u32 *w, const int len) { md4_update (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_hmac_update_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int len) { md4_update_swap (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_utf16le (md4_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_hmac_update_utf16le (md4_hmac_ctx_t *ctx, const u32 *w, const int len) { md4_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_utf16le_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md4_hmac_update_utf16le_swap (md4_hmac_ctx_t *ctx, const u32 *w, const int len) { md4_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_global (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_hmac_update_global (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md4_update_global (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_global_swap (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_hmac_update_global_swap (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md4_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_global_utf16le (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_hmac_update_global_utf16le (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md4_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_update_global_utf16le_swap (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md4_hmac_update_global_utf16le_swap (md4_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md4_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_final (md4_hmac_ctx_t *ctx); DECLSPEC void md4_hmac_final (md4_hmac_ctx_t *ctx) { md4_final (&ctx->ipad); @@ -1137,7 +1158,6 @@ typedef struct md4_ctx_vector } md4_ctx_vector_t; -DECLSPEC void md4_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest); DECLSPEC void md4_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest) { u32x a = digest[0]; @@ -1202,7 +1222,6 @@ DECLSPEC void md4_transform_vector (const u32x *w0, const u32x *w1, const u32x * digest[3] += d; } -DECLSPEC void md4_init_vector (md4_ctx_vector_t *ctx); DECLSPEC void md4_init_vector (md4_ctx_vector_t *ctx) { ctx->h[0] = MD4M_A; @@ -1230,7 +1249,6 @@ DECLSPEC void md4_init_vector (md4_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void md4_init_vector_from_scalar (md4_ctx_vector_t *ctx, md4_ctx_t *ctx0); DECLSPEC void md4_init_vector_from_scalar (md4_ctx_vector_t *ctx, md4_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -1258,7 +1276,6 @@ DECLSPEC void md4_init_vector_from_scalar (md4_ctx_vector_t *ctx, md4_ctx_t *ctx ctx->len = ctx0->len; } -DECLSPEC void md4_update_vector_64 (md4_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void md4_update_vector_64 (md4_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -1333,7 +1350,6 @@ DECLSPEC void md4_update_vector_64 (md4_ctx_vector_t *ctx, u32x *w0, u32x *w1, u } } -DECLSPEC void md4_update_vector (md4_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md4_update_vector (md4_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1386,7 +1402,6 @@ DECLSPEC void md4_update_vector (md4_ctx_vector_t *ctx, const u32x *w, const int md4_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md4_update_vector_swap (md4_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md4_update_vector_swap (md4_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1473,7 +1488,6 @@ DECLSPEC void md4_update_vector_swap (md4_ctx_vector_t *ctx, const u32x *w, cons md4_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md4_update_vector_utf16le (md4_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md4_update_vector_utf16le (md4_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1516,7 +1530,6 @@ DECLSPEC void md4_update_vector_utf16le (md4_ctx_vector_t *ctx, const u32x *w, c md4_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md4_update_vector_utf16le_swap (md4_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md4_update_vector_utf16le_swap (md4_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1593,7 +1606,6 @@ DECLSPEC void md4_update_vector_utf16le_swap (md4_ctx_vector_t *ctx, const u32x md4_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md4_final_vector (md4_ctx_vector_t *ctx); DECLSPEC void md4_final_vector (md4_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1637,7 +1649,6 @@ typedef struct md4_hmac_ctx_vector } md4_hmac_ctx_vector_t; -DECLSPEC void md4_hmac_init_vector_64 (md4_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void md4_hmac_init_vector_64 (md4_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u32x t0[4]; @@ -1692,7 +1703,6 @@ DECLSPEC void md4_hmac_init_vector_64 (md4_hmac_ctx_vector_t *ctx, const u32x *w md4_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void md4_hmac_init_vector (md4_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md4_hmac_init_vector (md4_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1750,19 +1760,16 @@ DECLSPEC void md4_hmac_init_vector (md4_hmac_ctx_vector_t *ctx, const u32x *w, c md4_hmac_init_vector_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md4_hmac_update_vector_64 (md4_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void md4_hmac_update_vector_64 (md4_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { md4_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void md4_hmac_update_vector (md4_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md4_hmac_update_vector (md4_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { md4_update_vector (&ctx->ipad, w, len); } -DECLSPEC void md4_hmac_final_vector (md4_hmac_ctx_vector_t *ctx); DECLSPEC void md4_hmac_final_vector (md4_hmac_ctx_vector_t *ctx) { md4_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_md5.cl b/OpenCL/inc_hash_md5.cl index cd5a5d321..1caaa585f 100644 --- a/OpenCL/inc_hash_md5.cl +++ b/OpenCL/inc_hash_md5.cl @@ -4,6 +4,67 @@ // input buf needs to be in algorithm native byte order (md5 = LE, sha1 = BE, etc) // input buf needs to be 64 byte aligned when using md5_update() +#define MD5_F_S(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MD5_G_S(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define MD5_H_S(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_I_S(x,y,z) ((y) ^ ((x) | ~(z))) + +#ifdef IS_NV +#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) +#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) +#define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) +#define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) +#endif + +#ifdef IS_AMD +#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) +#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) +#define MD5_Fo(x,y,z) (bitselect ((z), (y), (x))) +#define MD5_Go(x,y,z) (bitselect ((y), (x), (z))) +#endif + +#ifdef IS_GENERIC +#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) +#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) +#define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) +#define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) +#endif + +#define MD5_STEP_S(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3_S (a, x, f (b, c, d)); \ + a = rotl32_S (a, s); \ + a += b; \ +} + +#define MD5_STEP(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3 (a, x, f (b, c, d)); \ + a = rotl32 (a, s); \ + a += b; \ +} + +#define MD5_STEP0(f,a,b,c,d,K,s) \ +{ \ + a = hc_add3 (a, K, f (b, c, d)); \ + a = rotl32 (a, s); \ + a += b; \ +} + typedef struct md5_ctx { u32 h[4]; @@ -17,7 +78,6 @@ typedef struct md5_ctx } md5_ctx_t; -DECLSPEC void md5_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void md5_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -118,7 +178,6 @@ DECLSPEC void md5_transform (const u32 *w0, const u32 *w1, const u32 *w2, const digest[3] += d; } -DECLSPEC void md5_init (md5_ctx_t *ctx); DECLSPEC void md5_init (md5_ctx_t *ctx) { ctx->h[0] = MD5M_A; @@ -146,7 +205,6 @@ DECLSPEC void md5_init (md5_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void md5_update_64 (md5_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void md5_update_64 (md5_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -221,7 +279,6 @@ DECLSPEC void md5_update_64 (md5_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, } } -DECLSPEC void md5_update (md5_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_update (md5_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -274,7 +331,6 @@ DECLSPEC void md5_update (md5_ctx_t *ctx, const u32 *w, const int len) md5_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md5_update_swap (md5_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_update_swap (md5_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -361,7 +417,6 @@ DECLSPEC void md5_update_swap (md5_ctx_t *ctx, const u32 *w, const int len) md5_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md5_update_utf16le (md5_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_update_utf16le (md5_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -404,7 +459,6 @@ DECLSPEC void md5_update_utf16le (md5_ctx_t *ctx, const u32 *w, const int len) md5_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md5_update_utf16le_swap (md5_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_update_utf16le_swap (md5_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -481,7 +535,6 @@ DECLSPEC void md5_update_utf16le_swap (md5_ctx_t *ctx, const u32 *w, const int l md5_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md5_update_global (md5_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_update_global (md5_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -534,7 +587,6 @@ DECLSPEC void md5_update_global (md5_ctx_t *ctx, const __global u32 *w, const in md5_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md5_update_global_swap (md5_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_update_global_swap (md5_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -621,7 +673,6 @@ DECLSPEC void md5_update_global_swap (md5_ctx_t *ctx, const __global u32 *w, con md5_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md5_update_global_utf16le (md5_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_update_global_utf16le (md5_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -664,7 +715,6 @@ DECLSPEC void md5_update_global_utf16le (md5_ctx_t *ctx, const __global u32 *w, md5_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md5_update_global_utf16le_swap (md5_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_update_global_utf16le_swap (md5_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -741,7 +791,6 @@ DECLSPEC void md5_update_global_utf16le_swap (md5_ctx_t *ctx, const __global u32 md5_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md5_final (md5_ctx_t *ctx); DECLSPEC void md5_final (md5_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -785,7 +834,6 @@ typedef struct md5_hmac_ctx } md5_hmac_ctx_t; -DECLSPEC void md5_hmac_init_64 (md5_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void md5_hmac_init_64 (md5_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u32 t0[4]; @@ -840,7 +888,6 @@ DECLSPEC void md5_hmac_init_64 (md5_hmac_ctx_t *ctx, const u32 *w0, const u32 *w md5_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void md5_hmac_init (md5_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_hmac_init (md5_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -898,7 +945,6 @@ DECLSPEC void md5_hmac_init (md5_hmac_ctx_t *ctx, const u32 *w, const int len) md5_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md5_hmac_init_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_hmac_init_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -956,7 +1002,6 @@ DECLSPEC void md5_hmac_init_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int l md5_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md5_hmac_init_global (md5_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void md5_hmac_init_global (md5_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1014,7 +1059,6 @@ DECLSPEC void md5_hmac_init_global (md5_hmac_ctx_t *ctx, __global const u32 *w, md5_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md5_hmac_init_global_swap (md5_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void md5_hmac_init_global_swap (md5_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1072,61 +1116,51 @@ DECLSPEC void md5_hmac_init_global_swap (md5_hmac_ctx_t *ctx, __global const u32 md5_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md5_hmac_update_64 (md5_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void md5_hmac_update_64 (md5_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { md5_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void md5_hmac_update (md5_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_hmac_update (md5_hmac_ctx_t *ctx, const u32 *w, const int len) { md5_update (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_hmac_update_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int len) { md5_update_swap (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_utf16le (md5_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_hmac_update_utf16le (md5_hmac_ctx_t *ctx, const u32 *w, const int len) { md5_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_utf16le_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void md5_hmac_update_utf16le_swap (md5_hmac_ctx_t *ctx, const u32 *w, const int len) { md5_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_global (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_hmac_update_global (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md5_update_global (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_global_swap (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_hmac_update_global_swap (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md5_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_global_utf16le (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_hmac_update_global_utf16le (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md5_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_update_global_utf16le_swap (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void md5_hmac_update_global_utf16le_swap (md5_hmac_ctx_t *ctx, const __global u32 *w, const int len) { md5_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_final (md5_hmac_ctx_t *ctx); DECLSPEC void md5_hmac_final (md5_hmac_ctx_t *ctx) { md5_final (&ctx->ipad); @@ -1173,7 +1207,6 @@ typedef struct md5_ctx_vector } md5_ctx_vector_t; -DECLSPEC void md5_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest); DECLSPEC void md5_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest) { u32x a = digest[0]; @@ -1274,7 +1307,6 @@ DECLSPEC void md5_transform_vector (const u32x *w0, const u32x *w1, const u32x * digest[3] += d; } -DECLSPEC void md5_init_vector (md5_ctx_vector_t *ctx); DECLSPEC void md5_init_vector (md5_ctx_vector_t *ctx) { ctx->h[0] = MD5M_A; @@ -1302,7 +1334,6 @@ DECLSPEC void md5_init_vector (md5_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void md5_init_vector_from_scalar (md5_ctx_vector_t *ctx, md5_ctx_t *ctx0); DECLSPEC void md5_init_vector_from_scalar (md5_ctx_vector_t *ctx, md5_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -1330,7 +1361,6 @@ DECLSPEC void md5_init_vector_from_scalar (md5_ctx_vector_t *ctx, md5_ctx_t *ctx ctx->len = ctx0->len; } -DECLSPEC void md5_update_vector_64 (md5_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void md5_update_vector_64 (md5_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -1405,7 +1435,6 @@ DECLSPEC void md5_update_vector_64 (md5_ctx_vector_t *ctx, u32x *w0, u32x *w1, u } } -DECLSPEC void md5_update_vector (md5_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md5_update_vector (md5_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1458,7 +1487,6 @@ DECLSPEC void md5_update_vector (md5_ctx_vector_t *ctx, const u32x *w, const int md5_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md5_update_vector_swap (md5_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md5_update_vector_swap (md5_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1545,7 +1573,6 @@ DECLSPEC void md5_update_vector_swap (md5_ctx_vector_t *ctx, const u32x *w, cons md5_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void md5_update_vector_utf16le (md5_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md5_update_vector_utf16le (md5_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1588,7 +1615,6 @@ DECLSPEC void md5_update_vector_utf16le (md5_ctx_vector_t *ctx, const u32x *w, c md5_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md5_update_vector_utf16le_swap (md5_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md5_update_vector_utf16le_swap (md5_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1665,7 +1691,6 @@ DECLSPEC void md5_update_vector_utf16le_swap (md5_ctx_vector_t *ctx, const u32x md5_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void md5_final_vector (md5_ctx_vector_t *ctx); DECLSPEC void md5_final_vector (md5_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1709,7 +1734,6 @@ typedef struct md5_hmac_ctx_vector } md5_hmac_ctx_vector_t; -DECLSPEC void md5_hmac_init_vector_64 (md5_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void md5_hmac_init_vector_64 (md5_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u32x t0[4]; @@ -1764,7 +1788,6 @@ DECLSPEC void md5_hmac_init_vector_64 (md5_hmac_ctx_vector_t *ctx, const u32x *w md5_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void md5_hmac_init_vector (md5_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md5_hmac_init_vector (md5_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1822,19 +1845,16 @@ DECLSPEC void md5_hmac_init_vector (md5_hmac_ctx_vector_t *ctx, const u32x *w, c md5_hmac_init_vector_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void md5_hmac_update_vector_64 (md5_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void md5_hmac_update_vector_64 (md5_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { md5_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void md5_hmac_update_vector (md5_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void md5_hmac_update_vector (md5_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { md5_update_vector (&ctx->ipad, w, len); } -DECLSPEC void md5_hmac_final_vector (md5_hmac_ctx_vector_t *ctx); DECLSPEC void md5_hmac_final_vector (md5_hmac_ctx_vector_t *ctx) { md5_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_ripemd160.cl b/OpenCL/inc_hash_ripemd160.cl index 1e66212fd..c68db8425 100644 --- a/OpenCL/inc_hash_ripemd160.cl +++ b/OpenCL/inc_hash_ripemd160.cl @@ -4,6 +4,78 @@ // input buf needs to be in algorithm native byte order (ripemd160 = LE, sha1 = BE, etc) // input buf needs to be 64 byte aligned when using ripemd160_update() +#ifdef IS_NV +#define RIPEMD160_F(x,y,z) ((x) ^ (y) ^ (z)) +#define RIPEMD160_G(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) /* x ? y : z */ +#define RIPEMD160_H(x,y,z) (((x) | ~(y)) ^ (z)) +#define RIPEMD160_I(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) /* z ? x : y */ +#define RIPEMD160_J(x,y,z) ((x) ^ ((y) | ~(z))) +#define RIPEMD160_Go(x,y,z) (bitselect ((z), (y), (x))) +#define RIPEMD160_Io(x,y,z) (bitselect ((y), (x), (z))) +#endif + +#ifdef IS_AMD +#define RIPEMD160_F(x,y,z) ((x) ^ (y) ^ (z)) +#define RIPEMD160_G(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) /* x ? y : z */ +#define RIPEMD160_H(x,y,z) (((x) | ~(y)) ^ (z)) +#define RIPEMD160_I(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) /* z ? x : y */ +#define RIPEMD160_J(x,y,z) ((x) ^ ((y) | ~(z))) +#define RIPEMD160_Go(x,y,z) (bitselect ((z), (y), (x))) +#define RIPEMD160_Io(x,y,z) (bitselect ((y), (x), (z))) +#endif + +#ifdef IS_GENERIC +#define RIPEMD160_F(x,y,z) ((x) ^ (y) ^ (z)) +#define RIPEMD160_G(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) /* x ? y : z */ +#define RIPEMD160_H(x,y,z) (((x) | ~(y)) ^ (z)) +#define RIPEMD160_I(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) /* z ? x : y */ +#define RIPEMD160_J(x,y,z) ((x) ^ ((y) | ~(z))) +#define RIPEMD160_Go(x,y,z) (RIPEMD160_G ((x), (y), (z))) +#define RIPEMD160_Io(x,y,z) (RIPEMD160_I ((x), (y), (z))) +#endif + +#define RIPEMD160_STEP_S(f,a,b,c,d,e,x,K,s) \ +{ \ + a += K; \ + a += x; \ + a += f (b, c, d); \ + a = rotl32_S (a, s); \ + a += e; \ + c = rotl32_S (c, 10u); \ +} + +#define RIPEMD160_STEP(f,a,b,c,d,e,x,K,s) \ +{ \ + a += K; \ + a += x; \ + a += f (b, c, d); \ + a = rotl32 (a, s); \ + a += e; \ + c = rotl32 (c, 10u); \ +} + +#define ROTATE_LEFT_WORKAROUND_BUG(a,n) ((a << n) | (a >> (32 - n))) + +#define RIPEMD160_STEP_S_WORKAROUND_BUG(f,a,b,c,d,e,x,K,s) \ +{ \ + a += K; \ + a += x; \ + a += f (b, c, d); \ + a = ROTATE_LEFT_WORKAROUND_BUG (a, s); \ + a += e; \ + c = rotl32_S (c, 10u); \ +} + +#define RIPEMD160_STEP_WORKAROUND_BUG(f,a,b,c,d,e,x,K,s) \ +{ \ + a += K; \ + a += x; \ + a += f (b, c, d); \ + a = ROTATE_LEFT_WORKAROUND_BUG (a, s); \ + a += e; \ + c = rotl32 (c, 10u); \ +} + typedef struct ripemd160_ctx { u32 h[5]; @@ -17,7 +89,6 @@ typedef struct ripemd160_ctx } ripemd160_ctx_t; -DECLSPEC void ripemd160_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void ripemd160_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a1 = digest[0]; @@ -215,7 +286,6 @@ DECLSPEC void ripemd160_transform (const u32 *w0, const u32 *w1, const u32 *w2, digest[4] = e; } -DECLSPEC void ripemd160_init (ripemd160_ctx_t *ctx); DECLSPEC void ripemd160_init (ripemd160_ctx_t *ctx) { ctx->h[0] = RIPEMD160M_A; @@ -244,7 +314,6 @@ DECLSPEC void ripemd160_init (ripemd160_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void ripemd160_update_64 (ripemd160_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void ripemd160_update_64 (ripemd160_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -319,7 +388,6 @@ DECLSPEC void ripemd160_update_64 (ripemd160_ctx_t *ctx, u32 *w0, u32 *w1, u32 * } } -DECLSPEC void ripemd160_update (ripemd160_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_update (ripemd160_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -372,7 +440,6 @@ DECLSPEC void ripemd160_update (ripemd160_ctx_t *ctx, const u32 *w, const int le ripemd160_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void ripemd160_update_swap (ripemd160_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_update_swap (ripemd160_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -459,7 +526,6 @@ DECLSPEC void ripemd160_update_swap (ripemd160_ctx_t *ctx, const u32 *w, const i ripemd160_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void ripemd160_update_utf16le (ripemd160_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_update_utf16le (ripemd160_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -502,7 +568,6 @@ DECLSPEC void ripemd160_update_utf16le (ripemd160_ctx_t *ctx, const u32 *w, cons ripemd160_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void ripemd160_update_utf16le_swap (ripemd160_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_update_utf16le_swap (ripemd160_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -579,7 +644,6 @@ DECLSPEC void ripemd160_update_utf16le_swap (ripemd160_ctx_t *ctx, const u32 *w, ripemd160_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void ripemd160_update_global (ripemd160_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_update_global (ripemd160_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -632,7 +696,6 @@ DECLSPEC void ripemd160_update_global (ripemd160_ctx_t *ctx, const __global u32 ripemd160_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void ripemd160_update_global_swap (ripemd160_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_update_global_swap (ripemd160_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -719,7 +782,6 @@ DECLSPEC void ripemd160_update_global_swap (ripemd160_ctx_t *ctx, const __global ripemd160_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void ripemd160_update_global_utf16le (ripemd160_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_update_global_utf16le (ripemd160_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -762,7 +824,6 @@ DECLSPEC void ripemd160_update_global_utf16le (ripemd160_ctx_t *ctx, const __glo ripemd160_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void ripemd160_update_global_utf16le_swap (ripemd160_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_update_global_utf16le_swap (ripemd160_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -839,7 +900,6 @@ DECLSPEC void ripemd160_update_global_utf16le_swap (ripemd160_ctx_t *ctx, const ripemd160_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void ripemd160_final (ripemd160_ctx_t *ctx); DECLSPEC void ripemd160_final (ripemd160_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -883,7 +943,6 @@ typedef struct ripemd160_hmac_ctx } ripemd160_hmac_ctx_t; -DECLSPEC void ripemd160_hmac_init_64 (ripemd160_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void ripemd160_hmac_init_64 (ripemd160_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u32 t0[4]; @@ -938,7 +997,6 @@ DECLSPEC void ripemd160_hmac_init_64 (ripemd160_hmac_ctx_t *ctx, const u32 *w0, ripemd160_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void ripemd160_hmac_init (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_hmac_init (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -996,7 +1054,6 @@ DECLSPEC void ripemd160_hmac_init (ripemd160_hmac_ctx_t *ctx, const u32 *w, cons ripemd160_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void ripemd160_hmac_init_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_hmac_init_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1054,7 +1111,6 @@ DECLSPEC void ripemd160_hmac_init_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, ripemd160_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void ripemd160_hmac_init_global (ripemd160_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void ripemd160_hmac_init_global (ripemd160_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1112,7 +1168,6 @@ DECLSPEC void ripemd160_hmac_init_global (ripemd160_hmac_ctx_t *ctx, __global co ripemd160_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void ripemd160_hmac_init_global_swap (ripemd160_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void ripemd160_hmac_init_global_swap (ripemd160_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1170,61 +1225,51 @@ DECLSPEC void ripemd160_hmac_init_global_swap (ripemd160_hmac_ctx_t *ctx, __glob ripemd160_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void ripemd160_hmac_update_64 (ripemd160_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void ripemd160_hmac_update_64 (ripemd160_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { ripemd160_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void ripemd160_hmac_update (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_hmac_update (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) { ripemd160_update (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) { ripemd160_update_swap (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_utf16le (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_utf16le (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) { ripemd160_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_utf16le_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_utf16le_swap (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) { ripemd160_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_global (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_global (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len) { ripemd160_update_global (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_global_swap (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_global_swap (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len) { ripemd160_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_global_utf16le (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_global_utf16le (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len) { ripemd160_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_update_global_utf16le_swap (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void ripemd160_hmac_update_global_utf16le_swap (ripemd160_hmac_ctx_t *ctx, const __global u32 *w, const int len) { ripemd160_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_final (ripemd160_hmac_ctx_t *ctx); DECLSPEC void ripemd160_hmac_final (ripemd160_hmac_ctx_t *ctx) { ripemd160_final (&ctx->ipad); @@ -1271,7 +1316,6 @@ typedef struct ripemd160_ctx_vector } ripemd160_ctx_vector_t; -DECLSPEC void ripemd160_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest); DECLSPEC void ripemd160_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest) { u32x a1 = digest[0]; @@ -1469,7 +1513,6 @@ DECLSPEC void ripemd160_transform_vector (const u32x *w0, const u32x *w1, const digest[4] = e; } -DECLSPEC void ripemd160_init_vector (ripemd160_ctx_vector_t *ctx); DECLSPEC void ripemd160_init_vector (ripemd160_ctx_vector_t *ctx) { ctx->h[0] = RIPEMD160M_A; @@ -1498,7 +1541,6 @@ DECLSPEC void ripemd160_init_vector (ripemd160_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void ripemd160_init_vector_from_scalar (ripemd160_ctx_vector_t *ctx, ripemd160_ctx_t *ctx0); DECLSPEC void ripemd160_init_vector_from_scalar (ripemd160_ctx_vector_t *ctx, ripemd160_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -1527,7 +1569,6 @@ DECLSPEC void ripemd160_init_vector_from_scalar (ripemd160_ctx_vector_t *ctx, ri ctx->len = ctx0->len; } -DECLSPEC void ripemd160_update_vector_64 (ripemd160_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void ripemd160_update_vector_64 (ripemd160_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -1602,7 +1643,6 @@ DECLSPEC void ripemd160_update_vector_64 (ripemd160_ctx_vector_t *ctx, u32x *w0, } } -DECLSPEC void ripemd160_update_vector (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void ripemd160_update_vector (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1655,7 +1695,6 @@ DECLSPEC void ripemd160_update_vector (ripemd160_ctx_vector_t *ctx, const u32x * ripemd160_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void ripemd160_update_vector_swap (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void ripemd160_update_vector_swap (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1742,7 +1781,6 @@ DECLSPEC void ripemd160_update_vector_swap (ripemd160_ctx_vector_t *ctx, const u ripemd160_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void ripemd160_update_vector_utf16le (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void ripemd160_update_vector_utf16le (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1785,7 +1823,6 @@ DECLSPEC void ripemd160_update_vector_utf16le (ripemd160_ctx_vector_t *ctx, cons ripemd160_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void ripemd160_update_vector_utf16le_swap (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void ripemd160_update_vector_utf16le_swap (ripemd160_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1862,7 +1899,6 @@ DECLSPEC void ripemd160_update_vector_utf16le_swap (ripemd160_ctx_vector_t *ctx, ripemd160_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void ripemd160_final_vector (ripemd160_ctx_vector_t *ctx); DECLSPEC void ripemd160_final_vector (ripemd160_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1906,7 +1942,6 @@ typedef struct ripemd160_hmac_ctx_vector } ripemd160_hmac_ctx_vector_t; -DECLSPEC void ripemd160_hmac_init_vector_64 (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void ripemd160_hmac_init_vector_64 (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u32x t0[4]; @@ -1961,7 +1996,6 @@ DECLSPEC void ripemd160_hmac_init_vector_64 (ripemd160_hmac_ctx_vector_t *ctx, c ripemd160_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void ripemd160_hmac_init_vector (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void ripemd160_hmac_init_vector (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2019,19 +2053,16 @@ DECLSPEC void ripemd160_hmac_init_vector (ripemd160_hmac_ctx_vector_t *ctx, cons ripemd160_hmac_init_vector_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void ripemd160_hmac_update_vector_64 (ripemd160_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void ripemd160_hmac_update_vector_64 (ripemd160_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { ripemd160_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void ripemd160_hmac_update_vector (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void ripemd160_hmac_update_vector (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { ripemd160_update_vector (&ctx->ipad, w, len); } -DECLSPEC void ripemd160_hmac_final_vector (ripemd160_hmac_ctx_vector_t *ctx); DECLSPEC void ripemd160_hmac_final_vector (ripemd160_hmac_ctx_vector_t *ctx) { ripemd160_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_sha1.cl b/OpenCL/inc_hash_sha1.cl index 4c45c7c1e..5604746d8 100644 --- a/OpenCL/inc_hash_sha1.cl +++ b/OpenCL/inc_hash_sha1.cl @@ -2,7 +2,63 @@ // important notes on this: // input buf unused bytes needs to be set to zero // input buf needs to be in algorithm native byte order (md5 = LE, sha1 = BE, etc) -// input buf needs to be 64 byte aligned when using md5_update() +// input buf needs to be 64 byte aligned when using sha1_update() + +#ifdef IS_NV +#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) +#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA1_F0o(x,y,z) (bitselect ((z), (y), (x))) +#define SHA1_F2o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_AMD +#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) +#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA1_F0o(x,y,z) (bitselect ((z), (y), (x))) +#define SHA1_F2o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_GENERIC +#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) +#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA1_F0o(x,y,z) (SHA1_F0 ((x), (y), (z))) +#define SHA1_F2o(x,y,z) (SHA1_F2 ((x), (y), (z))) +#endif + +#define SHA1_STEP_S(f,a,b,c,d,e,x) \ +{ \ + e += K; \ + e = hc_add3_S (e, x, f (b, c, d)); \ + e += rotl32_S (a, 5u); \ + b = rotl32_S (b, 30u); \ +} + +#define SHA1_STEP(f,a,b,c,d,e,x) \ +{ \ + e += K; \ + e = hc_add3 (e, x, f (b, c, d)); \ + e += rotl32 (a, 5u); \ + b = rotl32 (b, 30u); \ +} + +/* +#define SHA1_STEP0(f,a,b,c,d,e,x) \ +{ \ + e = hc_add3 (e, K, f (b, c, d)); \ + e += rotl32 (a, 5u); \ + b = rotl32 (b, 30u); \ +} +*/ + +#define SHA1_STEPX(f,a,b,c,d,e,x) \ +{ \ + e = hc_add3 (e, x, f (b, c, d)); \ + e += rotl32 (a, 5u); \ + b = rotl32 (b, 30u); \ +} typedef struct sha1_ctx { @@ -17,7 +73,6 @@ typedef struct sha1_ctx } sha1_ctx_t; -DECLSPEC void sha1_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void sha1_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -147,7 +202,6 @@ DECLSPEC void sha1_transform (const u32 *w0, const u32 *w1, const u32 *w2, const digest[4] += e; } -DECLSPEC void sha1_init (sha1_ctx_t *ctx); DECLSPEC void sha1_init (sha1_ctx_t *ctx) { ctx->h[0] = SHA1M_A; @@ -176,7 +230,6 @@ DECLSPEC void sha1_init (sha1_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void sha1_update_64 (sha1_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void sha1_update_64 (sha1_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -251,7 +304,6 @@ DECLSPEC void sha1_update_64 (sha1_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w } } -DECLSPEC void sha1_update (sha1_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_update (sha1_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -304,7 +356,6 @@ DECLSPEC void sha1_update (sha1_ctx_t *ctx, const u32 *w, const int len) sha1_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha1_update_swap (sha1_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_update_swap (sha1_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -391,7 +442,6 @@ DECLSPEC void sha1_update_swap (sha1_ctx_t *ctx, const u32 *w, const int len) sha1_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha1_update_utf16le (sha1_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_update_utf16le (sha1_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -434,7 +484,6 @@ DECLSPEC void sha1_update_utf16le (sha1_ctx_t *ctx, const u32 *w, const int len) sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_utf16le_swap (sha1_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_update_utf16le_swap (sha1_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -511,7 +560,6 @@ DECLSPEC void sha1_update_utf16le_swap (sha1_ctx_t *ctx, const u32 *w, const int sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_utf16be (sha1_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_update_utf16be (sha1_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -554,7 +602,6 @@ DECLSPEC void sha1_update_utf16be (sha1_ctx_t *ctx, const u32 *w, const int len) sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_utf16be_swap (sha1_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_update_utf16be_swap (sha1_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -631,7 +678,6 @@ DECLSPEC void sha1_update_utf16be_swap (sha1_ctx_t *ctx, const u32 *w, const int sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_global (sha1_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_update_global (sha1_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -684,7 +730,6 @@ DECLSPEC void sha1_update_global (sha1_ctx_t *ctx, const __global u32 *w, const sha1_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha1_update_global_swap (sha1_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_update_global_swap (sha1_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -771,7 +816,6 @@ DECLSPEC void sha1_update_global_swap (sha1_ctx_t *ctx, const __global u32 *w, c sha1_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha1_update_global_utf16le (sha1_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_update_global_utf16le (sha1_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -814,7 +858,6 @@ DECLSPEC void sha1_update_global_utf16le (sha1_ctx_t *ctx, const __global u32 *w sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_global_utf16le_swap (sha1_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_update_global_utf16le_swap (sha1_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -891,7 +934,6 @@ DECLSPEC void sha1_update_global_utf16le_swap (sha1_ctx_t *ctx, const __global u sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_global_utf16be (sha1_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_update_global_utf16be (sha1_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -934,7 +976,6 @@ DECLSPEC void sha1_update_global_utf16be (sha1_ctx_t *ctx, const __global u32 *w sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_global_utf16be_swap (sha1_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_update_global_utf16be_swap (sha1_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1011,7 +1052,6 @@ DECLSPEC void sha1_update_global_utf16be_swap (sha1_ctx_t *ctx, const __global u sha1_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_final (sha1_ctx_t *ctx); DECLSPEC void sha1_final (sha1_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -1055,7 +1095,6 @@ typedef struct sha1_hmac_ctx } sha1_hmac_ctx_t; -DECLSPEC void sha1_hmac_init_64 (sha1_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void sha1_hmac_init_64 (sha1_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u32 t0[4]; @@ -1110,7 +1149,6 @@ DECLSPEC void sha1_hmac_init_64 (sha1_hmac_ctx_t *ctx, const u32 *w0, const u32 sha1_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void sha1_hmac_init (sha1_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_hmac_init (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1168,7 +1206,6 @@ DECLSPEC void sha1_hmac_init (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) sha1_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha1_hmac_init_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_hmac_init_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1226,7 +1263,6 @@ DECLSPEC void sha1_hmac_init_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int sha1_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha1_hmac_init_global (sha1_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha1_hmac_init_global (sha1_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1284,7 +1320,6 @@ DECLSPEC void sha1_hmac_init_global (sha1_hmac_ctx_t *ctx, __global const u32 *w sha1_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha1_hmac_init_global_swap (sha1_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha1_hmac_init_global_swap (sha1_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1342,61 +1377,51 @@ DECLSPEC void sha1_hmac_init_global_swap (sha1_hmac_ctx_t *ctx, __global const u sha1_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha1_hmac_update_64 (sha1_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void sha1_hmac_update_64 (sha1_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { sha1_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void sha1_hmac_update (sha1_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_hmac_update (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) { sha1_update (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_hmac_update_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) { sha1_update_swap (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_utf16le (sha1_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_hmac_update_utf16le (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) { sha1_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_utf16le_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha1_hmac_update_utf16le_swap (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) { sha1_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_global (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_hmac_update_global (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha1_update_global (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_global_swap (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_hmac_update_global_swap (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha1_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_global_utf16le (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_hmac_update_global_utf16le (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha1_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_update_global_utf16le_swap (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha1_hmac_update_global_utf16le_swap (sha1_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha1_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_final (sha1_hmac_ctx_t *ctx); DECLSPEC void sha1_hmac_final (sha1_hmac_ctx_t *ctx) { sha1_final (&ctx->ipad); @@ -1443,7 +1468,6 @@ typedef struct sha1_ctx_vector } sha1_ctx_vector_t; -DECLSPEC void sha1_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest); DECLSPEC void sha1_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest) { u32x a = digest[0]; @@ -1573,7 +1597,6 @@ DECLSPEC void sha1_transform_vector (const u32x *w0, const u32x *w1, const u32x digest[4] += e; } -DECLSPEC void sha1_init_vector (sha1_ctx_vector_t *ctx); DECLSPEC void sha1_init_vector (sha1_ctx_vector_t *ctx) { ctx->h[0] = SHA1M_A; @@ -1602,7 +1625,6 @@ DECLSPEC void sha1_init_vector (sha1_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void sha1_init_vector_from_scalar (sha1_ctx_vector_t *ctx, sha1_ctx_t *ctx0); DECLSPEC void sha1_init_vector_from_scalar (sha1_ctx_vector_t *ctx, sha1_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -1631,7 +1653,6 @@ DECLSPEC void sha1_init_vector_from_scalar (sha1_ctx_vector_t *ctx, sha1_ctx_t * ctx->len = ctx0->len; } -DECLSPEC void sha1_update_vector_64 (sha1_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void sha1_update_vector_64 (sha1_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -1706,7 +1727,6 @@ DECLSPEC void sha1_update_vector_64 (sha1_ctx_vector_t *ctx, u32x *w0, u32x *w1, } } -DECLSPEC void sha1_update_vector (sha1_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_update_vector (sha1_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1759,7 +1779,6 @@ DECLSPEC void sha1_update_vector (sha1_ctx_vector_t *ctx, const u32x *w, const i sha1_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha1_update_vector_swap (sha1_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_update_vector_swap (sha1_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1846,7 +1865,6 @@ DECLSPEC void sha1_update_vector_swap (sha1_ctx_vector_t *ctx, const u32x *w, co sha1_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha1_update_vector_utf16le (sha1_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_update_vector_utf16le (sha1_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1889,7 +1907,6 @@ DECLSPEC void sha1_update_vector_utf16le (sha1_ctx_vector_t *ctx, const u32x *w, sha1_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_vector_utf16le_swap (sha1_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_update_vector_utf16le_swap (sha1_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1966,7 +1983,6 @@ DECLSPEC void sha1_update_vector_utf16le_swap (sha1_ctx_vector_t *ctx, const u32 sha1_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_vector_utf16leN (sha1_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_update_vector_utf16leN (sha1_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2009,7 +2025,6 @@ DECLSPEC void sha1_update_vector_utf16leN (sha1_ctx_vector_t *ctx, const u32x *w sha1_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_update_vector_utf16beN (sha1_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_update_vector_utf16beN (sha1_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2052,7 +2067,6 @@ DECLSPEC void sha1_update_vector_utf16beN (sha1_ctx_vector_t *ctx, const u32x *w sha1_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha1_final_vector (sha1_ctx_vector_t *ctx); DECLSPEC void sha1_final_vector (sha1_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -2096,7 +2110,6 @@ typedef struct sha1_hmac_ctx_vector } sha1_hmac_ctx_vector_t; -DECLSPEC void sha1_hmac_init_vector_64 (sha1_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void sha1_hmac_init_vector_64 (sha1_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u32x t0[4]; @@ -2151,7 +2164,6 @@ DECLSPEC void sha1_hmac_init_vector_64 (sha1_hmac_ctx_vector_t *ctx, const u32x sha1_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void sha1_hmac_init_vector (sha1_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_hmac_init_vector (sha1_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2209,19 +2221,16 @@ DECLSPEC void sha1_hmac_init_vector (sha1_hmac_ctx_vector_t *ctx, const u32x *w, sha1_hmac_init_vector_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha1_hmac_update_vector_64 (sha1_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void sha1_hmac_update_vector_64 (sha1_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { sha1_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void sha1_hmac_update_vector (sha1_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha1_hmac_update_vector (sha1_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { sha1_update_vector (&ctx->ipad, w, len); } -DECLSPEC void sha1_hmac_final_vector (sha1_hmac_ctx_vector_t *ctx); DECLSPEC void sha1_hmac_final_vector (sha1_hmac_ctx_vector_t *ctx) { sha1_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_sha224.cl b/OpenCL/inc_hash_sha224.cl index 82a5cbb3a..66cf223fa 100644 --- a/OpenCL/inc_hash_sha224.cl +++ b/OpenCL/inc_hash_sha224.cl @@ -2,8 +2,60 @@ // important notes on this: // input buf unused bytes needs to be set to zero // input buf needs to be in algorithm native byte order (md5 = LE, sha256 = BE, etc) -// input buf needs to be 64 byte aligned when using md5_update() +// input buf needs to be 64 byte aligned when using sha256_update() +#define SHIFT_RIGHT_32(x,n) ((x) >> (n)) + +#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) +#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) +#define SHA256_S2_S(x) (rotl32_S ((x), 30u) ^ rotl32_S ((x), 19u) ^ rotl32_S ((x), 10u)) +#define SHA256_S3_S(x) (rotl32_S ((x), 26u) ^ rotl32_S ((x), 21u) ^ rotl32_S ((x), 7u)) + +#define SHA256_S0(x) (rotl32 ((x), 25u) ^ rotl32 ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) +#define SHA256_S1(x) (rotl32 ((x), 15u) ^ rotl32 ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) +#define SHA256_S2(x) (rotl32 ((x), 30u) ^ rotl32 ((x), 19u) ^ rotl32 ((x), 10u)) +#define SHA256_S3(x) (rotl32 ((x), 26u) ^ rotl32 ((x), 21u) ^ rotl32 ((x), 7u)) + +#ifdef IS_NV +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#define SHA256_F1o(x,y,z) (bitselect ((z), (y), (x))) +#endif + +#ifdef IS_AMD +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#define SHA256_F1o(x,y,z) (bitselect ((z), (y), (x))) +#endif + +#ifdef IS_GENERIC +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (SHA256_F0 ((x), (y), (z))) +#define SHA256_F1o(x,y,z) (SHA256_F1 ((x), (y), (z))) +#endif + +#define SHA256_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h = hc_add3_S (h, K, x); \ + h = hc_add3_S (h, SHA256_S3_S (e), F1 (e,f,g)); \ + d += h; \ + h = hc_add3_S (h, SHA256_S2_S (a), F0 (a,b,c)); \ +} + +#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) + +#define SHA256_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h = hc_add3 (h, K, x); \ + h = hc_add3 (h, SHA256_S3 (e), F1 (e,f,g)); \ + d += h; \ + h = hc_add3 (h, SHA256_S2 (a), F0 (a,b,c)); \ +} + +#define SHA256_EXPAND(x,y,z,w) (SHA256_S1 (x) + y + SHA256_S0 (z) + w) __constant u32a k_sha224[64] = { SHA256C00, SHA256C01, SHA256C02, SHA256C03, @@ -37,7 +89,6 @@ typedef struct sha224_ctx } sha224_ctx_t; -DECLSPEC void sha224_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void sha224_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -129,7 +180,6 @@ DECLSPEC void sha224_transform (const u32 *w0, const u32 *w1, const u32 *w2, con digest[7] += h; } -DECLSPEC void sha224_init (sha224_ctx_t *ctx); DECLSPEC void sha224_init (sha224_ctx_t *ctx) { ctx->h[0] = SHA224M_A; @@ -161,7 +211,6 @@ DECLSPEC void sha224_init (sha224_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void sha224_update_64 (sha224_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void sha224_update_64 (sha224_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -236,7 +285,6 @@ DECLSPEC void sha224_update_64 (sha224_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u3 } } -DECLSPEC void sha224_update (sha224_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_update (sha224_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -289,7 +337,6 @@ DECLSPEC void sha224_update (sha224_ctx_t *ctx, const u32 *w, const int len) sha224_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha224_update_swap (sha224_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_update_swap (sha224_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -376,7 +423,6 @@ DECLSPEC void sha224_update_swap (sha224_ctx_t *ctx, const u32 *w, const int len sha224_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha224_update_utf16le (sha224_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_update_utf16le (sha224_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -419,7 +465,6 @@ DECLSPEC void sha224_update_utf16le (sha224_ctx_t *ctx, const u32 *w, const int sha224_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_update_utf16le_swap (sha224_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_update_utf16le_swap (sha224_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -496,7 +541,6 @@ DECLSPEC void sha224_update_utf16le_swap (sha224_ctx_t *ctx, const u32 *w, const sha224_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_update_global (sha224_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_update_global (sha224_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -549,7 +593,6 @@ DECLSPEC void sha224_update_global (sha224_ctx_t *ctx, const __global u32 *w, co sha224_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha224_update_global_swap (sha224_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_update_global_swap (sha224_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -636,7 +679,6 @@ DECLSPEC void sha224_update_global_swap (sha224_ctx_t *ctx, const __global u32 * sha224_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha224_update_global_utf16le (sha224_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_update_global_utf16le (sha224_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -679,7 +721,6 @@ DECLSPEC void sha224_update_global_utf16le (sha224_ctx_t *ctx, const __global u3 sha224_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_update_global_utf16le_swap (sha224_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_update_global_utf16le_swap (sha224_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -756,7 +797,6 @@ DECLSPEC void sha224_update_global_utf16le_swap (sha224_ctx_t *ctx, const __glob sha224_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_final (sha224_ctx_t *ctx); DECLSPEC void sha224_final (sha224_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -800,7 +840,6 @@ typedef struct sha224_hmac_ctx } sha224_hmac_ctx_t; -DECLSPEC void sha224_hmac_init_64 (sha224_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void sha224_hmac_init_64 (sha224_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u32 t0[4]; @@ -855,7 +894,6 @@ DECLSPEC void sha224_hmac_init_64 (sha224_hmac_ctx_t *ctx, const u32 *w0, const sha224_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void sha224_hmac_init (sha224_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_hmac_init (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -913,7 +951,6 @@ DECLSPEC void sha224_hmac_init (sha224_hmac_ctx_t *ctx, const u32 *w, const int sha224_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha224_hmac_init_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_hmac_init_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -971,7 +1008,6 @@ DECLSPEC void sha224_hmac_init_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const sha224_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha224_hmac_init_global (sha224_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha224_hmac_init_global (sha224_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1029,7 +1065,6 @@ DECLSPEC void sha224_hmac_init_global (sha224_hmac_ctx_t *ctx, __global const u3 sha224_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha224_hmac_init_global_swap (sha224_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha224_hmac_init_global_swap (sha224_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1087,61 +1122,51 @@ DECLSPEC void sha224_hmac_init_global_swap (sha224_hmac_ctx_t *ctx, __global con sha224_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha224_hmac_update_64 (sha224_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void sha224_hmac_update_64 (sha224_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { sha224_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void sha224_hmac_update (sha224_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_hmac_update (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) { sha224_update (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_hmac_update_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) { sha224_update_swap (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_utf16le (sha224_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_hmac_update_utf16le (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) { sha224_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_utf16le_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha224_hmac_update_utf16le_swap (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) { sha224_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_global (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_hmac_update_global (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha224_update_global (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_global_swap (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_hmac_update_global_swap (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha224_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_global_utf16le (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_hmac_update_global_utf16le (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha224_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_update_global_utf16le_swap (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha224_hmac_update_global_utf16le_swap (sha224_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha224_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_final (sha224_hmac_ctx_t *ctx); DECLSPEC void sha224_hmac_final (sha224_hmac_ctx_t *ctx) { sha224_final (&ctx->ipad); @@ -1188,7 +1213,6 @@ typedef struct sha224_ctx_vector } sha224_ctx_vector_t; -DECLSPEC void sha224_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest); DECLSPEC void sha224_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest) { u32x a = digest[0]; @@ -1280,7 +1304,6 @@ DECLSPEC void sha224_transform_vector (const u32x *w0, const u32x *w1, const u32 digest[7] += h; } -DECLSPEC void sha224_init_vector (sha224_ctx_vector_t *ctx); DECLSPEC void sha224_init_vector (sha224_ctx_vector_t *ctx) { ctx->h[0] = SHA224M_A; @@ -1312,7 +1335,6 @@ DECLSPEC void sha224_init_vector (sha224_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void sha224_init_vector_from_scalar (sha224_ctx_vector_t *ctx, sha224_ctx_t *ctx0); DECLSPEC void sha224_init_vector_from_scalar (sha224_ctx_vector_t *ctx, sha224_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -1344,7 +1366,6 @@ DECLSPEC void sha224_init_vector_from_scalar (sha224_ctx_vector_t *ctx, sha224_c ctx->len = ctx0->len; } -DECLSPEC void sha224_update_vector_64 (sha224_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void sha224_update_vector_64 (sha224_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -1419,7 +1440,6 @@ DECLSPEC void sha224_update_vector_64 (sha224_ctx_vector_t *ctx, u32x *w0, u32x } } -DECLSPEC void sha224_update_vector (sha224_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_update_vector (sha224_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1472,7 +1492,6 @@ DECLSPEC void sha224_update_vector (sha224_ctx_vector_t *ctx, const u32x *w, con sha224_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha224_update_vector_swap (sha224_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_update_vector_swap (sha224_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1559,7 +1578,6 @@ DECLSPEC void sha224_update_vector_swap (sha224_ctx_vector_t *ctx, const u32x *w sha224_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha224_update_vector_utf16le (sha224_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_update_vector_utf16le (sha224_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1602,7 +1620,6 @@ DECLSPEC void sha224_update_vector_utf16le (sha224_ctx_vector_t *ctx, const u32x sha224_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_update_vector_utf16le_swap (sha224_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_update_vector_utf16le_swap (sha224_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1679,7 +1696,6 @@ DECLSPEC void sha224_update_vector_utf16le_swap (sha224_ctx_vector_t *ctx, const sha224_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_update_vector_utf16beN (sha224_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_update_vector_utf16beN (sha224_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1722,7 +1738,6 @@ DECLSPEC void sha224_update_vector_utf16beN (sha224_ctx_vector_t *ctx, const u32 sha224_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha224_final_vector (sha224_ctx_vector_t *ctx); DECLSPEC void sha224_final_vector (sha224_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1766,7 +1781,6 @@ typedef struct sha224_hmac_ctx_vector } sha224_hmac_ctx_vector_t; -DECLSPEC void sha224_hmac_init_vector_64 (sha224_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void sha224_hmac_init_vector_64 (sha224_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u32x t0[4]; @@ -1821,7 +1835,6 @@ DECLSPEC void sha224_hmac_init_vector_64 (sha224_hmac_ctx_vector_t *ctx, const u sha224_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void sha224_hmac_init_vector (sha224_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_hmac_init_vector (sha224_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1879,19 +1892,16 @@ DECLSPEC void sha224_hmac_init_vector (sha224_hmac_ctx_vector_t *ctx, const u32x sha224_hmac_init_vector_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha224_hmac_update_vector_64 (sha224_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void sha224_hmac_update_vector_64 (sha224_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { sha224_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void sha224_hmac_update_vector (sha224_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha224_hmac_update_vector (sha224_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { sha224_update_vector (&ctx->ipad, w, len); } -DECLSPEC void sha224_hmac_final_vector (sha224_hmac_ctx_vector_t *ctx); DECLSPEC void sha224_hmac_final_vector (sha224_hmac_ctx_vector_t *ctx) { sha224_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_sha256.cl b/OpenCL/inc_hash_sha256.cl index 5563e95f8..5aa0a7a39 100644 --- a/OpenCL/inc_hash_sha256.cl +++ b/OpenCL/inc_hash_sha256.cl @@ -2,7 +2,60 @@ // important notes on this: // input buf unused bytes needs to be set to zero // input buf needs to be in algorithm native byte order (md5 = LE, sha256 = BE, etc) -// input buf needs to be 64 byte aligned when using md5_update() +// input buf needs to be 64 byte aligned when using sha384_update() + +#define SHIFT_RIGHT_32(x,n) ((x) >> (n)) + +#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) +#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) +#define SHA256_S2_S(x) (rotl32_S ((x), 30u) ^ rotl32_S ((x), 19u) ^ rotl32_S ((x), 10u)) +#define SHA256_S3_S(x) (rotl32_S ((x), 26u) ^ rotl32_S ((x), 21u) ^ rotl32_S ((x), 7u)) + +#define SHA256_S0(x) (rotl32 ((x), 25u) ^ rotl32 ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) +#define SHA256_S1(x) (rotl32 ((x), 15u) ^ rotl32 ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) +#define SHA256_S2(x) (rotl32 ((x), 30u) ^ rotl32 ((x), 19u) ^ rotl32 ((x), 10u)) +#define SHA256_S3(x) (rotl32 ((x), 26u) ^ rotl32 ((x), 21u) ^ rotl32 ((x), 7u)) + +#ifdef IS_NV +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#define SHA256_F1o(x,y,z) (bitselect ((z), (y), (x))) +#endif + +#ifdef IS_AMD +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#define SHA256_F1o(x,y,z) (bitselect ((z), (y), (x))) +#endif + +#ifdef IS_GENERIC +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (SHA256_F0 ((x), (y), (z))) +#define SHA256_F1o(x,y,z) (SHA256_F1 ((x), (y), (z))) +#endif + +#define SHA256_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h = hc_add3_S (h, K, x); \ + h = hc_add3_S (h, SHA256_S3_S (e), F1 (e,f,g)); \ + d += h; \ + h = hc_add3_S (h, SHA256_S2_S (a), F0 (a,b,c)); \ +} + +#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) + +#define SHA256_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h = hc_add3 (h, K, x); \ + h = hc_add3 (h, SHA256_S3 (e), F1 (e,f,g)); \ + d += h; \ + h = hc_add3 (h, SHA256_S2 (a), F0 (a,b,c)); \ +} + +#define SHA256_EXPAND(x,y,z,w) (SHA256_S1 (x) + y + SHA256_S0 (z) + w) __constant u32a k_sha256[64] = { @@ -37,7 +90,6 @@ typedef struct sha256_ctx } sha256_ctx_t; -DECLSPEC void sha256_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void sha256_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -129,7 +181,6 @@ DECLSPEC void sha256_transform (const u32 *w0, const u32 *w1, const u32 *w2, con digest[7] += h; } -DECLSPEC void sha256_init (sha256_ctx_t *ctx); DECLSPEC void sha256_init (sha256_ctx_t *ctx) { ctx->h[0] = SHA256M_A; @@ -161,7 +212,6 @@ DECLSPEC void sha256_init (sha256_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void sha256_update_64 (sha256_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void sha256_update_64 (sha256_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -236,7 +286,6 @@ DECLSPEC void sha256_update_64 (sha256_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u3 } } -DECLSPEC void sha256_update (sha256_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_update (sha256_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -289,7 +338,6 @@ DECLSPEC void sha256_update (sha256_ctx_t *ctx, const u32 *w, const int len) sha256_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha256_update_swap (sha256_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_update_swap (sha256_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -376,7 +424,6 @@ DECLSPEC void sha256_update_swap (sha256_ctx_t *ctx, const u32 *w, const int len sha256_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha256_update_utf16le (sha256_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_update_utf16le (sha256_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -419,7 +466,6 @@ DECLSPEC void sha256_update_utf16le (sha256_ctx_t *ctx, const u32 *w, const int sha256_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_update_utf16le_swap (sha256_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_update_utf16le_swap (sha256_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -496,7 +542,6 @@ DECLSPEC void sha256_update_utf16le_swap (sha256_ctx_t *ctx, const u32 *w, const sha256_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_update_global (sha256_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_update_global (sha256_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -549,7 +594,6 @@ DECLSPEC void sha256_update_global (sha256_ctx_t *ctx, const __global u32 *w, co sha256_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha256_update_global_swap (sha256_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_update_global_swap (sha256_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -636,7 +680,6 @@ DECLSPEC void sha256_update_global_swap (sha256_ctx_t *ctx, const __global u32 * sha256_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha256_update_global_utf16le (sha256_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_update_global_utf16le (sha256_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -679,7 +722,6 @@ DECLSPEC void sha256_update_global_utf16le (sha256_ctx_t *ctx, const __global u3 sha256_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_update_global_utf16le_swap (sha256_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_update_global_utf16le_swap (sha256_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -756,7 +798,6 @@ DECLSPEC void sha256_update_global_utf16le_swap (sha256_ctx_t *ctx, const __glob sha256_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_final (sha256_ctx_t *ctx); DECLSPEC void sha256_final (sha256_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -800,7 +841,6 @@ typedef struct sha256_hmac_ctx } sha256_hmac_ctx_t; -DECLSPEC void sha256_hmac_init_64 (sha256_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void sha256_hmac_init_64 (sha256_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u32 t0[4]; @@ -855,7 +895,6 @@ DECLSPEC void sha256_hmac_init_64 (sha256_hmac_ctx_t *ctx, const u32 *w0, const sha256_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void sha256_hmac_init (sha256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_hmac_init (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -913,7 +952,6 @@ DECLSPEC void sha256_hmac_init (sha256_hmac_ctx_t *ctx, const u32 *w, const int sha256_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha256_hmac_init_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_hmac_init_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -971,7 +1009,6 @@ DECLSPEC void sha256_hmac_init_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const sha256_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha256_hmac_init_global (sha256_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha256_hmac_init_global (sha256_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1029,7 +1066,6 @@ DECLSPEC void sha256_hmac_init_global (sha256_hmac_ctx_t *ctx, __global const u3 sha256_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha256_hmac_init_global_swap (sha256_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha256_hmac_init_global_swap (sha256_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1087,61 +1123,51 @@ DECLSPEC void sha256_hmac_init_global_swap (sha256_hmac_ctx_t *ctx, __global con sha256_hmac_init_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha256_hmac_update_64 (sha256_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void sha256_hmac_update_64 (sha256_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { sha256_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void sha256_hmac_update (sha256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_hmac_update (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) { sha256_update (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_hmac_update_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) { sha256_update_swap (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_utf16le (sha256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_hmac_update_utf16le (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) { sha256_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_utf16le_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha256_hmac_update_utf16le_swap (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) { sha256_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_global (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_hmac_update_global (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha256_update_global (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_global_swap (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_hmac_update_global_swap (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha256_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_global_utf16le (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_hmac_update_global_utf16le (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha256_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_update_global_utf16le_swap (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha256_hmac_update_global_utf16le_swap (sha256_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha256_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_final (sha256_hmac_ctx_t *ctx); DECLSPEC void sha256_hmac_final (sha256_hmac_ctx_t *ctx) { sha256_final (&ctx->ipad); @@ -1188,7 +1214,6 @@ typedef struct sha256_ctx_vector } sha256_ctx_vector_t; -DECLSPEC void sha256_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest); DECLSPEC void sha256_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest) { u32x a = digest[0]; @@ -1280,7 +1305,6 @@ DECLSPEC void sha256_transform_vector (const u32x *w0, const u32x *w1, const u32 digest[7] += h; } -DECLSPEC void sha256_init_vector (sha256_ctx_vector_t *ctx); DECLSPEC void sha256_init_vector (sha256_ctx_vector_t *ctx) { ctx->h[0] = SHA256M_A; @@ -1312,7 +1336,6 @@ DECLSPEC void sha256_init_vector (sha256_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void sha256_init_vector_from_scalar (sha256_ctx_vector_t *ctx, sha256_ctx_t *ctx0); DECLSPEC void sha256_init_vector_from_scalar (sha256_ctx_vector_t *ctx, sha256_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -1344,7 +1367,6 @@ DECLSPEC void sha256_init_vector_from_scalar (sha256_ctx_vector_t *ctx, sha256_c ctx->len = ctx0->len; } -DECLSPEC void sha256_update_vector_64 (sha256_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void sha256_update_vector_64 (sha256_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -1419,7 +1441,6 @@ DECLSPEC void sha256_update_vector_64 (sha256_ctx_vector_t *ctx, u32x *w0, u32x } } -DECLSPEC void sha256_update_vector (sha256_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_update_vector (sha256_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1472,7 +1493,6 @@ DECLSPEC void sha256_update_vector (sha256_ctx_vector_t *ctx, const u32x *w, con sha256_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha256_update_vector_swap (sha256_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_update_vector_swap (sha256_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1559,7 +1579,6 @@ DECLSPEC void sha256_update_vector_swap (sha256_ctx_vector_t *ctx, const u32x *w sha256_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void sha256_update_vector_utf16le (sha256_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_update_vector_utf16le (sha256_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1602,7 +1621,6 @@ DECLSPEC void sha256_update_vector_utf16le (sha256_ctx_vector_t *ctx, const u32x sha256_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_update_vector_utf16le_swap (sha256_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_update_vector_utf16le_swap (sha256_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1679,7 +1697,6 @@ DECLSPEC void sha256_update_vector_utf16le_swap (sha256_ctx_vector_t *ctx, const sha256_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_update_vector_utf16beN (sha256_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_update_vector_utf16beN (sha256_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1722,7 +1739,6 @@ DECLSPEC void sha256_update_vector_utf16beN (sha256_ctx_vector_t *ctx, const u32 sha256_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void sha256_final_vector (sha256_ctx_vector_t *ctx); DECLSPEC void sha256_final_vector (sha256_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1766,7 +1782,6 @@ typedef struct sha256_hmac_ctx_vector } sha256_hmac_ctx_vector_t; -DECLSPEC void sha256_hmac_init_vector_64 (sha256_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void sha256_hmac_init_vector_64 (sha256_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u32x t0[4]; @@ -1821,7 +1836,6 @@ DECLSPEC void sha256_hmac_init_vector_64 (sha256_hmac_ctx_vector_t *ctx, const u sha256_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void sha256_hmac_init_vector (sha256_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_hmac_init_vector (sha256_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -1879,19 +1893,16 @@ DECLSPEC void sha256_hmac_init_vector (sha256_hmac_ctx_vector_t *ctx, const u32x sha256_hmac_init_vector_64 (ctx, w0, w1, w2, w3); } -DECLSPEC void sha256_hmac_update_vector_64 (sha256_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void sha256_hmac_update_vector_64 (sha256_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { sha256_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void sha256_hmac_update_vector (sha256_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha256_hmac_update_vector (sha256_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { sha256_update_vector (&ctx->ipad, w, len); } -DECLSPEC void sha256_hmac_final_vector (sha256_hmac_ctx_vector_t *ctx); DECLSPEC void sha256_hmac_final_vector (sha256_hmac_ctx_vector_t *ctx) { sha256_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_sha384.cl b/OpenCL/inc_hash_sha384.cl index e21cbdf44..46bd9a129 100644 --- a/OpenCL/inc_hash_sha384.cl +++ b/OpenCL/inc_hash_sha384.cl @@ -2,7 +2,63 @@ // important notes on this: // input buf unused bytes needs to be set to zero // input buf needs to be in algorithm native byte order (md5 = LE, sha1 = BE, etc) -// input buf needs to be 128 byte aligned when using sha512_update() +// input buf needs to be 128 byte aligned when using sha384_update() + +#define SHIFT_RIGHT_64(x,n) ((x) >> (n)) + +#define SHA384_S0_S(x) (rotr64_S ((x), 28) ^ rotr64_S ((x), 34) ^ rotr64_S ((x), 39)) +#define SHA384_S1_S(x) (rotr64_S ((x), 14) ^ rotr64_S ((x), 18) ^ rotr64_S ((x), 41)) +#define SHA384_S2_S(x) (rotr64_S ((x), 1) ^ rotr64_S ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) +#define SHA384_S3_S(x) (rotr64_S ((x), 19) ^ rotr64_S ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) + +#define SHA384_S0(x) (rotr64 ((x), 28) ^ rotr64 ((x), 34) ^ rotr64 ((x), 39)) +#define SHA384_S1(x) (rotr64 ((x), 14) ^ rotr64 ((x), 18) ^ rotr64 ((x), 41)) +#define SHA384_S2(x) (rotr64 ((x), 1) ^ rotr64 ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) +#define SHA384_S3(x) (rotr64 ((x), 19) ^ rotr64 ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) + +#define SHA384_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA384_F1(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) + +#ifdef IS_NV +#define SHA384_F0o(x,y,z) (bitselect ((z), (y), (x))) +#define SHA384_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_AMD +#define SHA384_F0o(x,y,z) (bitselect ((z), (y), (x))) +#define SHA384_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_GENERIC +#define SHA384_F0o(x,y,z) (SHA384_F0 ((x), (y), (z))) +#define SHA384_F1o(x,y,z) (SHA384_F1 ((x), (y), (z))) +#endif + +#define SHA384_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h += K; \ + h += x; \ + h += SHA384_S1_S (e); \ + h += F0 (e, f, g); \ + d += h; \ + h += SHA384_S0_S (a); \ + h += F1 (a, b, c); \ +} + +#define SHA384_EXPAND_S(x,y,z,w) (SHA384_S3_S (x) + y + SHA384_S2_S (z) + w) + +#define SHA384_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h += K; \ + h += x; \ + h += SHA384_S1 (e); \ + h += F0 (e, f, g); \ + d += h; \ + h += SHA384_S0 (a); \ + h += F1 (a, b, c); \ +} + +#define SHA384_EXPAND(x,y,z,w) (SHA384_S3 (x) + y + SHA384_S2 (z) + w) __constant u64a k_sha384[80] = { @@ -45,7 +101,6 @@ typedef struct sha384_ctx } sha384_ctx_t; -DECLSPEC void sha384_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7, u64 *digest); DECLSPEC void sha384_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7, u64 *digest) { u64 a = digest[0]; @@ -76,42 +131,42 @@ DECLSPEC void sha384_transform (const u32 *w0, const u32 *w1, const u32 *w2, con #define ROUND_EXPAND_S() \ { \ - w0_t = SHA512_EXPAND_S (we_t, w9_t, w1_t, w0_t); \ - w1_t = SHA512_EXPAND_S (wf_t, wa_t, w2_t, w1_t); \ - w2_t = SHA512_EXPAND_S (w0_t, wb_t, w3_t, w2_t); \ - w3_t = SHA512_EXPAND_S (w1_t, wc_t, w4_t, w3_t); \ - w4_t = SHA512_EXPAND_S (w2_t, wd_t, w5_t, w4_t); \ - w5_t = SHA512_EXPAND_S (w3_t, we_t, w6_t, w5_t); \ - w6_t = SHA512_EXPAND_S (w4_t, wf_t, w7_t, w6_t); \ - w7_t = SHA512_EXPAND_S (w5_t, w0_t, w8_t, w7_t); \ - w8_t = SHA512_EXPAND_S (w6_t, w1_t, w9_t, w8_t); \ - w9_t = SHA512_EXPAND_S (w7_t, w2_t, wa_t, w9_t); \ - wa_t = SHA512_EXPAND_S (w8_t, w3_t, wb_t, wa_t); \ - wb_t = SHA512_EXPAND_S (w9_t, w4_t, wc_t, wb_t); \ - wc_t = SHA512_EXPAND_S (wa_t, w5_t, wd_t, wc_t); \ - wd_t = SHA512_EXPAND_S (wb_t, w6_t, we_t, wd_t); \ - we_t = SHA512_EXPAND_S (wc_t, w7_t, wf_t, we_t); \ - wf_t = SHA512_EXPAND_S (wd_t, w8_t, w0_t, wf_t); \ + w0_t = SHA384_EXPAND_S (we_t, w9_t, w1_t, w0_t); \ + w1_t = SHA384_EXPAND_S (wf_t, wa_t, w2_t, w1_t); \ + w2_t = SHA384_EXPAND_S (w0_t, wb_t, w3_t, w2_t); \ + w3_t = SHA384_EXPAND_S (w1_t, wc_t, w4_t, w3_t); \ + w4_t = SHA384_EXPAND_S (w2_t, wd_t, w5_t, w4_t); \ + w5_t = SHA384_EXPAND_S (w3_t, we_t, w6_t, w5_t); \ + w6_t = SHA384_EXPAND_S (w4_t, wf_t, w7_t, w6_t); \ + w7_t = SHA384_EXPAND_S (w5_t, w0_t, w8_t, w7_t); \ + w8_t = SHA384_EXPAND_S (w6_t, w1_t, w9_t, w8_t); \ + w9_t = SHA384_EXPAND_S (w7_t, w2_t, wa_t, w9_t); \ + wa_t = SHA384_EXPAND_S (w8_t, w3_t, wb_t, wa_t); \ + wb_t = SHA384_EXPAND_S (w9_t, w4_t, wc_t, wb_t); \ + wc_t = SHA384_EXPAND_S (wa_t, w5_t, wd_t, wc_t); \ + wd_t = SHA384_EXPAND_S (wb_t, w6_t, we_t, wd_t); \ + we_t = SHA384_EXPAND_S (wc_t, w7_t, wf_t, we_t); \ + wf_t = SHA384_EXPAND_S (wd_t, w8_t, w0_t, wf_t); \ } #define ROUND_STEP_S(i) \ { \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, a, b, c, d, e, f, g, h, w0_t, k_sha384[i + 0]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, h, a, b, c, d, e, f, g, w1_t, k_sha384[i + 1]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, g, h, a, b, c, d, e, f, w2_t, k_sha384[i + 2]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, f, g, h, a, b, c, d, e, w3_t, k_sha384[i + 3]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, e, f, g, h, a, b, c, d, w4_t, k_sha384[i + 4]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, d, e, f, g, h, a, b, c, w5_t, k_sha384[i + 5]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, c, d, e, f, g, h, a, b, w6_t, k_sha384[i + 6]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, b, c, d, e, f, g, h, a, w7_t, k_sha384[i + 7]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, a, b, c, d, e, f, g, h, w8_t, k_sha384[i + 8]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, h, a, b, c, d, e, f, g, w9_t, k_sha384[i + 9]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, g, h, a, b, c, d, e, f, wa_t, k_sha384[i + 10]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, f, g, h, a, b, c, d, e, wb_t, k_sha384[i + 11]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, e, f, g, h, a, b, c, d, wc_t, k_sha384[i + 12]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, d, e, f, g, h, a, b, c, wd_t, k_sha384[i + 13]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, c, d, e, f, g, h, a, b, we_t, k_sha384[i + 14]); \ - SHA512_STEP_S (SHA512_F0o, SHA512_F1o, b, c, d, e, f, g, h, a, wf_t, k_sha384[i + 15]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, a, b, c, d, e, f, g, h, w0_t, k_sha384[i + 0]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, h, a, b, c, d, e, f, g, w1_t, k_sha384[i + 1]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, g, h, a, b, c, d, e, f, w2_t, k_sha384[i + 2]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, f, g, h, a, b, c, d, e, w3_t, k_sha384[i + 3]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, e, f, g, h, a, b, c, d, w4_t, k_sha384[i + 4]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, d, e, f, g, h, a, b, c, w5_t, k_sha384[i + 5]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, c, d, e, f, g, h, a, b, w6_t, k_sha384[i + 6]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, b, c, d, e, f, g, h, a, w7_t, k_sha384[i + 7]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, a, b, c, d, e, f, g, h, w8_t, k_sha384[i + 8]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, h, a, b, c, d, e, f, g, w9_t, k_sha384[i + 9]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, g, h, a, b, c, d, e, f, wa_t, k_sha384[i + 10]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, f, g, h, a, b, c, d, e, wb_t, k_sha384[i + 11]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, e, f, g, h, a, b, c, d, wc_t, k_sha384[i + 12]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, d, e, f, g, h, a, b, c, wd_t, k_sha384[i + 13]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, c, d, e, f, g, h, a, b, we_t, k_sha384[i + 14]); \ + SHA384_STEP_S (SHA384_F0o, SHA384_F1o, b, c, d, e, f, g, h, a, wf_t, k_sha384[i + 15]); \ } ROUND_STEP_S (0); @@ -137,7 +192,6 @@ DECLSPEC void sha384_transform (const u32 *w0, const u32 *w1, const u32 *w2, con digest[7] += h; } -DECLSPEC void sha384_init (sha384_ctx_t *ctx); DECLSPEC void sha384_init (sha384_ctx_t *ctx) { ctx->h[0] = SHA384M_A; @@ -185,7 +239,6 @@ DECLSPEC void sha384_init (sha384_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void sha384_update_128 (sha384_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len); DECLSPEC void sha384_update_128 (sha384_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len) { const int pos = ctx->len & 127; @@ -312,7 +365,6 @@ DECLSPEC void sha384_update_128 (sha384_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u } } -DECLSPEC void sha384_update (sha384_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_update (sha384_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -401,7 +453,6 @@ DECLSPEC void sha384_update (sha384_ctx_t *ctx, const u32 *w, const int len) sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha384_update_swap (sha384_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_update_swap (sha384_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -556,7 +607,6 @@ DECLSPEC void sha384_update_swap (sha384_ctx_t *ctx, const u32 *w, const int len sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha384_update_utf16le (sha384_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_update_utf16le (sha384_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -623,7 +673,6 @@ DECLSPEC void sha384_update_utf16le (sha384_ctx_t *ctx, const u32 *w, const int sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_update_utf16le_swap (sha384_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_update_utf16le_swap (sha384_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -756,7 +805,6 @@ DECLSPEC void sha384_update_utf16le_swap (sha384_ctx_t *ctx, const u32 *w, const sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_update_global (sha384_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_update_global (sha384_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -845,7 +893,6 @@ DECLSPEC void sha384_update_global (sha384_ctx_t *ctx, const __global u32 *w, co sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha384_update_global_swap (sha384_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_update_global_swap (sha384_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1000,7 +1047,6 @@ DECLSPEC void sha384_update_global_swap (sha384_ctx_t *ctx, const __global u32 * sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha384_update_global_utf16le (sha384_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_update_global_utf16le (sha384_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1067,7 +1113,6 @@ DECLSPEC void sha384_update_global_utf16le (sha384_ctx_t *ctx, const __global u3 sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_update_global_utf16le_swap (sha384_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_update_global_utf16le_swap (sha384_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1200,7 +1245,6 @@ DECLSPEC void sha384_update_global_utf16le_swap (sha384_ctx_t *ctx, const __glob sha384_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_final (sha384_ctx_t *ctx); DECLSPEC void sha384_final (sha384_ctx_t *ctx) { const int pos = ctx->len & 127; @@ -1260,7 +1304,6 @@ typedef struct sha384_hmac_ctx } sha384_hmac_ctx_t; -DECLSPEC void sha384_hmac_init_128 (sha384_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7); DECLSPEC void sha384_hmac_init_128 (sha384_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7) { u32 t0[4]; @@ -1351,7 +1394,6 @@ DECLSPEC void sha384_hmac_init_128 (sha384_hmac_ctx_t *ctx, const u32 *w0, const sha384_update_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); } -DECLSPEC void sha384_hmac_init (sha384_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_hmac_init (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1445,7 +1487,6 @@ DECLSPEC void sha384_hmac_init (sha384_hmac_ctx_t *ctx, const u32 *w, const int sha384_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha384_hmac_init_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_hmac_init_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1539,7 +1580,6 @@ DECLSPEC void sha384_hmac_init_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const sha384_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha384_hmac_init_global (sha384_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha384_hmac_init_global (sha384_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1633,7 +1673,6 @@ DECLSPEC void sha384_hmac_init_global (sha384_hmac_ctx_t *ctx, __global const u3 sha384_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha384_hmac_init_global_swap (sha384_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha384_hmac_init_global_swap (sha384_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1727,61 +1766,51 @@ DECLSPEC void sha384_hmac_init_global_swap (sha384_hmac_ctx_t *ctx, __global con sha384_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha384_hmac_update_128 (sha384_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len); DECLSPEC void sha384_hmac_update_128 (sha384_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len) { sha384_update_128 (&ctx->ipad, w0, w1, w2, w3, w4, w5, w6, w7, len); } -DECLSPEC void sha384_hmac_update (sha384_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_hmac_update (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) { sha384_update (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_hmac_update_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) { sha384_update_swap (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_utf16le (sha384_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_hmac_update_utf16le (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) { sha384_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_utf16le_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha384_hmac_update_utf16le_swap (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) { sha384_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_global (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_hmac_update_global (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha384_update_global (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_global_swap (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_hmac_update_global_swap (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha384_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_global_utf16le (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_hmac_update_global_utf16le (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha384_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_update_global_utf16le_swap (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha384_hmac_update_global_utf16le_swap (sha384_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha384_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_final (sha384_hmac_ctx_t *ctx); DECLSPEC void sha384_hmac_final (sha384_hmac_ctx_t *ctx) { sha384_final (&ctx->ipad); @@ -1852,7 +1881,6 @@ typedef struct sha384_ctx_vector } sha384_ctx_vector_t; -DECLSPEC void sha384_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest); DECLSPEC void sha384_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) { u64x a = digest[0]; @@ -1883,42 +1911,42 @@ DECLSPEC void sha384_transform_vector (const u32x *w0, const u32x *w1, const u32 #define ROUND_EXPAND() \ { \ - w0_t = SHA512_EXPAND (we_t, w9_t, w1_t, w0_t); \ - w1_t = SHA512_EXPAND (wf_t, wa_t, w2_t, w1_t); \ - w2_t = SHA512_EXPAND (w0_t, wb_t, w3_t, w2_t); \ - w3_t = SHA512_EXPAND (w1_t, wc_t, w4_t, w3_t); \ - w4_t = SHA512_EXPAND (w2_t, wd_t, w5_t, w4_t); \ - w5_t = SHA512_EXPAND (w3_t, we_t, w6_t, w5_t); \ - w6_t = SHA512_EXPAND (w4_t, wf_t, w7_t, w6_t); \ - w7_t = SHA512_EXPAND (w5_t, w0_t, w8_t, w7_t); \ - w8_t = SHA512_EXPAND (w6_t, w1_t, w9_t, w8_t); \ - w9_t = SHA512_EXPAND (w7_t, w2_t, wa_t, w9_t); \ - wa_t = SHA512_EXPAND (w8_t, w3_t, wb_t, wa_t); \ - wb_t = SHA512_EXPAND (w9_t, w4_t, wc_t, wb_t); \ - wc_t = SHA512_EXPAND (wa_t, w5_t, wd_t, wc_t); \ - wd_t = SHA512_EXPAND (wb_t, w6_t, we_t, wd_t); \ - we_t = SHA512_EXPAND (wc_t, w7_t, wf_t, we_t); \ - wf_t = SHA512_EXPAND (wd_t, w8_t, w0_t, wf_t); \ + w0_t = SHA384_EXPAND (we_t, w9_t, w1_t, w0_t); \ + w1_t = SHA384_EXPAND (wf_t, wa_t, w2_t, w1_t); \ + w2_t = SHA384_EXPAND (w0_t, wb_t, w3_t, w2_t); \ + w3_t = SHA384_EXPAND (w1_t, wc_t, w4_t, w3_t); \ + w4_t = SHA384_EXPAND (w2_t, wd_t, w5_t, w4_t); \ + w5_t = SHA384_EXPAND (w3_t, we_t, w6_t, w5_t); \ + w6_t = SHA384_EXPAND (w4_t, wf_t, w7_t, w6_t); \ + w7_t = SHA384_EXPAND (w5_t, w0_t, w8_t, w7_t); \ + w8_t = SHA384_EXPAND (w6_t, w1_t, w9_t, w8_t); \ + w9_t = SHA384_EXPAND (w7_t, w2_t, wa_t, w9_t); \ + wa_t = SHA384_EXPAND (w8_t, w3_t, wb_t, wa_t); \ + wb_t = SHA384_EXPAND (w9_t, w4_t, wc_t, wb_t); \ + wc_t = SHA384_EXPAND (wa_t, w5_t, wd_t, wc_t); \ + wd_t = SHA384_EXPAND (wb_t, w6_t, we_t, wd_t); \ + we_t = SHA384_EXPAND (wc_t, w7_t, wf_t, we_t); \ + wf_t = SHA384_EXPAND (wd_t, w8_t, w0_t, wf_t); \ } #define ROUND_STEP(i) \ { \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, a, b, c, d, e, f, g, h, w0_t, k_sha384[i + 0]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, h, a, b, c, d, e, f, g, w1_t, k_sha384[i + 1]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, g, h, a, b, c, d, e, f, w2_t, k_sha384[i + 2]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, f, g, h, a, b, c, d, e, w3_t, k_sha384[i + 3]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, e, f, g, h, a, b, c, d, w4_t, k_sha384[i + 4]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, d, e, f, g, h, a, b, c, w5_t, k_sha384[i + 5]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, c, d, e, f, g, h, a, b, w6_t, k_sha384[i + 6]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, b, c, d, e, f, g, h, a, w7_t, k_sha384[i + 7]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, a, b, c, d, e, f, g, h, w8_t, k_sha384[i + 8]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, h, a, b, c, d, e, f, g, w9_t, k_sha384[i + 9]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, g, h, a, b, c, d, e, f, wa_t, k_sha384[i + 10]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, f, g, h, a, b, c, d, e, wb_t, k_sha384[i + 11]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, e, f, g, h, a, b, c, d, wc_t, k_sha384[i + 12]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, d, e, f, g, h, a, b, c, wd_t, k_sha384[i + 13]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, c, d, e, f, g, h, a, b, we_t, k_sha384[i + 14]); \ - SHA512_STEP (SHA512_F0o, SHA512_F1o, b, c, d, e, f, g, h, a, wf_t, k_sha384[i + 15]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, a, b, c, d, e, f, g, h, w0_t, k_sha384[i + 0]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, h, a, b, c, d, e, f, g, w1_t, k_sha384[i + 1]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, g, h, a, b, c, d, e, f, w2_t, k_sha384[i + 2]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, f, g, h, a, b, c, d, e, w3_t, k_sha384[i + 3]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, e, f, g, h, a, b, c, d, w4_t, k_sha384[i + 4]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, d, e, f, g, h, a, b, c, w5_t, k_sha384[i + 5]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, c, d, e, f, g, h, a, b, w6_t, k_sha384[i + 6]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, b, c, d, e, f, g, h, a, w7_t, k_sha384[i + 7]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, a, b, c, d, e, f, g, h, w8_t, k_sha384[i + 8]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, h, a, b, c, d, e, f, g, w9_t, k_sha384[i + 9]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, g, h, a, b, c, d, e, f, wa_t, k_sha384[i + 10]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, f, g, h, a, b, c, d, e, wb_t, k_sha384[i + 11]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, e, f, g, h, a, b, c, d, wc_t, k_sha384[i + 12]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, d, e, f, g, h, a, b, c, wd_t, k_sha384[i + 13]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, c, d, e, f, g, h, a, b, we_t, k_sha384[i + 14]); \ + SHA384_STEP (SHA384_F0o, SHA384_F1o, b, c, d, e, f, g, h, a, wf_t, k_sha384[i + 15]); \ } ROUND_STEP (0); @@ -1944,7 +1972,6 @@ DECLSPEC void sha384_transform_vector (const u32x *w0, const u32x *w1, const u32 digest[7] += h; } -DECLSPEC void sha384_init_vector (sha384_ctx_vector_t *ctx); DECLSPEC void sha384_init_vector (sha384_ctx_vector_t *ctx) { ctx->h[0] = SHA384M_A; @@ -1992,7 +2019,6 @@ DECLSPEC void sha384_init_vector (sha384_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void sha384_init_vector_from_scalar (sha384_ctx_vector_t *ctx, sha384_ctx_t *ctx0); DECLSPEC void sha384_init_vector_from_scalar (sha384_ctx_vector_t *ctx, sha384_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -2040,7 +2066,6 @@ DECLSPEC void sha384_init_vector_from_scalar (sha384_ctx_vector_t *ctx, sha384_c ctx->len = ctx0->len; } -DECLSPEC void sha384_update_vector_128 (sha384_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len); DECLSPEC void sha384_update_vector_128 (sha384_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len) { const int pos = ctx->len & 127; @@ -2167,7 +2192,6 @@ DECLSPEC void sha384_update_vector_128 (sha384_ctx_vector_t *ctx, u32x *w0, u32x } } -DECLSPEC void sha384_update_vector (sha384_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_update_vector (sha384_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2256,7 +2280,6 @@ DECLSPEC void sha384_update_vector (sha384_ctx_vector_t *ctx, const u32x *w, con sha384_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha384_update_vector_swap (sha384_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_update_vector_swap (sha384_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2411,7 +2434,6 @@ DECLSPEC void sha384_update_vector_swap (sha384_ctx_vector_t *ctx, const u32x *w sha384_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha384_update_vector_utf16le (sha384_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_update_vector_utf16le (sha384_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2478,7 +2500,6 @@ DECLSPEC void sha384_update_vector_utf16le (sha384_ctx_vector_t *ctx, const u32x sha384_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_update_vector_utf16le_swap (sha384_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_update_vector_utf16le_swap (sha384_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2611,7 +2632,6 @@ DECLSPEC void sha384_update_vector_utf16le_swap (sha384_ctx_vector_t *ctx, const sha384_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_update_vector_utf16beN (sha384_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_update_vector_utf16beN (sha384_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2678,7 +2698,6 @@ DECLSPEC void sha384_update_vector_utf16beN (sha384_ctx_vector_t *ctx, const u32 sha384_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha384_final_vector (sha384_ctx_vector_t *ctx); DECLSPEC void sha384_final_vector (sha384_ctx_vector_t *ctx) { const int pos = ctx->len & 127; @@ -2738,7 +2757,6 @@ typedef struct sha384_hmac_ctx_vector } sha384_hmac_ctx_vector_t; -DECLSPEC void sha384_hmac_init_vector_128 (sha384_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7); DECLSPEC void sha384_hmac_init_vector_128 (sha384_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7) { u32x t0[4]; @@ -2829,7 +2847,6 @@ DECLSPEC void sha384_hmac_init_vector_128 (sha384_hmac_ctx_vector_t *ctx, const sha384_update_vector_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); } -DECLSPEC void sha384_hmac_init_vector (sha384_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_hmac_init_vector (sha384_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2923,19 +2940,16 @@ DECLSPEC void sha384_hmac_init_vector (sha384_hmac_ctx_vector_t *ctx, const u32x sha384_hmac_init_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha384_hmac_update_vector_128 (sha384_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len); DECLSPEC void sha384_hmac_update_vector_128 (sha384_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len) { sha384_update_vector_128 (&ctx->ipad, w0, w1, w2, w3, w4, w5, w6, w7, len); } -DECLSPEC void sha384_hmac_update_vector (sha384_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha384_hmac_update_vector (sha384_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { sha384_update_vector (&ctx->ipad, w, len); } -DECLSPEC void sha384_hmac_final_vector (sha384_hmac_ctx_vector_t *ctx); DECLSPEC void sha384_hmac_final_vector (sha384_hmac_ctx_vector_t *ctx) { sha384_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_sha512.cl b/OpenCL/inc_hash_sha512.cl index 6adb062b2..df8675355 100644 --- a/OpenCL/inc_hash_sha512.cl +++ b/OpenCL/inc_hash_sha512.cl @@ -4,6 +4,62 @@ // input buf needs to be in algorithm native byte order (md5 = LE, sha1 = BE, etc) // input buf needs to be 128 byte aligned when using sha512_update() +#define SHIFT_RIGHT_64(x,n) ((x) >> (n)) + +#define SHA512_S0_S(x) (rotr64_S ((x), 28) ^ rotr64_S ((x), 34) ^ rotr64_S ((x), 39)) +#define SHA512_S1_S(x) (rotr64_S ((x), 14) ^ rotr64_S ((x), 18) ^ rotr64_S ((x), 41)) +#define SHA512_S2_S(x) (rotr64_S ((x), 1) ^ rotr64_S ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) +#define SHA512_S3_S(x) (rotr64_S ((x), 19) ^ rotr64_S ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) + +#define SHA512_S0(x) (rotr64 ((x), 28) ^ rotr64 ((x), 34) ^ rotr64 ((x), 39)) +#define SHA512_S1(x) (rotr64 ((x), 14) ^ rotr64 ((x), 18) ^ rotr64 ((x), 41)) +#define SHA512_S2(x) (rotr64 ((x), 1) ^ rotr64 ((x), 8) ^ SHIFT_RIGHT_64 ((x), 7)) +#define SHA512_S3(x) (rotr64 ((x), 19) ^ rotr64 ((x), 61) ^ SHIFT_RIGHT_64 ((x), 6)) + +#define SHA512_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA512_F1(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) + +#ifdef IS_NV +#define SHA512_F0o(x,y,z) (bitselect ((z), (y), (x))) +#define SHA512_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_AMD +#define SHA512_F0o(x,y,z) (bitselect ((z), (y), (x))) +#define SHA512_F1o(x,y,z) (bitselect ((x), (y), ((x) ^ (z)))) +#endif + +#ifdef IS_GENERIC +#define SHA512_F0o(x,y,z) (SHA512_F0 ((x), (y), (z))) +#define SHA512_F1o(x,y,z) (SHA512_F1 ((x), (y), (z))) +#endif + +#define SHA512_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h += K; \ + h += x; \ + h += SHA512_S1_S (e); \ + h += F0 (e, f, g); \ + d += h; \ + h += SHA512_S0_S (a); \ + h += F1 (a, b, c); \ +} + +#define SHA512_EXPAND_S(x,y,z,w) (SHA512_S3_S (x) + y + SHA512_S2_S (z) + w) + +#define SHA512_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h += K; \ + h += x; \ + h += SHA512_S1 (e); \ + h += F0 (e, f, g); \ + d += h; \ + h += SHA512_S0 (a); \ + h += F1 (a, b, c); \ +} + +#define SHA512_EXPAND(x,y,z,w) (SHA512_S3 (x) + y + SHA512_S2 (z) + w) + __constant u64a k_sha512[80] = { SHA512C00, SHA512C01, SHA512C02, SHA512C03, @@ -45,7 +101,6 @@ typedef struct sha512_ctx } sha512_ctx_t; -DECLSPEC void sha512_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7, u64 *digest); DECLSPEC void sha512_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7, u64 *digest) { u64 a = digest[0]; @@ -137,7 +192,6 @@ DECLSPEC void sha512_transform (const u32 *w0, const u32 *w1, const u32 *w2, con digest[7] += h; } -DECLSPEC void sha512_init (sha512_ctx_t *ctx); DECLSPEC void sha512_init (sha512_ctx_t *ctx) { ctx->h[0] = SHA512M_A; @@ -185,7 +239,6 @@ DECLSPEC void sha512_init (sha512_ctx_t *ctx) ctx->len = 0; } -DECLSPEC void sha512_update_128 (sha512_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len); DECLSPEC void sha512_update_128 (sha512_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len) { const int pos = ctx->len & 127; @@ -312,7 +365,6 @@ DECLSPEC void sha512_update_128 (sha512_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u } } -DECLSPEC void sha512_update (sha512_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_update (sha512_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -401,7 +453,6 @@ DECLSPEC void sha512_update (sha512_ctx_t *ctx, const u32 *w, const int len) sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha512_update_swap (sha512_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_update_swap (sha512_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -556,7 +607,6 @@ DECLSPEC void sha512_update_swap (sha512_ctx_t *ctx, const u32 *w, const int len sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha512_update_utf16le (sha512_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_update_utf16le (sha512_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -623,7 +673,6 @@ DECLSPEC void sha512_update_utf16le (sha512_ctx_t *ctx, const u32 *w, const int sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_update_utf16le_swap (sha512_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_update_utf16le_swap (sha512_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -756,7 +805,6 @@ DECLSPEC void sha512_update_utf16le_swap (sha512_ctx_t *ctx, const u32 *w, const sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_update_global (sha512_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_update_global (sha512_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -845,7 +893,6 @@ DECLSPEC void sha512_update_global (sha512_ctx_t *ctx, const __global u32 *w, co sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha512_update_global_swap (sha512_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_update_global_swap (sha512_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1000,7 +1047,6 @@ DECLSPEC void sha512_update_global_swap (sha512_ctx_t *ctx, const __global u32 * sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha512_update_global_utf16le (sha512_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_update_global_utf16le (sha512_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1067,7 +1113,6 @@ DECLSPEC void sha512_update_global_utf16le (sha512_ctx_t *ctx, const __global u3 sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_update_global_utf16le_swap (sha512_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_update_global_utf16le_swap (sha512_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1200,7 +1245,6 @@ DECLSPEC void sha512_update_global_utf16le_swap (sha512_ctx_t *ctx, const __glob sha512_update_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_final (sha512_ctx_t *ctx); DECLSPEC void sha512_final (sha512_ctx_t *ctx) { const int pos = ctx->len & 127; @@ -1260,7 +1304,6 @@ typedef struct sha512_hmac_ctx } sha512_hmac_ctx_t; -DECLSPEC void sha512_hmac_init_128 (sha512_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7); DECLSPEC void sha512_hmac_init_128 (sha512_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7) { u32 t0[4]; @@ -1351,7 +1394,6 @@ DECLSPEC void sha512_hmac_init_128 (sha512_hmac_ctx_t *ctx, const u32 *w0, const sha512_update_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); } -DECLSPEC void sha512_hmac_init (sha512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_hmac_init (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1445,7 +1487,6 @@ DECLSPEC void sha512_hmac_init (sha512_hmac_ctx_t *ctx, const u32 *w, const int sha512_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha512_hmac_init_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_hmac_init_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1539,7 +1580,6 @@ DECLSPEC void sha512_hmac_init_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const sha512_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha512_hmac_init_global (sha512_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha512_hmac_init_global (sha512_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1633,7 +1673,6 @@ DECLSPEC void sha512_hmac_init_global (sha512_hmac_ctx_t *ctx, __global const u3 sha512_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha512_hmac_init_global_swap (sha512_hmac_ctx_t *ctx, __global const u32 *w, const int len); DECLSPEC void sha512_hmac_init_global_swap (sha512_hmac_ctx_t *ctx, __global const u32 *w, const int len) { u32 w0[4]; @@ -1727,61 +1766,51 @@ DECLSPEC void sha512_hmac_init_global_swap (sha512_hmac_ctx_t *ctx, __global con sha512_hmac_init_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha512_hmac_update_128 (sha512_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len); DECLSPEC void sha512_hmac_update_128 (sha512_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, u32 *w4, u32 *w5, u32 *w6, u32 *w7, const int len) { sha512_update_128 (&ctx->ipad, w0, w1, w2, w3, w4, w5, w6, w7, len); } -DECLSPEC void sha512_hmac_update (sha512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_hmac_update (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) { sha512_update (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_hmac_update_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) { sha512_update_swap (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_utf16le (sha512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_hmac_update_utf16le (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) { sha512_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_utf16le_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void sha512_hmac_update_utf16le_swap (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) { sha512_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_global (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_hmac_update_global (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha512_update_global (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_global_swap (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_hmac_update_global_swap (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha512_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_global_utf16le (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_hmac_update_global_utf16le (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha512_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_update_global_utf16le_swap (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void sha512_hmac_update_global_utf16le_swap (sha512_hmac_ctx_t *ctx, const __global u32 *w, const int len) { sha512_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_final (sha512_hmac_ctx_t *ctx); DECLSPEC void sha512_hmac_final (sha512_hmac_ctx_t *ctx) { sha512_final (&ctx->ipad); @@ -1852,7 +1881,6 @@ typedef struct sha512_ctx_vector } sha512_ctx_vector_t; -DECLSPEC void sha512_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest); DECLSPEC void sha512_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) { u64x a = digest[0]; @@ -1944,7 +1972,6 @@ DECLSPEC void sha512_transform_vector (const u32x *w0, const u32x *w1, const u32 digest[7] += h; } -DECLSPEC void sha512_init_vector (sha512_ctx_vector_t *ctx); DECLSPEC void sha512_init_vector (sha512_ctx_vector_t *ctx) { ctx->h[0] = SHA512M_A; @@ -1992,7 +2019,6 @@ DECLSPEC void sha512_init_vector (sha512_ctx_vector_t *ctx) ctx->len = 0; } -DECLSPEC void sha512_init_vector_from_scalar (sha512_ctx_vector_t *ctx, sha512_ctx_t *ctx0); DECLSPEC void sha512_init_vector_from_scalar (sha512_ctx_vector_t *ctx, sha512_ctx_t *ctx0) { ctx->h[0] = ctx0->h[0]; @@ -2040,7 +2066,6 @@ DECLSPEC void sha512_init_vector_from_scalar (sha512_ctx_vector_t *ctx, sha512_c ctx->len = ctx0->len; } -DECLSPEC void sha512_update_vector_128 (sha512_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len); DECLSPEC void sha512_update_vector_128 (sha512_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len) { const int pos = ctx->len & 127; @@ -2167,7 +2192,6 @@ DECLSPEC void sha512_update_vector_128 (sha512_ctx_vector_t *ctx, u32x *w0, u32x } } -DECLSPEC void sha512_update_vector (sha512_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_update_vector (sha512_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2256,7 +2280,6 @@ DECLSPEC void sha512_update_vector (sha512_ctx_vector_t *ctx, const u32x *w, con sha512_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha512_update_vector_swap (sha512_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_update_vector_swap (sha512_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2411,7 +2434,6 @@ DECLSPEC void sha512_update_vector_swap (sha512_ctx_vector_t *ctx, const u32x *w sha512_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, len - pos1); } -DECLSPEC void sha512_update_vector_utf16le (sha512_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_update_vector_utf16le (sha512_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2478,7 +2500,6 @@ DECLSPEC void sha512_update_vector_utf16le (sha512_ctx_vector_t *ctx, const u32x sha512_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_update_vector_utf16le_swap (sha512_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_update_vector_utf16le_swap (sha512_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2611,7 +2632,6 @@ DECLSPEC void sha512_update_vector_utf16le_swap (sha512_ctx_vector_t *ctx, const sha512_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_update_vector_utf16beN (sha512_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_update_vector_utf16beN (sha512_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2678,7 +2698,6 @@ DECLSPEC void sha512_update_vector_utf16beN (sha512_ctx_vector_t *ctx, const u32 sha512_update_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7, (len - pos1) * 2); } -DECLSPEC void sha512_final_vector (sha512_ctx_vector_t *ctx); DECLSPEC void sha512_final_vector (sha512_ctx_vector_t *ctx) { const int pos = ctx->len & 127; @@ -2738,7 +2757,6 @@ typedef struct sha512_hmac_ctx_vector } sha512_hmac_ctx_vector_t; -DECLSPEC void sha512_hmac_init_vector_128 (sha512_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7); DECLSPEC void sha512_hmac_init_vector_128 (sha512_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7) { u32x t0[4]; @@ -2829,7 +2847,6 @@ DECLSPEC void sha512_hmac_init_vector_128 (sha512_hmac_ctx_vector_t *ctx, const sha512_update_vector_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); } -DECLSPEC void sha512_hmac_init_vector (sha512_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_hmac_init_vector (sha512_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2923,19 +2940,16 @@ DECLSPEC void sha512_hmac_init_vector (sha512_hmac_ctx_vector_t *ctx, const u32x sha512_hmac_init_vector_128 (ctx, w0, w1, w2, w3, w4, w5, w6, w7); } -DECLSPEC void sha512_hmac_update_vector_128 (sha512_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len); DECLSPEC void sha512_hmac_update_vector_128 (sha512_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, u32x *w4, u32x *w5, u32x *w6, u32x *w7, const int len) { sha512_update_vector_128 (&ctx->ipad, w0, w1, w2, w3, w4, w5, w6, w7, len); } -DECLSPEC void sha512_hmac_update_vector (sha512_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void sha512_hmac_update_vector (sha512_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { sha512_update_vector (&ctx->ipad, w, len); } -DECLSPEC void sha512_hmac_final_vector (sha512_hmac_ctx_vector_t *ctx); DECLSPEC void sha512_hmac_final_vector (sha512_hmac_ctx_vector_t *ctx) { sha512_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_streebog256.cl b/OpenCL/inc_hash_streebog256.cl index 69196eba1..f58be0b09 100644 --- a/OpenCL/inc_hash_streebog256.cl +++ b/OpenCL/inc_hash_streebog256.cl @@ -634,7 +634,6 @@ typedef struct streebog256_ctx } streebog256_ctx_t; -DECLSPEC void streebog256_init (streebog256_ctx_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_init (streebog256_ctx_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]) { ctx->h[0] = 0x0101010101010101; @@ -689,7 +688,6 @@ DECLSPEC void streebog256_init (streebog256_ctx_t *ctx, SHM_TYPE u64a (*s_sbob_s ctx->s_sbob_sl64 = s_sbob_sl64; } -DECLSPEC void streebog256_add (u64 *x, const u64 *y); DECLSPEC void streebog256_add (u64 *x, const u64 *y) { u64 carry = 0; @@ -709,7 +707,6 @@ DECLSPEC void streebog256_add (u64 *x, const u64 *y) } } -DECLSPEC void streebog256_g (u64 *h, const u64 *n, const u64 *m, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_g (u64 *h, const u64 *n, const u64 *m, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u64 k[8]; @@ -778,7 +775,6 @@ DECLSPEC void streebog256_g (u64 *h, const u64 *n, const u64 *m, SHM_TYPE u64a ( } } -DECLSPEC void streebog256_transform (streebog256_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void streebog256_transform (streebog256_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u64 m[8]; @@ -801,7 +797,6 @@ DECLSPEC void streebog256_transform (streebog256_ctx_t *ctx, const u32 *w0, cons streebog256_add (ctx->s, m); } -DECLSPEC void streebog256_update_64 (streebog256_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void streebog256_update_64 (streebog256_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len; @@ -878,7 +873,6 @@ DECLSPEC void streebog256_update_64 (streebog256_ctx_t *ctx, u32 *w0, u32 *w1, u } } -DECLSPEC void streebog256_update (streebog256_ctx_t *ctx, const u32 *w, int len); DECLSPEC void streebog256_update (streebog256_ctx_t *ctx, const u32 *w, int len) { u32 w0[4]; @@ -936,7 +930,6 @@ DECLSPEC void streebog256_update (streebog256_ctx_t *ctx, const u32 *w, int len) } } -DECLSPEC void streebog256_update_swap (streebog256_ctx_t *ctx, const u32 *w, int len); DECLSPEC void streebog256_update_swap (streebog256_ctx_t *ctx, const u32 *w, int len) { u32 w0[4]; @@ -994,7 +987,6 @@ DECLSPEC void streebog256_update_swap (streebog256_ctx_t *ctx, const u32 *w, int } } -DECLSPEC void streebog256_update_global_swap (streebog256_ctx_t *ctx, const __global u32 *w, int len); DECLSPEC void streebog256_update_global_swap (streebog256_ctx_t *ctx, const __global u32 *w, int len) { u32 w0[4]; @@ -1052,7 +1044,6 @@ DECLSPEC void streebog256_update_global_swap (streebog256_ctx_t *ctx, const __gl } } -DECLSPEC void streebog256_final (streebog256_ctx_t *ctx); DECLSPEC void streebog256_final (streebog256_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -1093,7 +1084,6 @@ typedef struct streebog256_hmac_ctx } streebog256_hmac_ctx_t; -DECLSPEC void streebog256_hmac_init_64 (streebog256_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_hmac_init_64 (streebog256_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32 t0[4]; @@ -1148,7 +1138,6 @@ DECLSPEC void streebog256_hmac_init_64 (streebog256_hmac_ctx_t *ctx, const u32 * streebog256_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void streebog256_hmac_init (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_hmac_init (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32 w0[4]; @@ -1206,7 +1195,6 @@ DECLSPEC void streebog256_hmac_init (streebog256_hmac_ctx_t *ctx, const u32 *w, streebog256_hmac_init_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog256_hmac_init_swap (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_hmac_init_swap (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32 w0[4]; @@ -1264,31 +1252,26 @@ DECLSPEC void streebog256_hmac_init_swap (streebog256_hmac_ctx_t *ctx, const u32 streebog256_hmac_init_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog256_hmac_update_64 (streebog256_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void streebog256_hmac_update_64 (streebog256_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { streebog256_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void streebog256_hmac_update (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void streebog256_hmac_update (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len) { streebog256_update (&ctx->ipad, w, len); } -DECLSPEC void streebog256_hmac_update_swap (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void streebog256_hmac_update_swap (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len) { streebog256_update_swap (&ctx->ipad, w, len); } -DECLSPEC void streebog256_hmac_update_global_swap (streebog256_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void streebog256_hmac_update_global_swap (streebog256_hmac_ctx_t *ctx, const __global u32 *w, const int len) { streebog256_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void streebog256_hmac_final (streebog256_hmac_ctx_t *ctx); DECLSPEC void streebog256_hmac_final (streebog256_hmac_ctx_t *ctx) { streebog256_final (&ctx->ipad); @@ -1339,7 +1322,6 @@ typedef struct streebog256_ctx_vector } streebog256_ctx_vector_t; -DECLSPEC void streebog256_init_vector (streebog256_ctx_vector_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_init_vector (streebog256_ctx_vector_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]) { ctx->h[0] = 0x0101010101010101; @@ -1394,7 +1376,6 @@ DECLSPEC void streebog256_init_vector (streebog256_ctx_vector_t *ctx, SHM_TYPE u ctx->s_sbob_sl64 = s_sbob_sl64; } -DECLSPEC void streebog256_add_vector (u64x *x, const u64x *y); DECLSPEC void streebog256_add_vector (u64x *x, const u64x *y) { u64x carry = 0; @@ -1414,7 +1395,6 @@ DECLSPEC void streebog256_add_vector (u64x *x, const u64x *y) } } -DECLSPEC void streebog256_g_vector (u64x *h, const u64x *n, const u64x *m, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_g_vector (u64x *h, const u64x *n, const u64x *m, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u64x k[8]; @@ -1483,7 +1463,6 @@ DECLSPEC void streebog256_g_vector (u64x *h, const u64x *n, const u64x *m, SHM_T } } -DECLSPEC void streebog256_transform_vector (streebog256_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void streebog256_transform_vector (streebog256_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u64x m[8]; @@ -1506,7 +1485,6 @@ DECLSPEC void streebog256_transform_vector (streebog256_ctx_vector_t *ctx, const streebog256_add_vector (ctx->s, m); } -DECLSPEC void streebog256_update_vector_64 (streebog256_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void streebog256_update_vector_64 (streebog256_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len; @@ -1583,7 +1561,6 @@ DECLSPEC void streebog256_update_vector_64 (streebog256_ctx_vector_t *ctx, u32x } } -DECLSPEC void streebog256_update_vector (streebog256_ctx_vector_t *ctx, const u32x *w, int len); DECLSPEC void streebog256_update_vector (streebog256_ctx_vector_t *ctx, const u32x *w, int len) { u32x w0[4]; @@ -1641,7 +1618,6 @@ DECLSPEC void streebog256_update_vector (streebog256_ctx_vector_t *ctx, const u3 } } -DECLSPEC void streebog256_update_vector_swap (streebog256_ctx_vector_t *ctx, const u32x *w, int len); DECLSPEC void streebog256_update_vector_swap (streebog256_ctx_vector_t *ctx, const u32x *w, int len) { u32x w0[4]; @@ -1699,7 +1675,6 @@ DECLSPEC void streebog256_update_vector_swap (streebog256_ctx_vector_t *ctx, con } } -DECLSPEC void streebog256_final_vector (streebog256_ctx_vector_t *ctx); DECLSPEC void streebog256_final_vector (streebog256_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1740,7 +1715,6 @@ typedef struct streebog256_hmac_ctx_vector } streebog256_hmac_ctx_vector_t; -DECLSPEC void streebog256_hmac_init_vector_64 (streebog256_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_hmac_init_vector_64 (streebog256_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32x t0[4]; @@ -1795,7 +1769,6 @@ DECLSPEC void streebog256_hmac_init_vector_64 (streebog256_hmac_ctx_vector_t *ct streebog256_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void streebog256_hmac_init_vector (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_hmac_init_vector (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32x w0[4]; @@ -1853,7 +1826,6 @@ DECLSPEC void streebog256_hmac_init_vector (streebog256_hmac_ctx_vector_t *ctx, streebog256_hmac_init_vector_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog256_hmac_init_vector_swap (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog256_hmac_init_vector_swap (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32x w0[4]; @@ -1911,19 +1883,16 @@ DECLSPEC void streebog256_hmac_init_vector_swap (streebog256_hmac_ctx_vector_t * streebog256_hmac_init_vector_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog256_hmac_update_vector (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void streebog256_hmac_update_vector (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { streebog256_update_vector (&ctx->ipad, w, len); } -DECLSPEC void streebog256_hmac_update_vector_swap (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void streebog256_hmac_update_vector_swap (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { streebog256_update_vector_swap (&ctx->ipad, w, len); } -DECLSPEC void streebog256_hmac_final_vector (streebog256_hmac_ctx_vector_t *ctx); DECLSPEC void streebog256_hmac_final_vector (streebog256_hmac_ctx_vector_t *ctx) { streebog256_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_streebog512.cl b/OpenCL/inc_hash_streebog512.cl index b4ef00eaf..940706d0e 100644 --- a/OpenCL/inc_hash_streebog512.cl +++ b/OpenCL/inc_hash_streebog512.cl @@ -634,7 +634,6 @@ typedef struct streebog512_ctx } streebog512_ctx_t; -DECLSPEC void streebog512_init (streebog512_ctx_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_init (streebog512_ctx_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]) { ctx->h[0] = 0; @@ -689,7 +688,6 @@ DECLSPEC void streebog512_init (streebog512_ctx_t *ctx, SHM_TYPE u64a (*s_sbob_s ctx->s_sbob_sl64 = s_sbob_sl64; } -DECLSPEC void streebog512_add (u64 *x, const u64 *y); DECLSPEC void streebog512_add (u64 *x, const u64 *y) { u64 carry = 0; @@ -709,7 +707,6 @@ DECLSPEC void streebog512_add (u64 *x, const u64 *y) } } -DECLSPEC void streebog512_g (u64 *h, const u64 *n, const u64 *m, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_g (u64 *h, const u64 *n, const u64 *m, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u64 k[8]; @@ -778,7 +775,6 @@ DECLSPEC void streebog512_g (u64 *h, const u64 *n, const u64 *m, SHM_TYPE u64a ( } } -DECLSPEC void streebog512_transform (streebog512_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3); DECLSPEC void streebog512_transform (streebog512_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { u64 m[8]; @@ -801,7 +797,6 @@ DECLSPEC void streebog512_transform (streebog512_ctx_t *ctx, const u32 *w0, cons streebog512_add (ctx->s, m); } -DECLSPEC void streebog512_update_64 (streebog512_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void streebog512_update_64 (streebog512_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len; @@ -878,7 +873,6 @@ DECLSPEC void streebog512_update_64 (streebog512_ctx_t *ctx, u32 *w0, u32 *w1, u } } -DECLSPEC void streebog512_update (streebog512_ctx_t *ctx, const u32 *w, int len); DECLSPEC void streebog512_update (streebog512_ctx_t *ctx, const u32 *w, int len) { u32 w0[4]; @@ -936,7 +930,6 @@ DECLSPEC void streebog512_update (streebog512_ctx_t *ctx, const u32 *w, int len) } } -DECLSPEC void streebog512_update_swap (streebog512_ctx_t *ctx, const u32 *w, int len); DECLSPEC void streebog512_update_swap (streebog512_ctx_t *ctx, const u32 *w, int len) { u32 w0[4]; @@ -994,7 +987,6 @@ DECLSPEC void streebog512_update_swap (streebog512_ctx_t *ctx, const u32 *w, int } } -DECLSPEC void streebog512_update_global_swap (streebog512_ctx_t *ctx, const __global u32 *w, int len); DECLSPEC void streebog512_update_global_swap (streebog512_ctx_t *ctx, const __global u32 *w, int len) { u32 w0[4]; @@ -1052,7 +1044,6 @@ DECLSPEC void streebog512_update_global_swap (streebog512_ctx_t *ctx, const __gl } } -DECLSPEC void streebog512_final (streebog512_ctx_t *ctx); DECLSPEC void streebog512_final (streebog512_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -1093,7 +1084,6 @@ typedef struct streebog512_hmac_ctx } streebog512_hmac_ctx_t; -DECLSPEC void streebog512_hmac_init_64 (streebog512_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_hmac_init_64 (streebog512_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32 t0[4]; @@ -1148,7 +1138,6 @@ DECLSPEC void streebog512_hmac_init_64 (streebog512_hmac_ctx_t *ctx, const u32 * streebog512_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void streebog512_hmac_init (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_hmac_init (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32 w0[4]; @@ -1206,7 +1195,6 @@ DECLSPEC void streebog512_hmac_init (streebog512_hmac_ctx_t *ctx, const u32 *w, streebog512_hmac_init_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog512_hmac_init_swap (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_hmac_init_swap (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32 w0[4]; @@ -1264,31 +1252,26 @@ DECLSPEC void streebog512_hmac_init_swap (streebog512_hmac_ctx_t *ctx, const u32 streebog512_hmac_init_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog512_hmac_update_64 (streebog512_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void streebog512_hmac_update_64 (streebog512_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { streebog512_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void streebog512_hmac_update (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void streebog512_hmac_update (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len) { streebog512_update (&ctx->ipad, w, len); } -DECLSPEC void streebog512_hmac_update_swap (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void streebog512_hmac_update_swap (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len) { streebog512_update_swap (&ctx->ipad, w, len); } -DECLSPEC void streebog512_hmac_update_global_swap (streebog512_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void streebog512_hmac_update_global_swap (streebog512_hmac_ctx_t *ctx, const __global u32 *w, const int len) { streebog512_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void streebog512_hmac_final (streebog512_hmac_ctx_t *ctx); DECLSPEC void streebog512_hmac_final (streebog512_hmac_ctx_t *ctx) { streebog512_final (&ctx->ipad); @@ -1339,7 +1322,6 @@ typedef struct streebog512_ctx_vector } streebog512_ctx_vector_t; -DECLSPEC void streebog512_init_vector (streebog512_ctx_vector_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_init_vector (streebog512_ctx_vector_t *ctx, SHM_TYPE u64a (*s_sbob_sl64)[256]) { ctx->h[0] = 0; @@ -1394,7 +1376,6 @@ DECLSPEC void streebog512_init_vector (streebog512_ctx_vector_t *ctx, SHM_TYPE u ctx->s_sbob_sl64 = s_sbob_sl64; } -DECLSPEC void streebog512_add_vector (u64x *x, const u64x *y); DECLSPEC void streebog512_add_vector (u64x *x, const u64x *y) { u64x carry = 0; @@ -1414,7 +1395,6 @@ DECLSPEC void streebog512_add_vector (u64x *x, const u64x *y) } } -DECLSPEC void streebog512_g_vector (u64x *h, const u64x *n, const u64x *m, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_g_vector (u64x *h, const u64x *n, const u64x *m, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u64x k[8]; @@ -1483,7 +1463,6 @@ DECLSPEC void streebog512_g_vector (u64x *h, const u64x *n, const u64x *m, SHM_T } } -DECLSPEC void streebog512_transform_vector (streebog512_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3); DECLSPEC void streebog512_transform_vector (streebog512_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { u64x m[8]; @@ -1506,7 +1485,6 @@ DECLSPEC void streebog512_transform_vector (streebog512_ctx_vector_t *ctx, const streebog512_add_vector (ctx->s, m); } -DECLSPEC void streebog512_update_vector_64 (streebog512_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void streebog512_update_vector_64 (streebog512_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len; @@ -1583,7 +1561,6 @@ DECLSPEC void streebog512_update_vector_64 (streebog512_ctx_vector_t *ctx, u32x } } -DECLSPEC void streebog512_update_vector (streebog512_ctx_vector_t *ctx, const u32x *w, int len); DECLSPEC void streebog512_update_vector (streebog512_ctx_vector_t *ctx, const u32x *w, int len) { u32x w0[4]; @@ -1641,7 +1618,6 @@ DECLSPEC void streebog512_update_vector (streebog512_ctx_vector_t *ctx, const u3 } } -DECLSPEC void streebog512_update_vector_swap (streebog512_ctx_vector_t *ctx, const u32x *w, int len); DECLSPEC void streebog512_update_vector_swap (streebog512_ctx_vector_t *ctx, const u32x *w, int len) { u32x w0[4]; @@ -1699,7 +1675,6 @@ DECLSPEC void streebog512_update_vector_swap (streebog512_ctx_vector_t *ctx, con } } -DECLSPEC void streebog512_final_vector (streebog512_ctx_vector_t *ctx); DECLSPEC void streebog512_final_vector (streebog512_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -1740,7 +1715,6 @@ typedef struct streebog512_hmac_ctx_vector } streebog512_hmac_ctx_vector_t; -DECLSPEC void streebog512_hmac_init_vector_64 (streebog512_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_hmac_init_vector_64 (streebog512_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32x t0[4]; @@ -1795,7 +1769,6 @@ DECLSPEC void streebog512_hmac_init_vector_64 (streebog512_hmac_ctx_vector_t *ct streebog512_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void streebog512_hmac_init_vector (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_hmac_init_vector (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32x w0[4]; @@ -1853,7 +1826,6 @@ DECLSPEC void streebog512_hmac_init_vector (streebog512_hmac_ctx_vector_t *ctx, streebog512_hmac_init_vector_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog512_hmac_init_vector_swap (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]); DECLSPEC void streebog512_hmac_init_vector_swap (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) { u32x w0[4]; @@ -1911,19 +1883,16 @@ DECLSPEC void streebog512_hmac_init_vector_swap (streebog512_hmac_ctx_vector_t * streebog512_hmac_init_vector_64 (ctx, w0, w1, w2, w3, s_sbob_sl64); } -DECLSPEC void streebog512_hmac_update_vector (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void streebog512_hmac_update_vector (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { streebog512_update_vector (&ctx->ipad, w, len); } -DECLSPEC void streebog512_hmac_update_vector_swap (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void streebog512_hmac_update_vector_swap (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { streebog512_update_vector_swap (&ctx->ipad, w, len); } -DECLSPEC void streebog512_hmac_final_vector (streebog512_hmac_ctx_vector_t *ctx); DECLSPEC void streebog512_hmac_final_vector (streebog512_hmac_ctx_vector_t *ctx) { streebog512_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_hash_whirlpool.cl b/OpenCL/inc_hash_whirlpool.cl index dd63df9f3..f6c59b145 100644 --- a/OpenCL/inc_hash_whirlpool.cl +++ b/OpenCL/inc_hash_whirlpool.cl @@ -1130,7 +1130,6 @@ typedef struct whirlpool_ctx } whirlpool_ctx_t; -DECLSPEC void whirlpool_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32 Kh[8]; @@ -1301,7 +1300,6 @@ DECLSPEC void whirlpool_transform (const u32 *w0, const u32 *w1, const u32 *w2, digest[15] ^= statel[7] ^ w3[3]; } -DECLSPEC void whirlpool_init (whirlpool_ctx_t *ctx, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_init (whirlpool_ctx_t *ctx, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { ctx->h[ 0] = 0; @@ -1344,7 +1342,6 @@ DECLSPEC void whirlpool_init (whirlpool_ctx_t *ctx, SHM_TYPE u32 (*s_Ch)[256], S ctx->s_Cl = s_Cl; } -DECLSPEC void whirlpool_update_64 (whirlpool_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void whirlpool_update_64 (whirlpool_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { const int pos = ctx->len & 63; @@ -1419,7 +1416,6 @@ DECLSPEC void whirlpool_update_64 (whirlpool_ctx_t *ctx, u32 *w0, u32 *w1, u32 * } } -DECLSPEC void whirlpool_update (whirlpool_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_update (whirlpool_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1472,7 +1468,6 @@ DECLSPEC void whirlpool_update (whirlpool_ctx_t *ctx, const u32 *w, const int le whirlpool_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void whirlpool_update_swap (whirlpool_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_update_swap (whirlpool_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1559,7 +1554,6 @@ DECLSPEC void whirlpool_update_swap (whirlpool_ctx_t *ctx, const u32 *w, const i whirlpool_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void whirlpool_update_utf16le (whirlpool_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_update_utf16le (whirlpool_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1602,7 +1596,6 @@ DECLSPEC void whirlpool_update_utf16le (whirlpool_ctx_t *ctx, const u32 *w, cons whirlpool_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void whirlpool_update_utf16le_swap (whirlpool_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_update_utf16le_swap (whirlpool_ctx_t *ctx, const u32 *w, const int len) { u32 w0[4]; @@ -1679,7 +1672,6 @@ DECLSPEC void whirlpool_update_utf16le_swap (whirlpool_ctx_t *ctx, const u32 *w, whirlpool_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void whirlpool_update_global (whirlpool_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_update_global (whirlpool_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1732,7 +1724,6 @@ DECLSPEC void whirlpool_update_global (whirlpool_ctx_t *ctx, const __global u32 whirlpool_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void whirlpool_update_global_swap (whirlpool_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_update_global_swap (whirlpool_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1819,7 +1810,6 @@ DECLSPEC void whirlpool_update_global_swap (whirlpool_ctx_t *ctx, const __global whirlpool_update_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void whirlpool_update_global_utf16le (whirlpool_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_update_global_utf16le (whirlpool_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1862,7 +1852,6 @@ DECLSPEC void whirlpool_update_global_utf16le (whirlpool_ctx_t *ctx, const __glo whirlpool_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void whirlpool_update_global_utf16le_swap (whirlpool_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_update_global_utf16le_swap (whirlpool_ctx_t *ctx, const __global u32 *w, const int len) { u32 w0[4]; @@ -1939,7 +1928,6 @@ DECLSPEC void whirlpool_update_global_utf16le_swap (whirlpool_ctx_t *ctx, const whirlpool_update_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void whirlpool_final (whirlpool_ctx_t *ctx); DECLSPEC void whirlpool_final (whirlpool_ctx_t *ctx) { const int pos = ctx->len & 63; @@ -1983,7 +1971,6 @@ typedef struct whirlpool_hmac_ctx } whirlpool_hmac_ctx_t; -DECLSPEC void whirlpool_hmac_init_64 (whirlpool_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init_64 (whirlpool_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32 t0[4]; @@ -2038,7 +2025,6 @@ DECLSPEC void whirlpool_hmac_init_64 (whirlpool_hmac_ctx_t *ctx, const u32 *w0, whirlpool_update_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void whirlpool_hmac_init (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32 w0[4]; @@ -2096,7 +2082,6 @@ DECLSPEC void whirlpool_hmac_init (whirlpool_hmac_ctx_t *ctx, const u32 *w, cons whirlpool_hmac_init_64 (ctx, w0, w1, w2, w3, s_Ch, s_Cl); } -DECLSPEC void whirlpool_hmac_init_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32 w0[4]; @@ -2154,7 +2139,6 @@ DECLSPEC void whirlpool_hmac_init_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, whirlpool_hmac_init_64 (ctx, w0, w1, w2, w3, s_Ch, s_Cl); } -DECLSPEC void whirlpool_hmac_init_global (whirlpool_hmac_ctx_t *ctx, __global const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init_global (whirlpool_hmac_ctx_t *ctx, __global const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32 w0[4]; @@ -2212,7 +2196,6 @@ DECLSPEC void whirlpool_hmac_init_global (whirlpool_hmac_ctx_t *ctx, __global co whirlpool_hmac_init_64 (ctx, w0, w1, w2, w3, s_Ch, s_Cl); } -DECLSPEC void whirlpool_hmac_init_global_swap (whirlpool_hmac_ctx_t *ctx, __global const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init_global_swap (whirlpool_hmac_ctx_t *ctx, __global const u32 *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32 w0[4]; @@ -2270,61 +2253,51 @@ DECLSPEC void whirlpool_hmac_init_global_swap (whirlpool_hmac_ctx_t *ctx, __glob whirlpool_hmac_init_64 (ctx, w0, w1, w2, w3, s_Ch, s_Cl); } -DECLSPEC void whirlpool_hmac_update_64 (whirlpool_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len); DECLSPEC void whirlpool_hmac_update_64 (whirlpool_hmac_ctx_t *ctx, u32 *w0, u32 *w1, u32 *w2, u32 *w3, const int len) { whirlpool_update_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void whirlpool_hmac_update (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_hmac_update (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len) { whirlpool_update (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len) { whirlpool_update_swap (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_utf16le (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_utf16le (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len) { whirlpool_update_utf16le (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_utf16le_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_utf16le_swap (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len) { whirlpool_update_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_global (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_global (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len) { whirlpool_update_global (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_global_swap (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_global_swap (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len) { whirlpool_update_global_swap (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_global_utf16le (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_global_utf16le (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len) { whirlpool_update_global_utf16le (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_update_global_utf16le_swap (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len); DECLSPEC void whirlpool_hmac_update_global_utf16le_swap (whirlpool_hmac_ctx_t *ctx, const __global u32 *w, const int len) { whirlpool_update_global_utf16le_swap (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_final (whirlpool_hmac_ctx_t *ctx); DECLSPEC void whirlpool_hmac_final (whirlpool_hmac_ctx_t *ctx) { whirlpool_final (&ctx->ipad); @@ -2374,7 +2347,6 @@ typedef struct whirlpool_ctx_vector } whirlpool_ctx_vector_t; -DECLSPEC void whirlpool_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_transform_vector (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u32x *digest, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32x Kh[8]; @@ -2545,7 +2517,6 @@ DECLSPEC void whirlpool_transform_vector (const u32x *w0, const u32x *w1, const digest[15] ^= statel[7] ^ w3[3]; } -DECLSPEC void whirlpool_init_vector (whirlpool_ctx_vector_t *ctx, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_init_vector (whirlpool_ctx_vector_t *ctx, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { ctx->h[ 0] = 0; @@ -2588,7 +2559,6 @@ DECLSPEC void whirlpool_init_vector (whirlpool_ctx_vector_t *ctx, SHM_TYPE u32 ( ctx->s_Cl = s_Cl; } -DECLSPEC void whirlpool_init_vector_from_scalar (whirlpool_ctx_vector_t *ctx, whirlpool_ctx_t *ctx0); DECLSPEC void whirlpool_init_vector_from_scalar (whirlpool_ctx_vector_t *ctx, whirlpool_ctx_t *ctx0) { ctx->h[ 0] = ctx0->h[ 0]; @@ -2631,7 +2601,6 @@ DECLSPEC void whirlpool_init_vector_from_scalar (whirlpool_ctx_vector_t *ctx, wh ctx->s_Cl = ctx0->s_Cl; } -DECLSPEC void whirlpool_update_vector_64 (whirlpool_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void whirlpool_update_vector_64 (whirlpool_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { const int pos = ctx->len & 63; @@ -2706,7 +2675,6 @@ DECLSPEC void whirlpool_update_vector_64 (whirlpool_ctx_vector_t *ctx, u32x *w0, } } -DECLSPEC void whirlpool_update_vector (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void whirlpool_update_vector (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2759,7 +2727,6 @@ DECLSPEC void whirlpool_update_vector (whirlpool_ctx_vector_t *ctx, const u32x * whirlpool_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void whirlpool_update_vector_swap (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void whirlpool_update_vector_swap (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2846,7 +2813,6 @@ DECLSPEC void whirlpool_update_vector_swap (whirlpool_ctx_vector_t *ctx, const u whirlpool_update_vector_64 (ctx, w0, w1, w2, w3, len - pos1); } -DECLSPEC void whirlpool_update_vector_utf16le (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void whirlpool_update_vector_utf16le (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2889,7 +2855,6 @@ DECLSPEC void whirlpool_update_vector_utf16le (whirlpool_ctx_vector_t *ctx, cons whirlpool_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void whirlpool_update_vector_utf16le_swap (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void whirlpool_update_vector_utf16le_swap (whirlpool_ctx_vector_t *ctx, const u32x *w, const int len) { u32x w0[4]; @@ -2966,7 +2931,6 @@ DECLSPEC void whirlpool_update_vector_utf16le_swap (whirlpool_ctx_vector_t *ctx, whirlpool_update_vector_64 (ctx, w0, w1, w2, w3, (len - pos1) * 2); } -DECLSPEC void whirlpool_final_vector (whirlpool_ctx_vector_t *ctx); DECLSPEC void whirlpool_final_vector (whirlpool_ctx_vector_t *ctx) { const int pos = ctx->len & 63; @@ -3010,7 +2974,6 @@ typedef struct whirlpool_hmac_ctx_vector } whirlpool_hmac_ctx_vector_t; -DECLSPEC void whirlpool_hmac_init_vector_64 (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init_vector_64 (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32x t0[4]; @@ -3065,7 +3028,6 @@ DECLSPEC void whirlpool_hmac_init_vector_64 (whirlpool_hmac_ctx_vector_t *ctx, c whirlpool_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); } -DECLSPEC void whirlpool_hmac_init_vector (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]); DECLSPEC void whirlpool_hmac_init_vector (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u32 (*s_Ch)[256], SHM_TYPE u32 (*s_Cl)[256]) { u32x w0[4]; @@ -3123,19 +3085,16 @@ DECLSPEC void whirlpool_hmac_init_vector (whirlpool_hmac_ctx_vector_t *ctx, cons whirlpool_hmac_init_vector_64 (ctx, w0, w1, w2, w3, s_Ch, s_Cl); } -DECLSPEC void whirlpool_hmac_update_vector_64 (whirlpool_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len); DECLSPEC void whirlpool_hmac_update_vector_64 (whirlpool_hmac_ctx_vector_t *ctx, u32x *w0, u32x *w1, u32x *w2, u32x *w3, const int len) { whirlpool_update_vector_64 (&ctx->ipad, w0, w1, w2, w3, len); } -DECLSPEC void whirlpool_hmac_update_vector (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w, const int len); DECLSPEC void whirlpool_hmac_update_vector (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w, const int len) { whirlpool_update_vector (&ctx->ipad, w, len); } -DECLSPEC void whirlpool_hmac_final_vector (whirlpool_hmac_ctx_vector_t *ctx); DECLSPEC void whirlpool_hmac_final_vector (whirlpool_hmac_ctx_vector_t *ctx) { whirlpool_final_vector (&ctx->ipad); diff --git a/OpenCL/inc_luks_aes.cl b/OpenCL/inc_luks_aes.cl index 29929b5b7..d47a9492a 100644 --- a/OpenCL/inc_luks_aes.cl +++ b/OpenCL/inc_luks_aes.cl @@ -1,7 +1,6 @@ // cbc-essiv -DECLSPEC void aes128_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes128_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { aes128_decrypt (ks1, in, out, s_td0, s_td1, s_td2, s_td3, s_td4); @@ -17,7 +16,6 @@ DECLSPEC void aes128_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 * essiv[3] = in[3]; } -DECLSPEC void aes256_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { aes256_decrypt (ks1, in, out, s_td0, s_td1, s_td2, s_td3, s_td4); @@ -33,7 +31,6 @@ DECLSPEC void aes256_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 * essiv[3] = in[3]; } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -68,7 +65,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128 (__global const u32 *in, u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -106,7 +102,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha1 (__global const u32 * } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -167,7 +162,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha1_final (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -205,7 +199,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha256 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -266,7 +259,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha256_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -304,7 +296,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha512 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -365,7 +356,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_sha512_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -403,7 +393,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160 (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -464,7 +453,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv128_mk_ripemd160_final (__global } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -499,7 +487,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256 (__global const u32 *in, u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -537,7 +524,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha1 (__global const u32 * } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -598,7 +584,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha1_final (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -636,7 +621,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha256 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -697,7 +681,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha256_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -735,7 +718,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha512 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -796,7 +778,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_sha512_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -834,7 +815,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160 (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -897,7 +877,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_essiv256_mk_ripemd160_final (__global // cbc-plain -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -928,7 +907,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128 (__global const u32 *in, u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -962,7 +940,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha1 (__global const u32 * } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1019,7 +996,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha1_final (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1053,7 +1029,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha256 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1110,7 +1085,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha256_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1144,7 +1118,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha512 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1201,7 +1174,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_sha512_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1235,7 +1207,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160 (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1292,7 +1263,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain128_mk_ripemd160_final (__global } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1323,7 +1293,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256 (__global const u32 *in, u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1357,7 +1326,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha1 (__global const u32 * } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1414,7 +1382,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha1_final (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1448,7 +1415,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha256 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1505,7 +1471,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha256_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1539,7 +1504,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha512 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1596,7 +1560,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_sha512_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1630,7 +1593,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160 (__global const } } -DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1689,7 +1651,6 @@ DECLSPEC void luks_decrypt_sector_aes_cbc_plain256_mk_ripemd160_final (__global // xts-plain -DECLSPEC void aes128_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes128_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { out[0] = in[0]; @@ -1712,7 +1673,6 @@ DECLSPEC void aes128_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 * xts_mul2 (T, T); } -DECLSPEC void aes256_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { out[0] = in[0]; @@ -1735,7 +1695,6 @@ DECLSPEC void aes256_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 * xts_mul2 (T, T); } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1770,7 +1729,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256 (__global const u32 *in, u32 } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1808,7 +1766,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha1 (__global const u32 * } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1869,7 +1826,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha1_final (__global const } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1907,7 +1863,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha256 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1968,7 +1923,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha256_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2006,7 +1960,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha512 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2067,7 +2020,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_sha512_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2105,7 +2057,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_ripemd160 (__global const } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2166,7 +2117,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain256_mk_ripemd160_final (__global } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2201,7 +2151,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512 (__global const u32 *in, u32 } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2239,7 +2188,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha1 (__global const u32 * } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2300,7 +2248,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha1_final (__global const } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2338,7 +2285,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha256 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2399,7 +2345,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha256_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2437,7 +2382,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha512 (__global const u32 } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2498,7 +2442,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_sha512_final (__global con } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2536,7 +2479,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_ripemd160 (__global const } } -DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2599,7 +2541,6 @@ DECLSPEC void luks_decrypt_sector_aes_xts_plain512_mk_ripemd160_final (__global // luks helper -DECLSPEC void luks_af_sha1_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_af_sha1_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { const u32 key_size = luks_bufs->key_size; @@ -2991,7 +2932,6 @@ DECLSPEC void luks_af_sha1_then_aes_decrypt (__global const luks_t *luks_bufs, _ } } -DECLSPEC void luks_af_sha256_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_af_sha256_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { const u32 key_size = luks_bufs->key_size; @@ -3351,7 +3291,6 @@ DECLSPEC void luks_af_sha256_then_aes_decrypt (__global const luks_t *luks_bufs, } } -DECLSPEC void luks_af_sha512_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_af_sha512_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { const u32 key_size = luks_bufs->key_size; @@ -3730,7 +3669,6 @@ DECLSPEC void luks_af_sha512_then_aes_decrypt (__global const luks_t *luks_bufs, } } -DECLSPEC void luks_af_ripemd160_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void luks_af_ripemd160_then_aes_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { const u32 key_size = luks_bufs->key_size; diff --git a/OpenCL/inc_luks_af.cl b/OpenCL/inc_luks_af.cl index d43017c69..441fa2811 100644 --- a/OpenCL/inc_luks_af.cl +++ b/OpenCL/inc_luks_af.cl @@ -45,7 +45,6 @@ __constant u64a AF_k_sha512[80] = SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, }; -DECLSPEC void AF_sha1_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void AF_sha1_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 A = digest[0]; @@ -174,7 +173,6 @@ DECLSPEC void AF_sha1_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, digest[4] += E; } -DECLSPEC void AF_sha256_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void AF_sha256_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -263,7 +261,6 @@ DECLSPEC void AF_sha256_transform_S (const u32 *w0, const u32 *w1, const u32 *w2 digest[7] += h; } -DECLSPEC void AF_sha512_transform_S (const u64 *w0, const u64 *w1, const u64 *w2, const u64 *w3, u64 *digest); DECLSPEC void AF_sha512_transform_S (const u64 *w0, const u64 *w1, const u64 *w2, const u64 *w3, u64 *digest) { u64 a = digest[0]; @@ -352,7 +349,6 @@ DECLSPEC void AF_sha512_transform_S (const u64 *w0, const u64 *w1, const u64 *w2 digest[7] += h; } -DECLSPEC void AF_ripemd160_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void AF_ripemd160_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 w0_t = w0[0]; @@ -569,7 +565,6 @@ DECLSPEC void AF_ripemd160_transform_S (const u32 *w0, const u32 *w1, const u32 // diffuse functions -DECLSPEC void AF_sha1_diffuse16 (u32 *out); DECLSPEC void AF_sha1_diffuse16 (u32 *out) { u32 w0[4]; @@ -612,7 +607,6 @@ DECLSPEC void AF_sha1_diffuse16 (u32 *out) out[3] = swap32_S (digest[3]); } -DECLSPEC void AF_sha1_diffuse32 (u32 *out); DECLSPEC void AF_sha1_diffuse32 (u32 *out) { u32 w0[4]; @@ -687,7 +681,6 @@ DECLSPEC void AF_sha1_diffuse32 (u32 *out) out[7] = swap32_S (digest[2]); } -DECLSPEC void AF_sha1_diffuse64 (u32 *out); DECLSPEC void AF_sha1_diffuse64 (u32 *out) { u32 w0[4]; @@ -826,7 +819,6 @@ DECLSPEC void AF_sha1_diffuse64 (u32 *out) out[15] = swap32_S (digest[0]); } -DECLSPEC void AF_sha256_diffuse16 (u32 *out); DECLSPEC void AF_sha256_diffuse16 (u32 *out) { u32 w0[4]; @@ -872,7 +864,6 @@ DECLSPEC void AF_sha256_diffuse16 (u32 *out) out[3] = swap32_S (digest[3]); } -DECLSPEC void AF_sha256_diffuse32 (u32 *out); DECLSPEC void AF_sha256_diffuse32 (u32 *out) { u32 w0[4]; @@ -922,7 +913,6 @@ DECLSPEC void AF_sha256_diffuse32 (u32 *out) out[7] = swap32_S (digest[7]); } -DECLSPEC void AF_sha256_diffuse64 (u32 *out); DECLSPEC void AF_sha256_diffuse64 (u32 *out) { u32 w0[4]; @@ -1011,7 +1001,6 @@ DECLSPEC void AF_sha256_diffuse64 (u32 *out) out[15] = swap32_S (digest[7]); } -DECLSPEC void AF_sha512_diffuse16 (u32 *out); DECLSPEC void AF_sha512_diffuse16 (u32 *out) { u64 w0[4]; @@ -1057,7 +1046,6 @@ DECLSPEC void AF_sha512_diffuse16 (u32 *out) out[3] = swap32_S (l32_from_64_S (digest[1])); } -DECLSPEC void AF_sha512_diffuse32 (u32 *out); DECLSPEC void AF_sha512_diffuse32 (u32 *out) { u64 w0[4]; @@ -1107,7 +1095,6 @@ DECLSPEC void AF_sha512_diffuse32 (u32 *out) out[7] = swap32_S (l32_from_64_S (digest[3])); } -DECLSPEC void AF_sha512_diffuse64 (u32 *out); DECLSPEC void AF_sha512_diffuse64 (u32 *out) { u64 w0[4]; @@ -1165,7 +1152,6 @@ DECLSPEC void AF_sha512_diffuse64 (u32 *out) out[15] = swap32_S (l32_from_64_S (digest[7])); } -DECLSPEC void AF_ripemd160_diffuse16 (u32 *out); DECLSPEC void AF_ripemd160_diffuse16 (u32 *out) { u32 w0[4]; @@ -1208,7 +1194,6 @@ DECLSPEC void AF_ripemd160_diffuse16 (u32 *out) out[3] = digest[3]; } -DECLSPEC void AF_ripemd160_diffuse32 (u32 *out); DECLSPEC void AF_ripemd160_diffuse32 (u32 *out) { u32 w0[4]; @@ -1283,7 +1268,6 @@ DECLSPEC void AF_ripemd160_diffuse32 (u32 *out) out[7] = digest[2]; } -DECLSPEC void AF_ripemd160_diffuse64 (u32 *out); DECLSPEC void AF_ripemd160_diffuse64 (u32 *out) { u32 w0[4]; diff --git a/OpenCL/inc_luks_essiv.cl b/OpenCL/inc_luks_essiv.cl index 2acd7d99a..dd08d28a5 100644 --- a/OpenCL/inc_luks_essiv.cl +++ b/OpenCL/inc_luks_essiv.cl @@ -19,7 +19,6 @@ __constant u32a ESSIV_k_sha256[64] = }; // basically a normal sha256_transform() but with a different name to avoid collisions with function nameing -DECLSPEC void ESSIV_sha256_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest); DECLSPEC void ESSIV_sha256_transform_S (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) { u32 a = digest[0]; @@ -108,7 +107,6 @@ DECLSPEC void ESSIV_sha256_transform_S (const u32 *w0, const u32 *w1, const u32 digest[7] += h; } -DECLSPEC void ESSIV_sha256_init128 (u32 *key, u32 *essivhash); DECLSPEC void ESSIV_sha256_init128 (u32 *key, u32 *essivhash) { essivhash[0] = SHA256M_A; @@ -154,7 +152,6 @@ DECLSPEC void ESSIV_sha256_init128 (u32 *key, u32 *essivhash) essivhash[7] = swap32_S (essivhash[7]); } -DECLSPEC void ESSIV_sha256_init256 (u32 *key, u32 *essivhash); DECLSPEC void ESSIV_sha256_init256 (u32 *key, u32 *essivhash) { essivhash[0] = SHA256M_A; diff --git a/OpenCL/inc_luks_serpent.cl b/OpenCL/inc_luks_serpent.cl index 03430492d..f2bc56502 100644 --- a/OpenCL/inc_luks_serpent.cl +++ b/OpenCL/inc_luks_serpent.cl @@ -1,7 +1,6 @@ // cbc-essiv -DECLSPEC void serpent128_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv); DECLSPEC void serpent128_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv) { serpent128_decrypt (ks1, in, out); @@ -17,7 +16,6 @@ DECLSPEC void serpent128_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u essiv[3] = in[3]; } -DECLSPEC void serpent256_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv); DECLSPEC void serpent256_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u32 *essiv) { serpent256_decrypt (ks1, in, out); @@ -33,7 +31,6 @@ DECLSPEC void serpent256_decrypt_cbc (const u32 *ks1, const u32 *in, u32 *out, u essiv[3] = in[3]; } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -68,7 +65,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -106,7 +102,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -167,7 +162,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -205,7 +199,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -266,7 +259,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -304,7 +296,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -365,7 +356,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -403,7 +393,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -464,7 +453,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv128_mk_ripemd160_final (__glo } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -499,7 +487,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -537,7 +524,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -598,7 +584,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -636,7 +621,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -697,7 +681,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -735,7 +718,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -796,7 +778,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -834,7 +815,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -897,7 +877,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_essiv256_mk_ripemd160_final (__glo // cbc-plain -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -928,7 +907,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -962,7 +940,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1019,7 +996,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1053,7 +1029,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1110,7 +1085,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1144,7 +1118,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1201,7 +1174,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1235,7 +1207,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1292,7 +1263,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain128_mk_ripemd160_final (__glo } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1323,7 +1293,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1357,7 +1326,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1414,7 +1382,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1448,7 +1415,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1505,7 +1471,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1539,7 +1504,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1596,7 +1560,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1630,7 +1593,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1689,7 +1651,6 @@ DECLSPEC void luks_decrypt_sector_serpent_cbc_plain256_mk_ripemd160_final (__glo // xts-plain -DECLSPEC void serpent128_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T); DECLSPEC void serpent128_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T) { out[0] = in[0]; @@ -1712,7 +1673,6 @@ DECLSPEC void serpent128_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u xts_mul2 (T, T); } -DECLSPEC void serpent256_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T); DECLSPEC void serpent256_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u32 *T) { out[0] = in[0]; @@ -1735,7 +1695,6 @@ DECLSPEC void serpent256_decrypt_xts (const u32 *ks1, const u32 *in, u32 *out, u xts_mul2 (T, T); } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1770,7 +1729,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1808,7 +1766,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1869,7 +1826,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1907,7 +1863,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1968,7 +1923,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2006,7 +1960,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2067,7 +2020,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2105,7 +2057,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2166,7 +2117,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain256_mk_ripemd160_final (__glo } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512 (__global const u32 *in, u32 *out, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2201,7 +2151,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2239,7 +2188,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2300,7 +2248,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2338,7 +2285,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2399,7 +2345,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2437,7 +2382,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2498,7 +2442,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2536,7 +2479,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector); DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *ks1, const u32 *ks2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2599,7 +2541,6 @@ DECLSPEC void luks_decrypt_sector_serpent_xts_plain512_mk_ripemd160_final (__glo // luks helper -DECLSPEC void luks_af_sha1_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_sha1_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; @@ -2959,7 +2900,6 @@ DECLSPEC void luks_af_sha1_then_serpent_decrypt (__global const luks_t *luks_buf } } -DECLSPEC void luks_af_sha256_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_sha256_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; @@ -3319,7 +3259,6 @@ DECLSPEC void luks_af_sha256_then_serpent_decrypt (__global const luks_t *luks_b } } -DECLSPEC void luks_af_sha512_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_sha512_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; @@ -3698,7 +3637,6 @@ DECLSPEC void luks_af_sha512_then_serpent_decrypt (__global const luks_t *luks_b } } -DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_ripemd160_then_serpent_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; diff --git a/OpenCL/inc_luks_twofish.cl b/OpenCL/inc_luks_twofish.cl index e17e0897c..e8349c87e 100644 --- a/OpenCL/inc_luks_twofish.cl +++ b/OpenCL/inc_luks_twofish.cl @@ -1,7 +1,6 @@ // cbc-essiv -DECLSPEC void twofish128_decrypt_cbc (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *essiv); DECLSPEC void twofish128_decrypt_cbc (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *essiv) { twofish128_decrypt (sk1, lk1, in, out); @@ -17,7 +16,6 @@ DECLSPEC void twofish128_decrypt_cbc (const u32 *sk1, const u32 *lk1, const u32 essiv[3] = in[3]; } -DECLSPEC void twofish256_decrypt_cbc (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *essiv); DECLSPEC void twofish256_decrypt_cbc (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *essiv) { twofish256_decrypt (sk1, lk1, in, out); @@ -33,7 +31,6 @@ DECLSPEC void twofish256_decrypt_cbc (const u32 *sk1, const u32 *lk1, const u32 essiv[3] = in[3]; } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -68,7 +65,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -106,7 +102,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -167,7 +162,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -205,7 +199,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -266,7 +259,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -304,7 +296,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -365,7 +356,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -403,7 +393,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -464,7 +453,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv128_mk_ripemd160_final (__glo } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -499,7 +487,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -537,7 +524,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -598,7 +584,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -636,7 +621,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -697,7 +681,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -735,7 +718,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -796,7 +778,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -834,7 +815,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -897,7 +877,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_essiv256_mk_ripemd160_final (__glo // cbc-plain -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -928,7 +907,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -962,7 +940,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1019,7 +996,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1053,7 +1029,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1110,7 +1085,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1144,7 +1118,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1201,7 +1174,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1235,7 +1207,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1292,7 +1263,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain128_mk_ripemd160_final (__glo } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1323,7 +1293,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1357,7 +1326,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1414,7 +1382,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1448,7 +1415,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1505,7 +1471,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1539,7 +1504,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1596,7 +1560,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1630,7 +1593,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1689,7 +1651,6 @@ DECLSPEC void luks_decrypt_sector_twofish_cbc_plain256_mk_ripemd160_final (__glo // xts-plain -DECLSPEC void twofish128_decrypt_xts (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *T); DECLSPEC void twofish128_decrypt_xts (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *T) { out[0] = in[0]; @@ -1712,7 +1673,6 @@ DECLSPEC void twofish128_decrypt_xts (const u32 *sk1, const u32 *lk1, const u32 xts_mul2 (T, T); } -DECLSPEC void twofish256_decrypt_xts (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *T); DECLSPEC void twofish256_decrypt_xts (const u32 *sk1, const u32 *lk1, const u32 *in, u32 *out, u32 *T) { out[0] = in[0]; @@ -1735,7 +1695,6 @@ DECLSPEC void twofish256_decrypt_xts (const u32 *sk1, const u32 *lk1, const u32 xts_mul2 (T, T); } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1770,7 +1729,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1808,7 +1766,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1869,7 +1826,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1907,7 +1863,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -1968,7 +1923,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2006,7 +1960,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2067,7 +2020,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2105,7 +2057,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2166,7 +2117,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain256_mk_ripemd160_final (__glo } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512 (__global const u32 *in, u32 *out, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2201,7 +2151,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512 (__global const u32 *in, } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha1 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2239,7 +2188,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha1 (__global const u } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha1_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2300,7 +2248,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha1_final (__global c } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha256 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2338,7 +2285,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha256 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha256_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2399,7 +2345,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha256_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha512 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2437,7 +2382,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha512 (__global const } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha512_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2498,7 +2442,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_sha512_final (__global } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160 (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2536,7 +2479,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160 (__global co } } -DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector); DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160_final (__global const u32 *in, u32 *mk, const u32 *sk1, const u32 *lk1, const u32 *sk2, const u32 *lk2, const u32 sector) { u32 S[4] = { sector, 0, 0, 0 }; @@ -2599,7 +2541,6 @@ DECLSPEC void luks_decrypt_sector_twofish_xts_plain512_mk_ripemd160_final (__glo // luks helper -DECLSPEC void luks_af_sha1_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_sha1_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; @@ -2959,7 +2900,6 @@ DECLSPEC void luks_af_sha1_then_twofish_decrypt (__global const luks_t *luks_buf } } -DECLSPEC void luks_af_sha256_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_sha256_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; @@ -3319,7 +3259,6 @@ DECLSPEC void luks_af_sha256_then_twofish_decrypt (__global const luks_t *luks_b } } -DECLSPEC void luks_af_sha512_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_sha512_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; @@ -3698,7 +3637,6 @@ DECLSPEC void luks_af_sha512_then_twofish_decrypt (__global const luks_t *luks_b } } -DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf); DECLSPEC void luks_af_ripemd160_then_twofish_decrypt (__global const luks_t *luks_bufs, __global luks_tmp_t *tmps, u32 *pt_buf) { const u32 key_size = luks_bufs->key_size; diff --git a/OpenCL/inc_luks_xts.cl b/OpenCL/inc_luks_xts.cl index cdec6818d..c2a36937e 100644 --- a/OpenCL/inc_luks_xts.cl +++ b/OpenCL/inc_luks_xts.cl @@ -1,4 +1,3 @@ -DECLSPEC void xts_mul2 (u32 *in, u32 *out); DECLSPEC void xts_mul2 (u32 *in, u32 *out) { const u32 c = in[3] >> 31; diff --git a/OpenCL/inc_simd.cl b/OpenCL/inc_simd.cl index bcd1434d7..43a57c5a3 100644 --- a/OpenCL/inc_simd.cl +++ b/OpenCL/inc_simd.cl @@ -1048,7 +1048,6 @@ // attack-mode 0 -DECLSPEC u32x ix_create_bft (__global const bf_t *bfs_buf, const u32 il_pos); DECLSPEC u32x ix_create_bft (__global const bf_t *bfs_buf, const u32 il_pos) { #if VECT_SIZE == 1 @@ -1068,7 +1067,6 @@ DECLSPEC u32x ix_create_bft (__global const bf_t *bfs_buf, const u32 il_pos) // attack-mode 1 -DECLSPEC u32x pwlenx_create_combt (__global const pw_t *combs_buf, const u32 il_pos); DECLSPEC u32x pwlenx_create_combt (__global const pw_t *combs_buf, const u32 il_pos) { #if VECT_SIZE == 1 @@ -1086,7 +1084,6 @@ DECLSPEC u32x pwlenx_create_combt (__global const pw_t *combs_buf, const u32 il_ return pw_lenx; } -DECLSPEC u32x ix_create_combt (__global const pw_t *combs_buf, const u32 il_pos, const int idx); DECLSPEC u32x ix_create_combt (__global const pw_t *combs_buf, const u32 il_pos, const int idx) { #if VECT_SIZE == 1 diff --git a/OpenCL/inc_truecrypt_crc32.cl b/OpenCL/inc_truecrypt_crc32.cl index eb6dea338..ccec03d16 100644 --- a/OpenCL/inc_truecrypt_crc32.cl +++ b/OpenCL/inc_truecrypt_crc32.cl @@ -66,7 +66,6 @@ __constant u32a crc32tab[0x100] = 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; -DECLSPEC u32 round_crc32 (u32 a, const u32 v); DECLSPEC u32 round_crc32 (u32 a, const u32 v) { const u32 k = (a ^ v) & 0xff; @@ -80,7 +79,6 @@ DECLSPEC u32 round_crc32 (u32 a, const u32 v) return a; } -DECLSPEC u32 round_crc32_4 (const u32 w, const u32 iv); DECLSPEC u32 round_crc32_4 (const u32 w, const u32 iv) { u32 a = iv; diff --git a/OpenCL/inc_truecrypt_keyfile.cl b/OpenCL/inc_truecrypt_keyfile.cl index 56cbd2673..803bbed9d 100644 --- a/OpenCL/inc_truecrypt_keyfile.cl +++ b/OpenCL/inc_truecrypt_keyfile.cl @@ -1,4 +1,3 @@ -DECLSPEC u32 u8add (const u32 a, const u32 b); DECLSPEC u32 u8add (const u32 a, const u32 b) { const u32 a1 = (a >> 0) & 0xff; diff --git a/OpenCL/inc_truecrypt_xts.cl b/OpenCL/inc_truecrypt_xts.cl index a0b08cb30..2ec644eeb 100644 --- a/OpenCL/inc_truecrypt_xts.cl +++ b/OpenCL/inc_truecrypt_xts.cl @@ -1,4 +1,3 @@ -DECLSPEC void xts_mul2 (u32 *in, u32 *out); DECLSPEC void xts_mul2 (u32 *in, u32 *out) { const u32 c = in[3] >> 31; @@ -11,7 +10,6 @@ DECLSPEC void xts_mul2 (u32 *in, u32 *out) out[0] ^= c * 0x87; } -DECLSPEC void aes256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { out[0] = in[0]; @@ -36,7 +34,6 @@ DECLSPEC void aes256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, cons out[3] ^= T[3]; } -DECLSPEC void aes256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC void aes256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { out[0] = in[0]; @@ -59,7 +56,6 @@ DECLSPEC void aes256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks, out[3] ^= T[3]; } -DECLSPEC void serpent256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks); DECLSPEC void serpent256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks) { out[0] = in[0]; @@ -84,7 +80,6 @@ DECLSPEC void serpent256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, out[3] ^= T[3]; } -DECLSPEC void serpent256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks); DECLSPEC void serpent256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks) { out[0] = in[0]; @@ -107,7 +102,6 @@ DECLSPEC void serpent256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 out[3] ^= T[3]; } -DECLSPEC void twofish256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *sk, u32 *lk); DECLSPEC void twofish256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *sk, u32 *lk) { out[0] = in[0]; @@ -132,7 +126,6 @@ DECLSPEC void twofish256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, out[3] ^= T[3]; } -DECLSPEC void twofish256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *sk, u32 *lk); DECLSPEC void twofish256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *sk, u32 *lk) { out[0] = in[0]; @@ -157,7 +150,6 @@ DECLSPEC void twofish256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 // 512 bit -DECLSPEC int verify_header_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC int verify_header_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ks_aes[60]; @@ -212,7 +204,6 @@ DECLSPEC int verify_header_aes (__global const u32 *data_buf, const u32 signatur return 1; } -DECLSPEC int verify_header_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2); DECLSPEC int verify_header_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2) { u32 ks_serpent[140]; @@ -267,7 +258,6 @@ DECLSPEC int verify_header_serpent (__global const u32 *data_buf, const u32 sign return 1; } -DECLSPEC int verify_header_twofish (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2); DECLSPEC int verify_header_twofish (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2) { u32 sk_twofish[4]; @@ -325,7 +315,6 @@ DECLSPEC int verify_header_twofish (__global const u32 *data_buf, const u32 sign // 1024 bit -DECLSPEC int verify_header_aes_twofish (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC int verify_header_aes_twofish (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ks_aes[60]; @@ -387,7 +376,6 @@ DECLSPEC int verify_header_aes_twofish (__global const u32 *data_buf, const u32 return 1; } -DECLSPEC int verify_header_serpent_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC int verify_header_serpent_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ks_serpent[140]; @@ -447,7 +435,6 @@ DECLSPEC int verify_header_serpent_aes (__global const u32 *data_buf, const u32 return 1; } -DECLSPEC int verify_header_twofish_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4); DECLSPEC int verify_header_twofish_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4) { u32 sk_twofish[4]; @@ -511,7 +498,6 @@ DECLSPEC int verify_header_twofish_serpent (__global const u32 *data_buf, const // 1536 bit -DECLSPEC int verify_header_aes_twofish_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, const u32 *ukey5, const u32 *ukey6, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC int verify_header_aes_twofish_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, const u32 *ukey5, const u32 *ukey6, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ks_aes[60]; @@ -579,7 +565,6 @@ DECLSPEC int verify_header_aes_twofish_serpent (__global const u32 *data_buf, co return 1; } -DECLSPEC int verify_header_serpent_twofish_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, const u32 *ukey5, const u32 *ukey6, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC int verify_header_serpent_twofish_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, const u32 *ukey5, const u32 *ukey6, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ks_serpent[140]; diff --git a/OpenCL/inc_types.cl b/OpenCL/inc_types.cl deleted file mode 100644 index 2561ad174..000000000 --- a/OpenCL/inc_types.cl +++ /dev/null @@ -1,1668 +0,0 @@ -/** - * Author......: See docs/credits.txt - * License.....: MIT - */ - -typedef uchar u8; -typedef ushort u16; -typedef uint u32; -typedef ulong u64; - -//testwise disabled -//typedef u8 u8a __attribute__ ((aligned (8))); -//typedef u16 u16a __attribute__ ((aligned (8))); -//typedef u32 u32a __attribute__ ((aligned (8))); -//typedef u64 u64a __attribute__ ((aligned (8))); - -typedef u8 u8a; -typedef u16 u16a; -typedef u32 u32a; -typedef u64 u64a; - -#ifndef NEW_SIMD_CODE -#undef VECT_SIZE -#define VECT_SIZE 1 -#endif - -#define CONCAT(a, b) a##b -#define VTYPE(type, width) CONCAT(type, width) - -#if VECT_SIZE == 1 -typedef uchar u8x; -typedef ushort u16x; -typedef uint u32x; -typedef ulong u64x; -#else -typedef VTYPE(uchar, VECT_SIZE) u8x; -typedef VTYPE(ushort, VECT_SIZE) u16x; -typedef VTYPE(uint, VECT_SIZE) u32x; -typedef VTYPE(ulong, VECT_SIZE) u64x; -#endif - -// unions - -typedef union vconv32 -{ - u64 v32; - - struct - { - u16 v16a; - u16 v16b; - }; - - struct - { - u8 v8a; - u8 v8b; - u8 v8c; - u8 v8d; - }; - -} vconv32_t; - -typedef union vconv64 -{ - u64 v64; - - struct - { - u32 v32a; - u32 v32b; - }; - - struct - { - u16 v16a; - u16 v16b; - u16 v16c; - u16 v16d; - }; - - struct - { - u8 v8a; - u8 v8b; - u8 v8c; - u8 v8d; - u8 v8e; - u8 v8f; - u8 v8g; - u8 v8h; - }; - -} vconv64_t; - -DECLSPEC u32 l32_from_64_S (u64 a); -DECLSPEC u32 l32_from_64_S (u64 a) -{ - const u32 r = (u32) (a); - - return r; -} - -DECLSPEC u32 h32_from_64_S (u64 a); -DECLSPEC u32 h32_from_64_S (u64 a) -{ - a >>= 32; - - const u32 r = (u32) (a); - - return r; -} - -DECLSPEC u64 hl32_to_64_S (const u32 a, const u32 b); -DECLSPEC u64 hl32_to_64_S (const u32 a, const u32 b) -{ - return as_ulong ((uint2) (b, a)); -} - -DECLSPEC u32x l32_from_64 (u64x a); -DECLSPEC u32x l32_from_64 (u64x a) -{ - u32x r; - - #if VECT_SIZE == 1 - r = (u32) a; - #endif - - #if VECT_SIZE >= 2 - r.s0 = (u32) a.s0; - r.s1 = (u32) a.s1; - #endif - - #if VECT_SIZE >= 4 - r.s2 = (u32) a.s2; - r.s3 = (u32) a.s3; - #endif - - #if VECT_SIZE >= 8 - r.s4 = (u32) a.s4; - r.s5 = (u32) a.s5; - r.s6 = (u32) a.s6; - r.s7 = (u32) a.s7; - #endif - - #if VECT_SIZE >= 16 - r.s8 = (u32) a.s8; - r.s9 = (u32) a.s9; - r.sa = (u32) a.sa; - r.sb = (u32) a.sb; - r.sc = (u32) a.sc; - r.sd = (u32) a.sd; - r.se = (u32) a.se; - r.sf = (u32) a.sf; - #endif - - return r; -} - -DECLSPEC u32x h32_from_64 (u64x a); -DECLSPEC u32x h32_from_64 (u64x a) -{ - a >>= 32; - - u32x r; - - #if VECT_SIZE == 1 - r = (u32) a; - #endif - - #if VECT_SIZE >= 2 - r.s0 = (u32) a.s0; - r.s1 = (u32) a.s1; - #endif - - #if VECT_SIZE >= 4 - r.s2 = (u32) a.s2; - r.s3 = (u32) a.s3; - #endif - - #if VECT_SIZE >= 8 - r.s4 = (u32) a.s4; - r.s5 = (u32) a.s5; - r.s6 = (u32) a.s6; - r.s7 = (u32) a.s7; - #endif - - #if VECT_SIZE >= 16 - r.s8 = (u32) a.s8; - r.s9 = (u32) a.s9; - r.sa = (u32) a.sa; - r.sb = (u32) a.sb; - r.sc = (u32) a.sc; - r.sd = (u32) a.sd; - r.se = (u32) a.se; - r.sf = (u32) a.sf; - #endif - - return r; -} - -DECLSPEC u64x hl32_to_64 (const u32x a, const u32x b); -DECLSPEC u64x hl32_to_64 (const u32x a, const u32x b) -{ - u64x r; - - #if VECT_SIZE == 1 - r = as_ulong ((uint2) (b, a)); - #endif - - #if VECT_SIZE >= 2 - r.s0 = as_ulong ((uint2) (b.s0, a.s0)); - r.s1 = as_ulong ((uint2) (b.s1, a.s1)); - #endif - - #if VECT_SIZE >= 4 - r.s2 = as_ulong ((uint2) (b.s2, a.s2)); - r.s3 = as_ulong ((uint2) (b.s3, a.s3)); - #endif - - #if VECT_SIZE >= 8 - r.s4 = as_ulong ((uint2) (b.s4, a.s4)); - r.s5 = as_ulong ((uint2) (b.s5, a.s5)); - r.s6 = as_ulong ((uint2) (b.s6, a.s6)); - r.s7 = as_ulong ((uint2) (b.s7, a.s7)); - #endif - - #if VECT_SIZE >= 16 - r.s8 = as_ulong ((uint2) (b.s8, a.s8)); - r.s9 = as_ulong ((uint2) (b.s9, a.s9)); - r.sa = as_ulong ((uint2) (b.sa, a.sa)); - r.sb = as_ulong ((uint2) (b.sb, a.sb)); - r.sc = as_ulong ((uint2) (b.sc, a.sc)); - r.sd = as_ulong ((uint2) (b.sd, a.sd)); - r.se = as_ulong ((uint2) (b.se, a.se)); - r.sf = as_ulong ((uint2) (b.sf, a.sf)); - #endif - - return r; -} - -#ifdef IS_AMD - -#if HAS_VPERM -DECLSPEC u32 swap32_S (const u32 v); -DECLSPEC u32 swap32_S (const u32 v) -{ - u32 r; - - __asm__ __volatile__ ("V_PERM_B32 %0, 0, %1, %2;" : "=v"(r) : "v"(v), "v"(0x00010203)); - - return r; -} - -DECLSPEC u64 swap64_S (const u64 v); -DECLSPEC u64 swap64_S (const u64 v) -{ - const u32 v0 = h32_from_64_S (v); - const u32 v1 = l32_from_64_S (v); - - u32 t0; - u32 t1; - - __asm__ __volatile__ ("V_PERM_B32 %0, 0, %1, %2;" : "=v"(t0) : "v"(v0), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, 0, %1, %2;" : "=v"(t1) : "v"(v1), "v"(0x00010203)); - - const u64 r = hl32_to_64_S (t1, t0); - - return r; -} -#else -DECLSPEC u32 swap32_S (const u32 v); -DECLSPEC u32 swap32_S (const u32 v) -{ - return as_uint (as_uchar4 (v).s3210); -} - -DECLSPEC u64 swap64_S (const u64 v); -DECLSPEC u64 swap64_S (const u64 v) -{ - return (as_ulong (as_uchar8 (v).s76543210)); -} -#endif - -DECLSPEC u32 rotr32_S (const u32 a, const u32 n); -DECLSPEC u32 rotr32_S (const u32 a, const u32 n) -{ - return rotate (a, (32 - n)); -} - -DECLSPEC u32 rotl32_S (const u32 a, const u32 n); -DECLSPEC u32 rotl32_S (const u32 a, const u32 n) -{ - return rotate (a, n); -} - -DECLSPEC u64 rotr64_S (const u64 a, const u32 n); -DECLSPEC u64 rotr64_S (const u64 a, const u32 n) -{ - const u32 a0 = h32_from_64_S (a); - const u32 a1 = l32_from_64_S (a); - - const u32 t0 = (n >= 32) ? amd_bitalign (a0, a1, n - 32) : amd_bitalign (a1, a0, n); - const u32 t1 = (n >= 32) ? amd_bitalign (a1, a0, n - 32) : amd_bitalign (a0, a1, n); - - const u64 r = hl32_to_64_S (t0, t1); - - return r; -} - -DECLSPEC u64 rotl64_S (const u64 a, const u32 n); -DECLSPEC u64 rotl64_S (const u64 a, const u32 n) -{ - return rotr64_S (a, 64 - n); -} - -#if HAS_VPERM -DECLSPEC u32x swap32 (const u32x v); -DECLSPEC u32x swap32 (const u32x v) -{ - return bitselect (rotate (v, 24u), rotate (v, 8u), 0x00ff00ffu); -} - -DECLSPEC u64x swap64 (const u64x v); -DECLSPEC u64x swap64 (const u64x v) -{ - const u32x a0 = h32_from_64 (v); - const u32x a1 = l32_from_64 (v); - - u32x t0; - u32x t1; - - #if VECT_SIZE == 1 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0) : "v"(0), "v"(a0), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1) : "v"(0), "v"(a1), "v"(0x00010203)); - #endif - - #if VECT_SIZE >= 2 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s0) : "v"(0), "v"(a0.s0), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s0) : "v"(0), "v"(a1.s0), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s1) : "v"(0), "v"(a0.s1), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s1) : "v"(0), "v"(a1.s1), "v"(0x00010203)); - #endif - - #if VECT_SIZE >= 4 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s2) : "v"(0), "v"(a0.s2), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s2) : "v"(0), "v"(a1.s2), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s3) : "v"(0), "v"(a0.s3), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s3) : "v"(0), "v"(a1.s3), "v"(0x00010203)); - #endif - - #if VECT_SIZE >= 8 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s4) : "v"(0), "v"(a0.s4), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s4) : "v"(0), "v"(a1.s4), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s5) : "v"(0), "v"(a0.s5), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s5) : "v"(0), "v"(a1.s5), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s6) : "v"(0), "v"(a0.s6), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s6) : "v"(0), "v"(a1.s6), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s7) : "v"(0), "v"(a0.s7), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s7) : "v"(0), "v"(a1.s7), "v"(0x00010203)); - #endif - - #if VECT_SIZE >= 16 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s8) : "v"(0), "v"(a0.s8), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s8) : "v"(0), "v"(a1.s8), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.s9) : "v"(0), "v"(a0.s9), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.s9) : "v"(0), "v"(a1.s9), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sa) : "v"(0), "v"(a0.sa), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sa) : "v"(0), "v"(a1.sa), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sb) : "v"(0), "v"(a0.sb), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sb) : "v"(0), "v"(a1.sb), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sc) : "v"(0), "v"(a0.sc), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sc) : "v"(0), "v"(a1.sc), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sd) : "v"(0), "v"(a0.sd), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sd) : "v"(0), "v"(a1.sd), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.se) : "v"(0), "v"(a0.se), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.se) : "v"(0), "v"(a1.se), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t0.sf) : "v"(0), "v"(a0.sf), "v"(0x00010203)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(t1.sf) : "v"(0), "v"(a1.sf), "v"(0x00010203)); - #endif - - const u64x r = hl32_to_64 (t1, t0); - - return r; -} -#else -DECLSPEC u32x swap32 (const u32x v); -DECLSPEC u32x swap32 (const u32x v) -{ - return bitselect (rotate (v, 24u), rotate (v, 8u), 0x00ff00ffu); -} - -DECLSPEC u64x swap64 (const u64x v); -DECLSPEC u64x swap64 (const u64x v) -{ - return bitselect (bitselect (rotate (v, 24ul), - rotate (v, 8ul), 0x000000ff000000fful), - bitselect (rotate (v, 56ul), - rotate (v, 40ul), 0x00ff000000ff0000ul), - 0xffff0000ffff0000ul); -} -#endif - -DECLSPEC u32x rotr32 (const u32x a, const u32 n); -DECLSPEC u32x rotr32 (const u32x a, const u32 n) -{ - return rotate (a, (32 - n)); -} - -DECLSPEC u32x rotl32 (const u32x a, const u32 n); -DECLSPEC u32x rotl32 (const u32x a, const u32 n) -{ - return rotate (a, n); -} - -DECLSPEC u64x rotr64 (const u64x a, const u32 n); -DECLSPEC u64x rotr64 (const u64x a, const u32 n) -{ - const u32x a0 = h32_from_64 (a); - const u32x a1 = l32_from_64 (a); - - const u32x t0 = (n >= 32) ? amd_bitalign (a0, a1, n - 32) : amd_bitalign (a1, a0, n); - const u32x t1 = (n >= 32) ? amd_bitalign (a1, a0, n - 32) : amd_bitalign (a0, a1, n); - - const u64x r = hl32_to_64 (t0, t1); - - return r; -} - -DECLSPEC u64x rotl64 (const u64x a, const u32 n); -DECLSPEC u64x rotl64 (const u64x a, const u32 n) -{ - return rotr64 (a, 64 - n); -} - -DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c) -{ - #define BIT(x) ((u32x) (1u) << (x)) - #define BIT_MASK(x) (BIT (x) - 1) - #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) - - return BFE (a, b, c); - - #undef BIT - #undef BIT_MASK - #undef BFE -} - -DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c) -{ - #define BIT(x) (1u << (x)) - #define BIT_MASK(x) (BIT (x) - 1) - #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) - - return BFE (a, b, c); - - #undef BIT - #undef BIT_MASK - #undef BFE -} - -DECLSPEC u32x hc_bytealign_be (const u32x a, const u32x b, const u32 c); -DECLSPEC u32x hc_bytealign_be (const u32x a, const u32x b, const u32 c) -{ - u32x r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a << 24) | (b >> 8); break; - case 2: r = (a << 16) | (b >> 16); break; - case 3: r = (a << 8) | (b >> 24); break; - } - - return r; -} - -DECLSPEC u32 hc_bytealign_be_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bytealign_be_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a << 24) | (b >> 8); break; - case 2: r = (a << 16) | (b >> 16); break; - case 3: r = (a << 8) | (b >> 24); break; - } - - return r; -} - -DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32 c); -DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32 c) -{ - u32x r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a >> 24) | (b << 8); break; - case 2: r = (a >> 16) | (b << 16); break; - case 3: r = (a >> 8) | (b << 24); break; - } - - return r; -} - -DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a >> 24) | (b << 8); break; - case 2: r = (a >> 16) | (b << 16); break; - case 3: r = (a >> 8) | (b << 24); break; - } - - return r; -} - -#if HAS_VPERM -DECLSPEC u32x hc_byte_perm (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_byte_perm (const u32x a, const u32x b, const u32x c) -{ - u32x r; - - #if VECT_SIZE == 1 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); - #endif - - #if VECT_SIZE >= 2 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - #endif - - #if VECT_SIZE >= 4 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); - #endif - - #if VECT_SIZE >= 8 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); - #endif - - #if VECT_SIZE >= 16 - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s8) : "v"(b.s8), "v"(a.s8), "v"(c.s8)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.s9) : "v"(b.s9), "v"(a.s9), "v"(c.s9)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sa) : "v"(b.sa), "v"(a.sa), "v"(c.sa)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sb) : "v"(b.sb), "v"(a.sb), "v"(c.sb)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sc) : "v"(b.sc), "v"(a.sc), "v"(c.sc)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sd) : "v"(b.sd), "v"(a.sd), "v"(c.sd)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.se) : "v"(b.se), "v"(a.se), "v"(c.se)); - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r.sf) : "v"(b.sf), "v"(a.sf), "v"(c.sf)); - #endif - - return r; -} - -DECLSPEC u32 hc_byte_perm_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_byte_perm_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - __asm__ __volatile__ ("V_PERM_B32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); - - return r; -} -#endif - -#if HAS_VADD3 -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) -{ - u32x r; - - #if VECT_SIZE == 1 - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); - #endif - - #if VECT_SIZE >= 2 - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - #endif - - #if VECT_SIZE >= 4 - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); - #endif - - #if VECT_SIZE >= 8 - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); - #endif - - #if VECT_SIZE >= 16 - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s0) : "v"(b.s0), "v"(a.s0), "v"(c.s0)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s1) : "v"(b.s1), "v"(a.s1), "v"(c.s1)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s2) : "v"(b.s2), "v"(a.s2), "v"(c.s2)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s3) : "v"(b.s3), "v"(a.s3), "v"(c.s3)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s4) : "v"(b.s4), "v"(a.s4), "v"(c.s4)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s5) : "v"(b.s5), "v"(a.s5), "v"(c.s5)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s6) : "v"(b.s6), "v"(a.s6), "v"(c.s6)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s7) : "v"(b.s7), "v"(a.s7), "v"(c.s7)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s8) : "v"(b.s8), "v"(a.s8), "v"(c.s8)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.s9) : "v"(b.s9), "v"(a.s9), "v"(c.s9)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sa) : "v"(b.sa), "v"(a.sa), "v"(c.sa)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sb) : "v"(b.sb), "v"(a.sb), "v"(c.sb)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sc) : "v"(b.sc), "v"(a.sc), "v"(c.sc)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sd) : "v"(b.sd), "v"(a.sd), "v"(c.sd)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.se) : "v"(b.se), "v"(a.se), "v"(c.se)); - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r.sf) : "v"(b.sf), "v"(a.sf), "v"(c.sf)); - #endif - - return r; -} - -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - __asm__ __volatile__ ("V_ADD3_U32 %0, %1, %2, %3;" : "=v"(r) : "v"(b), "v"(a), "v"(c)); - - return r; -} -#else -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) -{ - return a + b + c; -} - -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) -{ - return a + b + c; -} -#endif - -DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c) -{ - return a ^ b ^ c; -} - -DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c) -{ - return a ^ b ^ c; -} - -#endif - -#ifdef IS_NV -DECLSPEC u32 swap32_S (const u32 v); -DECLSPEC u32 swap32_S (const u32 v) -{ - u32 r; - - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r) : "r"(v)); - - return r; -} - -DECLSPEC u64 swap64_S (const u64 v); -DECLSPEC u64 swap64_S (const u64 v) -{ - u32 il; - u32 ir; - - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il), "=r"(ir) : "l"(v)); - - u32 tl; - u32 tr; - - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl) : "r"(il)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr) : "r"(ir)); - - u64 r; - - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r) : "r"(tr), "r"(tl)); - - return r; -} - -DECLSPEC u32 rotr32_S (const u32 a, const u32 n); -DECLSPEC u32 rotr32_S (const u32 a, const u32 n) -{ - return rotate (a, (32 - n)); -} - -DECLSPEC u32 rotl32_S (const u32 a, const u32 n); -DECLSPEC u32 rotl32_S (const u32 a, const u32 n) -{ - return rotate (a, n); -} - -DECLSPEC u64 rotr64_S (const u64 a, const u32 n); -DECLSPEC u64 rotr64_S (const u64 a, const u32 n) -{ - return rotate (a, (u64) (64 - n)); -} - -DECLSPEC u64 rotl64_S (const u64 a, const u32 n); -DECLSPEC u64 rotl64_S (const u64 a, const u32 n) -{ - return rotate (a, (u64) n); -} - -DECLSPEC u32x swap32 (const u32x v); -DECLSPEC u32x swap32 (const u32x v) -{ - u32x r; - - #if VECT_SIZE == 1 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r) : "r"(v)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s0) : "r"(v.s0)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s1) : "r"(v.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s2) : "r"(v.s2)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s3) : "r"(v.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s4) : "r"(v.s4)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s5) : "r"(v.s5)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s6) : "r"(v.s6)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s7) : "r"(v.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s8) : "r"(v.s8)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.s9) : "r"(v.s9)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sa) : "r"(v.sa)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sb) : "r"(v.sb)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sc) : "r"(v.sc)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sd) : "r"(v.sd)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.se) : "r"(v.se)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(r.sf) : "r"(v.sf)); - #endif - - return r; -} - -DECLSPEC u64x swap64 (const u64x v); -DECLSPEC u64x swap64 (const u64x v) -{ - u32x il; - u32x ir; - - #if VECT_SIZE == 1 - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il), "=r"(ir) : "l"(v)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s0), "=r"(ir.s0) : "l"(v.s0)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s1), "=r"(ir.s1) : "l"(v.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s2), "=r"(ir.s2) : "l"(v.s2)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s3), "=r"(ir.s3) : "l"(v.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s4), "=r"(ir.s4) : "l"(v.s4)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s5), "=r"(ir.s5) : "l"(v.s5)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s6), "=r"(ir.s6) : "l"(v.s6)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s7), "=r"(ir.s7) : "l"(v.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s8), "=r"(ir.s8) : "l"(v.s8)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.s9), "=r"(ir.s9) : "l"(v.s9)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sa), "=r"(ir.sa) : "l"(v.sa)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sb), "=r"(ir.sb) : "l"(v.sb)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sc), "=r"(ir.sc) : "l"(v.sc)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sd), "=r"(ir.sd) : "l"(v.sd)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.se), "=r"(ir.se) : "l"(v.se)); - asm volatile ("mov.b64 {%0, %1}, %2;" : "=r"(il.sf), "=r"(ir.sf) : "l"(v.sf)); - #endif - - u32x tl; - u32x tr; - - #if VECT_SIZE == 1 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl) : "r"(il)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr) : "r"(ir)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s0) : "r"(il.s0)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s0) : "r"(ir.s0)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s1) : "r"(il.s1)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s1) : "r"(ir.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s2) : "r"(il.s2)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s2) : "r"(ir.s2)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s3) : "r"(il.s3)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s3) : "r"(ir.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s4) : "r"(il.s4)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s4) : "r"(ir.s4)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s5) : "r"(il.s5)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s5) : "r"(ir.s5)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s6) : "r"(il.s6)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s6) : "r"(ir.s6)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s7) : "r"(il.s7)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s7) : "r"(ir.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s8) : "r"(il.s8)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s8) : "r"(ir.s8)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.s9) : "r"(il.s9)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.s9) : "r"(ir.s9)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sa) : "r"(il.sa)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sa) : "r"(ir.sa)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sb) : "r"(il.sb)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sb) : "r"(ir.sb)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sc) : "r"(il.sc)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sc) : "r"(ir.sc)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sd) : "r"(il.sd)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sd) : "r"(ir.sd)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.se) : "r"(il.se)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.se) : "r"(ir.se)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tl.sf) : "r"(il.sf)); - asm volatile ("prmt.b32 %0, %1, 0, 0x0123;" : "=r"(tr.sf) : "r"(ir.sf)); - #endif - - u64x r; - - #if VECT_SIZE == 1 - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r) : "r"(tr), "r"(tl)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s0) : "r"(tr.s0), "r"(tl.s0)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s1) : "r"(tr.s1), "r"(tl.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s2) : "r"(tr.s2), "r"(tl.s2)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s3) : "r"(tr.s3), "r"(tl.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s4) : "r"(tr.s4), "r"(tl.s4)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s5) : "r"(tr.s5), "r"(tl.s5)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s6) : "r"(tr.s6), "r"(tl.s6)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s7) : "r"(tr.s7), "r"(tl.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s8) : "r"(tr.s8), "r"(tl.s8)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.s9) : "r"(tr.s9), "r"(tl.s9)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sa) : "r"(tr.sa), "r"(tl.sa)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sb) : "r"(tr.sb), "r"(tl.sb)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sc) : "r"(tr.sc), "r"(tl.sc)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sd) : "r"(tr.sd), "r"(tl.sd)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.se) : "r"(tr.se), "r"(tl.se)); - asm volatile ("mov.b64 %0, {%1, %2};" : "=l"(r.sf) : "r"(tr.sf), "r"(tl.sf)); - #endif - - return r; -} - -DECLSPEC u32x rotr32 (const u32x a, const u32 n); -DECLSPEC u32x rotr32 (const u32x a, const u32 n) -{ - return rotate (a, (32 - n)); -} - -DECLSPEC u32x rotl32 (const u32x a, const u32 n); -DECLSPEC u32x rotl32 (const u32x a, const u32 n) -{ - return rotate (a, n); -} - -DECLSPEC u64x rotr64 (const u64x a, const u32 n); -DECLSPEC u64x rotr64 (const u64x a, const u32 n) -{ - return rotate (a, (u64x) (64 - n)); -} - -DECLSPEC u64x rotl64 (const u64x a, const u32 n); -DECLSPEC u64x rotl64 (const u64x a, const u32 n) -{ - return rotate (a, (u64x) n); -} - -DECLSPEC u32x hc_byte_perm (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_byte_perm (const u32x a, const u32x b, const u32x c) -{ - u32x r; - - #if VECT_SIZE == 1 - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c) ); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s0) : "r"(a.s0), "r"(b.s0), "r"(c.s0)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s1) : "r"(a.s1), "r"(b.s1), "r"(c.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s2) : "r"(a.s2), "r"(b.s2), "r"(c.s2)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s3) : "r"(a.s3), "r"(b.s3), "r"(c.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s4) : "r"(a.s4), "r"(b.s4), "r"(c.s4)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s5) : "r"(a.s5), "r"(b.s5), "r"(c.s5)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s6) : "r"(a.s6), "r"(b.s6), "r"(c.s6)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s7) : "r"(a.s7), "r"(b.s7), "r"(c.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s8) : "r"(a.s8), "r"(b.s8), "r"(c.s8)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.s9) : "r"(a.s9), "r"(b.s9), "r"(c.s9)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sa) : "r"(a.sa), "r"(b.sa), "r"(c.sa)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sb) : "r"(a.sb), "r"(b.sb), "r"(c.sb)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sc) : "r"(a.sc), "r"(b.sc), "r"(c.sc)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sd) : "r"(a.sd), "r"(b.sd), "r"(c.sd)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.se) : "r"(a.se), "r"(b.se), "r"(c.se)); - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r.sf) : "r"(a.sf), "r"(b.sf), "r"(c.sf)); - #endif - - return r; -} - -DECLSPEC u32 hc_byte_perm_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_byte_perm_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - asm volatile ("prmt.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c)); - - return r; -} - -DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c) -{ - u32x r; - - #if VECT_SIZE == 1 - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s0) : "r"(a.s0), "r"(b.s0), "r"(c.s0)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s1) : "r"(a.s1), "r"(b.s1), "r"(c.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s2) : "r"(a.s2), "r"(b.s2), "r"(c.s2)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s3) : "r"(a.s3), "r"(b.s3), "r"(c.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s4) : "r"(a.s4), "r"(b.s4), "r"(c.s4)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s5) : "r"(a.s5), "r"(b.s5), "r"(c.s5)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s6) : "r"(a.s6), "r"(b.s6), "r"(c.s6)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s7) : "r"(a.s7), "r"(b.s7), "r"(c.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s8) : "r"(a.s8), "r"(b.s8), "r"(c.s8)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.s9) : "r"(a.s9), "r"(b.s9), "r"(c.s9)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sa) : "r"(a.sa), "r"(b.sa), "r"(c.sa)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sb) : "r"(a.sb), "r"(b.sb), "r"(c.sb)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sc) : "r"(a.sc), "r"(b.sc), "r"(c.sc)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sd) : "r"(a.sd), "r"(b.sd), "r"(c.sd)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.se) : "r"(a.se), "r"(b.se), "r"(c.se)); - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r.sf) : "r"(a.sf), "r"(b.sf), "r"(c.sf)); - #endif - - return r; -} - -DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - asm volatile ("bfe.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(c)); - - return r; -} - -DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32x c) -{ - u32x r; - - #if CUDA_ARCH >= 350 - - #if VECT_SIZE == 1 - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(b), "r"(a), "r"((c & 3) * 8)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s0) : "r"(b.s0), "r"(a.s0), "r"((c.s0 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s1) : "r"(b.s1), "r"(a.s1), "r"((c.s1 & 3) * 8)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s2) : "r"(b.s2), "r"(a.s2), "r"((c.s2 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s3) : "r"(b.s3), "r"(a.s3), "r"((c.s3 & 3) * 8)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s4) : "r"(b.s4), "r"(a.s4), "r"((c.s4 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s5) : "r"(b.s5), "r"(a.s5), "r"((c.s5 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s6) : "r"(b.s6), "r"(a.s6), "r"((c.s6 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s7) : "r"(b.s7), "r"(a.s7), "r"((c.s7 & 3) * 8)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s8) : "r"(b.s8), "r"(a.s8), "r"((c.s8 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.s9) : "r"(b.s9), "r"(a.s9), "r"((c.s9 & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sa) : "r"(b.sa), "r"(a.sa), "r"((c.sa & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sb) : "r"(b.sb), "r"(a.sb), "r"((c.sb & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sc) : "r"(b.sc), "r"(a.sc), "r"((c.sc & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sd) : "r"(b.sd), "r"(a.sd), "r"((c.sd & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.se) : "r"(b.se), "r"(a.se), "r"((c.se & 3) * 8)); - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r.sf) : "r"(b.sf), "r"(a.sf), "r"((c.sf & 3) * 8)); - #endif - - #else - - r = hc_byte_perm (b, a, ((u32x) (0x76543210) >> ((c & 3) * 4)) & 0xffff); - - #endif - - return r; -} - -DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - #if CUDA_ARCH >= 350 - - asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(r) : "r"(b), "r"(a), "r"((c & 3) * 8)); - - #else - - r = hc_byte_perm_S (b, a, (0x76543210 >> ((c & 3) * 4)) & 0xffff); - - #endif - - return r; -} - -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) -{ - return a + b + c; -} - -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) -{ - return a + b + c; -} - -DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c) -{ - u32x r; - - #if CUDA_ARCH >= 500 - - #if VECT_SIZE == 1 - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r): "r"(a), "r"(b), "r"(c)); - #endif - - #if VECT_SIZE >= 2 - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s0): "r"(a.s0), "r"(b.s0), "r"(c.s0)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s1): "r"(a.s1), "r"(b.s1), "r"(c.s1)); - #endif - - #if VECT_SIZE >= 4 - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s2): "r"(a.s2), "r"(b.s2), "r"(c.s2)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s3): "r"(a.s3), "r"(b.s3), "r"(c.s3)); - #endif - - #if VECT_SIZE >= 8 - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s4): "r"(a.s4), "r"(b.s4), "r"(c.s4)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s5): "r"(a.s5), "r"(b.s5), "r"(c.s5)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s6): "r"(a.s6), "r"(b.s6), "r"(c.s6)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s7): "r"(a.s7), "r"(b.s7), "r"(c.s7)); - #endif - - #if VECT_SIZE >= 16 - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s8): "r"(a.s8), "r"(b.s8), "r"(c.s8)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.s9): "r"(a.s9), "r"(b.s9), "r"(c.s9)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sa): "r"(a.sa), "r"(b.sa), "r"(c.sa)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sb): "r"(a.sb), "r"(b.sb), "r"(c.sb)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sc): "r"(a.sc), "r"(b.sc), "r"(c.sc)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sd): "r"(a.sd), "r"(b.sd), "r"(c.sd)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.se): "r"(a.se), "r"(b.se), "r"(c.se)); - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r.sf): "r"(a.sf), "r"(b.sf), "r"(c.sf)); - #endif - - #else - - r = a ^ b ^ c; - - #endif - - return r; -} - -DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - #if CUDA_ARCH >= 500 - - asm volatile ("lop3.b32 %0, %1, %2, %3, 0x96;" : "=r"(r): "r"(a), "r"(b), "r"(c)); - - #else - - r = a ^ b ^ c; - - #endif - - return r; -} - -#endif - -#ifdef IS_GENERIC -DECLSPEC u32 swap32_S (const u32 v); -DECLSPEC u32 swap32_S (const u32 v) -{ - return (as_uint (as_uchar4 (v).s3210)); -} - -DECLSPEC u64 swap64_S (const u64 v); -DECLSPEC u64 swap64_S (const u64 v) -{ - return (as_ulong (as_uchar8 (v).s76543210)); -} - -DECLSPEC u32 rotr32_S (const u32 a, const u32 n); -DECLSPEC u32 rotr32_S (const u32 a, const u32 n) -{ - return rotate (a, (32 - n)); -} - -DECLSPEC u32 rotl32_S (const u32 a, const u32 n); -DECLSPEC u32 rotl32_S (const u32 a, const u32 n) -{ - return rotate (a, n); -} - -DECLSPEC u64 rotr64_S (const u64 a, const u32 n); -DECLSPEC u64 rotr64_S (const u64 a, const u32 n) -{ - return rotate (a, (u64) (64 - n)); -} - -DECLSPEC u64 rotl64_S (const u64 a, const u32 n); -DECLSPEC u64 rotl64_S (const u64 a, const u32 n) -{ - return rotate (a, (u64) n); -} - -DECLSPEC u32x swap32 (const u32x v); -DECLSPEC u32x swap32 (const u32x v) -{ - return ((v >> 24) & 0x000000ff) - | ((v >> 8) & 0x0000ff00) - | ((v << 8) & 0x00ff0000) - | ((v << 24) & 0xff000000); -} - -DECLSPEC u64x swap64 (const u64x v); -DECLSPEC u64x swap64 (const u64x v) -{ - return ((v >> 56) & 0x00000000000000ff) - | ((v >> 40) & 0x000000000000ff00) - | ((v >> 24) & 0x0000000000ff0000) - | ((v >> 8) & 0x00000000ff000000) - | ((v << 8) & 0x000000ff00000000) - | ((v << 24) & 0x0000ff0000000000) - | ((v << 40) & 0x00ff000000000000) - | ((v << 56) & 0xff00000000000000); -} - -DECLSPEC u32x rotr32 (const u32x a, const u32 n); -DECLSPEC u32x rotr32 (const u32x a, const u32 n) -{ - return rotate (a, (32 - n)); -} - -DECLSPEC u32x rotl32 (const u32x a, const u32 n); -DECLSPEC u32x rotl32 (const u32x a, const u32 n) -{ - return rotate (a, n); -} - -DECLSPEC u64x rotr64 (const u64x a, const u32 n); -DECLSPEC u64x rotr64 (const u64x a, const u32 n) -{ - return rotate (a, (u64x) (64 - n)); -} - -DECLSPEC u64x rotl64 (const u64x a, const u32 n); -DECLSPEC u64x rotl64 (const u64x a, const u32 n) -{ - return rotate (a, (u64x) n); -} - -DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_bfe (const u32x a, const u32x b, const u32x c) -{ - #define BIT(x) ((u32x) (1u) << (x)) - #define BIT_MASK(x) (BIT (x) - 1) - #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) - - return BFE (a, b, c); - - #undef BIT - #undef BIT_MASK - #undef BFE -} - -DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bfe_S (const u32 a, const u32 b, const u32 c) -{ - #define BIT(x) (1u << (x)) - #define BIT_MASK(x) (BIT (x) - 1) - #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z)) - - return BFE (a, b, c); - - #undef BIT - #undef BIT_MASK - #undef BFE -} - -DECLSPEC u32x hc_bytealign_be (const u32x a, const u32x b, const u32 c); -DECLSPEC u32x hc_bytealign_be (const u32x a, const u32x b, const u32 c) -{ - u32x r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a << 24) | (b >> 8); break; - case 2: r = (a << 16) | (b >> 16); break; - case 3: r = (a << 8) | (b >> 24); break; - } - - return r; -} - -DECLSPEC u32 hc_bytealign_be_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bytealign_be_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a << 24) | (b >> 8); break; - case 2: r = (a << 16) | (b >> 16); break; - case 3: r = (a << 8) | (b >> 24); break; - } - - return r; -} - -DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32 c); -DECLSPEC u32x hc_bytealign (const u32x a, const u32x b, const u32 c) -{ - u32x r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a >> 24) | (b << 8); break; - case 2: r = (a >> 16) | (b << 16); break; - case 3: r = (a >> 8) | (b << 24); break; - } - - return r; -} - -DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_bytealign_S (const u32 a, const u32 b, const u32 c) -{ - u32 r; - - switch (c & 3) - { - case 0: r = b; break; - case 1: r = (a >> 24) | (b << 8); break; - case 2: r = (a >> 16) | (b << 16); break; - case 3: r = (a >> 8) | (b << 24); break; - } - - return r; -} - -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_add3 (const u32x a, const u32x b, const u32x c) -{ - return a + b + c; -} - -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_add3_S (const u32 a, const u32 b, const u32 c) -{ - return a + b + c; -} - -DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c); -DECLSPEC u32x hc_lop_0x96 (const u32x a, const u32x b, const u32x c) -{ - return a ^ b ^ c; -} - -DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c); -DECLSPEC u32 hc_lop_0x96_S (const u32 a, const u32 b, const u32 c) -{ - return a ^ b ^ c; -} - -#endif - -typedef enum combinator_mode -{ - COMBINATOR_MODE_BASE_LEFT = 10001, - COMBINATOR_MODE_BASE_RIGHT = 10002 - -} combinator_mode_t; - -typedef struct digest -{ - u32 digest_buf[DGST_ELEM]; - -} digest_t; - -typedef struct salt -{ - u32 salt_buf[64]; - u32 salt_buf_pc[64]; - - u32 salt_len; - u32 salt_len_pc; - u32 salt_iter; - u32 salt_iter2; - u32 salt_sign[2]; - - u32 digests_cnt; - u32 digests_done; - - u32 digests_offset; - - u32 scrypt_N; - u32 scrypt_r; - u32 scrypt_p; - -} salt_t; - -typedef struct -{ - u32 key; - u64 val; - -} hcstat_table_t; - -typedef struct -{ - u32 cs_buf[0x100]; - u32 cs_len; - -} cs_t; - -typedef struct -{ - u32 cmds[32]; - -} kernel_rule_t; - -typedef struct pw -{ - u32 i[64]; - - u32 pw_len; - -} pw_t; - -typedef struct pw_idx -{ - u32 off; - u32 cnt; - u32 len; - -} pw_idx_t; - -typedef struct bf -{ - u32 i; - -} bf_t; - -typedef struct bs_word -{ - u32 b[32]; - -} bs_word_t; - -typedef struct plain -{ - u64 gidvid; - u32 il_pos; - u32 salt_pos; - u32 digest_pos; - u32 hash_pos; - u32 extra1; - u32 extra2; - -} plain_t; - -typedef struct keyboard_layout_mapping -{ - u32 src_char; - int src_len; - u32 dst_char; - int dst_len; - -} keyboard_layout_mapping_t; - -// functions - -DECLSPEC u8 v8a_from_v32_S (const u32 v32); -DECLSPEC u8 v8a_from_v32_S (const u32 v32) -{ - vconv32_t v; - - v.v32 = v32; - - return v.v8a; -} - -DECLSPEC u8 v8b_from_v32_S (const u32 v32); -DECLSPEC u8 v8b_from_v32_S (const u32 v32) -{ - vconv32_t v; - - v.v32 = v32; - - return v.v8b; -} - -DECLSPEC u8 v8c_from_v32_S (const u32 v32); -DECLSPEC u8 v8c_from_v32_S (const u32 v32) -{ - vconv32_t v; - - v.v32 = v32; - - return v.v8c; -} - -DECLSPEC u8 v8d_from_v32_S (const u32 v32); -DECLSPEC u8 v8d_from_v32_S (const u32 v32) -{ - vconv32_t v; - - v.v32 = v32; - - return v.v8d; -} - -DECLSPEC u16 v16a_from_v32_S (const u32 v32); -DECLSPEC u16 v16a_from_v32_S (const u32 v32) -{ - vconv32_t v; - - v.v32 = v32; - - return v.v16a; -} - -DECLSPEC u16 v16b_from_v32_S (const u32 v32); -DECLSPEC u16 v16b_from_v32_S (const u32 v32) -{ - vconv32_t v; - - v.v32 = v32; - - return v.v16b; -} - -DECLSPEC u32 v32_from_v16ab_S (const u16 v16a, const u16 v16b); -DECLSPEC u32 v32_from_v16ab_S (const u16 v16a, const u16 v16b) -{ - vconv32_t v; - - v.v16a = v16a; - v.v16b = v16b; - - return v.v32; -} - -DECLSPEC u32 v32a_from_v64_S (const u64 v64); -DECLSPEC u32 v32a_from_v64_S (const u64 v64) -{ - vconv64_t v; - - v.v64 = v64; - - return v.v32a; -} - -DECLSPEC u32 v32b_from_v64_S (const u64 v64); -DECLSPEC u32 v32b_from_v64_S (const u64 v64) -{ - vconv64_t v; - - v.v64 = v64; - - return v.v32b; -} - -DECLSPEC u64 v64_from_v32ab_S (const u32 v32a, const u32 v32b); -DECLSPEC u64 v64_from_v32ab_S (const u32 v32a, const u32 v32b) -{ - vconv64_t v; - - v.v32a = v32a; - v.v32b = v32b; - - return v.v64; -} - -// unpack function are similar, but always return u32 - -DECLSPEC u32 unpack_v8a_from_v32_S (const u32 v32); -DECLSPEC u32 unpack_v8a_from_v32_S (const u32 v32) -{ - u32 r; - - #if defined IS_NV - asm volatile ("bfe.u32 %0, %1, 0, 8;" : "=r"(r) : "r"(v32)); - #elif defined IS_AMD - #if HAS_VBFE - __asm__ __volatile__ ("V_BFE_U32 %0, %1, 0, 8;" : "=v"(r) : "v"(v32)); - #else - r = (v32 >> 0) & 0xff; - #endif - #else - r = (v32 >> 0) & 0xff; - #endif - - return r; -} - -DECLSPEC u32 unpack_v8b_from_v32_S (const u32 v32); -DECLSPEC u32 unpack_v8b_from_v32_S (const u32 v32) -{ - u32 r; - - #if defined IS_NV - asm volatile ("bfe.u32 %0, %1, 8, 8;" : "=r"(r) : "r"(v32)); - #elif defined IS_AMD - #if HAS_VBFE - __asm__ __volatile__ ("V_BFE_U32 %0, %1, 8, 8;" : "=v"(r) : "v"(v32)); - #else - r = (v32 >> 8) & 0xff; - #endif - #else - r = (v32 >> 8) & 0xff; - #endif - - return r; -} - -DECLSPEC u32 unpack_v8c_from_v32_S (const u32 v32); -DECLSPEC u32 unpack_v8c_from_v32_S (const u32 v32) -{ - u32 r; - - #if defined IS_NV - asm volatile ("bfe.u32 %0, %1, 16, 8;" : "=r"(r) : "r"(v32)); - #elif defined IS_AMD - #if HAS_VBFE - __asm__ __volatile__ ("V_BFE_U32 %0, %1, 16, 8;" : "=v"(r) : "v"(v32)); - #else - r = (v32 >> 16) & 0xff; - #endif - #else - r = (v32 >> 16) & 0xff; - #endif - - return r; -} - -DECLSPEC u32 unpack_v8d_from_v32_S (const u32 v32); -DECLSPEC u32 unpack_v8d_from_v32_S (const u32 v32) -{ - u32 r; - - #if defined IS_NV - asm volatile ("bfe.u32 %0, %1, 24, 8;" : "=r"(r) : "r"(v32)); - #elif defined IS_AMD - #if HAS_VBFE - __asm__ __volatile__ ("V_BFE_U32 %0, %1, 24, 8;" : "=v"(r) : "v"(v32)); - #else - r = (v32 >> 24) & 0xff; - #endif - #else - r = (v32 >> 24) & 0xff; - #endif - - return r; -} diff --git a/OpenCL/inc_hash_constants.h b/OpenCL/inc_types.h similarity index 85% rename from OpenCL/inc_hash_constants.h rename to OpenCL/inc_types.h index bef93efb7..cf2fb0953 100644 --- a/OpenCL/inc_hash_constants.h +++ b/OpenCL/inc_types.h @@ -1,3 +1,98 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +typedef uchar u8; +typedef ushort u16; +typedef uint u32; +typedef ulong u64; + +//testwise disabled +//typedef u8 u8a __attribute__ ((aligned (8))); +//typedef u16 u16a __attribute__ ((aligned (8))); +//typedef u32 u32a __attribute__ ((aligned (8))); +//typedef u64 u64a __attribute__ ((aligned (8))); + +typedef u8 u8a; +typedef u16 u16a; +typedef u32 u32a; +typedef u64 u64a; + +#ifndef NEW_SIMD_CODE +#undef VECT_SIZE +#define VECT_SIZE 1 +#endif + +#define CONCAT(a, b) a##b +#define VTYPE(type, width) CONCAT(type, width) + +#if VECT_SIZE == 1 +typedef uchar u8x; +typedef ushort u16x; +typedef uint u32x; +typedef ulong u64x; +#else +typedef VTYPE(uchar, VECT_SIZE) u8x; +typedef VTYPE(ushort, VECT_SIZE) u16x; +typedef VTYPE(uint, VECT_SIZE) u32x; +typedef VTYPE(ulong, VECT_SIZE) u64x; +#endif + +// unions + +typedef union vconv32 +{ + u64 v32; + + struct + { + u16 v16a; + u16 v16b; + }; + + struct + { + u8 v8a; + u8 v8b; + u8 v8c; + u8 v8d; + }; + +} vconv32_t; + +typedef union vconv64 +{ + u64 v64; + + struct + { + u32 v32a; + u32 v32b; + }; + + struct + { + u16 v16a; + u16 v16b; + u16 v16c; + u16 v16d; + }; + + struct + { + u8 v8a; + u8 v8b; + u8 v8c; + u8 v8d; + u8 v8e; + u8 v8f; + u8 v8g; + u8 v8h; + }; + +} vconv64_t; + /** * Author......: See docs/credits.txt * License.....: MIT @@ -652,3 +747,106 @@ typedef enum blake2b_constants } blake2b_constants_t; +typedef enum combinator_mode +{ + COMBINATOR_MODE_BASE_LEFT = 10001, + COMBINATOR_MODE_BASE_RIGHT = 10002 + +} combinator_mode_t; + +typedef struct digest +{ + u32 digest_buf[DGST_ELEM]; + +} digest_t; + +typedef struct salt +{ + u32 salt_buf[64]; + u32 salt_buf_pc[64]; + + u32 salt_len; + u32 salt_len_pc; + u32 salt_iter; + u32 salt_iter2; + u32 salt_sign[2]; + + u32 digests_cnt; + u32 digests_done; + + u32 digests_offset; + + u32 scrypt_N; + u32 scrypt_r; + u32 scrypt_p; + +} salt_t; + +typedef struct +{ + u32 key; + u64 val; + +} hcstat_table_t; + +typedef struct +{ + u32 cs_buf[0x100]; + u32 cs_len; + +} cs_t; + +typedef struct +{ + u32 cmds[32]; + +} kernel_rule_t; + +typedef struct pw +{ + u32 i[64]; + + u32 pw_len; + +} pw_t; + +typedef struct pw_idx +{ + u32 off; + u32 cnt; + u32 len; + +} pw_idx_t; + +typedef struct bf +{ + u32 i; + +} bf_t; + +typedef struct bs_word +{ + u32 b[32]; + +} bs_word_t; + +typedef struct plain +{ + u64 gidvid; + u32 il_pos; + u32 salt_pos; + u32 digest_pos; + u32 hash_pos; + u32 extra1; + u32 extra2; + +} plain_t; + +typedef struct keyboard_layout_mapping +{ + u32 src_char; + int src_len; + u32 dst_char; + int dst_len; + +} keyboard_layout_mapping_t; diff --git a/OpenCL/inc_vendor.cl b/OpenCL/inc_vendor.h similarity index 100% rename from OpenCL/inc_vendor.cl rename to OpenCL/inc_vendor.h diff --git a/OpenCL/inc_veracrypt_xts.cl b/OpenCL/inc_veracrypt_xts.cl index a7c598360..512ac110f 100644 --- a/OpenCL/inc_veracrypt_xts.cl +++ b/OpenCL/inc_veracrypt_xts.cl @@ -1,4 +1,3 @@ -DECLSPEC void camellia256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks); DECLSPEC void camellia256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks) { out[0] = in[0]; @@ -23,7 +22,6 @@ DECLSPEC void camellia256_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, out[3] ^= T[3]; } -DECLSPEC void camellia256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks); DECLSPEC void camellia256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks) { out[0] = in[0]; @@ -46,7 +44,6 @@ DECLSPEC void camellia256_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 out[3] ^= T[3]; } -DECLSPEC void kuznyechik_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks); DECLSPEC void kuznyechik_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, const u32 *in, u32 *out, u32 *S, u32 *T, u32 *ks) { out[0] = in[0]; @@ -71,7 +68,6 @@ DECLSPEC void kuznyechik_decrypt_xts_first (const u32 *ukey1, const u32 *ukey2, out[3] ^= T[3]; } -DECLSPEC void kuznyechik_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks); DECLSPEC void kuznyechik_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 *ks) { out[0] = in[0]; @@ -96,7 +92,6 @@ DECLSPEC void kuznyechik_decrypt_xts_next (const u32 *in, u32 *out, u32 *T, u32 // 512 bit -DECLSPEC int verify_header_camellia (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2); DECLSPEC int verify_header_camellia (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2) { u32 ks_camellia[68]; @@ -151,7 +146,6 @@ DECLSPEC int verify_header_camellia (__global const u32 *data_buf, const u32 sig return 1; } -DECLSPEC int verify_header_kuznyechik (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2); DECLSPEC int verify_header_kuznyechik (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2) { u32 ks_kuznyechik[40]; @@ -208,7 +202,6 @@ DECLSPEC int verify_header_kuznyechik (__global const u32 *data_buf, const u32 s // 1024 bit -DECLSPEC int verify_header_camellia_kuznyechik (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4); DECLSPEC int verify_header_camellia_kuznyechik (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4) { u32 ks_camellia[68]; @@ -268,7 +261,6 @@ DECLSPEC int verify_header_camellia_kuznyechik (__global const u32 *data_buf, co return 1; } -DECLSPEC int verify_header_camellia_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4); DECLSPEC int verify_header_camellia_serpent (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4) { u32 ks_camellia[68]; @@ -328,7 +320,6 @@ DECLSPEC int verify_header_camellia_serpent (__global const u32 *data_buf, const return 1; } -DECLSPEC int verify_header_kuznyechik_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4); DECLSPEC int verify_header_kuznyechik_aes (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, SHM_TYPE u32 *s_te0, SHM_TYPE u32 *s_te1, SHM_TYPE u32 *s_te2, SHM_TYPE u32 *s_te3, SHM_TYPE u32 *s_te4, SHM_TYPE u32 *s_td0, SHM_TYPE u32 *s_td1, SHM_TYPE u32 *s_td2, SHM_TYPE u32 *s_td3, SHM_TYPE u32 *s_td4) { u32 ks_kuznyechik[40]; @@ -388,7 +379,6 @@ DECLSPEC int verify_header_kuznyechik_aes (__global const u32 *data_buf, const u return 1; } -DECLSPEC int verify_header_kuznyechik_twofish (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4); DECLSPEC int verify_header_kuznyechik_twofish (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4) { u32 ks_kuznyechik[40]; @@ -452,7 +442,6 @@ DECLSPEC int verify_header_kuznyechik_twofish (__global const u32 *data_buf, con // 1536 bit -DECLSPEC int verify_header_kuznyechik_serpent_camellia (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, const u32 *ukey5, const u32 *ukey6); DECLSPEC int verify_header_kuznyechik_serpent_camellia (__global const u32 *data_buf, const u32 signature, const u32 *ukey1, const u32 *ukey2, const u32 *ukey3, const u32 *ukey4, const u32 *ukey5, const u32 *ukey6) { u32 ks_kuznyechik[40]; diff --git a/OpenCL/m00000_a0-optimized.cl b/OpenCL/m00000_a0-optimized.cl index 9670e47d2..cb7796ab3 100644 --- a/OpenCL/m00000_a0-optimized.cl +++ b/OpenCL/m00000_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00000_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00000_a0-pure.cl b/OpenCL/m00000_a0-pure.cl index 04b8d4005..86a3dad8b 100644 --- a/OpenCL/m00000_a0-pure.cl +++ b/OpenCL/m00000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00000_a1-optimized.cl b/OpenCL/m00000_a1-optimized.cl index 2bbd9324b..4e7b4d1fd 100644 --- a/OpenCL/m00000_a1-optimized.cl +++ b/OpenCL/m00000_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_simd.cl" diff --git a/OpenCL/m00000_a1-pure.cl b/OpenCL/m00000_a1-pure.cl index 3a9c95472..22abd053b 100644 --- a/OpenCL/m00000_a1-pure.cl +++ b/OpenCL/m00000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00000_a3-optimized.cl b/OpenCL/m00000_a3-optimized.cl index f46794af8..19f2cae9c 100644 --- a/OpenCL/m00000_a3-optimized.cl +++ b/OpenCL/m00000_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00000_a3-pure.cl b/OpenCL/m00000_a3-pure.cl index 907673903..878462330 100644 --- a/OpenCL/m00000_a3-pure.cl +++ b/OpenCL/m00000_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00010_a0-optimized.cl b/OpenCL/m00010_a0-optimized.cl index e565b94ca..b5c7b41f3 100644 --- a/OpenCL/m00010_a0-optimized.cl +++ b/OpenCL/m00010_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00010_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00010_a0-pure.cl b/OpenCL/m00010_a0-pure.cl index 162705f9e..c1d2941d4 100644 --- a/OpenCL/m00010_a0-pure.cl +++ b/OpenCL/m00010_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00010_a1-optimized.cl b/OpenCL/m00010_a1-optimized.cl index 1f4003f21..79f374e58 100644 --- a/OpenCL/m00010_a1-optimized.cl +++ b/OpenCL/m00010_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00010_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00010_a1-pure.cl b/OpenCL/m00010_a1-pure.cl index 40373293f..4a95a85b4 100644 --- a/OpenCL/m00010_a1-pure.cl +++ b/OpenCL/m00010_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00010_a3-optimized.cl b/OpenCL/m00010_a3-optimized.cl index 2b99f68bd..e536aafb4 100644 --- a/OpenCL/m00010_a3-optimized.cl +++ b/OpenCL/m00010_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #define MD5_STEP_REV(f,a,b,c,d,x,t,s) \ { \ diff --git a/OpenCL/m00010_a3-pure.cl b/OpenCL/m00010_a3-pure.cl index 16f0f38b2..19e96b4e7 100644 --- a/OpenCL/m00010_a3-pure.cl +++ b/OpenCL/m00010_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00020_a0-optimized.cl b/OpenCL/m00020_a0-optimized.cl index 94f430180..d54ed1bd3 100644 --- a/OpenCL/m00020_a0-optimized.cl +++ b/OpenCL/m00020_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00020_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00020_a0-pure.cl b/OpenCL/m00020_a0-pure.cl index 3a26ac49e..5584901ab 100644 --- a/OpenCL/m00020_a0-pure.cl +++ b/OpenCL/m00020_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00020_a1-optimized.cl b/OpenCL/m00020_a1-optimized.cl index 82bfc1fb1..b4d18c165 100644 --- a/OpenCL/m00020_a1-optimized.cl +++ b/OpenCL/m00020_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00020_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00020_a1-pure.cl b/OpenCL/m00020_a1-pure.cl index 540224ad5..b61c88ea3 100644 --- a/OpenCL/m00020_a1-pure.cl +++ b/OpenCL/m00020_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00020_a3-optimized.cl b/OpenCL/m00020_a3-optimized.cl index ea4628b8c..b72b802f8 100644 --- a/OpenCL/m00020_a3-optimized.cl +++ b/OpenCL/m00020_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m00020m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00020_a3-pure.cl b/OpenCL/m00020_a3-pure.cl index 1b4e680d2..37ee4f119 100644 --- a/OpenCL/m00020_a3-pure.cl +++ b/OpenCL/m00020_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00030_a0-optimized.cl b/OpenCL/m00030_a0-optimized.cl index bd6535c98..f6bd269b0 100644 --- a/OpenCL/m00030_a0-optimized.cl +++ b/OpenCL/m00030_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00030_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00030_a0-pure.cl b/OpenCL/m00030_a0-pure.cl index 1fd5b5456..61d4ad536 100644 --- a/OpenCL/m00030_a0-pure.cl +++ b/OpenCL/m00030_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00030_a1-optimized.cl b/OpenCL/m00030_a1-optimized.cl index fdbd26dcb..2320b6e1c 100644 --- a/OpenCL/m00030_a1-optimized.cl +++ b/OpenCL/m00030_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00030_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00030_a1-pure.cl b/OpenCL/m00030_a1-pure.cl index f4e2fd4a1..275feffde 100644 --- a/OpenCL/m00030_a1-pure.cl +++ b/OpenCL/m00030_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00030_a3-optimized.cl b/OpenCL/m00030_a3-optimized.cl index 091b4bfd3..3c034f655 100644 --- a/OpenCL/m00030_a3-optimized.cl +++ b/OpenCL/m00030_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #define MD5_STEP_REV(f,a,b,c,d,x,t,s) \ { \ diff --git a/OpenCL/m00030_a3-pure.cl b/OpenCL/m00030_a3-pure.cl index 6ee6d8735..2ce0a5c26 100644 --- a/OpenCL/m00030_a3-pure.cl +++ b/OpenCL/m00030_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00040_a0-optimized.cl b/OpenCL/m00040_a0-optimized.cl index 3fea14114..ff446998b 100644 --- a/OpenCL/m00040_a0-optimized.cl +++ b/OpenCL/m00040_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00040_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00040_a0-pure.cl b/OpenCL/m00040_a0-pure.cl index d63e243ed..7dc04545f 100644 --- a/OpenCL/m00040_a0-pure.cl +++ b/OpenCL/m00040_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00040_a1-optimized.cl b/OpenCL/m00040_a1-optimized.cl index 6e544030d..d62dab286 100644 --- a/OpenCL/m00040_a1-optimized.cl +++ b/OpenCL/m00040_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m00040_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00040_a1-pure.cl b/OpenCL/m00040_a1-pure.cl index b1424dcdd..ff5096c38 100644 --- a/OpenCL/m00040_a1-pure.cl +++ b/OpenCL/m00040_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00040_a3-optimized.cl b/OpenCL/m00040_a3-optimized.cl index f8c3a35ef..70fee879f 100644 --- a/OpenCL/m00040_a3-optimized.cl +++ b/OpenCL/m00040_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m00040m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00040_a3-pure.cl b/OpenCL/m00040_a3-pure.cl index 867a5136b..d24baa8c5 100644 --- a/OpenCL/m00040_a3-pure.cl +++ b/OpenCL/m00040_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00050_a0-optimized.cl b/OpenCL/m00050_a0-optimized.cl index d423feaf0..d15f145b7 100644 --- a/OpenCL/m00050_a0-optimized.cl +++ b/OpenCL/m00050_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00050_a0-pure.cl b/OpenCL/m00050_a0-pure.cl index 975c81378..e5bdd809e 100644 --- a/OpenCL/m00050_a0-pure.cl +++ b/OpenCL/m00050_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00050_a1-optimized.cl b/OpenCL/m00050_a1-optimized.cl index c29f16dae..378e0b741 100644 --- a/OpenCL/m00050_a1-optimized.cl +++ b/OpenCL/m00050_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00050_a1-pure.cl b/OpenCL/m00050_a1-pure.cl index 74ef70be8..32a3f4409 100644 --- a/OpenCL/m00050_a1-pure.cl +++ b/OpenCL/m00050_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00050_a3-optimized.cl b/OpenCL/m00050_a3-optimized.cl index 366957956..ef0d0002e 100644 --- a/OpenCL/m00050_a3-optimized.cl +++ b/OpenCL/m00050_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00050_a3-pure.cl b/OpenCL/m00050_a3-pure.cl index 24d12103e..cddbea47d 100644 --- a/OpenCL/m00050_a3-pure.cl +++ b/OpenCL/m00050_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00060_a0-optimized.cl b/OpenCL/m00060_a0-optimized.cl index 82cc698d8..47c4df0d5 100644 --- a/OpenCL/m00060_a0-optimized.cl +++ b/OpenCL/m00060_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00060_a0-pure.cl b/OpenCL/m00060_a0-pure.cl index 554c493ea..c60e9facf 100644 --- a/OpenCL/m00060_a0-pure.cl +++ b/OpenCL/m00060_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00060_a1-optimized.cl b/OpenCL/m00060_a1-optimized.cl index 6a5b76819..38ab6861a 100644 --- a/OpenCL/m00060_a1-optimized.cl +++ b/OpenCL/m00060_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00060_a1-pure.cl b/OpenCL/m00060_a1-pure.cl index ed8af4509..774eec291 100644 --- a/OpenCL/m00060_a1-pure.cl +++ b/OpenCL/m00060_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00060_a3-optimized.cl b/OpenCL/m00060_a3-optimized.cl index 08d1d6cf3..4dfeb52f2 100644 --- a/OpenCL/m00060_a3-optimized.cl +++ b/OpenCL/m00060_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00060_a3-pure.cl b/OpenCL/m00060_a3-pure.cl index de705e6b4..d2281ebd0 100644 --- a/OpenCL/m00060_a3-pure.cl +++ b/OpenCL/m00060_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00100_a0-optimized.cl b/OpenCL/m00100_a0-optimized.cl index 7e05f0260..1dce62513 100644 --- a/OpenCL/m00100_a0-optimized.cl +++ b/OpenCL/m00100_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00100_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00100_a0-pure.cl b/OpenCL/m00100_a0-pure.cl index 87b426083..f17b661d6 100644 --- a/OpenCL/m00100_a0-pure.cl +++ b/OpenCL/m00100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00100_a1-optimized.cl b/OpenCL/m00100_a1-optimized.cl index bc9e9552b..492ed93d7 100644 --- a/OpenCL/m00100_a1-optimized.cl +++ b/OpenCL/m00100_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00100_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00100_a1-pure.cl b/OpenCL/m00100_a1-pure.cl index f7ff108f6..d715f2b1a 100644 --- a/OpenCL/m00100_a1-pure.cl +++ b/OpenCL/m00100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00100_a3-optimized.cl b/OpenCL/m00100_a3-optimized.cl index 1f27903db..aae1cc7ba 100644 --- a/OpenCL/m00100_a3-optimized.cl +++ b/OpenCL/m00100_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m00100m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m00100_a3-pure.cl b/OpenCL/m00100_a3-pure.cl index 819a50d79..9ae9affe3 100644 --- a/OpenCL/m00100_a3-pure.cl +++ b/OpenCL/m00100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00110_a0-optimized.cl b/OpenCL/m00110_a0-optimized.cl index 0e71cef8b..0de75d3c5 100644 --- a/OpenCL/m00110_a0-optimized.cl +++ b/OpenCL/m00110_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00110_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00110_a0-pure.cl b/OpenCL/m00110_a0-pure.cl index e2efbdfe9..d3e2730dc 100644 --- a/OpenCL/m00110_a0-pure.cl +++ b/OpenCL/m00110_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00110_a1-optimized.cl b/OpenCL/m00110_a1-optimized.cl index aba132e5d..cf9accbb4 100644 --- a/OpenCL/m00110_a1-optimized.cl +++ b/OpenCL/m00110_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00110_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00110_a1-pure.cl b/OpenCL/m00110_a1-pure.cl index ad8bac633..26173a281 100644 --- a/OpenCL/m00110_a1-pure.cl +++ b/OpenCL/m00110_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00110_a3-optimized.cl b/OpenCL/m00110_a3-optimized.cl index 599acf2f4..1967ea9f5 100644 --- a/OpenCL/m00110_a3-optimized.cl +++ b/OpenCL/m00110_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m00110m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m00110_a3-pure.cl b/OpenCL/m00110_a3-pure.cl index b69cfa0de..adc982011 100644 --- a/OpenCL/m00110_a3-pure.cl +++ b/OpenCL/m00110_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00120_a0-optimized.cl b/OpenCL/m00120_a0-optimized.cl index a618e4e20..dc0ef8f2e 100644 --- a/OpenCL/m00120_a0-optimized.cl +++ b/OpenCL/m00120_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00120_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00120_a0-pure.cl b/OpenCL/m00120_a0-pure.cl index 6c02b01a4..e271fdfc7 100644 --- a/OpenCL/m00120_a0-pure.cl +++ b/OpenCL/m00120_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00120_a1-optimized.cl b/OpenCL/m00120_a1-optimized.cl index 15762357c..183b87dca 100644 --- a/OpenCL/m00120_a1-optimized.cl +++ b/OpenCL/m00120_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00120_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00120_a1-pure.cl b/OpenCL/m00120_a1-pure.cl index 5b574c1cf..79fc5a96d 100644 --- a/OpenCL/m00120_a1-pure.cl +++ b/OpenCL/m00120_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00120_a3-optimized.cl b/OpenCL/m00120_a3-optimized.cl index 8b8f67b58..33e044b3c 100644 --- a/OpenCL/m00120_a3-optimized.cl +++ b/OpenCL/m00120_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m00120m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00120_a3-pure.cl b/OpenCL/m00120_a3-pure.cl index 609f3936d..ca53c17e5 100644 --- a/OpenCL/m00120_a3-pure.cl +++ b/OpenCL/m00120_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00130_a0-optimized.cl b/OpenCL/m00130_a0-optimized.cl index 87db1f2f1..277bef9c9 100644 --- a/OpenCL/m00130_a0-optimized.cl +++ b/OpenCL/m00130_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00130_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00130_a0-pure.cl b/OpenCL/m00130_a0-pure.cl index acdf8b09e..4de1ad8ca 100644 --- a/OpenCL/m00130_a0-pure.cl +++ b/OpenCL/m00130_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00130_a1-optimized.cl b/OpenCL/m00130_a1-optimized.cl index 98ce3989f..963e610dc 100644 --- a/OpenCL/m00130_a1-optimized.cl +++ b/OpenCL/m00130_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00130_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00130_a1-pure.cl b/OpenCL/m00130_a1-pure.cl index 5175b3d99..69b9bdd91 100644 --- a/OpenCL/m00130_a1-pure.cl +++ b/OpenCL/m00130_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00130_a3-optimized.cl b/OpenCL/m00130_a3-optimized.cl index 4e540943e..0bc5d6363 100644 --- a/OpenCL/m00130_a3-optimized.cl +++ b/OpenCL/m00130_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m00130m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m00130_a3-pure.cl b/OpenCL/m00130_a3-pure.cl index 2549e284c..c6548df4d 100644 --- a/OpenCL/m00130_a3-pure.cl +++ b/OpenCL/m00130_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00140_a0-optimized.cl b/OpenCL/m00140_a0-optimized.cl index 18143986c..7d98027b3 100644 --- a/OpenCL/m00140_a0-optimized.cl +++ b/OpenCL/m00140_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00140_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00140_a0-pure.cl b/OpenCL/m00140_a0-pure.cl index 02795c502..6e5e3c606 100644 --- a/OpenCL/m00140_a0-pure.cl +++ b/OpenCL/m00140_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00140_a1-optimized.cl b/OpenCL/m00140_a1-optimized.cl index fe448f032..8d05333a8 100644 --- a/OpenCL/m00140_a1-optimized.cl +++ b/OpenCL/m00140_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00140_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00140_a1-pure.cl b/OpenCL/m00140_a1-pure.cl index ed211f9ae..cee5b7989 100644 --- a/OpenCL/m00140_a1-pure.cl +++ b/OpenCL/m00140_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00140_a3-optimized.cl b/OpenCL/m00140_a3-optimized.cl index 01ec83337..a677449a4 100644 --- a/OpenCL/m00140_a3-optimized.cl +++ b/OpenCL/m00140_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m00140m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00140_a3-pure.cl b/OpenCL/m00140_a3-pure.cl index bbe21ef22..5859cd847 100644 --- a/OpenCL/m00140_a3-pure.cl +++ b/OpenCL/m00140_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00150_a0-optimized.cl b/OpenCL/m00150_a0-optimized.cl index 9ab7c2413..1bdcfdf32 100644 --- a/OpenCL/m00150_a0-optimized.cl +++ b/OpenCL/m00150_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00150_a0-pure.cl b/OpenCL/m00150_a0-pure.cl index 683113585..1e2d37f3c 100644 --- a/OpenCL/m00150_a0-pure.cl +++ b/OpenCL/m00150_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00150_a1-optimized.cl b/OpenCL/m00150_a1-optimized.cl index 606dfdc1b..1e9f5a95f 100644 --- a/OpenCL/m00150_a1-optimized.cl +++ b/OpenCL/m00150_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00150_a1-pure.cl b/OpenCL/m00150_a1-pure.cl index 8c31203d0..1b4d40f83 100644 --- a/OpenCL/m00150_a1-pure.cl +++ b/OpenCL/m00150_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00150_a3-optimized.cl b/OpenCL/m00150_a3-optimized.cl index acc53b967..9e2a0cb92 100644 --- a/OpenCL/m00150_a3-optimized.cl +++ b/OpenCL/m00150_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00150_a3-pure.cl b/OpenCL/m00150_a3-pure.cl index 0769e56c6..dc11cafb4 100644 --- a/OpenCL/m00150_a3-pure.cl +++ b/OpenCL/m00150_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00160_a0-optimized.cl b/OpenCL/m00160_a0-optimized.cl index 414ee2446..234d98e4c 100644 --- a/OpenCL/m00160_a0-optimized.cl +++ b/OpenCL/m00160_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00160_a0-pure.cl b/OpenCL/m00160_a0-pure.cl index d5a25e845..a61b9b199 100644 --- a/OpenCL/m00160_a0-pure.cl +++ b/OpenCL/m00160_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00160_a1-optimized.cl b/OpenCL/m00160_a1-optimized.cl index 0f5025896..315c254cc 100644 --- a/OpenCL/m00160_a1-optimized.cl +++ b/OpenCL/m00160_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00160_a1-pure.cl b/OpenCL/m00160_a1-pure.cl index aac58a349..196b96f22 100644 --- a/OpenCL/m00160_a1-pure.cl +++ b/OpenCL/m00160_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00160_a3-optimized.cl b/OpenCL/m00160_a3-optimized.cl index 405a7ca49..6c2bd1126 100644 --- a/OpenCL/m00160_a3-optimized.cl +++ b/OpenCL/m00160_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00160_a3-pure.cl b/OpenCL/m00160_a3-pure.cl index f86eb66a7..8394e362a 100644 --- a/OpenCL/m00160_a3-pure.cl +++ b/OpenCL/m00160_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00200_a0-optimized.cl b/OpenCL/m00200_a0-optimized.cl index 64afb2560..4ddfcc4c4 100644 --- a/OpenCL/m00200_a0-optimized.cl +++ b/OpenCL/m00200_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00200_a1-optimized.cl b/OpenCL/m00200_a1-optimized.cl index ca6800431..d1d4d2e3e 100644 --- a/OpenCL/m00200_a1-optimized.cl +++ b/OpenCL/m00200_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m00200_a3-optimized.cl b/OpenCL/m00200_a3-optimized.cl index 4fb3f78fc..19232a7c0 100644 --- a/OpenCL/m00200_a3-optimized.cl +++ b/OpenCL/m00200_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m00300_a0-optimized.cl b/OpenCL/m00300_a0-optimized.cl index 67b53bbfb..1710c50bb 100644 --- a/OpenCL/m00300_a0-optimized.cl +++ b/OpenCL/m00300_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00300_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00300_a0-pure.cl b/OpenCL/m00300_a0-pure.cl index fabfe65a4..e92cfcfda 100644 --- a/OpenCL/m00300_a0-pure.cl +++ b/OpenCL/m00300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00300_a1-optimized.cl b/OpenCL/m00300_a1-optimized.cl index 1d1becacb..497cc9078 100644 --- a/OpenCL/m00300_a1-optimized.cl +++ b/OpenCL/m00300_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m00300_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00300_a1-pure.cl b/OpenCL/m00300_a1-pure.cl index 57a25e292..8606afed0 100644 --- a/OpenCL/m00300_a1-pure.cl +++ b/OpenCL/m00300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00300_a3-optimized.cl b/OpenCL/m00300_a3-optimized.cl index 697d86f78..85edbce23 100644 --- a/OpenCL/m00300_a3-optimized.cl +++ b/OpenCL/m00300_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m00300m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m00300_a3-pure.cl b/OpenCL/m00300_a3-pure.cl index 35242eda1..7ffbad9aa 100644 --- a/OpenCL/m00300_a3-pure.cl +++ b/OpenCL/m00300_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m00400-optimized.cl b/OpenCL/m00400-optimized.cl index 62970e2b1..40cd12c3b 100644 --- a/OpenCL/m00400-optimized.cl +++ b/OpenCL/m00400-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00400-pure.cl b/OpenCL/m00400-pure.cl index c945ae3c3..c74b63680 100644 --- a/OpenCL/m00400-pure.cl +++ b/OpenCL/m00400-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00500-optimized.cl b/OpenCL/m00500-optimized.cl index eddc33a0a..b04563d2e 100644 --- a/OpenCL/m00500-optimized.cl +++ b/OpenCL/m00500-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00500-pure.cl b/OpenCL/m00500-pure.cl index f4ea85e76..52883f275 100644 --- a/OpenCL/m00500-pure.cl +++ b/OpenCL/m00500-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m00600_a0-optimized.cl b/OpenCL/m00600_a0-optimized.cl index 8a64b977b..919047f98 100644 --- a/OpenCL/m00600_a0-optimized.cl +++ b/OpenCL/m00600_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00600_a1-optimized.cl b/OpenCL/m00600_a1-optimized.cl index 7d4d837bb..9e7d3a26a 100644 --- a/OpenCL/m00600_a1-optimized.cl +++ b/OpenCL/m00600_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m00600_a3-optimized.cl b/OpenCL/m00600_a3-optimized.cl index bb3796ade..ebd3f822a 100644 --- a/OpenCL/m00600_a3-optimized.cl +++ b/OpenCL/m00600_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m00900_a0-optimized.cl b/OpenCL/m00900_a0-optimized.cl index 7774ce314..54f0c8362 100644 --- a/OpenCL/m00900_a0-optimized.cl +++ b/OpenCL/m00900_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" __kernel void m00900_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m00900_a0-pure.cl b/OpenCL/m00900_a0-pure.cl index 334d0d465..bb05f92ec 100644 --- a/OpenCL/m00900_a0-pure.cl +++ b/OpenCL/m00900_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m00900_a1-optimized.cl b/OpenCL/m00900_a1-optimized.cl index 8f509af4d..8b502e3d3 100644 --- a/OpenCL/m00900_a1-optimized.cl +++ b/OpenCL/m00900_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" __kernel void m00900_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m00900_a1-pure.cl b/OpenCL/m00900_a1-pure.cl index 996a8937b..d32013cef 100644 --- a/OpenCL/m00900_a1-pure.cl +++ b/OpenCL/m00900_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m00900_a3-optimized.cl b/OpenCL/m00900_a3-optimized.cl index 4d21b73c0..f258ed645 100644 --- a/OpenCL/m00900_a3-optimized.cl +++ b/OpenCL/m00900_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" #define MD4_STEP_REV(f,a,b,c,d,x,t,s) \ { \ diff --git a/OpenCL/m00900_a3-pure.cl b/OpenCL/m00900_a3-pure.cl index 8a7662c92..6d1a346a5 100644 --- a/OpenCL/m00900_a3-pure.cl +++ b/OpenCL/m00900_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m01000_a0-optimized.cl b/OpenCL/m01000_a0-optimized.cl index 4faf305dc..7ccb8c29d 100644 --- a/OpenCL/m01000_a0-optimized.cl +++ b/OpenCL/m01000_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" __kernel void m01000_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m01000_a0-pure.cl b/OpenCL/m01000_a0-pure.cl index a505633c5..203a18f21 100644 --- a/OpenCL/m01000_a0-pure.cl +++ b/OpenCL/m01000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01000_a1-optimized.cl b/OpenCL/m01000_a1-optimized.cl index 1fd29bb6d..2a807f4e8 100644 --- a/OpenCL/m01000_a1-optimized.cl +++ b/OpenCL/m01000_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" __kernel void m01000_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m01000_a1-pure.cl b/OpenCL/m01000_a1-pure.cl index 67b362099..f07f58822 100644 --- a/OpenCL/m01000_a1-pure.cl +++ b/OpenCL/m01000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m01000_a3-optimized.cl b/OpenCL/m01000_a3-optimized.cl index e676bde80..80b2a9421 100644 --- a/OpenCL/m01000_a3-optimized.cl +++ b/OpenCL/m01000_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" #define MD4_STEP_REV(f,a,b,c,d,x,t,s) \ { \ diff --git a/OpenCL/m01000_a3-pure.cl b/OpenCL/m01000_a3-pure.cl index 95bce5431..a3e51b44e 100644 --- a/OpenCL/m01000_a3-pure.cl +++ b/OpenCL/m01000_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m01100_a0-optimized.cl b/OpenCL/m01100_a0-optimized.cl index 47d0e419d..ce540612a 100644 --- a/OpenCL/m01100_a0-optimized.cl +++ b/OpenCL/m01100_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m01100_a0-pure.cl b/OpenCL/m01100_a0-pure.cl index 0c8e386b2..164bea1a7 100644 --- a/OpenCL/m01100_a0-pure.cl +++ b/OpenCL/m01100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01100_a1-optimized.cl b/OpenCL/m01100_a1-optimized.cl index 6a2f3bb83..f5cf5cdca 100644 --- a/OpenCL/m01100_a1-optimized.cl +++ b/OpenCL/m01100_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" __kernel void m01100_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m01100_a1-pure.cl b/OpenCL/m01100_a1-pure.cl index 9167ef725..9d37b477f 100644 --- a/OpenCL/m01100_a1-pure.cl +++ b/OpenCL/m01100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m01100_a3-optimized.cl b/OpenCL/m01100_a3-optimized.cl index f1427c937..b1805bfbb 100644 --- a/OpenCL/m01100_a3-optimized.cl +++ b/OpenCL/m01100_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" DECLSPEC void m01100m (__local salt_t *s_salt_buf, u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m01100_a3-pure.cl b/OpenCL/m01100_a3-pure.cl index 79f261a0a..43bba9cc7 100644 --- a/OpenCL/m01100_a3-pure.cl +++ b/OpenCL/m01100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m01300_a0-optimized.cl b/OpenCL/m01300_a0-optimized.cl index 82421c1b3..5c77c8d9b 100644 --- a/OpenCL/m01300_a0-optimized.cl +++ b/OpenCL/m01300_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha224.cl" #define SHA224_STEP_REV(a,b,c,d,e,f,g) \ { \ diff --git a/OpenCL/m01300_a0-pure.cl b/OpenCL/m01300_a0-pure.cl index 75801481c..e44dc8482 100644 --- a/OpenCL/m01300_a0-pure.cl +++ b/OpenCL/m01300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01300_a1-optimized.cl b/OpenCL/m01300_a1-optimized.cl index b1d627c83..8ee9ab709 100644 --- a/OpenCL/m01300_a1-optimized.cl +++ b/OpenCL/m01300_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha224.cl" #define SHA224_STEP_REV(a,b,c,d,e,f,g) \ { \ diff --git a/OpenCL/m01300_a1-pure.cl b/OpenCL/m01300_a1-pure.cl index 5220a9de1..e9537e067 100644 --- a/OpenCL/m01300_a1-pure.cl +++ b/OpenCL/m01300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha224.cl" diff --git a/OpenCL/m01300_a3-optimized.cl b/OpenCL/m01300_a3-optimized.cl index 2fc9a80aa..bc9e01053 100644 --- a/OpenCL/m01300_a3-optimized.cl +++ b/OpenCL/m01300_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha224.cl" #define SHA224_STEP_REV(a,b,c,d,e,f,g) \ { \ diff --git a/OpenCL/m01300_a3-pure.cl b/OpenCL/m01300_a3-pure.cl index 7609a65d2..34d4e9fc3 100644 --- a/OpenCL/m01300_a3-pure.cl +++ b/OpenCL/m01300_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha224.cl" diff --git a/OpenCL/m01400_a0-optimized.cl b/OpenCL/m01400_a0-optimized.cl index bd8063550..c3863c9c9 100644 --- a/OpenCL/m01400_a0-optimized.cl +++ b/OpenCL/m01400_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01400_a0-pure.cl b/OpenCL/m01400_a0-pure.cl index 89a278f68..454f30cd0 100644 --- a/OpenCL/m01400_a0-pure.cl +++ b/OpenCL/m01400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01400_a1-optimized.cl b/OpenCL/m01400_a1-optimized.cl index b9d104563..852224f17 100644 --- a/OpenCL/m01400_a1-optimized.cl +++ b/OpenCL/m01400_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01400_a1-pure.cl b/OpenCL/m01400_a1-pure.cl index 2aea28843..7fcf25a13 100644 --- a/OpenCL/m01400_a1-pure.cl +++ b/OpenCL/m01400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01400_a3-optimized.cl b/OpenCL/m01400_a3-optimized.cl index cc69153f6..beface9d0 100644 --- a/OpenCL/m01400_a3-optimized.cl +++ b/OpenCL/m01400_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01400_a3-pure.cl b/OpenCL/m01400_a3-pure.cl index 288f5fd06..90172b944 100644 --- a/OpenCL/m01400_a3-pure.cl +++ b/OpenCL/m01400_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01410_a0-optimized.cl b/OpenCL/m01410_a0-optimized.cl index f1e3d51a5..ee5ceae80 100644 --- a/OpenCL/m01410_a0-optimized.cl +++ b/OpenCL/m01410_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01410_a0-pure.cl b/OpenCL/m01410_a0-pure.cl index b0aa0ab8c..42b6c15be 100644 --- a/OpenCL/m01410_a0-pure.cl +++ b/OpenCL/m01410_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01410_a1-optimized.cl b/OpenCL/m01410_a1-optimized.cl index 949519ddc..b57aa805d 100644 --- a/OpenCL/m01410_a1-optimized.cl +++ b/OpenCL/m01410_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01410_a1-pure.cl b/OpenCL/m01410_a1-pure.cl index c0cf80209..fb5b379b7 100644 --- a/OpenCL/m01410_a1-pure.cl +++ b/OpenCL/m01410_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01410_a3-optimized.cl b/OpenCL/m01410_a3-optimized.cl index 3c6997d9e..ca9fc1d6f 100644 --- a/OpenCL/m01410_a3-optimized.cl +++ b/OpenCL/m01410_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01410_a3-pure.cl b/OpenCL/m01410_a3-pure.cl index 571c1c961..01c1cb825 100644 --- a/OpenCL/m01410_a3-pure.cl +++ b/OpenCL/m01410_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01420_a0-optimized.cl b/OpenCL/m01420_a0-optimized.cl index ad7855d3a..65432d186 100644 --- a/OpenCL/m01420_a0-optimized.cl +++ b/OpenCL/m01420_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01420_a0-pure.cl b/OpenCL/m01420_a0-pure.cl index 5dced2803..3e5783ede 100644 --- a/OpenCL/m01420_a0-pure.cl +++ b/OpenCL/m01420_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01420_a1-optimized.cl b/OpenCL/m01420_a1-optimized.cl index 291f3c78f..730410d07 100644 --- a/OpenCL/m01420_a1-optimized.cl +++ b/OpenCL/m01420_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01420_a1-pure.cl b/OpenCL/m01420_a1-pure.cl index b5e89184a..9abd345f2 100644 --- a/OpenCL/m01420_a1-pure.cl +++ b/OpenCL/m01420_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01420_a3-optimized.cl b/OpenCL/m01420_a3-optimized.cl index 331be6bb0..b7e3c98b6 100644 --- a/OpenCL/m01420_a3-optimized.cl +++ b/OpenCL/m01420_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01420_a3-pure.cl b/OpenCL/m01420_a3-pure.cl index 962c71a7b..617c82f42 100644 --- a/OpenCL/m01420_a3-pure.cl +++ b/OpenCL/m01420_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01430_a0-optimized.cl b/OpenCL/m01430_a0-optimized.cl index 82b02abf2..a1e3891ed 100644 --- a/OpenCL/m01430_a0-optimized.cl +++ b/OpenCL/m01430_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01430_a0-pure.cl b/OpenCL/m01430_a0-pure.cl index 6797a2290..435219671 100644 --- a/OpenCL/m01430_a0-pure.cl +++ b/OpenCL/m01430_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01430_a1-optimized.cl b/OpenCL/m01430_a1-optimized.cl index 24341d471..9e49e97cd 100644 --- a/OpenCL/m01430_a1-optimized.cl +++ b/OpenCL/m01430_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01430_a1-pure.cl b/OpenCL/m01430_a1-pure.cl index 7f804c0d0..df0190f50 100644 --- a/OpenCL/m01430_a1-pure.cl +++ b/OpenCL/m01430_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01430_a3-optimized.cl b/OpenCL/m01430_a3-optimized.cl index 90125729c..edaf6e6a8 100644 --- a/OpenCL/m01430_a3-optimized.cl +++ b/OpenCL/m01430_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01430_a3-pure.cl b/OpenCL/m01430_a3-pure.cl index 6b0a05a50..e0984fa6a 100644 --- a/OpenCL/m01430_a3-pure.cl +++ b/OpenCL/m01430_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01440_a0-optimized.cl b/OpenCL/m01440_a0-optimized.cl index dc74d0e28..2d7ba9f0e 100644 --- a/OpenCL/m01440_a0-optimized.cl +++ b/OpenCL/m01440_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01440_a0-pure.cl b/OpenCL/m01440_a0-pure.cl index ccac0c57d..4e1f3869b 100644 --- a/OpenCL/m01440_a0-pure.cl +++ b/OpenCL/m01440_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01440_a1-optimized.cl b/OpenCL/m01440_a1-optimized.cl index 24ce60dde..9155c7c4e 100644 --- a/OpenCL/m01440_a1-optimized.cl +++ b/OpenCL/m01440_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01440_a1-pure.cl b/OpenCL/m01440_a1-pure.cl index 461b59443..9a80f519d 100644 --- a/OpenCL/m01440_a1-pure.cl +++ b/OpenCL/m01440_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01440_a3-optimized.cl b/OpenCL/m01440_a3-optimized.cl index 63f0dc8ce..f32d36a02 100644 --- a/OpenCL/m01440_a3-optimized.cl +++ b/OpenCL/m01440_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #define SHA256_STEP_REV(a,b,c,d,e,f,g,h) \ { \ diff --git a/OpenCL/m01440_a3-pure.cl b/OpenCL/m01440_a3-pure.cl index 37cbf1fc4..8d382f839 100644 --- a/OpenCL/m01440_a3-pure.cl +++ b/OpenCL/m01440_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01450_a0-optimized.cl b/OpenCL/m01450_a0-optimized.cl index d44f19e60..f2f2d91e1 100644 --- a/OpenCL/m01450_a0-optimized.cl +++ b/OpenCL/m01450_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m01450_a0-pure.cl b/OpenCL/m01450_a0-pure.cl index f8d5eff85..f576e157a 100644 --- a/OpenCL/m01450_a0-pure.cl +++ b/OpenCL/m01450_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01450_a1-optimized.cl b/OpenCL/m01450_a1-optimized.cl index e49ee66f1..c8eddf083 100644 --- a/OpenCL/m01450_a1-optimized.cl +++ b/OpenCL/m01450_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01450_a1-pure.cl b/OpenCL/m01450_a1-pure.cl index ffae634c1..67634306d 100644 --- a/OpenCL/m01450_a1-pure.cl +++ b/OpenCL/m01450_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01450_a3-optimized.cl b/OpenCL/m01450_a3-optimized.cl index fca09f65c..6eccfdb2c 100644 --- a/OpenCL/m01450_a3-optimized.cl +++ b/OpenCL/m01450_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01450_a3-pure.cl b/OpenCL/m01450_a3-pure.cl index fc55918a6..fa5629482 100644 --- a/OpenCL/m01450_a3-pure.cl +++ b/OpenCL/m01450_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01460_a0-optimized.cl b/OpenCL/m01460_a0-optimized.cl index 63008000c..91d9fe522 100644 --- a/OpenCL/m01460_a0-optimized.cl +++ b/OpenCL/m01460_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m01460_a0-pure.cl b/OpenCL/m01460_a0-pure.cl index 43e7e6561..fd1cff39c 100644 --- a/OpenCL/m01460_a0-pure.cl +++ b/OpenCL/m01460_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01460_a1-optimized.cl b/OpenCL/m01460_a1-optimized.cl index 31519e26b..7ff4562fc 100644 --- a/OpenCL/m01460_a1-optimized.cl +++ b/OpenCL/m01460_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01460_a1-pure.cl b/OpenCL/m01460_a1-pure.cl index 9264121f1..c6f1e911e 100644 --- a/OpenCL/m01460_a1-pure.cl +++ b/OpenCL/m01460_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01460_a3-optimized.cl b/OpenCL/m01460_a3-optimized.cl index 9e1e08796..feec36da9 100644 --- a/OpenCL/m01460_a3-optimized.cl +++ b/OpenCL/m01460_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01460_a3-pure.cl b/OpenCL/m01460_a3-pure.cl index 22490cd2b..a6d1979de 100644 --- a/OpenCL/m01460_a3-pure.cl +++ b/OpenCL/m01460_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m01500_a0-pure.cl b/OpenCL/m01500_a0-pure.cl index 96d4fce04..c9f014bc1 100644 --- a/OpenCL/m01500_a0-pure.cl +++ b/OpenCL/m01500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01500_a1-pure.cl b/OpenCL/m01500_a1-pure.cl index 0645e727f..99874c618 100644 --- a/OpenCL/m01500_a1-pure.cl +++ b/OpenCL/m01500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m01500_a3-pure.cl b/OpenCL/m01500_a3-pure.cl index 3486ba268..45ed3f0c6 100644 --- a/OpenCL/m01500_a3-pure.cl +++ b/OpenCL/m01500_a3-pure.cl @@ -5,10 +5,8 @@ * : sboxes for others were takes fron JtR, license below */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #define COMPARE_S "inc_comp_single_bs.cl" diff --git a/OpenCL/m01600-optimized.cl b/OpenCL/m01600-optimized.cl index 0281c8b87..8052cc1c5 100644 --- a/OpenCL/m01600-optimized.cl +++ b/OpenCL/m01600-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m01600-pure.cl b/OpenCL/m01600-pure.cl index 741a35022..572064cb0 100644 --- a/OpenCL/m01600-pure.cl +++ b/OpenCL/m01600-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m01700_a0-optimized.cl b/OpenCL/m01700_a0-optimized.cl index 7b4adc7d9..b726d0a27 100644 --- a/OpenCL/m01700_a0-optimized.cl +++ b/OpenCL/m01700_a0-optimized.cl @@ -5,40 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -219,7 +194,7 @@ __kernel void m01700_m04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -332,7 +307,7 @@ __kernel void m01700_s04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01700_a0-pure.cl b/OpenCL/m01700_a0-pure.cl index b8eb37892..76f8a1d39 100644 --- a/OpenCL/m01700_a0-pure.cl +++ b/OpenCL/m01700_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01700_a1-optimized.cl b/OpenCL/m01700_a1-optimized.cl index 0892303c6..100c3a3a6 100644 --- a/OpenCL/m01700_a1-optimized.cl +++ b/OpenCL/m01700_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -275,7 +250,7 @@ __kernel void m01700_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -446,7 +421,7 @@ __kernel void m01700_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01700_a1-pure.cl b/OpenCL/m01700_a1-pure.cl index b066bde73..d190ff6d7 100644 --- a/OpenCL/m01700_a1-pure.cl +++ b/OpenCL/m01700_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01700_a3-optimized.cl b/OpenCL/m01700_a3-optimized.cl index b6da5334c..30cf95516 100644 --- a/OpenCL/m01700_a3-optimized.cl +++ b/OpenCL/m01700_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -189,7 +164,7 @@ DECLSPEC void m01700m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -266,7 +241,7 @@ DECLSPEC void m01700s (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01700_a3-pure.cl b/OpenCL/m01700_a3-pure.cl index 4ba18f4f7..abde151d4 100644 --- a/OpenCL/m01700_a3-pure.cl +++ b/OpenCL/m01700_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01710_a0-optimized.cl b/OpenCL/m01710_a0-optimized.cl index 7cfe0eb24..e6b99dfc8 100644 --- a/OpenCL/m01710_a0-optimized.cl +++ b/OpenCL/m01710_a0-optimized.cl @@ -5,40 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -292,7 +267,7 @@ __kernel void m01710_m04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -478,7 +453,7 @@ __kernel void m01710_s04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01710_a0-pure.cl b/OpenCL/m01710_a0-pure.cl index 45c4e1319..4abb22664 100644 --- a/OpenCL/m01710_a0-pure.cl +++ b/OpenCL/m01710_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01710_a1-optimized.cl b/OpenCL/m01710_a1-optimized.cl index 0d26ad29e..833e44adb 100644 --- a/OpenCL/m01710_a1-optimized.cl +++ b/OpenCL/m01710_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -350,7 +325,7 @@ __kernel void m01710_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -596,7 +571,7 @@ __kernel void m01710_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01710_a1-pure.cl b/OpenCL/m01710_a1-pure.cl index e2c3572aa..aac9d1b2c 100644 --- a/OpenCL/m01710_a1-pure.cl +++ b/OpenCL/m01710_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01710_a3-optimized.cl b/OpenCL/m01710_a3-optimized.cl index c0a4d52f2..329c63cf9 100644 --- a/OpenCL/m01710_a3-optimized.cl +++ b/OpenCL/m01710_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -240,7 +215,7 @@ DECLSPEC void m01710m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -317,7 +292,7 @@ DECLSPEC void m01710s (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01710_a3-pure.cl b/OpenCL/m01710_a3-pure.cl index 5c427111f..951b42562 100644 --- a/OpenCL/m01710_a3-pure.cl +++ b/OpenCL/m01710_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01720_a0-optimized.cl b/OpenCL/m01720_a0-optimized.cl index 69428a625..a55dd2040 100644 --- a/OpenCL/m01720_a0-optimized.cl +++ b/OpenCL/m01720_a0-optimized.cl @@ -5,40 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -272,7 +247,7 @@ __kernel void m01720_m04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -438,7 +413,7 @@ __kernel void m01720_s04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01720_a0-pure.cl b/OpenCL/m01720_a0-pure.cl index a524d0d21..ee6228694 100644 --- a/OpenCL/m01720_a0-pure.cl +++ b/OpenCL/m01720_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01720_a1-optimized.cl b/OpenCL/m01720_a1-optimized.cl index e98e42d8f..7587fb27d 100644 --- a/OpenCL/m01720_a1-optimized.cl +++ b/OpenCL/m01720_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -328,7 +303,7 @@ __kernel void m01720_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -552,7 +527,7 @@ __kernel void m01720_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01720_a1-pure.cl b/OpenCL/m01720_a1-pure.cl index 31e8be3f2..0daf1fe83 100644 --- a/OpenCL/m01720_a1-pure.cl +++ b/OpenCL/m01720_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01720_a3-optimized.cl b/OpenCL/m01720_a3-optimized.cl index 231b0c496..3780ecd3e 100644 --- a/OpenCL/m01720_a3-optimized.cl +++ b/OpenCL/m01720_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -242,7 +217,7 @@ DECLSPEC void m01720m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (t0, t1, t2, t3, digest); + sha512_transform_intern (t0, t1, t2, t3, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -372,7 +347,7 @@ DECLSPEC void m01720s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (t0, t1, t2, t3, digest); + sha512_transform_intern (t0, t1, t2, t3, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01720_a3-pure.cl b/OpenCL/m01720_a3-pure.cl index 7b0890c73..a97d9d844 100644 --- a/OpenCL/m01720_a3-pure.cl +++ b/OpenCL/m01720_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01730_a0-optimized.cl b/OpenCL/m01730_a0-optimized.cl index f5d297e93..002c7cd44 100644 --- a/OpenCL/m01730_a0-optimized.cl +++ b/OpenCL/m01730_a0-optimized.cl @@ -5,40 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -297,7 +272,7 @@ __kernel void m01730_m04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -488,7 +463,7 @@ __kernel void m01730_s04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01730_a0-pure.cl b/OpenCL/m01730_a0-pure.cl index 1c6377129..61f4fe011 100644 --- a/OpenCL/m01730_a0-pure.cl +++ b/OpenCL/m01730_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01730_a1-optimized.cl b/OpenCL/m01730_a1-optimized.cl index cf64fa6c1..7e17505ad 100644 --- a/OpenCL/m01730_a1-optimized.cl +++ b/OpenCL/m01730_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -355,7 +330,7 @@ __kernel void m01730_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -606,7 +581,7 @@ __kernel void m01730_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01730_a1-pure.cl b/OpenCL/m01730_a1-pure.cl index 2e0b25f8a..7b76d239d 100644 --- a/OpenCL/m01730_a1-pure.cl +++ b/OpenCL/m01730_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01730_a3-optimized.cl b/OpenCL/m01730_a3-optimized.cl index 66ef1fbd9..9e0bea54c 100644 --- a/OpenCL/m01730_a3-optimized.cl +++ b/OpenCL/m01730_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -240,7 +215,7 @@ DECLSPEC void m01730m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -317,7 +292,7 @@ DECLSPEC void m01730s (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01730_a3-pure.cl b/OpenCL/m01730_a3-pure.cl index 000de2839..0f9076e40 100644 --- a/OpenCL/m01730_a3-pure.cl +++ b/OpenCL/m01730_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01740_a0-optimized.cl b/OpenCL/m01740_a0-optimized.cl index c3954184d..0cc8b5252 100644 --- a/OpenCL/m01740_a0-optimized.cl +++ b/OpenCL/m01740_a0-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" - -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; +#include "inc_hash_sha512.cl" DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { diff --git a/OpenCL/m01740_a0-pure.cl b/OpenCL/m01740_a0-pure.cl index 7cee9ab72..0d31ad819 100644 --- a/OpenCL/m01740_a0-pure.cl +++ b/OpenCL/m01740_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01740_a1-optimized.cl b/OpenCL/m01740_a1-optimized.cl index 2b9a81e46..adcd24164 100644 --- a/OpenCL/m01740_a1-optimized.cl +++ b/OpenCL/m01740_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -333,7 +308,7 @@ __kernel void m01740_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -562,7 +537,7 @@ __kernel void m01740_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01740_a1-pure.cl b/OpenCL/m01740_a1-pure.cl index 64466a77e..1a03e8f71 100644 --- a/OpenCL/m01740_a1-pure.cl +++ b/OpenCL/m01740_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01740_a3-optimized.cl b/OpenCL/m01740_a3-optimized.cl index f8b2880d6..4eac77bb6 100644 --- a/OpenCL/m01740_a3-optimized.cl +++ b/OpenCL/m01740_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -242,7 +217,7 @@ DECLSPEC void m01740m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (t0, t1, t2, t3, digest); + sha512_transform_intern (t0, t1, t2, t3, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -372,7 +347,7 @@ DECLSPEC void m01740s (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KER digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (t0, t1, t2, t3, digest); + sha512_transform_intern (t0, t1, t2, t3, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m01740_a3-pure.cl b/OpenCL/m01740_a3-pure.cl index 0094fcd55..5f7504405 100644 --- a/OpenCL/m01740_a3-pure.cl +++ b/OpenCL/m01740_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01750_a0-optimized.cl b/OpenCL/m01750_a0-optimized.cl index c4134bcf6..841e6f521 100644 --- a/OpenCL/m01750_a0-optimized.cl +++ b/OpenCL/m01750_a0-optimized.cl @@ -5,17 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" -DECLSPEC void sha512_transform_transport_vector (const u64x *w0, const u64x *w1, const u64x *w2, const u64x *w3, u64x *digest) +DECLSPEC void sha512_transform_intern_transport_vector (const u64x *w0, const u64x *w1, const u64x *w2, const u64x *w3, u64x *digest) { u32x t0[4]; u32x t1[4]; @@ -59,7 +57,7 @@ DECLSPEC void sha512_transform_transport_vector (const u64x *w0, const u64x *w1, t7[2] = h32_from_64 (w3[3]); t7[3] = l32_from_64 (w3[3]); - sha512_transform_vector (t0, t1, t2, t3, t4, t5, t6, t7, digest); + sha512_transform_intern_vector (t0, t1, t2, t3, t4, t5, t6, t7, digest); } DECLSPEC void hmac_sha512_pad (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u64x *ipad, u64x *opad) @@ -95,7 +93,7 @@ DECLSPEC void hmac_sha512_pad (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u64x *ipa ipad[6] = SHA512M_G; ipad[7] = SHA512M_H; - sha512_transform_transport_vector (w0_t, w1_t, w2_t, w3_t, ipad); + sha512_transform_intern_transport_vector (w0_t, w1_t, w2_t, w3_t, ipad); w0_t[0] = hl32_to_64 (w0[0], w0[1]) ^ (u64x) 0x5c5c5c5c5c5c5c5c; w0_t[1] = hl32_to_64 (w0[2], w0[3]) ^ (u64x) 0x5c5c5c5c5c5c5c5c; @@ -123,7 +121,7 @@ DECLSPEC void hmac_sha512_pad (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u64x *ipa opad[6] = SHA512M_G; opad[7] = SHA512M_H; - sha512_transform_transport_vector (w0_t, w1_t, w2_t, w3_t, opad); + sha512_transform_intern_transport_vector (w0_t, w1_t, w2_t, w3_t, opad); } DECLSPEC void hmac_sha512_run (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u64x *ipad, u64x *opad, u64x *digest) @@ -159,7 +157,7 @@ DECLSPEC void hmac_sha512_run (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u64x *ipa digest[6] = ipad[6]; digest[7] = ipad[7]; - sha512_transform_transport_vector (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern_transport_vector (w0_t, w1_t, w2_t, w3_t, digest); w0_t[0] = digest[0]; w0_t[1] = digest[1]; @@ -187,7 +185,7 @@ DECLSPEC void hmac_sha512_run (u32x *w0, u32x *w1, u32x *w2, u32x *w3, u64x *ipa digest[6] = opad[6]; digest[7] = opad[7]; - sha512_transform_transport_vector (w0_t, w1_t, w2_t, w3_t, digest); + sha512_transform_intern_transport_vector (w0_t, w1_t, w2_t, w3_t, digest); } __kernel void m01750_m04 (KERN_ATTR_RULES ()) diff --git a/OpenCL/m01750_a0-pure.cl b/OpenCL/m01750_a0-pure.cl index 390cfdded..305100159 100644 --- a/OpenCL/m01750_a0-pure.cl +++ b/OpenCL/m01750_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01750_a1-optimized.cl b/OpenCL/m01750_a1-optimized.cl index 7dd1a9475..9e64f085f 100644 --- a/OpenCL/m01750_a1-optimized.cl +++ b/OpenCL/m01750_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01750_a1-pure.cl b/OpenCL/m01750_a1-pure.cl index 13de99173..b18f18ec1 100644 --- a/OpenCL/m01750_a1-pure.cl +++ b/OpenCL/m01750_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01750_a3-optimized.cl b/OpenCL/m01750_a3-optimized.cl index 08f49240e..2c4e408f5 100644 --- a/OpenCL/m01750_a3-optimized.cl +++ b/OpenCL/m01750_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01750_a3-pure.cl b/OpenCL/m01750_a3-pure.cl index ee3e7c9ed..ec3e28552 100644 --- a/OpenCL/m01750_a3-pure.cl +++ b/OpenCL/m01750_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01760_a0-optimized.cl b/OpenCL/m01760_a0-optimized.cl index d218b2303..0fe51b647 100644 --- a/OpenCL/m01760_a0-optimized.cl +++ b/OpenCL/m01760_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m01760_a0-pure.cl b/OpenCL/m01760_a0-pure.cl index 4b9595377..ca043e6c7 100644 --- a/OpenCL/m01760_a0-pure.cl +++ b/OpenCL/m01760_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m01760_a1-optimized.cl b/OpenCL/m01760_a1-optimized.cl index 08207c579..f9bf0c300 100644 --- a/OpenCL/m01760_a1-optimized.cl +++ b/OpenCL/m01760_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01760_a1-pure.cl b/OpenCL/m01760_a1-pure.cl index d99b95883..4778f6ab7 100644 --- a/OpenCL/m01760_a1-pure.cl +++ b/OpenCL/m01760_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01760_a3-optimized.cl b/OpenCL/m01760_a3-optimized.cl index 4ae1ea528..e173f65aa 100644 --- a/OpenCL/m01760_a3-optimized.cl +++ b/OpenCL/m01760_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01760_a3-pure.cl b/OpenCL/m01760_a3-pure.cl index ac07d9b22..cfe82ccec 100644 --- a/OpenCL/m01760_a3-pure.cl +++ b/OpenCL/m01760_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01800-optimized.cl b/OpenCL/m01800-optimized.cl index 087c64ef0..3d45e56c3 100644 --- a/OpenCL/m01800-optimized.cl +++ b/OpenCL/m01800-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m01800-pure.cl b/OpenCL/m01800-pure.cl index 0884f84a3..fb59486e9 100644 --- a/OpenCL/m01800-pure.cl +++ b/OpenCL/m01800-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m02000_a0-pure.cl b/OpenCL/m02000_a0-pure.cl index 8baa27eeb..f6a6f9213 100644 --- a/OpenCL/m02000_a0-pure.cl +++ b/OpenCL/m02000_a0-pure.cl @@ -3,8 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" __kernel void m02000_mxx (KERN_ATTR_BASIC ()) diff --git a/OpenCL/m02000_a1-pure.cl b/OpenCL/m02000_a1-pure.cl index 8baa27eeb..f6a6f9213 100644 --- a/OpenCL/m02000_a1-pure.cl +++ b/OpenCL/m02000_a1-pure.cl @@ -3,8 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" __kernel void m02000_mxx (KERN_ATTR_BASIC ()) diff --git a/OpenCL/m02000_a3-pure.cl b/OpenCL/m02000_a3-pure.cl index 8baa27eeb..f6a6f9213 100644 --- a/OpenCL/m02000_a3-pure.cl +++ b/OpenCL/m02000_a3-pure.cl @@ -3,8 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" __kernel void m02000_mxx (KERN_ATTR_BASIC ()) diff --git a/OpenCL/m02100-pure.cl b/OpenCL/m02100-pure.cl index 6060a4a7e..536a60614 100644 --- a/OpenCL/m02100-pure.cl +++ b/OpenCL/m02100-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m02400_a0-optimized.cl b/OpenCL/m02400_a0-optimized.cl index 3c5451456..ccd639d31 100644 --- a/OpenCL/m02400_a0-optimized.cl +++ b/OpenCL/m02400_a0-optimized.cl @@ -5,14 +5,13 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m02400_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m02400_a1-optimized.cl b/OpenCL/m02400_a1-optimized.cl index 8c347304a..af8147f69 100644 --- a/OpenCL/m02400_a1-optimized.cl +++ b/OpenCL/m02400_a1-optimized.cl @@ -5,12 +5,11 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m02400_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m02400_a3-optimized.cl b/OpenCL/m02400_a3-optimized.cl index 9d231c357..155bc0510 100644 --- a/OpenCL/m02400_a3-optimized.cl +++ b/OpenCL/m02400_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m02400m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m02410_a0-optimized.cl b/OpenCL/m02410_a0-optimized.cl index 325ad9d36..850a9afbf 100644 --- a/OpenCL/m02410_a0-optimized.cl +++ b/OpenCL/m02410_a0-optimized.cl @@ -5,14 +5,13 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m02410_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m02410_a1-optimized.cl b/OpenCL/m02410_a1-optimized.cl index 6f533b689..b86e3475f 100644 --- a/OpenCL/m02410_a1-optimized.cl +++ b/OpenCL/m02410_a1-optimized.cl @@ -5,12 +5,11 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m02410_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m02410_a3-optimized.cl b/OpenCL/m02410_a3-optimized.cl index f8cc8fff6..afa7ac570 100644 --- a/OpenCL/m02410_a3-optimized.cl +++ b/OpenCL/m02410_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m02410m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m02500-pure.cl b/OpenCL/m02500-pure.cl index fbad337d6..8ce5979a4 100644 --- a/OpenCL/m02500-pure.cl +++ b/OpenCL/m02500-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m02501-pure.cl b/OpenCL/m02501-pure.cl index 2b9c19c3f..799e106c4 100644 --- a/OpenCL/m02501-pure.cl +++ b/OpenCL/m02501-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m02610_a0-optimized.cl b/OpenCL/m02610_a0-optimized.cl index 04a79dd28..7632937e6 100644 --- a/OpenCL/m02610_a0-optimized.cl +++ b/OpenCL/m02610_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02610_a0-pure.cl b/OpenCL/m02610_a0-pure.cl index fb4ecd030..0e2c3bd23 100644 --- a/OpenCL/m02610_a0-pure.cl +++ b/OpenCL/m02610_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m02610_a1-optimized.cl b/OpenCL/m02610_a1-optimized.cl index b29702997..f48e925d6 100644 --- a/OpenCL/m02610_a1-optimized.cl +++ b/OpenCL/m02610_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02610_a1-pure.cl b/OpenCL/m02610_a1-pure.cl index e392d68e8..95357da45 100644 --- a/OpenCL/m02610_a1-pure.cl +++ b/OpenCL/m02610_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m02610_a3-optimized.cl b/OpenCL/m02610_a3-optimized.cl index d63e2118a..ad857699e 100644 --- a/OpenCL/m02610_a3-optimized.cl +++ b/OpenCL/m02610_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02610_a3-pure.cl b/OpenCL/m02610_a3-pure.cl index 08922eccd..6fc80d18f 100644 --- a/OpenCL/m02610_a3-pure.cl +++ b/OpenCL/m02610_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m02710_a0-optimized.cl b/OpenCL/m02710_a0-optimized.cl index a7a7d7a6f..ec7a39198 100644 --- a/OpenCL/m02710_a0-optimized.cl +++ b/OpenCL/m02710_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02710_a1-optimized.cl b/OpenCL/m02710_a1-optimized.cl index ca979a481..1deec06d9 100644 --- a/OpenCL/m02710_a1-optimized.cl +++ b/OpenCL/m02710_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02710_a3-optimized.cl b/OpenCL/m02710_a3-optimized.cl index 44920b369..1e0ab8b53 100644 --- a/OpenCL/m02710_a3-optimized.cl +++ b/OpenCL/m02710_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02810_a0-optimized.cl b/OpenCL/m02810_a0-optimized.cl index 025da1291..b7a659764 100644 --- a/OpenCL/m02810_a0-optimized.cl +++ b/OpenCL/m02810_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02810_a0-pure.cl b/OpenCL/m02810_a0-pure.cl index 04a1157a3..4ad50f6b4 100644 --- a/OpenCL/m02810_a0-pure.cl +++ b/OpenCL/m02810_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m02810_a1-optimized.cl b/OpenCL/m02810_a1-optimized.cl index 026b57c53..9a87d5640 100644 --- a/OpenCL/m02810_a1-optimized.cl +++ b/OpenCL/m02810_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02810_a1-pure.cl b/OpenCL/m02810_a1-pure.cl index 1b1bb96af..abc477be1 100644 --- a/OpenCL/m02810_a1-pure.cl +++ b/OpenCL/m02810_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m02810_a3-optimized.cl b/OpenCL/m02810_a3-optimized.cl index 31be3c620..41d7d5814 100644 --- a/OpenCL/m02810_a3-optimized.cl +++ b/OpenCL/m02810_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m02810_a3-pure.cl b/OpenCL/m02810_a3-pure.cl index 2631b95d6..fa9d3c1aa 100644 --- a/OpenCL/m02810_a3-pure.cl +++ b/OpenCL/m02810_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m03000_a0-pure.cl b/OpenCL/m03000_a0-pure.cl index 70e52b2be..ec1dcc3bd 100644 --- a/OpenCL/m03000_a0-pure.cl +++ b/OpenCL/m03000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m03000_a1-pure.cl b/OpenCL/m03000_a1-pure.cl index 539f29cc9..217e327b1 100644 --- a/OpenCL/m03000_a1-pure.cl +++ b/OpenCL/m03000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m03000_a3-pure.cl b/OpenCL/m03000_a3-pure.cl index e434620c2..2478b991c 100644 --- a/OpenCL/m03000_a3-pure.cl +++ b/OpenCL/m03000_a3-pure.cl @@ -5,10 +5,8 @@ * : sboxes for others were takes fron JtR, license below */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #define COMPARE_S "inc_comp_single_bs.cl" diff --git a/OpenCL/m03100_a0-optimized.cl b/OpenCL/m03100_a0-optimized.cl index 4de52c967..4002be87a 100644 --- a/OpenCL/m03100_a0-optimized.cl +++ b/OpenCL/m03100_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m03100_a1-optimized.cl b/OpenCL/m03100_a1-optimized.cl index 198de12c6..47fff4603 100644 --- a/OpenCL/m03100_a1-optimized.cl +++ b/OpenCL/m03100_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_cipher_des.cl" diff --git a/OpenCL/m03100_a3-optimized.cl b/OpenCL/m03100_a3-optimized.cl index f375ca0dc..fba4aae6b 100644 --- a/OpenCL/m03100_a3-optimized.cl +++ b/OpenCL/m03100_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_cipher_des.cl" diff --git a/OpenCL/m03200-pure.cl b/OpenCL/m03200-pure.cl index 03782bdd0..dc4f64b46 100644 --- a/OpenCL/m03200-pure.cl +++ b/OpenCL/m03200-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #define COMPARE_S "inc_comp_single.cl" diff --git a/OpenCL/m03710_a0-optimized.cl b/OpenCL/m03710_a0-optimized.cl index 5bab20e77..f283ae6b4 100644 --- a/OpenCL/m03710_a0-optimized.cl +++ b/OpenCL/m03710_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m03710_a0-pure.cl b/OpenCL/m03710_a0-pure.cl index d4161c383..40e3bee95 100644 --- a/OpenCL/m03710_a0-pure.cl +++ b/OpenCL/m03710_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m03710_a1-optimized.cl b/OpenCL/m03710_a1-optimized.cl index 3be6d17ef..8e1c2bd66 100644 --- a/OpenCL/m03710_a1-optimized.cl +++ b/OpenCL/m03710_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m03710_a1-pure.cl b/OpenCL/m03710_a1-pure.cl index 293af2aaa..fdbe69429 100644 --- a/OpenCL/m03710_a1-pure.cl +++ b/OpenCL/m03710_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m03710_a3-optimized.cl b/OpenCL/m03710_a3-optimized.cl index 73773f727..b47e9a9cd 100644 --- a/OpenCL/m03710_a3-optimized.cl +++ b/OpenCL/m03710_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m03710_a3-pure.cl b/OpenCL/m03710_a3-pure.cl index ffb096d64..9b5bec76f 100644 --- a/OpenCL/m03710_a3-pure.cl +++ b/OpenCL/m03710_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m03800_a0-optimized.cl b/OpenCL/m03800_a0-optimized.cl index 1311a02b4..1c8b162e7 100644 --- a/OpenCL/m03800_a0-optimized.cl +++ b/OpenCL/m03800_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m03800_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m03800_a0-pure.cl b/OpenCL/m03800_a0-pure.cl index a812c5048..acacd9a7f 100644 --- a/OpenCL/m03800_a0-pure.cl +++ b/OpenCL/m03800_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m03800_a1-optimized.cl b/OpenCL/m03800_a1-optimized.cl index aa364d137..fa4407c26 100644 --- a/OpenCL/m03800_a1-optimized.cl +++ b/OpenCL/m03800_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m03800_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m03800_a1-pure.cl b/OpenCL/m03800_a1-pure.cl index 01197f565..3eca59abb 100644 --- a/OpenCL/m03800_a1-pure.cl +++ b/OpenCL/m03800_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m03800_a3-optimized.cl b/OpenCL/m03800_a3-optimized.cl index 7c808d4d8..fd1af6c32 100644 --- a/OpenCL/m03800_a3-optimized.cl +++ b/OpenCL/m03800_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m03800m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m03800_a3-pure.cl b/OpenCL/m03800_a3-pure.cl index 392f3f2ec..5ff980f67 100644 --- a/OpenCL/m03800_a3-pure.cl +++ b/OpenCL/m03800_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m03910_a0-optimized.cl b/OpenCL/m03910_a0-optimized.cl index 759b334a6..f5c3e3681 100644 --- a/OpenCL/m03910_a0-optimized.cl +++ b/OpenCL/m03910_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m03910_a0-pure.cl b/OpenCL/m03910_a0-pure.cl index 7ad1088af..4b70bdc06 100644 --- a/OpenCL/m03910_a0-pure.cl +++ b/OpenCL/m03910_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m03910_a1-optimized.cl b/OpenCL/m03910_a1-optimized.cl index 1f129c332..252572d91 100644 --- a/OpenCL/m03910_a1-optimized.cl +++ b/OpenCL/m03910_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m03910_a1-pure.cl b/OpenCL/m03910_a1-pure.cl index f1d833837..c11878ca8 100644 --- a/OpenCL/m03910_a1-pure.cl +++ b/OpenCL/m03910_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m03910_a3-optimized.cl b/OpenCL/m03910_a3-optimized.cl index dc7d97be7..3b13f6e2a 100644 --- a/OpenCL/m03910_a3-optimized.cl +++ b/OpenCL/m03910_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m03910_a3-pure.cl b/OpenCL/m03910_a3-pure.cl index 57ad27d55..ec1044d30 100644 --- a/OpenCL/m03910_a3-pure.cl +++ b/OpenCL/m03910_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04010_a0-optimized.cl b/OpenCL/m04010_a0-optimized.cl index 3768d429a..1bbcc9b3e 100644 --- a/OpenCL/m04010_a0-optimized.cl +++ b/OpenCL/m04010_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04010_a0-pure.cl b/OpenCL/m04010_a0-pure.cl index fe0e04935..3f0728302 100644 --- a/OpenCL/m04010_a0-pure.cl +++ b/OpenCL/m04010_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04010_a1-optimized.cl b/OpenCL/m04010_a1-optimized.cl index 46b26597c..9cf0d2c54 100644 --- a/OpenCL/m04010_a1-optimized.cl +++ b/OpenCL/m04010_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04010_a1-pure.cl b/OpenCL/m04010_a1-pure.cl index 055e5def6..3385a8da8 100644 --- a/OpenCL/m04010_a1-pure.cl +++ b/OpenCL/m04010_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04010_a3-optimized.cl b/OpenCL/m04010_a3-optimized.cl index 584a035b0..cee0e0a85 100644 --- a/OpenCL/m04010_a3-optimized.cl +++ b/OpenCL/m04010_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04010_a3-pure.cl b/OpenCL/m04010_a3-pure.cl index 4832c558e..8b4255d46 100644 --- a/OpenCL/m04010_a3-pure.cl +++ b/OpenCL/m04010_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04110_a0-optimized.cl b/OpenCL/m04110_a0-optimized.cl index a8997f5f6..9423f27f8 100644 --- a/OpenCL/m04110_a0-optimized.cl +++ b/OpenCL/m04110_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04110_a0-pure.cl b/OpenCL/m04110_a0-pure.cl index afc8ce674..456951480 100644 --- a/OpenCL/m04110_a0-pure.cl +++ b/OpenCL/m04110_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04110_a1-optimized.cl b/OpenCL/m04110_a1-optimized.cl index 54aa5f1df..9a6883ef4 100644 --- a/OpenCL/m04110_a1-optimized.cl +++ b/OpenCL/m04110_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04110_a1-pure.cl b/OpenCL/m04110_a1-pure.cl index 3f884f9ab..c79733153 100644 --- a/OpenCL/m04110_a1-pure.cl +++ b/OpenCL/m04110_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04110_a3-optimized.cl b/OpenCL/m04110_a3-optimized.cl index 8d16940f6..5e2ccb4d5 100644 --- a/OpenCL/m04110_a3-optimized.cl +++ b/OpenCL/m04110_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04110_a3-pure.cl b/OpenCL/m04110_a3-pure.cl index 302642811..1c03d2f2f 100644 --- a/OpenCL/m04110_a3-pure.cl +++ b/OpenCL/m04110_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04310_a0-optimized.cl b/OpenCL/m04310_a0-optimized.cl index 886240a74..c6db696ba 100644 --- a/OpenCL/m04310_a0-optimized.cl +++ b/OpenCL/m04310_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_upper8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04310_a0-pure.cl b/OpenCL/m04310_a0-pure.cl index 6aaab60a3..cbd79253a 100644 --- a/OpenCL/m04310_a0-pure.cl +++ b/OpenCL/m04310_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04310_a1-optimized.cl b/OpenCL/m04310_a1-optimized.cl index 8f62f40c0..86b9e4e4d 100644 --- a/OpenCL/m04310_a1-optimized.cl +++ b/OpenCL/m04310_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_upper8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04310_a1-pure.cl b/OpenCL/m04310_a1-pure.cl index 36cec0c0d..3e6a4dc1a 100644 --- a/OpenCL/m04310_a1-pure.cl +++ b/OpenCL/m04310_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04310_a3-optimized.cl b/OpenCL/m04310_a3-optimized.cl index bf425a47e..94d241cbe 100644 --- a/OpenCL/m04310_a3-optimized.cl +++ b/OpenCL/m04310_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_upper8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04310_a3-pure.cl b/OpenCL/m04310_a3-pure.cl index ec8669bc6..6ce112605 100644 --- a/OpenCL/m04310_a3-pure.cl +++ b/OpenCL/m04310_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04400_a0-optimized.cl b/OpenCL/m04400_a0-optimized.cl index 19c6c2514..6bb820555 100644 --- a/OpenCL/m04400_a0-optimized.cl +++ b/OpenCL/m04400_a0-optimized.cl @@ -5,14 +5,14 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04400_a0-pure.cl b/OpenCL/m04400_a0-pure.cl index ff303e8b7..9149ea491 100644 --- a/OpenCL/m04400_a0-pure.cl +++ b/OpenCL/m04400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04400_a1-optimized.cl b/OpenCL/m04400_a1-optimized.cl index eb51ced80..19b56c553 100644 --- a/OpenCL/m04400_a1-optimized.cl +++ b/OpenCL/m04400_a1-optimized.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04400_a1-pure.cl b/OpenCL/m04400_a1-pure.cl index c49b7be41..2495ddb33 100644 --- a/OpenCL/m04400_a1-pure.cl +++ b/OpenCL/m04400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04400_a3-optimized.cl b/OpenCL/m04400_a3-optimized.cl index 4ca68b0a9..a233d4dbe 100644 --- a/OpenCL/m04400_a3-optimized.cl +++ b/OpenCL/m04400_a3-optimized.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04400_a3-pure.cl b/OpenCL/m04400_a3-pure.cl index 628d34b5f..85279ac97 100644 --- a/OpenCL/m04400_a3-pure.cl +++ b/OpenCL/m04400_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04500_a0-optimized.cl b/OpenCL/m04500_a0-optimized.cl index 86dc77a91..b4a6d5ce3 100644 --- a/OpenCL/m04500_a0-optimized.cl +++ b/OpenCL/m04500_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04500_a0-pure.cl b/OpenCL/m04500_a0-pure.cl index d6d636fd2..a81307210 100644 --- a/OpenCL/m04500_a0-pure.cl +++ b/OpenCL/m04500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04500_a1-optimized.cl b/OpenCL/m04500_a1-optimized.cl index 8c76bd03a..149078220 100644 --- a/OpenCL/m04500_a1-optimized.cl +++ b/OpenCL/m04500_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04500_a1-pure.cl b/OpenCL/m04500_a1-pure.cl index ee9a26a51..db62279fe 100644 --- a/OpenCL/m04500_a1-pure.cl +++ b/OpenCL/m04500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m04500_a3-optimized.cl b/OpenCL/m04500_a3-optimized.cl index 1981843c3..57389826a 100644 --- a/OpenCL/m04500_a3-optimized.cl +++ b/OpenCL/m04500_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04500_a3-pure.cl b/OpenCL/m04500_a3-pure.cl index 99178a1ac..3d8e75dd4 100644 --- a/OpenCL/m04500_a3-pure.cl +++ b/OpenCL/m04500_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m04520_a0-optimized.cl b/OpenCL/m04520_a0-optimized.cl index b9d8be1c9..ca9ceb8f3 100644 --- a/OpenCL/m04520_a0-optimized.cl +++ b/OpenCL/m04520_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04520_a0-pure.cl b/OpenCL/m04520_a0-pure.cl index f71c8c23d..fadde2a30 100644 --- a/OpenCL/m04520_a0-pure.cl +++ b/OpenCL/m04520_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04520_a1-optimized.cl b/OpenCL/m04520_a1-optimized.cl index dbcf6f13d..015cfad47 100644 --- a/OpenCL/m04520_a1-optimized.cl +++ b/OpenCL/m04520_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04520_a1-pure.cl b/OpenCL/m04520_a1-pure.cl index 99f3ec0f7..a8190bbce 100644 --- a/OpenCL/m04520_a1-pure.cl +++ b/OpenCL/m04520_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m04520_a3-optimized.cl b/OpenCL/m04520_a3-optimized.cl index d8d1517f4..785277216 100644 --- a/OpenCL/m04520_a3-optimized.cl +++ b/OpenCL/m04520_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04520_a3-pure.cl b/OpenCL/m04520_a3-pure.cl index 5f41c3209..69dceae1d 100644 --- a/OpenCL/m04520_a3-pure.cl +++ b/OpenCL/m04520_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m04700_a0-optimized.cl b/OpenCL/m04700_a0-optimized.cl index 07f7a1734..91f6e58e6 100644 --- a/OpenCL/m04700_a0-optimized.cl +++ b/OpenCL/m04700_a0-optimized.cl @@ -5,14 +5,14 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04700_a0-pure.cl b/OpenCL/m04700_a0-pure.cl index 7c03a0d94..bf0772672 100644 --- a/OpenCL/m04700_a0-pure.cl +++ b/OpenCL/m04700_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04700_a1-optimized.cl b/OpenCL/m04700_a1-optimized.cl index 7fd309362..9c3ff7321 100644 --- a/OpenCL/m04700_a1-optimized.cl +++ b/OpenCL/m04700_a1-optimized.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04700_a1-pure.cl b/OpenCL/m04700_a1-pure.cl index 7c1dfa82e..f6aadefbc 100644 --- a/OpenCL/m04700_a1-pure.cl +++ b/OpenCL/m04700_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04700_a3-optimized.cl b/OpenCL/m04700_a3-optimized.cl index d15a2f45b..828fbb8ad 100644 --- a/OpenCL/m04700_a3-optimized.cl +++ b/OpenCL/m04700_a3-optimized.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" +#include "inc_hash_sha1.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04700_a3-pure.cl b/OpenCL/m04700_a3-pure.cl index 19ec8d89c..d6bb0a4ce 100644 --- a/OpenCL/m04700_a3-pure.cl +++ b/OpenCL/m04700_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04800_a0-optimized.cl b/OpenCL/m04800_a0-optimized.cl index 457b76dab..fd5d82a28 100644 --- a/OpenCL/m04800_a0-optimized.cl +++ b/OpenCL/m04800_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m04800_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m04800_a0-pure.cl b/OpenCL/m04800_a0-pure.cl index 0091f6566..312897010 100644 --- a/OpenCL/m04800_a0-pure.cl +++ b/OpenCL/m04800_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04800_a1-optimized.cl b/OpenCL/m04800_a1-optimized.cl index 679b28dc1..91edfe208 100644 --- a/OpenCL/m04800_a1-optimized.cl +++ b/OpenCL/m04800_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8_le(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m04800_a1-pure.cl b/OpenCL/m04800_a1-pure.cl index 69bc376b1..9ead2c000 100644 --- a/OpenCL/m04800_a1-pure.cl +++ b/OpenCL/m04800_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04800_a3-optimized.cl b/OpenCL/m04800_a3-optimized.cl index 0ab34128c..3d4c5df7d 100644 --- a/OpenCL/m04800_a3-optimized.cl +++ b/OpenCL/m04800_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m04800m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m04800_a3-pure.cl b/OpenCL/m04800_a3-pure.cl index da1c7670f..1c59a1a39 100644 --- a/OpenCL/m04800_a3-pure.cl +++ b/OpenCL/m04800_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m04900_a0-optimized.cl b/OpenCL/m04900_a0-optimized.cl index 263723417..e0e95b2f9 100644 --- a/OpenCL/m04900_a0-optimized.cl +++ b/OpenCL/m04900_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m04900_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m04900_a0-pure.cl b/OpenCL/m04900_a0-pure.cl index 0bc9a878c..b6a69431a 100644 --- a/OpenCL/m04900_a0-pure.cl +++ b/OpenCL/m04900_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m04900_a1-optimized.cl b/OpenCL/m04900_a1-optimized.cl index fcbd1bbc0..98d9df7da 100644 --- a/OpenCL/m04900_a1-optimized.cl +++ b/OpenCL/m04900_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m04900_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m04900_a1-pure.cl b/OpenCL/m04900_a1-pure.cl index c09d76df9..69a72c5ee 100644 --- a/OpenCL/m04900_a1-pure.cl +++ b/OpenCL/m04900_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m04900_a3-optimized.cl b/OpenCL/m04900_a3-optimized.cl index 1059c8df7..d5183034f 100644 --- a/OpenCL/m04900_a3-optimized.cl +++ b/OpenCL/m04900_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m04900m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m04900_a3-pure.cl b/OpenCL/m04900_a3-pure.cl index c21617972..9e8594e9b 100644 --- a/OpenCL/m04900_a3-pure.cl +++ b/OpenCL/m04900_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m05100_a0-optimized.cl b/OpenCL/m05100_a0-optimized.cl index 66c479e49..500669e54 100644 --- a/OpenCL/m05100_a0-optimized.cl +++ b/OpenCL/m05100_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m05100_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m05100_a0-pure.cl b/OpenCL/m05100_a0-pure.cl index fa57c9858..5a8a9742b 100644 --- a/OpenCL/m05100_a0-pure.cl +++ b/OpenCL/m05100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m05100_a1-optimized.cl b/OpenCL/m05100_a1-optimized.cl index 80bed0f23..d91caaa4f 100644 --- a/OpenCL/m05100_a1-optimized.cl +++ b/OpenCL/m05100_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m05100_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m05100_a1-pure.cl b/OpenCL/m05100_a1-pure.cl index 0cffa93ca..374a12ebf 100644 --- a/OpenCL/m05100_a1-pure.cl +++ b/OpenCL/m05100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m05100_a3-optimized.cl b/OpenCL/m05100_a3-optimized.cl index 9227d86db..b783f78df 100644 --- a/OpenCL/m05100_a3-optimized.cl +++ b/OpenCL/m05100_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m05100m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m05100_a3-pure.cl b/OpenCL/m05100_a3-pure.cl index 545b1bd12..4a897b64d 100644 --- a/OpenCL/m05100_a3-pure.cl +++ b/OpenCL/m05100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m05200-pure.cl b/OpenCL/m05200-pure.cl index 23a2d0d0a..48e42ae0e 100644 --- a/OpenCL/m05200-pure.cl +++ b/OpenCL/m05200-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m05300_a0-optimized.cl b/OpenCL/m05300_a0-optimized.cl index 17ebfe988..a7de810f3 100644 --- a/OpenCL/m05300_a0-optimized.cl +++ b/OpenCL/m05300_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m05300_a0-pure.cl b/OpenCL/m05300_a0-pure.cl index 86e2ffc8b..de004cbdb 100644 --- a/OpenCL/m05300_a0-pure.cl +++ b/OpenCL/m05300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m05300_a1-optimized.cl b/OpenCL/m05300_a1-optimized.cl index ac717373f..3487b3ec1 100644 --- a/OpenCL/m05300_a1-optimized.cl +++ b/OpenCL/m05300_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m05300_a1-pure.cl b/OpenCL/m05300_a1-pure.cl index 3b6d61142..095aa1106 100644 --- a/OpenCL/m05300_a1-pure.cl +++ b/OpenCL/m05300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m05300_a3-optimized.cl b/OpenCL/m05300_a3-optimized.cl index fe953a59e..68c70dd36 100644 --- a/OpenCL/m05300_a3-optimized.cl +++ b/OpenCL/m05300_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m05300_a3-pure.cl b/OpenCL/m05300_a3-pure.cl index aa387c52c..901143d5a 100644 --- a/OpenCL/m05300_a3-pure.cl +++ b/OpenCL/m05300_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m05400_a0-optimized.cl b/OpenCL/m05400_a0-optimized.cl index c37980d8c..ce2650546 100644 --- a/OpenCL/m05400_a0-optimized.cl +++ b/OpenCL/m05400_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m05400_a0-pure.cl b/OpenCL/m05400_a0-pure.cl index 3180e0011..7959d8380 100644 --- a/OpenCL/m05400_a0-pure.cl +++ b/OpenCL/m05400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m05400_a1-optimized.cl b/OpenCL/m05400_a1-optimized.cl index 08c2b6884..d28c2f75f 100644 --- a/OpenCL/m05400_a1-optimized.cl +++ b/OpenCL/m05400_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m05400_a1-pure.cl b/OpenCL/m05400_a1-pure.cl index 12a2dcf52..7f1854fa7 100644 --- a/OpenCL/m05400_a1-pure.cl +++ b/OpenCL/m05400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m05400_a3-optimized.cl b/OpenCL/m05400_a3-optimized.cl index 88b9d1932..cac3209f5 100644 --- a/OpenCL/m05400_a3-optimized.cl +++ b/OpenCL/m05400_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m05400_a3-pure.cl b/OpenCL/m05400_a3-pure.cl index 0d9815a34..16fd9bb0a 100644 --- a/OpenCL/m05400_a3-pure.cl +++ b/OpenCL/m05400_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m05500_a0-optimized.cl b/OpenCL/m05500_a0-optimized.cl index 597f79314..36d150b26 100644 --- a/OpenCL/m05500_a0-optimized.cl +++ b/OpenCL/m05500_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" typedef struct netntlm { diff --git a/OpenCL/m05500_a0-pure.cl b/OpenCL/m05500_a0-pure.cl index caf590513..834423c3d 100644 --- a/OpenCL/m05500_a0-pure.cl +++ b/OpenCL/m05500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m05500_a1-optimized.cl b/OpenCL/m05500_a1-optimized.cl index 8e7bd8370..510f169b6 100644 --- a/OpenCL/m05500_a1-optimized.cl +++ b/OpenCL/m05500_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" typedef struct netntlm { diff --git a/OpenCL/m05500_a1-pure.cl b/OpenCL/m05500_a1-pure.cl index 89ee6bcef..2fe5f52c0 100644 --- a/OpenCL/m05500_a1-pure.cl +++ b/OpenCL/m05500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m05500_a3-optimized.cl b/OpenCL/m05500_a3-optimized.cl index ca0aae8ca..76b17c027 100644 --- a/OpenCL/m05500_a3-optimized.cl +++ b/OpenCL/m05500_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md4.cl" typedef struct netntlm { diff --git a/OpenCL/m05500_a3-pure.cl b/OpenCL/m05500_a3-pure.cl index 7d5fa0529..39a1a145b 100644 --- a/OpenCL/m05500_a3-pure.cl +++ b/OpenCL/m05500_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m05600_a0-optimized.cl b/OpenCL/m05600_a0-optimized.cl index 9b088441a..32631e45f 100644 --- a/OpenCL/m05600_a0-optimized.cl +++ b/OpenCL/m05600_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m05600_a0-pure.cl b/OpenCL/m05600_a0-pure.cl index 4fbfded94..7e536579b 100644 --- a/OpenCL/m05600_a0-pure.cl +++ b/OpenCL/m05600_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m05600_a1-optimized.cl b/OpenCL/m05600_a1-optimized.cl index 86978d520..20ce8dc27 100644 --- a/OpenCL/m05600_a1-optimized.cl +++ b/OpenCL/m05600_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m05600_a1-pure.cl b/OpenCL/m05600_a1-pure.cl index 644fde5c6..f42b79f34 100644 --- a/OpenCL/m05600_a1-pure.cl +++ b/OpenCL/m05600_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m05600_a3-optimized.cl b/OpenCL/m05600_a3-optimized.cl index eb30a65dd..248c46294 100644 --- a/OpenCL/m05600_a3-optimized.cl +++ b/OpenCL/m05600_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m05600_a3-pure.cl b/OpenCL/m05600_a3-pure.cl index d90b6551f..81e2eee7b 100644 --- a/OpenCL/m05600_a3-pure.cl +++ b/OpenCL/m05600_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m05800-optimized.cl b/OpenCL/m05800-optimized.cl index 661ed576d..15854d032 100644 --- a/OpenCL/m05800-optimized.cl +++ b/OpenCL/m05800-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m05800-pure.cl b/OpenCL/m05800-pure.cl index 07547afee..4809c0389 100644 --- a/OpenCL/m05800-pure.cl +++ b/OpenCL/m05800-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m06000_a0-optimized.cl b/OpenCL/m06000_a0-optimized.cl index 7a97b10d9..95b05be01 100644 --- a/OpenCL/m06000_a0-optimized.cl +++ b/OpenCL/m06000_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m06000_a0-pure.cl b/OpenCL/m06000_a0-pure.cl index caa0db33a..09c8c0655 100644 --- a/OpenCL/m06000_a0-pure.cl +++ b/OpenCL/m06000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m06000_a1-optimized.cl b/OpenCL/m06000_a1-optimized.cl index 5533cc118..fcfb8e494 100644 --- a/OpenCL/m06000_a1-optimized.cl +++ b/OpenCL/m06000_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06000_a1-pure.cl b/OpenCL/m06000_a1-pure.cl index 37c33282d..ce41e9573 100644 --- a/OpenCL/m06000_a1-pure.cl +++ b/OpenCL/m06000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06000_a3-optimized.cl b/OpenCL/m06000_a3-optimized.cl index 77258baae..3fba5307e 100644 --- a/OpenCL/m06000_a3-optimized.cl +++ b/OpenCL/m06000_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06000_a3-pure.cl b/OpenCL/m06000_a3-pure.cl index cd868f0f1..a98e6754b 100644 --- a/OpenCL/m06000_a3-pure.cl +++ b/OpenCL/m06000_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06100_a0-optimized.cl b/OpenCL/m06100_a0-optimized.cl index bccb54b28..936ac96db 100644 --- a/OpenCL/m06100_a0-optimized.cl +++ b/OpenCL/m06100_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m06100_a0-pure.cl b/OpenCL/m06100_a0-pure.cl index 020170aa3..1753612ec 100644 --- a/OpenCL/m06100_a0-pure.cl +++ b/OpenCL/m06100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m06100_a1-optimized.cl b/OpenCL/m06100_a1-optimized.cl index c43528a76..581020995 100644 --- a/OpenCL/m06100_a1-optimized.cl +++ b/OpenCL/m06100_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06100_a1-pure.cl b/OpenCL/m06100_a1-pure.cl index ecc2f199d..4d6b7d7f5 100644 --- a/OpenCL/m06100_a1-pure.cl +++ b/OpenCL/m06100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06100_a3-optimized.cl b/OpenCL/m06100_a3-optimized.cl index fc8cd5504..342d077f0 100644 --- a/OpenCL/m06100_a3-optimized.cl +++ b/OpenCL/m06100_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06100_a3-pure.cl b/OpenCL/m06100_a3-pure.cl index ba002f18a..0cf9dbc0d 100644 --- a/OpenCL/m06100_a3-pure.cl +++ b/OpenCL/m06100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06211-pure.cl b/OpenCL/m06211-pure.cl index ce62c09db..8e32a55f6 100644 --- a/OpenCL/m06211-pure.cl +++ b/OpenCL/m06211-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06212-pure.cl b/OpenCL/m06212-pure.cl index 4c149af11..f3f28f6cb 100644 --- a/OpenCL/m06212-pure.cl +++ b/OpenCL/m06212-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06213-pure.cl b/OpenCL/m06213-pure.cl index 2e1f761a6..3e64a1fd7 100644 --- a/OpenCL/m06213-pure.cl +++ b/OpenCL/m06213-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m06221-pure.cl b/OpenCL/m06221-pure.cl index 1f0a41453..061be6518 100644 --- a/OpenCL/m06221-pure.cl +++ b/OpenCL/m06221-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m06222-pure.cl b/OpenCL/m06222-pure.cl index ea7697860..ddc939aa4 100644 --- a/OpenCL/m06222-pure.cl +++ b/OpenCL/m06222-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m06223-pure.cl b/OpenCL/m06223-pure.cl index fd4816401..c277f70c4 100644 --- a/OpenCL/m06223-pure.cl +++ b/OpenCL/m06223-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m06231-pure.cl b/OpenCL/m06231-pure.cl index 1092562b4..21db47453 100644 --- a/OpenCL/m06231-pure.cl +++ b/OpenCL/m06231-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06232-pure.cl b/OpenCL/m06232-pure.cl index 2c4cf0bd0..e0767c370 100644 --- a/OpenCL/m06232-pure.cl +++ b/OpenCL/m06232-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06233-pure.cl b/OpenCL/m06233-pure.cl index 30315c8c4..ab9f5dbcf 100644 --- a/OpenCL/m06233-pure.cl +++ b/OpenCL/m06233-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m06300-optimized.cl b/OpenCL/m06300-optimized.cl index 72442a94b..048f0d7c9 100644 --- a/OpenCL/m06300-optimized.cl +++ b/OpenCL/m06300-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m06300-pure.cl b/OpenCL/m06300-pure.cl index d81b7dfe1..247cb3658 100644 --- a/OpenCL/m06300-pure.cl +++ b/OpenCL/m06300-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m06400-pure.cl b/OpenCL/m06400-pure.cl index fdcacad78..add0631d3 100644 --- a/OpenCL/m06400-pure.cl +++ b/OpenCL/m06400-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m06500-pure.cl b/OpenCL/m06500-pure.cl index 3983ba181..a8fbdeb76 100644 --- a/OpenCL/m06500-pure.cl +++ b/OpenCL/m06500-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m06600-pure.cl b/OpenCL/m06600-pure.cl index 41f6e3f8d..14ca99f3e 100644 --- a/OpenCL/m06600-pure.cl +++ b/OpenCL/m06600-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m06700-pure.cl b/OpenCL/m06700-pure.cl index 3cea8b579..03a2345a5 100644 --- a/OpenCL/m06700-pure.cl +++ b/OpenCL/m06700-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m06800-pure.cl b/OpenCL/m06800-pure.cl index 00daeff7b..b69ac3459 100644 --- a/OpenCL/m06800-pure.cl +++ b/OpenCL/m06800-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m06900_a0-optimized.cl b/OpenCL/m06900_a0-optimized.cl index 2ac31a2ad..1bc9840ac 100644 --- a/OpenCL/m06900_a0-optimized.cl +++ b/OpenCL/m06900_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m06900_a1-optimized.cl b/OpenCL/m06900_a1-optimized.cl index d8eef7ade..bdb153d02 100644 --- a/OpenCL/m06900_a1-optimized.cl +++ b/OpenCL/m06900_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m06900_a3-optimized.cl b/OpenCL/m06900_a3-optimized.cl index 06af207e4..015903ed6 100644 --- a/OpenCL/m06900_a3-optimized.cl +++ b/OpenCL/m06900_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m07000_a0-optimized.cl b/OpenCL/m07000_a0-optimized.cl index 9954daf0e..c43252a3d 100644 --- a/OpenCL/m07000_a0-optimized.cl +++ b/OpenCL/m07000_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m07000_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m07000_a0-pure.cl b/OpenCL/m07000_a0-pure.cl index 43532c78b..87fee455a 100644 --- a/OpenCL/m07000_a0-pure.cl +++ b/OpenCL/m07000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m07000_a1-optimized.cl b/OpenCL/m07000_a1-optimized.cl index da9ee569e..2d43409b1 100644 --- a/OpenCL/m07000_a1-optimized.cl +++ b/OpenCL/m07000_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m07000_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m07000_a1-pure.cl b/OpenCL/m07000_a1-pure.cl index 66d9a1325..4867462a8 100644 --- a/OpenCL/m07000_a1-pure.cl +++ b/OpenCL/m07000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07000_a3-optimized.cl b/OpenCL/m07000_a3-optimized.cl index 71c508a0f..7cc4c6126 100644 --- a/OpenCL/m07000_a3-optimized.cl +++ b/OpenCL/m07000_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m07000m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m07000_a3-pure.cl b/OpenCL/m07000_a3-pure.cl index b7fe098b5..f15b3f36c 100644 --- a/OpenCL/m07000_a3-pure.cl +++ b/OpenCL/m07000_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07100-pure.cl b/OpenCL/m07100-pure.cl index acbd0e82a..b7b8c81af 100644 --- a/OpenCL/m07100-pure.cl +++ b/OpenCL/m07100-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m07300_a0-optimized.cl b/OpenCL/m07300_a0-optimized.cl index 911889c09..7f1c2e7ff 100644 --- a/OpenCL/m07300_a0-optimized.cl +++ b/OpenCL/m07300_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m07300_a0-pure.cl b/OpenCL/m07300_a0-pure.cl index 346d8c199..05c59a9e6 100644 --- a/OpenCL/m07300_a0-pure.cl +++ b/OpenCL/m07300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m07300_a1-optimized.cl b/OpenCL/m07300_a1-optimized.cl index 28e18eab7..91f634f93 100644 --- a/OpenCL/m07300_a1-optimized.cl +++ b/OpenCL/m07300_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07300_a1-pure.cl b/OpenCL/m07300_a1-pure.cl index 1353e5290..9808221ce 100644 --- a/OpenCL/m07300_a1-pure.cl +++ b/OpenCL/m07300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07300_a3-optimized.cl b/OpenCL/m07300_a3-optimized.cl index fad09a0a4..9486aa218 100644 --- a/OpenCL/m07300_a3-optimized.cl +++ b/OpenCL/m07300_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07300_a3-pure.cl b/OpenCL/m07300_a3-pure.cl index ca16a4dcc..7123db79a 100644 --- a/OpenCL/m07300_a3-pure.cl +++ b/OpenCL/m07300_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07400-optimized.cl b/OpenCL/m07400-optimized.cl index b5db1fc7e..cd3d8f919 100644 --- a/OpenCL/m07400-optimized.cl +++ b/OpenCL/m07400-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m07400-pure.cl b/OpenCL/m07400-pure.cl index 87aa97322..4a7ae05f6 100644 --- a/OpenCL/m07400-pure.cl +++ b/OpenCL/m07400-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m07500_a0-optimized.cl b/OpenCL/m07500_a0-optimized.cl index ee4ade751..345b8d9da 100644 --- a/OpenCL/m07500_a0-optimized.cl +++ b/OpenCL/m07500_a0-optimized.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m07500_a0-pure.cl b/OpenCL/m07500_a0-pure.cl index 184496f57..127062d8f 100644 --- a/OpenCL/m07500_a0-pure.cl +++ b/OpenCL/m07500_a0-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m07500_a1-optimized.cl b/OpenCL/m07500_a1-optimized.cl index 620d344b3..f208588ee 100644 --- a/OpenCL/m07500_a1-optimized.cl +++ b/OpenCL/m07500_a1-optimized.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m07500_a1-pure.cl b/OpenCL/m07500_a1-pure.cl index f24d1595f..1dd0a27fe 100644 --- a/OpenCL/m07500_a1-pure.cl +++ b/OpenCL/m07500_a1-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md4.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m07500_a3-optimized.cl b/OpenCL/m07500_a3-optimized.cl index 6d6dbeb92..78f6f2e95 100644 --- a/OpenCL/m07500_a3-optimized.cl +++ b/OpenCL/m07500_a3-optimized.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m07500_a3-pure.cl b/OpenCL/m07500_a3-pure.cl index e610b1eac..c6eb1bcf5 100644 --- a/OpenCL/m07500_a3-pure.cl +++ b/OpenCL/m07500_a3-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md4.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m07700_a0-optimized.cl b/OpenCL/m07700_a0-optimized.cl index 1e84c5fe0..083451346 100644 --- a/OpenCL/m07700_a0-optimized.cl +++ b/OpenCL/m07700_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m07700_a1-optimized.cl b/OpenCL/m07700_a1-optimized.cl index f0d4efbd4..d1e881094 100644 --- a/OpenCL/m07700_a1-optimized.cl +++ b/OpenCL/m07700_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m07700_a3-optimized.cl b/OpenCL/m07700_a3-optimized.cl index c17282b63..cd217d3df 100644 --- a/OpenCL/m07700_a3-optimized.cl +++ b/OpenCL/m07700_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m07701_a0-optimized.cl b/OpenCL/m07701_a0-optimized.cl index eb69422c5..c3f144212 100644 --- a/OpenCL/m07701_a0-optimized.cl +++ b/OpenCL/m07701_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m07701_a1-optimized.cl b/OpenCL/m07701_a1-optimized.cl index 4f4e909a1..4eb16112b 100644 --- a/OpenCL/m07701_a1-optimized.cl +++ b/OpenCL/m07701_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m07701_a3-optimized.cl b/OpenCL/m07701_a3-optimized.cl index 97c9badab..9684e9053 100644 --- a/OpenCL/m07701_a3-optimized.cl +++ b/OpenCL/m07701_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m07800_a0-optimized.cl b/OpenCL/m07800_a0-optimized.cl index 3a92560cb..2b0205028 100644 --- a/OpenCL/m07800_a0-optimized.cl +++ b/OpenCL/m07800_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible data-dependant code //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m07800_a1-optimized.cl b/OpenCL/m07800_a1-optimized.cl index b9cbd893c..928e1d8a9 100644 --- a/OpenCL/m07800_a1-optimized.cl +++ b/OpenCL/m07800_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible data-dependant code //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07800_a3-optimized.cl b/OpenCL/m07800_a3-optimized.cl index 94ee158ff..6bb162b3d 100644 --- a/OpenCL/m07800_a3-optimized.cl +++ b/OpenCL/m07800_a3-optimized.cl @@ -6,10 +6,8 @@ //incompatible data-dependant code //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07801_a0-optimized.cl b/OpenCL/m07801_a0-optimized.cl index 57d686400..100d3e053 100644 --- a/OpenCL/m07801_a0-optimized.cl +++ b/OpenCL/m07801_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible data-dependant code //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m07801_a1-optimized.cl b/OpenCL/m07801_a1-optimized.cl index 37b29634e..7e0ba2a8c 100644 --- a/OpenCL/m07801_a1-optimized.cl +++ b/OpenCL/m07801_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible data-dependant code //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07801_a3-optimized.cl b/OpenCL/m07801_a3-optimized.cl index dc5c7d091..3f616e001 100644 --- a/OpenCL/m07801_a3-optimized.cl +++ b/OpenCL/m07801_a3-optimized.cl @@ -6,10 +6,8 @@ //incompatible data-dependant code //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m07900-pure.cl b/OpenCL/m07900-pure.cl index fa25a1354..a2a488c43 100644 --- a/OpenCL/m07900-pure.cl +++ b/OpenCL/m07900-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m08000_a0-optimized.cl b/OpenCL/m08000_a0-optimized.cl index 871d0e6a3..47871f249 100644 --- a/OpenCL/m08000_a0-optimized.cl +++ b/OpenCL/m08000_a0-optimized.cl @@ -5,41 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" -__constant u32a k_sha256[64] = -{ - SHA256C00, SHA256C01, SHA256C02, SHA256C03, - SHA256C04, SHA256C05, SHA256C06, SHA256C07, - SHA256C08, SHA256C09, SHA256C0a, SHA256C0b, - SHA256C0c, SHA256C0d, SHA256C0e, SHA256C0f, - SHA256C10, SHA256C11, SHA256C12, SHA256C13, - SHA256C14, SHA256C15, SHA256C16, SHA256C17, - SHA256C18, SHA256C19, SHA256C1a, SHA256C1b, - SHA256C1c, SHA256C1d, SHA256C1e, SHA256C1f, - SHA256C20, SHA256C21, SHA256C22, SHA256C23, - SHA256C24, SHA256C25, SHA256C26, SHA256C27, - SHA256C28, SHA256C29, SHA256C2a, SHA256C2b, - SHA256C2c, SHA256C2d, SHA256C2e, SHA256C2f, - SHA256C30, SHA256C31, SHA256C32, SHA256C33, - SHA256C34, SHA256C35, SHA256C36, SHA256C37, - SHA256C38, SHA256C39, SHA256C3a, SHA256C3b, - SHA256C3c, SHA256C3d, SHA256C3e, SHA256C3f, -}; - -#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) -#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) - -#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) - -DECLSPEC void sha256_transform (u32x *digest, const u32x *w) +DECLSPEC void sha256_transform_m (u32x *digest, const u32x *w) { u32x a = digest[0]; u32x b = digest[1]; @@ -378,7 +352,7 @@ __kernel void m08000_m04 (KERN_ATTR_RULES ()) digest[6] = SHA256M_G; digest[7] = SHA256M_H; - sha256_transform (digest, w_t); // 0 - 64 + sha256_transform_m (digest, w_t); // 0 - 64 sha256_transform_z (digest); // 64 - 128 sha256_transform_z (digest); // 128 - 192 sha256_transform_z (digest); // 192 - 256 @@ -561,7 +535,7 @@ __kernel void m08000_s04 (KERN_ATTR_RULES ()) digest[6] = SHA256M_G; digest[7] = SHA256M_H; - sha256_transform (digest, w_t); // 0 - 64 + sha256_transform_m (digest, w_t); // 0 - 64 sha256_transform_z (digest); // 64 - 128 sha256_transform_z (digest); // 128 - 192 sha256_transform_z (digest); // 192 - 256 diff --git a/OpenCL/m08000_a1-optimized.cl b/OpenCL/m08000_a1-optimized.cl index ae929f096..199f0bab0 100644 --- a/OpenCL/m08000_a1-optimized.cl +++ b/OpenCL/m08000_a1-optimized.cl @@ -5,39 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" -__constant u32a k_sha256[64] = -{ - SHA256C00, SHA256C01, SHA256C02, SHA256C03, - SHA256C04, SHA256C05, SHA256C06, SHA256C07, - SHA256C08, SHA256C09, SHA256C0a, SHA256C0b, - SHA256C0c, SHA256C0d, SHA256C0e, SHA256C0f, - SHA256C10, SHA256C11, SHA256C12, SHA256C13, - SHA256C14, SHA256C15, SHA256C16, SHA256C17, - SHA256C18, SHA256C19, SHA256C1a, SHA256C1b, - SHA256C1c, SHA256C1d, SHA256C1e, SHA256C1f, - SHA256C20, SHA256C21, SHA256C22, SHA256C23, - SHA256C24, SHA256C25, SHA256C26, SHA256C27, - SHA256C28, SHA256C29, SHA256C2a, SHA256C2b, - SHA256C2c, SHA256C2d, SHA256C2e, SHA256C2f, - SHA256C30, SHA256C31, SHA256C32, SHA256C33, - SHA256C34, SHA256C35, SHA256C36, SHA256C37, - SHA256C38, SHA256C39, SHA256C3a, SHA256C3b, - SHA256C3c, SHA256C3d, SHA256C3e, SHA256C3f, -}; - -#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) -#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) - -#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) - -DECLSPEC void sha256_transform (u32x *digest, const u32x *w) +DECLSPEC void sha256_transform_m (u32x *digest, const u32x *w) { u32x a = digest[0]; u32x b = digest[1]; @@ -430,7 +404,7 @@ __kernel void m08000_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA256M_G; digest[7] = SHA256M_H; - sha256_transform (digest, w_t); // 0 - 64 + sha256_transform_m (digest, w_t); // 0 - 64 sha256_transform_z (digest); // 64 - 128 sha256_transform_z (digest); // 128 - 192 sha256_transform_z (digest); // 192 - 256 @@ -667,7 +641,7 @@ __kernel void m08000_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA256M_G; digest[7] = SHA256M_H; - sha256_transform (digest, w_t); // 0 - 64 + sha256_transform_m (digest, w_t); // 0 - 64 sha256_transform_z (digest); // 64 - 128 sha256_transform_z (digest); // 128 - 192 sha256_transform_z (digest); // 192 - 256 diff --git a/OpenCL/m08000_a3-optimized.cl b/OpenCL/m08000_a3-optimized.cl index c5ebf33d2..674867950 100644 --- a/OpenCL/m08000_a3-optimized.cl +++ b/OpenCL/m08000_a3-optimized.cl @@ -5,39 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" -__constant u32a k_sha256[64] = -{ - SHA256C00, SHA256C01, SHA256C02, SHA256C03, - SHA256C04, SHA256C05, SHA256C06, SHA256C07, - SHA256C08, SHA256C09, SHA256C0a, SHA256C0b, - SHA256C0c, SHA256C0d, SHA256C0e, SHA256C0f, - SHA256C10, SHA256C11, SHA256C12, SHA256C13, - SHA256C14, SHA256C15, SHA256C16, SHA256C17, - SHA256C18, SHA256C19, SHA256C1a, SHA256C1b, - SHA256C1c, SHA256C1d, SHA256C1e, SHA256C1f, - SHA256C20, SHA256C21, SHA256C22, SHA256C23, - SHA256C24, SHA256C25, SHA256C26, SHA256C27, - SHA256C28, SHA256C29, SHA256C2a, SHA256C2b, - SHA256C2c, SHA256C2d, SHA256C2e, SHA256C2f, - SHA256C30, SHA256C31, SHA256C32, SHA256C33, - SHA256C34, SHA256C35, SHA256C36, SHA256C37, - SHA256C38, SHA256C39, SHA256C3a, SHA256C3b, - SHA256C3c, SHA256C3d, SHA256C3e, SHA256C3f, -}; - -#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) -#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) - -#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) - -DECLSPEC void sha256_transform (u32x *digest, const u32x *w) +DECLSPEC void sha256_transform_m (u32x *digest, const u32x *w) { u32x a = digest[0]; u32x b = digest[1]; @@ -335,7 +309,7 @@ DECLSPEC void m08000m (__local u32 *w_s1, __local u32 *w_s2, u32 *w, const u32 p digest[6] = SHA256M_G; digest[7] = SHA256M_H; - sha256_transform (digest, w_t); // 0 - 64 + sha256_transform_m (digest, w_t); // 0 - 64 sha256_transform_z (digest); // 64 - 128 sha256_transform_z (digest); // 128 - 192 sha256_transform_z (digest); // 192 - 256 @@ -469,7 +443,7 @@ DECLSPEC void m08000s (__local u32 *w_s1, __local u32 *w_s2, u32 *w, const u32 p digest[6] = SHA256M_G; digest[7] = SHA256M_H; - sha256_transform (digest, w_t); // 0 - 64 + sha256_transform_m (digest, w_t); // 0 - 64 sha256_transform_z (digest); // 64 - 128 sha256_transform_z (digest); // 128 - 192 sha256_transform_z (digest); // 192 - 256 diff --git a/OpenCL/m08100_a0-optimized.cl b/OpenCL/m08100_a0-optimized.cl index 075bc9a70..454a32286 100644 --- a/OpenCL/m08100_a0-optimized.cl +++ b/OpenCL/m08100_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m08100_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m08100_a0-pure.cl b/OpenCL/m08100_a0-pure.cl index bed40e229..430c05d50 100644 --- a/OpenCL/m08100_a0-pure.cl +++ b/OpenCL/m08100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m08100_a1-optimized.cl b/OpenCL/m08100_a1-optimized.cl index 5366b9fa8..66b8c4e49 100644 --- a/OpenCL/m08100_a1-optimized.cl +++ b/OpenCL/m08100_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m08100_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m08100_a1-pure.cl b/OpenCL/m08100_a1-pure.cl index 6214ce7ff..08e78abf0 100644 --- a/OpenCL/m08100_a1-pure.cl +++ b/OpenCL/m08100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08100_a3-optimized.cl b/OpenCL/m08100_a3-optimized.cl index f428cc4c9..e6b03191b 100644 --- a/OpenCL/m08100_a3-optimized.cl +++ b/OpenCL/m08100_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m08100m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m08100_a3-pure.cl b/OpenCL/m08100_a3-pure.cl index eefe97f74..686d57155 100644 --- a/OpenCL/m08100_a3-pure.cl +++ b/OpenCL/m08100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08200-pure.cl b/OpenCL/m08200-pure.cl index e405b885c..75e3c65f0 100644 --- a/OpenCL/m08200-pure.cl +++ b/OpenCL/m08200-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m08300_a0-optimized.cl b/OpenCL/m08300_a0-optimized.cl index fdf808eec..45b4a0970 100644 --- a/OpenCL/m08300_a0-optimized.cl +++ b/OpenCL/m08300_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m08300_a0-pure.cl b/OpenCL/m08300_a0-pure.cl index d283a634b..fe4b81af3 100644 --- a/OpenCL/m08300_a0-pure.cl +++ b/OpenCL/m08300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m08300_a1-optimized.cl b/OpenCL/m08300_a1-optimized.cl index 0d330e27e..fa36f737a 100644 --- a/OpenCL/m08300_a1-optimized.cl +++ b/OpenCL/m08300_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08300_a1-pure.cl b/OpenCL/m08300_a1-pure.cl index 05390dc3d..0af95fa4e 100644 --- a/OpenCL/m08300_a1-pure.cl +++ b/OpenCL/m08300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08300_a3-optimized.cl b/OpenCL/m08300_a3-optimized.cl index 7db73dc3d..53771b438 100644 --- a/OpenCL/m08300_a3-optimized.cl +++ b/OpenCL/m08300_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08300_a3-pure.cl b/OpenCL/m08300_a3-pure.cl index cb0d5a41c..afd4a840b 100644 --- a/OpenCL/m08300_a3-pure.cl +++ b/OpenCL/m08300_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08400_a0-optimized.cl b/OpenCL/m08400_a0-optimized.cl index d2ba23648..6e6ce5949 100644 --- a/OpenCL/m08400_a0-optimized.cl +++ b/OpenCL/m08400_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m08400_a0-pure.cl b/OpenCL/m08400_a0-pure.cl index ad0588b3c..8449d40a3 100644 --- a/OpenCL/m08400_a0-pure.cl +++ b/OpenCL/m08400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m08400_a1-optimized.cl b/OpenCL/m08400_a1-optimized.cl index e40bfc3c5..9b93213e6 100644 --- a/OpenCL/m08400_a1-optimized.cl +++ b/OpenCL/m08400_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08400_a1-pure.cl b/OpenCL/m08400_a1-pure.cl index fb2a024f8..a67de987d 100644 --- a/OpenCL/m08400_a1-pure.cl +++ b/OpenCL/m08400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08400_a3-optimized.cl b/OpenCL/m08400_a3-optimized.cl index ced417fc6..fb32bf32a 100644 --- a/OpenCL/m08400_a3-optimized.cl +++ b/OpenCL/m08400_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08400_a3-pure.cl b/OpenCL/m08400_a3-pure.cl index 0a6a67d4e..7d7dd16f6 100644 --- a/OpenCL/m08400_a3-pure.cl +++ b/OpenCL/m08400_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08500_a0-pure.cl b/OpenCL/m08500_a0-pure.cl index 9257eef0a..3f0c23f02 100644 --- a/OpenCL/m08500_a0-pure.cl +++ b/OpenCL/m08500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m08500_a1-pure.cl b/OpenCL/m08500_a1-pure.cl index 13809011d..e9297b35d 100644 --- a/OpenCL/m08500_a1-pure.cl +++ b/OpenCL/m08500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m08500_a3-pure.cl b/OpenCL/m08500_a3-pure.cl index 6cd550329..29cde149d 100644 --- a/OpenCL/m08500_a3-pure.cl +++ b/OpenCL/m08500_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m08600_a0-pure.cl b/OpenCL/m08600_a0-pure.cl index 8c069178b..5389ae3cd 100644 --- a/OpenCL/m08600_a0-pure.cl +++ b/OpenCL/m08600_a0-pure.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m08600_a1-pure.cl b/OpenCL/m08600_a1-pure.cl index b60cd3a59..54aaed2f7 100644 --- a/OpenCL/m08600_a1-pure.cl +++ b/OpenCL/m08600_a1-pure.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m08600_a3-pure.cl b/OpenCL/m08600_a3-pure.cl index 05b916dee..0e89f69e8 100644 --- a/OpenCL/m08600_a3-pure.cl +++ b/OpenCL/m08600_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m08700_a0-optimized.cl b/OpenCL/m08700_a0-optimized.cl index 77258b20a..4e7ca3970 100644 --- a/OpenCL/m08700_a0-optimized.cl +++ b/OpenCL/m08700_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m08700_a1-optimized.cl b/OpenCL/m08700_a1-optimized.cl index 159dcbee9..55fe47f93 100644 --- a/OpenCL/m08700_a1-optimized.cl +++ b/OpenCL/m08700_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m08700_a3-optimized.cl b/OpenCL/m08700_a3-optimized.cl index 00469fe07..ee524a31f 100644 --- a/OpenCL/m08700_a3-optimized.cl +++ b/OpenCL/m08700_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m08800-pure.cl b/OpenCL/m08800-pure.cl index 91db82eb2..c4290da60 100644 --- a/OpenCL/m08800-pure.cl +++ b/OpenCL/m08800-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m08900-pure.cl b/OpenCL/m08900-pure.cl index 15f81cd44..cdbfb6ec3 100644 --- a/OpenCL/m08900-pure.cl +++ b/OpenCL/m08900-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m09000-pure.cl b/OpenCL/m09000-pure.cl index f4c3b89b1..cb58840c6 100644 --- a/OpenCL/m09000-pure.cl +++ b/OpenCL/m09000-pure.cl @@ -3,11 +3,10 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" +#include "inc_hash_sha1.cl" #define COMPARE_S "inc_comp_single.cl" #define COMPARE_M "inc_comp_multi.cl" @@ -355,134 +354,6 @@ __constant u32a c_pbox[18] = L ^= P[17]; \ } -DECLSPEC void sha1_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *digest) -{ - u32 A = digest[0]; - u32 B = digest[1]; - u32 C = digest[2]; - u32 D = digest[3]; - u32 E = digest[4]; - - u32 w0_t = w0[0]; - u32 w1_t = w0[1]; - u32 w2_t = w0[2]; - u32 w3_t = w0[3]; - u32 w4_t = w1[0]; - u32 w5_t = w1[1]; - u32 w6_t = w1[2]; - u32 w7_t = w1[3]; - u32 w8_t = w2[0]; - u32 w9_t = w2[1]; - u32 wa_t = w2[2]; - u32 wb_t = w2[3]; - u32 wc_t = w3[0]; - u32 wd_t = w3[1]; - u32 we_t = w3[2]; - u32 wf_t = w3[3]; - - #undef K - #define K SHA1C00 - - SHA1_STEP (SHA1_F0o, A, B, C, D, E, w0_t); - SHA1_STEP (SHA1_F0o, E, A, B, C, D, w1_t); - SHA1_STEP (SHA1_F0o, D, E, A, B, C, w2_t); - SHA1_STEP (SHA1_F0o, C, D, E, A, B, w3_t); - SHA1_STEP (SHA1_F0o, B, C, D, E, A, w4_t); - SHA1_STEP (SHA1_F0o, A, B, C, D, E, w5_t); - SHA1_STEP (SHA1_F0o, E, A, B, C, D, w6_t); - SHA1_STEP (SHA1_F0o, D, E, A, B, C, w7_t); - SHA1_STEP (SHA1_F0o, C, D, E, A, B, w8_t); - SHA1_STEP (SHA1_F0o, B, C, D, E, A, w9_t); - SHA1_STEP (SHA1_F0o, A, B, C, D, E, wa_t); - SHA1_STEP (SHA1_F0o, E, A, B, C, D, wb_t); - SHA1_STEP (SHA1_F0o, D, E, A, B, C, wc_t); - SHA1_STEP (SHA1_F0o, C, D, E, A, B, wd_t); - SHA1_STEP (SHA1_F0o, B, C, D, E, A, we_t); - SHA1_STEP (SHA1_F0o, A, B, C, D, E, wf_t); - w0_t = rotl32 ((wd_t ^ w8_t ^ w2_t ^ w0_t), 1u); SHA1_STEP (SHA1_F0o, E, A, B, C, D, w0_t); - w1_t = rotl32 ((we_t ^ w9_t ^ w3_t ^ w1_t), 1u); SHA1_STEP (SHA1_F0o, D, E, A, B, C, w1_t); - w2_t = rotl32 ((wf_t ^ wa_t ^ w4_t ^ w2_t), 1u); SHA1_STEP (SHA1_F0o, C, D, E, A, B, w2_t); - w3_t = rotl32 ((w0_t ^ wb_t ^ w5_t ^ w3_t), 1u); SHA1_STEP (SHA1_F0o, B, C, D, E, A, w3_t); - - #undef K - #define K SHA1C01 - - w4_t = rotl32 ((w1_t ^ wc_t ^ w6_t ^ w4_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, w4_t); - w5_t = rotl32 ((w2_t ^ wd_t ^ w7_t ^ w5_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, w5_t); - w6_t = rotl32 ((w3_t ^ we_t ^ w8_t ^ w6_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, w6_t); - w7_t = rotl32 ((w4_t ^ wf_t ^ w9_t ^ w7_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, w7_t); - w8_t = rotl32 ((w5_t ^ w0_t ^ wa_t ^ w8_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, w8_t); - w9_t = rotl32 ((w6_t ^ w1_t ^ wb_t ^ w9_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, w9_t); - wa_t = rotl32 ((w7_t ^ w2_t ^ wc_t ^ wa_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, wa_t); - wb_t = rotl32 ((w8_t ^ w3_t ^ wd_t ^ wb_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, wb_t); - wc_t = rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, wc_t); - wd_t = rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, wd_t); - we_t = rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, we_t); - wf_t = rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, wf_t); - w0_t = rotl32 ((wd_t ^ w8_t ^ w2_t ^ w0_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, w0_t); - w1_t = rotl32 ((we_t ^ w9_t ^ w3_t ^ w1_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, w1_t); - w2_t = rotl32 ((wf_t ^ wa_t ^ w4_t ^ w2_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, w2_t); - w3_t = rotl32 ((w0_t ^ wb_t ^ w5_t ^ w3_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, w3_t); - w4_t = rotl32 ((w1_t ^ wc_t ^ w6_t ^ w4_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, w4_t); - w5_t = rotl32 ((w2_t ^ wd_t ^ w7_t ^ w5_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, w5_t); - w6_t = rotl32 ((w3_t ^ we_t ^ w8_t ^ w6_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, w6_t); - w7_t = rotl32 ((w4_t ^ wf_t ^ w9_t ^ w7_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, w7_t); - - #undef K - #define K SHA1C02 - - w8_t = rotl32 ((w5_t ^ w0_t ^ wa_t ^ w8_t), 1u); SHA1_STEP (SHA1_F2o, A, B, C, D, E, w8_t); - w9_t = rotl32 ((w6_t ^ w1_t ^ wb_t ^ w9_t), 1u); SHA1_STEP (SHA1_F2o, E, A, B, C, D, w9_t); - wa_t = rotl32 ((w7_t ^ w2_t ^ wc_t ^ wa_t), 1u); SHA1_STEP (SHA1_F2o, D, E, A, B, C, wa_t); - wb_t = rotl32 ((w8_t ^ w3_t ^ wd_t ^ wb_t), 1u); SHA1_STEP (SHA1_F2o, C, D, E, A, B, wb_t); - wc_t = rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F2o, B, C, D, E, A, wc_t); - wd_t = rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F2o, A, B, C, D, E, wd_t); - we_t = rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F2o, E, A, B, C, D, we_t); - wf_t = rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F2o, D, E, A, B, C, wf_t); - w0_t = rotl32 ((wd_t ^ w8_t ^ w2_t ^ w0_t), 1u); SHA1_STEP (SHA1_F2o, C, D, E, A, B, w0_t); - w1_t = rotl32 ((we_t ^ w9_t ^ w3_t ^ w1_t), 1u); SHA1_STEP (SHA1_F2o, B, C, D, E, A, w1_t); - w2_t = rotl32 ((wf_t ^ wa_t ^ w4_t ^ w2_t), 1u); SHA1_STEP (SHA1_F2o, A, B, C, D, E, w2_t); - w3_t = rotl32 ((w0_t ^ wb_t ^ w5_t ^ w3_t), 1u); SHA1_STEP (SHA1_F2o, E, A, B, C, D, w3_t); - w4_t = rotl32 ((w1_t ^ wc_t ^ w6_t ^ w4_t), 1u); SHA1_STEP (SHA1_F2o, D, E, A, B, C, w4_t); - w5_t = rotl32 ((w2_t ^ wd_t ^ w7_t ^ w5_t), 1u); SHA1_STEP (SHA1_F2o, C, D, E, A, B, w5_t); - w6_t = rotl32 ((w3_t ^ we_t ^ w8_t ^ w6_t), 1u); SHA1_STEP (SHA1_F2o, B, C, D, E, A, w6_t); - w7_t = rotl32 ((w4_t ^ wf_t ^ w9_t ^ w7_t), 1u); SHA1_STEP (SHA1_F2o, A, B, C, D, E, w7_t); - w8_t = rotl32 ((w5_t ^ w0_t ^ wa_t ^ w8_t), 1u); SHA1_STEP (SHA1_F2o, E, A, B, C, D, w8_t); - w9_t = rotl32 ((w6_t ^ w1_t ^ wb_t ^ w9_t), 1u); SHA1_STEP (SHA1_F2o, D, E, A, B, C, w9_t); - wa_t = rotl32 ((w7_t ^ w2_t ^ wc_t ^ wa_t), 1u); SHA1_STEP (SHA1_F2o, C, D, E, A, B, wa_t); - wb_t = rotl32 ((w8_t ^ w3_t ^ wd_t ^ wb_t), 1u); SHA1_STEP (SHA1_F2o, B, C, D, E, A, wb_t); - - #undef K - #define K SHA1C03 - - wc_t = rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, wc_t); - wd_t = rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, wd_t); - we_t = rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, we_t); - wf_t = rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, wf_t); - w0_t = rotl32 ((wd_t ^ w8_t ^ w2_t ^ w0_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, w0_t); - w1_t = rotl32 ((we_t ^ w9_t ^ w3_t ^ w1_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, w1_t); - w2_t = rotl32 ((wf_t ^ wa_t ^ w4_t ^ w2_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, w2_t); - w3_t = rotl32 ((w0_t ^ wb_t ^ w5_t ^ w3_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, w3_t); - w4_t = rotl32 ((w1_t ^ wc_t ^ w6_t ^ w4_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, w4_t); - w5_t = rotl32 ((w2_t ^ wd_t ^ w7_t ^ w5_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, w5_t); - w6_t = rotl32 ((w3_t ^ we_t ^ w8_t ^ w6_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, w6_t); - w7_t = rotl32 ((w4_t ^ wf_t ^ w9_t ^ w7_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, w7_t); - w8_t = rotl32 ((w5_t ^ w0_t ^ wa_t ^ w8_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, w8_t); - w9_t = rotl32 ((w6_t ^ w1_t ^ wb_t ^ w9_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, w9_t); - wa_t = rotl32 ((w7_t ^ w2_t ^ wc_t ^ wa_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, wa_t); - wb_t = rotl32 ((w8_t ^ w3_t ^ wd_t ^ wb_t), 1u); SHA1_STEP (SHA1_F1, A, B, C, D, E, wb_t); - wc_t = rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F1, E, A, B, C, D, wc_t); - wd_t = rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F1, D, E, A, B, C, wd_t); - we_t = rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, C, D, E, A, B, we_t); - wf_t = rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, B, C, D, E, A, wf_t); - - digest[0] += A; - digest[1] += B; - digest[2] += C; - digest[3] += D; - digest[4] += E; -} - __kernel void __attribute__((reqd_work_group_size(FIXED_LOCAL_SIZE, 1, 1))) m09000_init (KERN_ATTR_TMPS (pwsafe2_tmp_t)) { /** diff --git a/OpenCL/m09100-pure.cl b/OpenCL/m09100-pure.cl index 7d286d448..29b42ad92 100644 --- a/OpenCL/m09100-pure.cl +++ b/OpenCL/m09100-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09400-pure.cl b/OpenCL/m09400-pure.cl index 196a087a3..5b01555e4 100644 --- a/OpenCL/m09400-pure.cl +++ b/OpenCL/m09400-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09500-pure.cl b/OpenCL/m09500-pure.cl index f56e347de..570a7ab8b 100644 --- a/OpenCL/m09500-pure.cl +++ b/OpenCL/m09500-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09600-pure.cl b/OpenCL/m09600-pure.cl index 9467ef360..5533c5820 100644 --- a/OpenCL/m09600-pure.cl +++ b/OpenCL/m09600-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m09700_a0-optimized.cl b/OpenCL/m09700_a0-optimized.cl index 8f1f660f9..b12048142 100644 --- a/OpenCL/m09700_a0-optimized.cl +++ b/OpenCL/m09700_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m09700_a1-optimized.cl b/OpenCL/m09700_a1-optimized.cl index 8d0b44d3d..cbd49896a 100644 --- a/OpenCL/m09700_a1-optimized.cl +++ b/OpenCL/m09700_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09700_a3-optimized.cl b/OpenCL/m09700_a3-optimized.cl index e68c44824..79893b00d 100644 --- a/OpenCL/m09700_a3-optimized.cl +++ b/OpenCL/m09700_a3-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09710_a0-optimized.cl b/OpenCL/m09710_a0-optimized.cl index 59c06f97a..ae0400516 100644 --- a/OpenCL/m09710_a0-optimized.cl +++ b/OpenCL/m09710_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m09710_a1-optimized.cl b/OpenCL/m09710_a1-optimized.cl index b3855abf5..6df8c1d15 100644 --- a/OpenCL/m09710_a1-optimized.cl +++ b/OpenCL/m09710_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09710_a3-optimized.cl b/OpenCL/m09710_a3-optimized.cl index 8defd484b..c4712d3fc 100644 --- a/OpenCL/m09710_a3-optimized.cl +++ b/OpenCL/m09710_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09720_a0-optimized.cl b/OpenCL/m09720_a0-optimized.cl index 698a9cf01..0d9fe56ef 100644 --- a/OpenCL/m09720_a0-optimized.cl +++ b/OpenCL/m09720_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m09720_a1-optimized.cl b/OpenCL/m09720_a1-optimized.cl index b590a9486..7fb8a3f33 100644 --- a/OpenCL/m09720_a1-optimized.cl +++ b/OpenCL/m09720_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09720_a3-optimized.cl b/OpenCL/m09720_a3-optimized.cl index c6fad8678..734ac06b6 100644 --- a/OpenCL/m09720_a3-optimized.cl +++ b/OpenCL/m09720_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09800_a0-optimized.cl b/OpenCL/m09800_a0-optimized.cl index 094e319da..25cf7f8a1 100644 --- a/OpenCL/m09800_a0-optimized.cl +++ b/OpenCL/m09800_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m09800_a1-optimized.cl b/OpenCL/m09800_a1-optimized.cl index d900e17d5..d489f69ad 100644 --- a/OpenCL/m09800_a1-optimized.cl +++ b/OpenCL/m09800_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09800_a3-optimized.cl b/OpenCL/m09800_a3-optimized.cl index 2aace0202..486a4e805 100644 --- a/OpenCL/m09800_a3-optimized.cl +++ b/OpenCL/m09800_a3-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09810_a0-optimized.cl b/OpenCL/m09810_a0-optimized.cl index a76503b26..024a6d422 100644 --- a/OpenCL/m09810_a0-optimized.cl +++ b/OpenCL/m09810_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m09810_a1-optimized.cl b/OpenCL/m09810_a1-optimized.cl index 4326cf63e..80c8b5d4e 100644 --- a/OpenCL/m09810_a1-optimized.cl +++ b/OpenCL/m09810_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09810_a3-optimized.cl b/OpenCL/m09810_a3-optimized.cl index 6d5bfc74d..f06e7acaa 100644 --- a/OpenCL/m09810_a3-optimized.cl +++ b/OpenCL/m09810_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09820_a0-optimized.cl b/OpenCL/m09820_a0-optimized.cl index d312a212c..761feb292 100644 --- a/OpenCL/m09820_a0-optimized.cl +++ b/OpenCL/m09820_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m09820_a1-optimized.cl b/OpenCL/m09820_a1-optimized.cl index 89bb2249e..def31b5f3 100644 --- a/OpenCL/m09820_a1-optimized.cl +++ b/OpenCL/m09820_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09820_a3-optimized.cl b/OpenCL/m09820_a3-optimized.cl index 5c23d43b4..84f76f0ea 100644 --- a/OpenCL/m09820_a3-optimized.cl +++ b/OpenCL/m09820_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m09900_a0-optimized.cl b/OpenCL/m09900_a0-optimized.cl index f7d973b16..f6eeda8b5 100644 --- a/OpenCL/m09900_a0-optimized.cl +++ b/OpenCL/m09900_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m09900_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m09900_a0-pure.cl b/OpenCL/m09900_a0-pure.cl index 3eda9b517..5f89fac71 100644 --- a/OpenCL/m09900_a0-pure.cl +++ b/OpenCL/m09900_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m09900_a1-optimized.cl b/OpenCL/m09900_a1-optimized.cl index 1d2396f57..d070f2422 100644 --- a/OpenCL/m09900_a1-optimized.cl +++ b/OpenCL/m09900_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m09900_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m09900_a1-pure.cl b/OpenCL/m09900_a1-pure.cl index faa92d443..02274eb20 100644 --- a/OpenCL/m09900_a1-pure.cl +++ b/OpenCL/m09900_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m09900_a3-optimized.cl b/OpenCL/m09900_a3-optimized.cl index 00854ed36..c2666379e 100644 --- a/OpenCL/m09900_a3-optimized.cl +++ b/OpenCL/m09900_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m09900m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m09900_a3-pure.cl b/OpenCL/m09900_a3-pure.cl index c708d32c8..fbb2c811e 100644 --- a/OpenCL/m09900_a3-pure.cl +++ b/OpenCL/m09900_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10100_a0-optimized.cl b/OpenCL/m10100_a0-optimized.cl index e481870a6..f487d28bc 100644 --- a/OpenCL/m10100_a0-optimized.cl +++ b/OpenCL/m10100_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible to simd //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m10100_a1-optimized.cl b/OpenCL/m10100_a1-optimized.cl index 49de592cf..83ca8e8a3 100644 --- a/OpenCL/m10100_a1-optimized.cl +++ b/OpenCL/m10100_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible to simd //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m10100_a3-optimized.cl b/OpenCL/m10100_a3-optimized.cl index 0e325a44e..0c8ce7b46 100644 --- a/OpenCL/m10100_a3-optimized.cl +++ b/OpenCL/m10100_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m10300-pure.cl b/OpenCL/m10300-pure.cl index cf956e741..1dfe8d907 100644 --- a/OpenCL/m10300-pure.cl +++ b/OpenCL/m10300-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m10400_a0-optimized.cl b/OpenCL/m10400_a0-optimized.cl index 6aa99fa26..6cd76d74d 100644 --- a/OpenCL/m10400_a0-optimized.cl +++ b/OpenCL/m10400_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m10400_a1-optimized.cl b/OpenCL/m10400_a1-optimized.cl index e11f2f8eb..3bf4e6c05 100644 --- a/OpenCL/m10400_a1-optimized.cl +++ b/OpenCL/m10400_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10400_a3-optimized.cl b/OpenCL/m10400_a3-optimized.cl index 4f454ee7b..75649851c 100644 --- a/OpenCL/m10400_a3-optimized.cl +++ b/OpenCL/m10400_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10410_a0-optimized.cl b/OpenCL/m10410_a0-optimized.cl index 4d0a252e5..7895a82fa 100644 --- a/OpenCL/m10410_a0-optimized.cl +++ b/OpenCL/m10410_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m10410_a1-optimized.cl b/OpenCL/m10410_a1-optimized.cl index b37ce6483..c0ddeaaa1 100644 --- a/OpenCL/m10410_a1-optimized.cl +++ b/OpenCL/m10410_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10410_a3-optimized.cl b/OpenCL/m10410_a3-optimized.cl index 46980fae1..593e0b9fc 100644 --- a/OpenCL/m10410_a3-optimized.cl +++ b/OpenCL/m10410_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10420_a0-optimized.cl b/OpenCL/m10420_a0-optimized.cl index 0174fb91a..3eec2e650 100644 --- a/OpenCL/m10420_a0-optimized.cl +++ b/OpenCL/m10420_a0-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m10420_a1-optimized.cl b/OpenCL/m10420_a1-optimized.cl index 70fffdb6b..7f3f47b4b 100644 --- a/OpenCL/m10420_a1-optimized.cl +++ b/OpenCL/m10420_a1-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10420_a3-optimized.cl b/OpenCL/m10420_a3-optimized.cl index 847197d20..8d7015e06 100644 --- a/OpenCL/m10420_a3-optimized.cl +++ b/OpenCL/m10420_a3-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10500-pure.cl b/OpenCL/m10500-pure.cl index 05c48f794..27596a9bb 100644 --- a/OpenCL/m10500-pure.cl +++ b/OpenCL/m10500-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m10700-optimized.cl b/OpenCL/m10700-optimized.cl index 54acead6f..c2849e7d8 100644 --- a/OpenCL/m10700-optimized.cl +++ b/OpenCL/m10700-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" #include "inc_hash_sha384.cl" diff --git a/OpenCL/m10700-pure.cl b/OpenCL/m10700-pure.cl index fd9183f13..af2e2fd18 100644 --- a/OpenCL/m10700-pure.cl +++ b/OpenCL/m10700-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" #include "inc_hash_sha384.cl" diff --git a/OpenCL/m10800_a0-optimized.cl b/OpenCL/m10800_a0-optimized.cl index 32535708b..5c278b50f 100644 --- a/OpenCL/m10800_a0-optimized.cl +++ b/OpenCL/m10800_a0-optimized.cl @@ -5,40 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha384.cl" -__constant u64a k_sha384[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha384_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha384_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -219,7 +194,7 @@ __kernel void m10800_m04 (KERN_ATTR_RULES ()) digest[6] = SHA384M_G; digest[7] = SHA384M_H; - sha384_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha384_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[3]); const u32x r1 = h32_from_64 (digest[3]); @@ -332,7 +307,7 @@ __kernel void m10800_s04 (KERN_ATTR_RULES ()) digest[6] = SHA384M_G; digest[7] = SHA384M_H; - sha384_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha384_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[3]); const u32x r1 = h32_from_64 (digest[3]); diff --git a/OpenCL/m10800_a0-pure.cl b/OpenCL/m10800_a0-pure.cl index 890bc19e7..f4ecd1867 100644 --- a/OpenCL/m10800_a0-pure.cl +++ b/OpenCL/m10800_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m10800_a1-optimized.cl b/OpenCL/m10800_a1-optimized.cl index 032900925..b20d87b5c 100644 --- a/OpenCL/m10800_a1-optimized.cl +++ b/OpenCL/m10800_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha384.cl" -__constant u64a k_sha384[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha384_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha384_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -275,7 +250,7 @@ __kernel void m10800_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA384M_G; digest[7] = SHA384M_H; - sha384_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha384_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[3]); const u32x r1 = h32_from_64 (digest[3]); @@ -446,7 +421,7 @@ __kernel void m10800_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA384M_G; digest[7] = SHA384M_H; - sha384_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha384_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[3]); const u32x r1 = h32_from_64 (digest[3]); diff --git a/OpenCL/m10800_a1-pure.cl b/OpenCL/m10800_a1-pure.cl index 84e1655bc..556561da1 100644 --- a/OpenCL/m10800_a1-pure.cl +++ b/OpenCL/m10800_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha384.cl" diff --git a/OpenCL/m10800_a3-optimized.cl b/OpenCL/m10800_a3-optimized.cl index 7bfefbdae..81a2bd1f7 100644 --- a/OpenCL/m10800_a3-optimized.cl +++ b/OpenCL/m10800_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha384.cl" -__constant u64a k_sha384[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha384_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) +DECLSPEC void sha384_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -189,7 +164,7 @@ DECLSPEC void m10800m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA384M_G; digest[7] = SHA384M_H; - sha384_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha384_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[3]); const u32x r1 = h32_from_64 (digest[3]); @@ -266,7 +241,7 @@ DECLSPEC void m10800s (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA384M_G; digest[7] = SHA384M_H; - sha384_transform (w0_t, w1_t, w2_t, w3_t, digest); + sha384_transform_intern (w0_t, w1_t, w2_t, w3_t, digest); const u32x r0 = l32_from_64 (digest[3]); const u32x r1 = h32_from_64 (digest[3]); diff --git a/OpenCL/m10800_a3-pure.cl b/OpenCL/m10800_a3-pure.cl index c0066cdae..e1697ebf3 100644 --- a/OpenCL/m10800_a3-pure.cl +++ b/OpenCL/m10800_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha384.cl" diff --git a/OpenCL/m10900-pure.cl b/OpenCL/m10900-pure.cl index 15b1763c3..2394e95eb 100644 --- a/OpenCL/m10900-pure.cl +++ b/OpenCL/m10900-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m11000_a0-optimized.cl b/OpenCL/m11000_a0-optimized.cl index 8616296bf..b00f540ed 100644 --- a/OpenCL/m11000_a0-optimized.cl +++ b/OpenCL/m11000_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m11000_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m11000_a0-pure.cl b/OpenCL/m11000_a0-pure.cl index 6ca0ee016..f03f036aa 100644 --- a/OpenCL/m11000_a0-pure.cl +++ b/OpenCL/m11000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11000_a1-optimized.cl b/OpenCL/m11000_a1-optimized.cl index 31ede04b1..d934ecb87 100644 --- a/OpenCL/m11000_a1-optimized.cl +++ b/OpenCL/m11000_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m11000_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m11000_a1-pure.cl b/OpenCL/m11000_a1-pure.cl index 09a57f290..6c2bf747c 100644 --- a/OpenCL/m11000_a1-pure.cl +++ b/OpenCL/m11000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m11000_a3-optimized.cl b/OpenCL/m11000_a3-optimized.cl index 21b8f557d..a1d6840cf 100644 --- a/OpenCL/m11000_a3-optimized.cl +++ b/OpenCL/m11000_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" DECLSPEC void m11000m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m11000_a3-pure.cl b/OpenCL/m11000_a3-pure.cl index 51c693343..8dea1af0c 100644 --- a/OpenCL/m11000_a3-pure.cl +++ b/OpenCL/m11000_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m11100_a0-optimized.cl b/OpenCL/m11100_a0-optimized.cl index 6523b61d6..fb70a12c7 100644 --- a/OpenCL/m11100_a0-optimized.cl +++ b/OpenCL/m11100_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m11100_a0-pure.cl b/OpenCL/m11100_a0-pure.cl index 71a66407a..4c14f29f4 100644 --- a/OpenCL/m11100_a0-pure.cl +++ b/OpenCL/m11100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11100_a1-optimized.cl b/OpenCL/m11100_a1-optimized.cl index b438b8948..c28987a4f 100644 --- a/OpenCL/m11100_a1-optimized.cl +++ b/OpenCL/m11100_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m11100_a1-pure.cl b/OpenCL/m11100_a1-pure.cl index 0cd490051..000bcfe07 100644 --- a/OpenCL/m11100_a1-pure.cl +++ b/OpenCL/m11100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m11100_a3-optimized.cl b/OpenCL/m11100_a3-optimized.cl index f6feec154..baf191fa9 100644 --- a/OpenCL/m11100_a3-optimized.cl +++ b/OpenCL/m11100_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" #if VECT_SIZE == 1 #define uint_to_hex_lower8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m11100_a3-pure.cl b/OpenCL/m11100_a3-pure.cl index 746eb4e2c..a88cd7ff1 100644 --- a/OpenCL/m11100_a3-pure.cl +++ b/OpenCL/m11100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m11200_a0-optimized.cl b/OpenCL/m11200_a0-optimized.cl index e7a19ec5c..d6eedce03 100644 --- a/OpenCL/m11200_a0-optimized.cl +++ b/OpenCL/m11200_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m11200_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m11200_a0-pure.cl b/OpenCL/m11200_a0-pure.cl index abdd65353..e4d65de1d 100644 --- a/OpenCL/m11200_a0-pure.cl +++ b/OpenCL/m11200_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11200_a1-optimized.cl b/OpenCL/m11200_a1-optimized.cl index fccbbb142..39962ff20 100644 --- a/OpenCL/m11200_a1-optimized.cl +++ b/OpenCL/m11200_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m11200_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m11200_a1-pure.cl b/OpenCL/m11200_a1-pure.cl index 10426c19d..ce7674798 100644 --- a/OpenCL/m11200_a1-pure.cl +++ b/OpenCL/m11200_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m11200_a3-optimized.cl b/OpenCL/m11200_a3-optimized.cl index 8b94ac49a..b92ffed92 100644 --- a/OpenCL/m11200_a3-optimized.cl +++ b/OpenCL/m11200_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m11200m (u32 *w0, u32 *w1, u32 *w2, u32 *w3, const u32 pw_len, KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m11200_a3-pure.cl b/OpenCL/m11200_a3-pure.cl index 772959f47..bd359ce3a 100644 --- a/OpenCL/m11200_a3-pure.cl +++ b/OpenCL/m11200_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m11300-pure.cl b/OpenCL/m11300-pure.cl index 43bd8d93f..5daf0da9d 100644 --- a/OpenCL/m11300-pure.cl +++ b/OpenCL/m11300-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m11400_a0-pure.cl b/OpenCL/m11400_a0-pure.cl index d267e5b0f..49f1b035b 100644 --- a/OpenCL/m11400_a0-pure.cl +++ b/OpenCL/m11400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11400_a1-pure.cl b/OpenCL/m11400_a1-pure.cl index b408d2ec7..44dc803c4 100644 --- a/OpenCL/m11400_a1-pure.cl +++ b/OpenCL/m11400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m11400_a3-pure.cl b/OpenCL/m11400_a3-pure.cl index 6c2e48797..24f07660c 100644 --- a/OpenCL/m11400_a3-pure.cl +++ b/OpenCL/m11400_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m11500_a0-optimized.cl b/OpenCL/m11500_a0-optimized.cl index d812318ec..9ffdfd628 100644 --- a/OpenCL/m11500_a0-optimized.cl +++ b/OpenCL/m11500_a0-optimized.cl @@ -6,10 +6,8 @@ //incompatible because of branches //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m11500_a1-optimized.cl b/OpenCL/m11500_a1-optimized.cl index d74a0e580..2e9a39a3a 100644 --- a/OpenCL/m11500_a1-optimized.cl +++ b/OpenCL/m11500_a1-optimized.cl @@ -6,10 +6,8 @@ //incompatible because of branches //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m11500_a3-optimized.cl b/OpenCL/m11500_a3-optimized.cl index 4d162ef83..175b00b91 100644 --- a/OpenCL/m11500_a3-optimized.cl +++ b/OpenCL/m11500_a3-optimized.cl @@ -6,10 +6,8 @@ //incompatible because of branches //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m11600-pure.cl b/OpenCL/m11600-pure.cl index dc4b7bb93..35aab93d3 100644 --- a/OpenCL/m11600-pure.cl +++ b/OpenCL/m11600-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m11700_a0-optimized.cl b/OpenCL/m11700_a0-optimized.cl index a84dbb5ae..3408e0f96 100644 --- a/OpenCL/m11700_a0-optimized.cl +++ b/OpenCL/m11700_a0-optimized.cl @@ -6,2233 +6,16 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_streebog256.cl" #define INITVAL 0x0101010101010101 -#if VECT_SIZE == 1 -#define BOX(S,n,i) (S)[(n)][(i)] -#elif VECT_SIZE == 2 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1]) -#elif VECT_SIZE == 4 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3]) -#elif VECT_SIZE == 8 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) -#elif VECT_SIZE == 16 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) -#endif - -#define SBOG_LPSti64 \ - BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff)) - -// constants - -__constant u64a sbob_sl64[8][256] = -{ - { - 0xd031c397ce553fe6, - 0x16ba5b01b006b525, - 0xa89bade6296e70c8, - 0x6a1f525d77d3435b, - 0x6e103570573dfa0b, - 0x660efb2a17fc95ab, - 0x76327a9e97634bf6, - 0x4bad9d6462458bf5, - 0xf1830caedbc3f748, - 0xc5c8f542669131ff, - 0x95044a1cdc48b0cb, - 0x892962df3cf8b866, - 0xb0b9e208e930c135, - 0xa14fb3f0611a767c, - 0x8d2605f21c160136, - 0xd6b71922fecc549e, - 0x37089438a5907d8b, - 0x0b5da38e5803d49c, - 0x5a5bcc9cea6f3cbc, - 0xedae246d3b73ffe5, - 0xd2b87e0fde22edce, - 0x5e54abb1ca8185ec, - 0x1de7f88fe80561b9, - 0xad5e1a870135a08c, - 0x2f2adbd665cecc76, - 0x5780b5a782f58358, - 0x3edc8a2eede47b3f, - 0xc9d95c3506bee70f, - 0x83be111d6c4e05ee, - 0xa603b90959367410, - 0x103c81b4809fde5d, - 0x2c69b6027d0c774a, - 0x399080d7d5c87953, - 0x09d41e16487406b4, - 0xcdd63b1826505e5f, - 0xf99dc2f49b0298e8, - 0x9cd0540a943cb67f, - 0xbca84b7f891f17c5, - 0x723d1db3b78df2a6, - 0x78aa6e71e73b4f2e, - 0x1433e699a071670d, - 0x84f21be454620782, - 0x98df3327b4d20f2f, - 0xf049dce2d3769e5c, - 0xdb6c60199656eb7a, - 0x648746b2078b4783, - 0x32cd23598dcbadcf, - 0x1ea4955bf0c7da85, - 0xe9a143401b9d46b5, - 0xfd92a5d9bbec21b8, - 0xc8138c790e0b8e1b, - 0x2ee00b9a6d7ba562, - 0xf85712b893b7f1fc, - 0xeb28fed80bea949d, - 0x564a65eb8a40ea4c, - 0x6c9988e8474a2823, - 0x4535898b121d8f2d, - 0xabd8c03231accbf4, - 0xba2e91cab9867cbd, - 0x7960be3def8e263a, - 0x0c11a977602fd6f0, - 0xcb50e1ad16c93527, - 0xeae22e94035ffd89, - 0x2866d12f5de2ce1a, - 0xff1b1841ab9bf390, - 0x9f9339de8cfe0d43, - 0x964727c8c48a0bf7, - 0x524502c6aaae531c, - 0x9b9c5ef3ac10b413, - 0x4fa2fa4942ab32a5, - 0x3f165a62e551122b, - 0xc74148da76e6e3d7, - 0x924840e5e464b2a7, - 0xd372ae43d69784da, - 0x233b72a105e11a86, - 0xa48a04914941a638, - 0xb4b68525c9de7865, - 0xddeabaaca6cf8002, - 0x0a9773c250b6bd88, - 0xc284ffbb5ebd3393, - 0x8ba0df472c8f6a4e, - 0x2aef6cb74d951c32, - 0x427983722a318d41, - 0x73f7cdffbf389bb2, - 0x074c0af9382c026c, - 0x8a6a0f0b243a035a, - 0x6fdae53c5f88931f, - 0xc68b98967e538ac3, - 0x44ff59c71aa8e639, - 0xe2fce0ce439e9229, - 0xa20cde2479d8cd40, - 0x19e89fa2c8ebd8e9, - 0xf446bbcff398270c, - 0x43b3533e2284e455, - 0xd82f0dcd8e945046, - 0x51066f12b26ce820, - 0xe73957af6bc5426d, - 0x081ece5a40c16fa0, - 0x3b193d4fc5bfab7b, - 0x7fe66488df174d42, - 0x0e9814ef705804d8, - 0x8137ac857c39d7c6, - 0xb1733244e185a821, - 0x695c3f896f11f867, - 0xf6cf0657e3eff524, - 0x1aabf276d02963d5, - 0x2da3664e75b91e5e, - 0x0289bd981077d228, - 0x90c1fd7df413608f, - 0x3c5537b6fd93a917, - 0xaa12107e3919a2e0, - 0x0686dab530996b78, - 0xdaa6b0559ee3826e, - 0xc34e2ff756085a87, - 0x6d5358a44fff4137, - 0xfc587595b35948ac, - 0x7ca5095cc7d5f67e, - 0xfb147f6c8b754ac0, - 0xbfeb26ab91ddacf9, - 0x6896efc567a49173, - 0xca9a31e11e7c5c33, - 0xbbe44186b13315a9, - 0x0ddb793b689abfe4, - 0x70b4a02ba7fa208e, - 0xe47a3a7b7307f951, - 0x8cecd5be14a36822, - 0xeeed49b923b144d9, - 0x17708b4db8b3dc31, - 0x6088219f2765fed3, - 0xb3fa8fdcf1f27a09, - 0x910b2d31fca6099b, - 0x0f52c4a378ed6dcc, - 0x50ccbf5ebad98134, - 0x6bd582117f662a4f, - 0x94ce9a50d4fdd9df, - 0x2b25bcfb45207526, - 0x67c42b661f49fcbf, - 0x492420fc723259dd, - 0x03436dd418c2bb3c, - 0x1f6e4517f872b391, - 0xa08563bc69af1f68, - 0xd43ea4baeebb86b6, - 0x01cad04c08b56914, - 0xac94cacb0980c998, - 0x54c3d8739a373864, - 0x26fec5c02dbacac2, - 0xdea9d778be0d3b3e, - 0x040f672d20eeb950, - 0xe5b0ea377bb29045, - 0xf30ab136cbb42560, - 0x62019c0737122cfb, - 0xe86b930c13282fa1, - 0xcc1ceb542ee5374b, - 0x538fd28aa21b3a08, - 0x1b61223ad89c0ac1, - 0x36c24474ad25149f, - 0x7a23d3e9f74c9d06, - 0xbe21f6e79968c5ed, - 0xcf5f868036278c77, - 0xf705d61beb5a9c30, - 0x4d2b47d152dce08d, - 0x5f9e7bfdc234ecf8, - 0x247778583dcd18ea, - 0x867ba67c4415d5aa, - 0x4ce1979d5a698999, - 0x0000000000000000, - 0xec64f42133c696f1, - 0xb57c5569c16b1171, - 0xc1c7926f467f88af, - 0x654d96fe0f3e2e97, - 0x15f936d5a8c40e19, - 0xb8a72c52a9f1ae95, - 0xa9517daa21db19dc, - 0x58d27104fa18ee94, - 0x5918a148f2ad8780, - 0x5cdd1629daf657c4, - 0x8274c15164fb6cfa, - 0xd1fb13dbc6e056f2, - 0x7d6fd910cf609f6a, - 0xb63f38bdd9a9aa4d, - 0x3d9fe7faf526c003, - 0x74bbc706871499de, - 0xdf630734b6b8522a, - 0x3ad3ed03cd0ac26f, - 0xfadeaf2083c023d4, - 0xc00d42234ecae1bb, - 0x8538cba85cd76e96, - 0xc402250e6e2458eb, - 0x47bc3413026a5d05, - 0xafd7a71f114272a4, - 0x978df784cc3f62e3, - 0xb96dfc1ea144c781, - 0x21b2cf391596c8ae, - 0x318e4e8d950916f3, - 0xce9556cc3e92e563, - 0x385a509bdd7d1047, - 0x358129a0b5e7afa3, - 0xe6f387e363702b79, - 0xe0755d5653e94001, - 0x7be903a5fff9f412, - 0x12b53c2c90e80c75, - 0x3307f315857ec4db, - 0x8fafb86a0c61d31e, - 0xd9e5dd8186213952, - 0x77f8aad29fd622e2, - 0x25bda814357871fe, - 0x7571174a8fa1f0ca, - 0x137fec60985d6561, - 0x30449ec19dbc7fe7, - 0xa540d4dd41f4cf2c, - 0xdc206ae0ae7ae916, - 0x5b911cd0e2da55a8, - 0xb2305f90f947131d, - 0x344bf9ecbd52c6b7, - 0x5d17c665d2433ed0, - 0x18224feec05eb1fd, - 0x9e59e992844b6457, - 0x9a568ebfa4a5dd07, - 0xa3c60e68716da454, - 0x7e2cb4c4d7a22456, - 0x87b176304ca0bcbe, - 0x413aeea632f3367d, - 0x9915e36bbc67663b, - 0x40f03eea3a465f69, - 0x1c2d28c3e0b008ad, - 0x4e682a054a1e5bb1, - 0x05c5b761285bd044, - 0xe1bf8d1a5b5c2915, - 0xf2c0617ac3014c74, - 0xb7f5e8f1d11cc359, - 0x63cb4c4b3fa745ef, - 0x9d1a84469c89df6b, - 0xe33630824b2bfb3d, - 0xd5f474f6e60eefa2, - 0xf58c6b83fb2d4e18, - 0x4676e45f0adf3411, - 0x20781f751d23a1ba, - 0xbd629b3381aa7ed1, - 0xae1d775319f71bb0, - 0xfed1c80da32e9a84, - 0x5509083f92825170, - 0x29ac01635557a70e, - 0xa7c9694551831d04, - 0x8e65682604d4ba0a, - 0x11f651f8882ab749, - 0xd77dc96ef6793d8a, - 0xef2799f52b042dcd, - 0x48eef0b07a8730c9, - 0x22f1a2ed0d547392, - 0x6142f1d32fd097c7, - 0x4a674d286af0e2e1, - 0x80fd7cc9748cbed2, - 0x717e7067af4f499a, - 0x938290a9ecd1dbb3, - 0x88e3b293344dd172, - 0x2734158c250fa3d6, - }, - { - 0x7e37e62dfc7d40c3, - 0x776f25a4ee939e5b, - 0xe045c850dd8fb5ad, - 0x86ed5ba711ff1952, - 0xe91d0bd9cf616b35, - 0x37e0ab256e408ffb, - 0x9607f6c031025a7a, - 0x0b02f5e116d23c9d, - 0xf3d8486bfb50650c, - 0x621cff27c40875f5, - 0x7d40cb71fa5fd34a, - 0x6daa6616daa29062, - 0x9f5f354923ec84e2, - 0xec847c3dc507c3b3, - 0x025a3668043ce205, - 0xa8bf9e6c4dac0b19, - 0xfa808be2e9bebb94, - 0xb5b99c5277c74fa3, - 0x78d9bc95f0397bcc, - 0xe332e50cdbad2624, - 0xc74fce129332797e, - 0x1729eceb2ea709ab, - 0xc2d6b9f69954d1f8, - 0x5d898cbfbab8551a, - 0x859a76fb17dd8adb, - 0x1be85886362f7fb5, - 0xf6413f8ff136cd8a, - 0xd3110fa5bbb7e35c, - 0x0a2feed514cc4d11, - 0xe83010edcd7f1ab9, - 0xa1e75de55f42d581, - 0xeede4a55c13b21b6, - 0xf2f5535ff94e1480, - 0x0cc1b46d1888761e, - 0xbce15fdb6529913b, - 0x2d25e8975a7181c2, - 0x71817f1ce2d7a554, - 0x2e52c5cb5c53124b, - 0xf9f7a6beef9c281d, - 0x9e722e7d21f2f56e, - 0xce170d9b81dca7e6, - 0x0e9b82051cb4941b, - 0x1e712f623c49d733, - 0x21e45cfa42f9f7dc, - 0xcb8e7a7f8bba0f60, - 0x8e98831a010fb646, - 0x474ccf0d8e895b23, - 0xa99285584fb27a95, - 0x8cc2b57205335443, - 0x42d5b8e984eff3a5, - 0x012d1b34021e718c, - 0x57a6626aae74180b, - 0xff19fc06e3d81312, - 0x35ba9d4d6a7c6dfe, - 0xc9d44c178f86ed65, - 0x506523e6a02e5288, - 0x03772d5c06229389, - 0x8b01f4fe0b691ec0, - 0xf8dabd8aed825991, - 0x4c4e3aec985b67be, - 0xb10df0827fbf96a9, - 0x6a69279ad4f8dae1, - 0xe78689dcd3d5ff2e, - 0x812e1a2b1fa553d1, - 0xfbad90d6eba0ca18, - 0x1ac543b234310e39, - 0x1604f7df2cb97827, - 0xa6241c6951189f02, - 0x753513cceaaf7c5e, - 0x64f2a59fc84c4efa, - 0x247d2b1e489f5f5a, - 0xdb64d718ab474c48, - 0x79f4a7a1f2270a40, - 0x1573da832a9bebae, - 0x3497867968621c72, - 0x514838d2a2302304, - 0xf0af6537fd72f685, - 0x1d06023e3a6b44ba, - 0x678588c3ce6edd73, - 0x66a893f7cc70acff, - 0xd4d24e29b5eda9df, - 0x3856321470ea6a6c, - 0x07c3418c0e5a4a83, - 0x2bcbb22f5635bacd, - 0x04b46cd00878d90a, - 0x06ee5ab80c443b0f, - 0x3b211f4876c8f9e5, - 0x0958c38912eede98, - 0xd14b39cdbf8b0159, - 0x397b292072f41be0, - 0x87c0409313e168de, - 0xad26e98847caa39f, - 0x4e140c849c6785bb, - 0xd5ff551db7f3d853, - 0xa0ca46d15d5ca40d, - 0xcd6020c787fe346f, - 0x84b76dcf15c3fb57, - 0xdefda0fca121e4ce, - 0x4b8d7b6096012d3d, - 0x9ac642ad298a2c64, - 0x0875d8bd10f0af14, - 0xb357c6ea7b8374ac, - 0x4d6321d89a451632, - 0xeda96709c719b23f, - 0xf76c24bbf328bc06, - 0xc662d526912c08f2, - 0x3ce25ec47892b366, - 0xb978283f6f4f39bd, - 0xc08c8f9e9d6833fd, - 0x4f3917b09e79f437, - 0x593de06fb2c08c10, - 0xd6887841b1d14bda, - 0x19b26eee32139db0, - 0xb494876675d93e2f, - 0x825937771987c058, - 0x90e9ac783d466175, - 0xf1827e03ff6c8709, - 0x945dc0a8353eb87f, - 0x4516f9658ab5b926, - 0x3f9573987eb020ef, - 0xb855330b6d514831, - 0x2ae6a91b542bcb41, - 0x6331e413c6160479, - 0x408f8e8180d311a0, - 0xeff35161c325503a, - 0xd06622f9bd9570d5, - 0x8876d9a20d4b8d49, - 0xa5533135573a0c8b, - 0xe168d364df91c421, - 0xf41b09e7f50a2f8f, - 0x12b09b0f24c1a12d, - 0xda49cc2ca9593dc4, - 0x1f5c34563e57a6bf, - 0x54d14f36a8568b82, - 0xaf7cdfe043f6419a, - 0xea6a2685c943f8bc, - 0xe5dcbfb4d7e91d2b, - 0xb27addde799d0520, - 0x6b443caed6e6ab6d, - 0x7bae91c9f61be845, - 0x3eb868ac7cae5163, - 0x11c7b65322e332a4, - 0xd23c1491b9a992d0, - 0x8fb5982e0311c7ca, - 0x70ac6428e0c9d4d8, - 0x895bc2960f55fcc5, - 0x76423e90ec8defd7, - 0x6ff0507ede9e7267, - 0x3dcf45f07a8cc2ea, - 0x4aa06054941f5cb1, - 0x5810fb5bb0defd9c, - 0x5efea1e3bc9ac693, - 0x6edd4b4adc8003eb, - 0x741808f8e8b10dd2, - 0x145ec1b728859a22, - 0x28bc9f7350172944, - 0x270a06424ebdccd3, - 0x972aedf4331c2bf6, - 0x059977e40a66a886, - 0x2550302a4a812ed6, - 0xdd8a8da0a7037747, - 0xc515f87a970e9b7b, - 0x3023eaa9601ac578, - 0xb7e3aa3a73fbada6, - 0x0fb699311eaae597, - 0x0000000000000000, - 0x310ef19d6204b4f4, - 0x229371a644db6455, - 0x0decaf591a960792, - 0x5ca4978bb8a62496, - 0x1c2b190a38753536, - 0x41a295b582cd602c, - 0x3279dcc16426277d, - 0xc1a194aa9f764271, - 0x139d803b26dfd0a1, - 0xae51c4d441e83016, - 0xd813fa44ad65dfc1, - 0xac0bf2bc45d4d213, - 0x23be6a9246c515d9, - 0x49d74d08923dcf38, - 0x9d05032127d066e7, - 0x2f7fdeff5e4d63c7, - 0xa47e2a0155247d07, - 0x99b16ff12fa8bfed, - 0x4661d4398c972aaf, - 0xdfd0bbc8a33f9542, - 0xdca79694a51d06cb, - 0xb020ebb67da1e725, - 0xba0f0563696daa34, - 0xe4f1a480d5f76ca7, - 0xc438e34e9510eaf7, - 0x939e81243b64f2fc, - 0x8defae46072d25cf, - 0x2c08f3a3586ff04e, - 0xd7a56375b3cf3a56, - 0x20c947ce40e78650, - 0x43f8a3dd86f18229, - 0x568b795eac6a6987, - 0x8003011f1dbb225d, - 0xf53612d3f7145e03, - 0x189f75da300dec3c, - 0x9570db9c3720c9f3, - 0xbb221e576b73dbb8, - 0x72f65240e4f536dd, - 0x443be25188abc8aa, - 0xe21ffe38d9b357a8, - 0xfd43ca6ee7e4f117, - 0xcaa3614b89a47eec, - 0xfe34e732e1c6629e, - 0x83742c431b99b1d4, - 0xcf3a16af83c2d66a, - 0xaae5a8044990e91c, - 0x26271d764ca3bd5f, - 0x91c4b74c3f5810f9, - 0x7c6dd045f841a2c6, - 0x7f1afd19fe63314f, - 0xc8f957238d989ce9, - 0xa709075d5306ee8e, - 0x55fc5402aa48fa0e, - 0x48fa563c9023beb4, - 0x65dfbeabca523f76, - 0x6c877d22d8bce1ee, - 0xcc4d3bf385e045e3, - 0xbebb69b36115733e, - 0x10eaad6720fd4328, - 0xb6ceb10e71e5dc2a, - 0xbdcc44ef6737e0b7, - 0x523f158ea412b08d, - 0x989c74c52db6ce61, - 0x9beb59992b945de8, - 0x8a2cefca09776f4c, - 0xa3bd6b8d5b7e3784, - 0xeb473db1cb5d8930, - 0xc3fba2c29b4aa074, - 0x9c28181525ce176b, - 0x683311f2d0c438e4, - 0x5fd3bad7be84b71f, - 0xfc6ed15ae5fa809b, - 0x36cdb0116c5efe77, - 0x29918447520958c8, - 0xa29070b959604608, - 0x53120ebaa60cc101, - 0x3a0c047c74d68869, - 0x691e0ac6d2da4968, - 0x73db4974e6eb4751, - 0x7a838afdf40599c9, - 0x5a4acd33b4e21f99, - 0x6046c94fc03497f0, - 0xe6ab92e8d1cb8ea2, - 0x3354c7f5663856f1, - 0xd93ee170af7bae4d, - 0x616bd27bc22ae67c, - 0x92b39a10397a8370, - 0xabc8b3304b8e9890, - 0xbf967287630b02b2, - 0x5b67d607b6fc6e15, - }, - { - 0x8ab0a96846e06a6d, - 0x43c7e80b4bf0b33a, - 0x08c9b3546b161ee5, - 0x39f1c235eba990be, - 0xc1bef2376606c7b2, - 0x2c209233614569aa, - 0xeb01523b6fc3289a, - 0x946953ab935acedd, - 0x272838f63e13340e, - 0x8b0455eca12ba052, - 0x77a1b2c4978ff8a2, - 0xa55122ca13e54086, - 0x2276135862d3f1cd, - 0xdb8ddfde08b76cfe, - 0x5d1e12c89e4a178a, - 0x0e56816b03969867, - 0xee5f79953303ed59, - 0xafed748bab78d71d, - 0x6d929f2df93e53ee, - 0xf5d8a8f8ba798c2a, - 0xf619b1698e39cf6b, - 0x95ddaf2f749104e2, - 0xec2a9c80e0886427, - 0xce5c8fd8825b95ea, - 0xc4e0d9993ac60271, - 0x4699c3a5173076f9, - 0x3d1b151f50a29f42, - 0x9ed505ea2bc75946, - 0x34665acfdc7f4b98, - 0x61b1fb53292342f7, - 0xc721c0080e864130, - 0x8693cd1696fd7b74, - 0x872731927136b14b, - 0xd3446c8a63a1721b, - 0x669a35e8a6680e4a, - 0xcab658f239509a16, - 0xa4e5de4ef42e8ab9, - 0x37a7435ee83f08d9, - 0x134e6239e26c7f96, - 0x82791a3c2df67488, - 0x3f6ef00a8329163c, - 0x8e5a7e42fdeb6591, - 0x5caaee4c7981ddb5, - 0x19f234785af1e80d, - 0x255ddde3ed98bd70, - 0x50898a32a99cccac, - 0x28ca4519da4e6656, - 0xae59880f4cb31d22, - 0x0d9798fa37d6db26, - 0x32f968f0b4ffcd1a, - 0xa00f09644f258545, - 0xfa3ad5175e24de72, - 0xf46c547c5db24615, - 0x713e80fbff0f7e20, - 0x7843cf2b73d2aafa, - 0xbd17ea36aedf62b4, - 0xfd111bacd16f92cf, - 0x4abaa7dbc72d67e0, - 0xb3416b5dad49fad3, - 0xbca316b24914a88b, - 0x15d150068aecf914, - 0xe27c1debe31efc40, - 0x4fe48c759beda223, - 0x7edcfd141b522c78, - 0x4e5070f17c26681c, - 0xe696cac15815f3bc, - 0x35d2a64b3bb481a7, - 0x800cff29fe7dfdf6, - 0x1ed9fac3d5baa4b0, - 0x6c2663a91ef599d1, - 0x03c1199134404341, - 0xf7ad4ded69f20554, - 0xcd9d9649b61bd6ab, - 0xc8c3bde7eadb1368, - 0xd131899fb02afb65, - 0x1d18e352e1fae7f1, - 0xda39235aef7ca6c1, - 0xa1bbf5e0a8ee4f7a, - 0x91377805cf9a0b1e, - 0x3138716180bf8e5b, - 0xd9f83acbdb3ce580, - 0x0275e515d38b897e, - 0x472d3f21f0fbbcc6, - 0x2d946eb7868ea395, - 0xba3c248d21942e09, - 0xe7223645bfde3983, - 0xff64feb902e41bb1, - 0xc97741630d10d957, - 0xc3cb1722b58d4ecc, - 0xa27aec719cae0c3b, - 0x99fecb51a48c15fb, - 0x1465ac826d27332b, - 0xe1bd047ad75ebf01, - 0x79f733af941960c5, - 0x672ec96c41a3c475, - 0xc27feba6524684f3, - 0x64efd0fd75e38734, - 0xed9e60040743ae18, - 0xfb8e2993b9ef144d, - 0x38453eb10c625a81, - 0x6978480742355c12, - 0x48cf42ce14a6ee9e, - 0x1cac1fd606312dce, - 0x7b82d6ba4792e9bb, - 0x9d141c7b1f871a07, - 0x5616b80dc11c4a2e, - 0xb849c198f21fa777, - 0x7ca91801c8d9a506, - 0xb1348e487ec273ad, - 0x41b20d1e987b3a44, - 0x7460ab55a3cfbbe3, - 0x84e628034576f20a, - 0x1b87d16d897a6173, - 0x0fe27defe45d5258, - 0x83cde6b8ca3dbeb7, - 0x0c23647ed01d1119, - 0x7a362a3ea0592384, - 0xb61f40f3f1893f10, - 0x75d457d1440471dc, - 0x4558da34237035b8, - 0xdca6116587fc2043, - 0x8d9b67d3c9ab26d0, - 0x2b0b5c88ee0e2517, - 0x6fe77a382ab5da90, - 0x269cc472d9d8fe31, - 0x63c41e46faa8cb89, - 0xb7abbc771642f52f, - 0x7d1de4852f126f39, - 0xa8c6ba3024339ba0, - 0x600507d7cee888c8, - 0x8fee82c61a20afae, - 0x57a2448926d78011, - 0xfca5e72836a458f0, - 0x072bcebb8f4b4cbd, - 0x497bbe4af36d24a1, - 0x3cafe99bb769557d, - 0x12fa9ebd05a7b5a9, - 0xe8c04baa5b836bdb, - 0x4273148fac3b7905, - 0x908384812851c121, - 0xe557d3506c55b0fd, - 0x72ff996acb4f3d61, - 0x3eda0c8e64e2dc03, - 0xf0868356e6b949e9, - 0x04ead72abb0b0ffc, - 0x17a4b5135967706a, - 0xe3c8e16f04d5367f, - 0xf84f30028daf570c, - 0x1846c8fcbd3a2232, - 0x5b8120f7f6ca9108, - 0xd46fa231ecea3ea6, - 0x334d947453340725, - 0x58403966c28ad249, - 0xbed6f3a79a9f21f5, - 0x68ccb483a5fe962d, - 0xd085751b57e1315a, - 0xfed0023de52fd18e, - 0x4b0e5b5f20e6addf, - 0x1a332de96eb1ab4c, - 0xa3ce10f57b65c604, - 0x108f7ba8d62c3cd7, - 0xab07a3a11073d8e1, - 0x6b0dad1291bed56c, - 0xf2f366433532c097, - 0x2e557726b2cee0d4, - 0x0000000000000000, - 0xcb02a476de9b5029, - 0xe4e32fd48b9e7ac2, - 0x734b65ee2c84f75e, - 0x6e5386bccd7e10af, - 0x01b4fc84e7cbca3f, - 0xcfe8735c65905fd5, - 0x3613bfda0ff4c2e6, - 0x113b872c31e7f6e8, - 0x2fe18ba255052aeb, - 0xe974b72ebc48a1e4, - 0x0abc5641b89d979b, - 0xb46aa5e62202b66e, - 0x44ec26b0c4bbff87, - 0xa6903b5b27a503c7, - 0x7f680190fc99e647, - 0x97a84a3aa71a8d9c, - 0xdd12ede16037ea7c, - 0xc554251ddd0dc84e, - 0x88c54c7d956be313, - 0x4d91696048662b5d, - 0xb08072cc9909b992, - 0xb5de5962c5c97c51, - 0x81b803ad19b637c9, - 0xb2f597d94a8230ec, - 0x0b08aac55f565da4, - 0xf1327fd2017283d6, - 0xad98919e78f35e63, - 0x6ab9519676751f53, - 0x24e921670a53774f, - 0xb9fd3d1c15d46d48, - 0x92f66194fbda485f, - 0x5a35dc7311015b37, - 0xded3f4705477a93d, - 0xc00a0eb381cd0d8d, - 0xbb88d809c65fe436, - 0x16104997beacba55, - 0x21b70ac95693b28c, - 0x59f4c5e225411876, - 0xd5db5eb50b21f499, - 0x55d7a19cf55c096f, - 0xa97246b4c3f8519f, - 0x8552d487a2bd3835, - 0x54635d181297c350, - 0x23c2efdc85183bf2, - 0x9f61f96ecc0c9379, - 0x534893a39ddc8fed, - 0x5edf0b59aa0a54cb, - 0xac2c6d1a9f38945c, - 0xd7aebba0d8aa7de7, - 0x2abfa00c09c5ef28, - 0xd84cc64f3cf72fbf, - 0x2003f64db15878b3, - 0xa724c7dfc06ec9f8, - 0x069f323f68808682, - 0xcc296acd51d01c94, - 0x055e2bae5cc0c5c3, - 0x6270e2c21d6301b6, - 0x3b842720382219c0, - 0xd2f0900e846ab824, - 0x52fc6f277a1745d2, - 0xc6953c8ce94d8b0f, - 0xe009f8fe3095753e, - 0x655b2c7992284d0b, - 0x984a37d54347dfc4, - 0xeab5aebf8808e2a5, - 0x9a3fd2c090cc56ba, - 0x9ca0e0fff84cd038, - 0x4c2595e4afade162, - 0xdf6708f4b3bc6302, - 0xbf620f237d54ebca, - 0x93429d101c118260, - 0x097d4fd08cddd4da, - 0x8c2f9b572e60ecef, - 0x708a7c7f18c4b41f, - 0x3a30dba4dfe9d3ff, - 0x4006f19a7fb0f07b, - 0x5f6bf7dd4dc19ef4, - 0x1f6d064732716e8f, - 0xf9fbcc866a649d33, - 0x308c8de567744464, - 0x8971b0f972a0292c, - 0xd61a47243f61b7d8, - 0xefeb8511d4c82766, - 0x961cb6be40d147a3, - 0xaab35f25f7b812de, - 0x76154e407044329d, - 0x513d76b64e570693, - 0xf3479ac7d2f90aa8, - 0x9b8b2e4477079c85, - 0x297eb99d3d85ac69, - }, - { - 0x3ef29d249b2c0a19, - 0xe9e16322b6f8622f, - 0x5536994047757f7a, - 0x9f4d56d5a47b0b33, - 0x822567466aa1174c, - 0xb8f5057deb082fb2, - 0xcc48c10bf4475f53, - 0x373088d4275dec3a, - 0x968f4325180aed10, - 0x173d232cf7016151, - 0xae4ed09f946fcc13, - 0xfd4b4741c4539873, - 0x1b5b3f0dd9933765, - 0x2ffcb0967b644052, - 0xe02376d20a89840c, - 0xa3ae3a70329b18d7, - 0x419cbd2335de8526, - 0xfafebf115b7c3199, - 0x0397074f85aa9b0d, - 0xc58ad4fb4836b970, - 0xbec60be3fc4104a8, - 0x1eff36dc4b708772, - 0x131fdc33ed8453b6, - 0x0844e33e341764d3, - 0x0ff11b6eab38cd39, - 0x64351f0a7761b85a, - 0x3b5694f509cfba0e, - 0x30857084b87245d0, - 0x47afb3bd2297ae3c, - 0xf2ba5c2f6f6b554a, - 0x74bdc4761f4f70e1, - 0xcfdfc64471edc45e, - 0xe610784c1dc0af16, - 0x7aca29d63c113f28, - 0x2ded411776a859af, - 0xac5f211e99a3d5ee, - 0xd484f949a87ef33b, - 0x3ce36ca596e013e4, - 0xd120f0983a9d432c, - 0x6bc40464dc597563, - 0x69d5f5e5d1956c9e, - 0x9ae95f043698bb24, - 0xc9ecc8da66a4ef44, - 0xd69508c8a5b2eac6, - 0xc40c2235c0503b80, - 0x38c193ba8c652103, - 0x1ceec75d46bc9e8f, - 0xd331011937515ad1, - 0xd8e2e56886eca50f, - 0xb137108d5779c991, - 0x709f3b6905ca4206, - 0x4feb50831680caef, - 0xec456af3241bd238, - 0x58d673afe181abbe, - 0x242f54e7cad9bf8c, - 0x0211f1810dcc19fd, - 0x90bc4dbb0f43c60a, - 0x9518446a9da0761d, - 0xa1bfcbf13f57012a, - 0x2bde4f8961e172b5, - 0x27b853a84f732481, - 0xb0b1e643df1f4b61, - 0x18cc38425c39ac68, - 0xd2b7f7d7bf37d821, - 0x3103864a3014c720, - 0x14aa246372abfa5c, - 0x6e600db54ebac574, - 0x394765740403a3f3, - 0x09c215f0bc71e623, - 0x2a58b947e987f045, - 0x7b4cdf18b477bdd8, - 0x9709b5eb906c6fe0, - 0x73083c268060d90b, - 0xfedc400e41f9037e, - 0x284948c6e44be9b8, - 0x728ecae808065bfb, - 0x06330e9e17492b1a, - 0x5950856169e7294e, - 0xbae4f4fce6c4364f, - 0xca7bcf95e30e7449, - 0x7d7fd186a33e96c2, - 0x52836110d85ad690, - 0x4dfaa1021b4cd312, - 0x913abb75872544fa, - 0xdd46ecb9140f1518, - 0x3d659a6b1e869114, - 0xc23f2cabd719109a, - 0xd713fe062dd46836, - 0xd0a60656b2fbc1dc, - 0x221c5a79dd909496, - 0xefd26dbca1b14935, - 0x0e77eda0235e4fc9, - 0xcbfd395b6b68f6b9, - 0x0de0eaefa6f4d4c4, - 0x0422ff1f1a8532e7, - 0xf969b85eded6aa94, - 0x7f6e2007aef28f3f, - 0x3ad0623b81a938fe, - 0x6624ee8b7aada1a7, - 0xb682e8ddc856607b, - 0xa78cc56f281e2a30, - 0xc79b257a45faa08d, - 0x5b4174e0642b30b3, - 0x5f638bff7eae0254, - 0x4bc9af9c0c05f808, - 0xce59308af98b46ae, - 0x8fc58da9cc55c388, - 0x803496c7676d0eb1, - 0xf33caae1e70dd7ba, - 0xbb6202326ea2b4bf, - 0xd5020f87201871cb, - 0x9d5ca754a9b712ce, - 0x841669d87de83c56, - 0x8a6184785eb6739f, - 0x420bba6cb0741e2b, - 0xf12d5b60eac1ce47, - 0x76ac35f71283691c, - 0x2c6bb7d9fecedb5f, - 0xfccdb18f4c351a83, - 0x1f79c012c3160582, - 0xf0abadae62a74cb7, - 0xe1a5801c82ef06fc, - 0x67a21845f2cb2357, - 0x5114665f5df04d9d, - 0xbf40fd2d74278658, - 0xa0393d3fb73183da, - 0x05a409d192e3b017, - 0xa9fb28cf0b4065f9, - 0x25a9a22942bf3d7c, - 0xdb75e22703463e02, - 0xb326e10c5ab5d06c, - 0xe7968e8295a62de6, - 0xb973f3b3636ead42, - 0xdf571d3819c30ce5, - 0xee549b7229d7cbc5, - 0x12992afd65e2d146, - 0xf8ef4e9056b02864, - 0xb7041e134030e28b, - 0xc02edd2adad50967, - 0x932b4af48ae95d07, - 0x6fe6fb7bc6dc4784, - 0x239aacb755f61666, - 0x401a4bedbdb807d6, - 0x485ea8d389af6305, - 0xa41bc220adb4b13d, - 0x753b32b89729f211, - 0x997e584bb3322029, - 0x1d683193ceda1c7f, - 0xff5ab6c0c99f818e, - 0x16bbd5e27f67e3a1, - 0xa59d34ee25d233cd, - 0x98f8ae853b54a2d9, - 0x6df70afacb105e79, - 0x795d2e99b9bba425, - 0x8e437b6744334178, - 0x0186f6ce886682f0, - 0xebf092a3bb347bd2, - 0xbcd7fa62f18d1d55, - 0xadd9d7d011c5571e, - 0x0bd3e471b1bdffde, - 0xaa6c2f808eeafef4, - 0x5ee57d31f6c880a4, - 0xf50fa47ff044fca0, - 0x1addc9c351f5b595, - 0xea76646d3352f922, - 0x0000000000000000, - 0x85909f16f58ebea6, - 0x46294573aaf12ccc, - 0x0a5512bf39db7d2e, - 0x78dbd85731dd26d5, - 0x29cfbe086c2d6b48, - 0x218b5d36583a0f9b, - 0x152cd2adfacd78ac, - 0x83a39188e2c795bc, - 0xc3b9da655f7f926a, - 0x9ecba01b2c1d89c3, - 0x07b5f8509f2fa9ea, - 0x7ee8d6c926940dcf, - 0x36b67e1aaf3b6eca, - 0x86079859702425ab, - 0xfb7849dfd31ab369, - 0x4c7c57cc932a51e2, - 0xd96413a60e8a27ff, - 0x263ea566c715a671, - 0x6c71fc344376dc89, - 0x4a4f595284637af8, - 0xdaf314e98b20bcf2, - 0x572768c14ab96687, - 0x1088db7c682ec8bb, - 0x887075f9537a6a62, - 0x2e7a4658f302c2a2, - 0x619116dbe582084d, - 0xa87dde018326e709, - 0xdcc01a779c6997e8, - 0xedc39c3dac7d50c8, - 0xa60a33a1a078a8c0, - 0xc1a82be452b38b97, - 0x3f746bea134a88e9, - 0xa228ccbebafd9a27, - 0xabead94e068c7c04, - 0xf48952b178227e50, - 0x5cf48cb0fb049959, - 0x6017e0156de48abd, - 0x4438b4f2a73d3531, - 0x8c528ae649ff5885, - 0xb515ef924dfcfb76, - 0x0c661c212e925634, - 0xb493195cc59a7986, - 0x9cda519a21d1903e, - 0x32948105b5be5c2d, - 0x194ace8cd45f2e98, - 0x438d4ca238129cdb, - 0x9b6fa9cabefe39d4, - 0x81b26009ef0b8c41, - 0xded1ebf691a58e15, - 0x4e6da64d9ee6481f, - 0x54b06f8ecf13fd8a, - 0x49d85e1d01c9e1f5, - 0xafc826511c094ee3, - 0xf698a33075ee67ad, - 0x5ac7822eec4db243, - 0x8dd47c28c199da75, - 0x89f68337db1ce892, - 0xcdce37c57c21dda3, - 0x530597de503c5460, - 0x6a42f2aa543ff793, - 0x5d727a7e73621ba9, - 0xe232875307459df1, - 0x56a19e0fc2dfe477, - 0xc61dd3b4cd9c227d, - 0xe5877f03986a341b, - 0x949eb2a415c6f4ed, - 0x6206119460289340, - 0x6380e75ae84e11b0, - 0x8be772b6d6d0f16f, - 0x50929091d596cf6d, - 0xe86795ec3e9ee0df, - 0x7cf927482b581432, - 0xc86a3e14eec26db4, - 0x7119cda78dacc0f6, - 0xe40189cd100cb6eb, - 0x92adbc3a028fdff7, - 0xb2a017c2d2d3529c, - 0x200dabf8d05c8d6b, - 0x34a78f9ba2f77737, - 0xe3b4719d8f231f01, - 0x45be423c2f5bb7c1, - 0xf71e55fefd88e55d, - 0x6853032b59f3ee6e, - 0x65b3e9c4ff073aaa, - 0x772ac3399ae5ebec, - 0x87816e97f842a75b, - 0x110e2db2e0484a4b, - 0x331277cb3dd8dedd, - 0xbd510cac79eb9fa5, - 0x352179552a91f5c7, - }, - { - 0x05ba7bc82c9b3220, - 0x31a54665f8b65e4f, - 0xb1b651f77547f4d4, - 0x8bfa0d857ba46682, - 0x85a96c5aa16a98bb, - 0x990faef908eb79c9, - 0xa15e37a247f4a62d, - 0x76857dcd5d27741e, - 0xf8c50b800a1820bc, - 0xbe65dcb201f7a2b4, - 0x666d1b986f9426e7, - 0x4cc921bf53c4e648, - 0x95410a0f93d9ca42, - 0x20cdccaa647ba4ef, - 0x429a4060890a1871, - 0x0c4ea4f69b32b38b, - 0xccda362dde354cd3, - 0x96dc23bc7c5b2fa9, - 0xc309bb68aa851ab3, - 0xd26131a73648e013, - 0x021dc52941fc4db2, - 0xcd5adab7704be48a, - 0xa77965d984ed71e6, - 0x32386fd61734bba4, - 0xe82d6dd538ab7245, - 0x5c2147ea6177b4b1, - 0x5da1ab70cf091ce8, - 0xac907fce72b8bdff, - 0x57c85dfd972278a8, - 0xa4e44c6a6b6f940d, - 0x3851995b4f1fdfe4, - 0x62578ccaed71bc9e, - 0xd9882bb0c01d2c0a, - 0x917b9d5d113c503b, - 0xa2c31e11a87643c6, - 0xe463c923a399c1ce, - 0xf71686c57ea876dc, - 0x87b4a973e096d509, - 0xaf0d567d9d3a5814, - 0xb40c2a3f59dcc6f4, - 0x3602f88495d121dd, - 0xd3e1dd3d9836484a, - 0xf945e71aa46688e5, - 0x7518547eb2a591f5, - 0x9366587450c01d89, - 0x9ea81018658c065b, - 0x4f54080cbc4603a3, - 0x2d0384c65137bf3d, - 0xdc325078ec861e2a, - 0xea30a8fc79573ff7, - 0x214d2030ca050cb6, - 0x65f0322b8016c30c, - 0x69be96dd1b247087, - 0xdb95ee9981e161b8, - 0xd1fc1814d9ca05f8, - 0x820ed2bbcc0de729, - 0x63d76050430f14c7, - 0x3bccb0e8a09d3a0f, - 0x8e40764d573f54a2, - 0x39d175c1e16177bd, - 0x12f5a37c734f1f4b, - 0xab37c12f1fdfc26d, - 0x5648b167395cd0f1, - 0x6c04ed1537bf42a7, - 0xed97161d14304065, - 0x7d6c67daab72b807, - 0xec17fa87ba4ee83c, - 0xdfaf79cb0304fbc1, - 0x733f060571bc463e, - 0x78d61c1287e98a27, - 0xd07cf48e77b4ada1, - 0xb9c262536c90dd26, - 0xe2449b5860801605, - 0x8fc09ad7f941fcfb, - 0xfad8cea94be46d0e, - 0xa343f28b0608eb9f, - 0x9b126bd04917347b, - 0x9a92874ae7699c22, - 0x1b017c42c4e69ee0, - 0x3a4c5c720ee39256, - 0x4b6e9f5e3ea399da, - 0x6ba353f45ad83d35, - 0xe7fee0904c1b2425, - 0x22d009832587e95d, - 0x842980c00f1430e2, - 0xc6b3c0a0861e2893, - 0x087433a419d729f2, - 0x341f3dadd42d6c6f, - 0xee0a3faefbb2a58e, - 0x4aee73c490dd3183, - 0xaab72db5b1a16a34, - 0xa92a04065e238fdf, - 0x7b4b35a1686b6fcc, - 0x6a23bf6ef4a6956c, - 0x191cb96b851ad352, - 0x55d598d4d6de351a, - 0xc9604de5f2ae7ef3, - 0x1ca6c2a3a981e172, - 0xde2f9551ad7a5398, - 0x3025aaff56c8f616, - 0x15521d9d1e2860d9, - 0x506fe31cfa45073a, - 0x189c55f12b647b0b, - 0x0180ec9aae7ea859, - 0x7cec8b40050c105e, - 0x2350e5198bf94104, - 0xef8ad33455cc0dd7, - 0x07a7bee16d677f92, - 0xe5e325b90de76997, - 0x5a061591a26e637a, - 0xb611ef1618208b46, - 0x09f4df3eb7a981ab, - 0x1ebb078ae87dacc0, - 0xb791038cb65e231f, - 0x0fd38d4574b05660, - 0x67edf702c1ea8ebe, - 0xba5f4be0831238cd, - 0xe3c477c2cefebe5c, - 0x0dce486c354c1bd2, - 0x8c5db36416c31910, - 0x26ea9ed1a7627324, - 0x039d29b3ef82e5eb, - 0x9f28fc82cbf2ae02, - 0xa8aae89cf05d2786, - 0x431aacfa2774b028, - 0xcf471f9e31b7a938, - 0x581bd0b8e3922ec8, - 0xbc78199b400bef06, - 0x90fb71c7bf42f862, - 0x1f3beb1046030499, - 0x683e7a47b55ad8de, - 0x988f4263a695d190, - 0xd808c72a6e638453, - 0x0627527bc319d7cb, - 0xebb04466d72997ae, - 0xe67e0c0ae2658c7c, - 0x14d2f107b056c880, - 0x7122c32c30400b8c, - 0x8a7ae11fd5dacedb, - 0xa0dedb38e98a0e74, - 0xad109354dcc615a6, - 0x0be91a17f655cc19, - 0x8ddd5ffeb8bdb149, - 0xbfe53028af890aed, - 0xd65ba6f5b4ad7a6a, - 0x7956f0882997227e, - 0x10e8665532b352f9, - 0x0e5361dfdacefe39, - 0xcec7f3049fc90161, - 0xff62b561677f5f2e, - 0x975ccf26d22587f0, - 0x51ef0f86543baf63, - 0x2f1e41ef10cbf28f, - 0x52722635bbb94a88, - 0xae8dbae73344f04d, - 0x410769d36688fd9a, - 0xb3ab94de34bbb966, - 0x801317928df1aa9b, - 0xa564a0f0c5113c54, - 0xf131d4bebdb1a117, - 0x7f71a2f3ea8ef5b5, - 0x40878549c8f655c3, - 0x7ef14e6944f05dec, - 0xd44663dcf55137d8, - 0xf2acfd0d523344fc, - 0x0000000000000000, - 0x5fbc6e598ef5515a, - 0x16cf342ef1aa8532, - 0xb036bd6ddb395c8d, - 0x13754fe6dd31b712, - 0xbbdfa77a2d6c9094, - 0x89e7c8ac3a582b30, - 0x3c6b0e09cdfa459d, - 0xc4ae0589c7e26521, - 0x49735a777f5fd468, - 0xcafd64561d2c9b18, - 0xda1502032f9fc9e1, - 0x8867243694268369, - 0x3782141e3baf8984, - 0x9cb5d53124704be9, - 0xd7db4a6f1ad3d233, - 0xa6f989432a93d9bf, - 0x9d3539ab8a0ee3b0, - 0x53f2caaf15c7e2d1, - 0x6e19283c76430f15, - 0x3debe2936384edc4, - 0x5e3c82c3208bf903, - 0x33b8834cb94a13fd, - 0x6470deb12e686b55, - 0x359fd1377a53c436, - 0x61caa57902f35975, - 0x043a975282e59a79, - 0xfd7f70482683129c, - 0xc52ee913699ccd78, - 0x28b9ff0e7dac8d1d, - 0x5455744e78a09d43, - 0xcb7d88ccb3523341, - 0x44bd121b4a13cfba, - 0x4d49cd25fdba4e11, - 0x3e76cb208c06082f, - 0x3ff627ba2278a076, - 0xc28957f204fbb2ea, - 0x453dfe81e46d67e3, - 0x94c1e6953da7621b, - 0x2c83685cff491764, - 0xf32c1197fc4deca5, - 0x2b24d6bd922e68f6, - 0xb22b78449ac5113f, - 0x48f3b6edd1217c31, - 0x2e9ead75beb55ad6, - 0x174fd8b45fd42d6b, - 0x4ed4e4961238abfa, - 0x92e6b4eefebeb5d0, - 0x46a0d7320bef8208, - 0x47203ba8a5912a51, - 0x24f75bf8e69e3e96, - 0xf0b1382413cf094e, - 0xfee259fbc901f777, - 0x276a724b091cdb7d, - 0xbdf8f501ee75475f, - 0x599b3c224dec8691, - 0x6d84018f99c1eafe, - 0x7498b8e41cdb39ac, - 0xe0595e71217c5bb7, - 0x2aa43a273c50c0af, - 0xf50b43ec3f543b6e, - 0x838e3e2162734f70, - 0xc09492db4507ff58, - 0x72bfea9fdfc2ee67, - 0x11688acf9ccdfaa0, - 0x1a8190d86a9836b9, - 0x7acbd93bc615c795, - 0xc7332c3a286080ca, - 0x863445e94ee87d50, - 0xf6966a5fd0d6de85, - 0xe9ad814f96d5da1c, - 0x70a22fb69e3ea3d5, - 0x0a69f68d582b6440, - 0xb8428ec9c2ee757f, - 0x604a49e3ac8df12c, - 0x5b86f90b0c10cb23, - 0xe1d9b2eb8f02f3ee, - 0x29391394d3d22544, - 0xc8e0a17f5cd0d6aa, - 0xb58cc6a5f7a26ead, - 0x8193fb08238f02c2, - 0xd5c68f465b2f9f81, - 0xfcff9cd288fdbac5, - 0x77059157f359dc47, - 0x1d262e3907ff492b, - 0xfb582233e59ac557, - 0xddb2bce242f8b673, - 0x2577b76248e096cf, - 0x6f99c4a6d83da74c, - 0xc1147e41eb795701, - 0xf48baf76912a9337, - }, - { - 0x45b268a93acde4cc, - 0xaf7f0be884549d08, - 0x048354b3c1468263, - 0x925435c2c80efed2, - 0xee4e37f27fdffba7, - 0x167a33920c60f14d, - 0xfb123b52ea03e584, - 0x4a0cab53fdbb9007, - 0x9deaf6380f788a19, - 0xcb48ec558f0cb32a, - 0xb59dc4b2d6fef7e0, - 0xdcdbca22f4f3ecb6, - 0x11df5813549a9c40, - 0xe33fdedf568aced3, - 0xa0c1c8124322e9c3, - 0x07a56b8158fa6d0d, - 0x77279579b1e1f3dd, - 0xd9b18b74422ac004, - 0xb8ec2d9fffabc294, - 0xf4acf8a82d75914f, - 0x7bbf69b1ef2b6878, - 0xc4f62faf487ac7e1, - 0x76ce809cc67e5d0c, - 0x6711d88f92e4c14c, - 0x627b99d9243dedfe, - 0x234aa5c3dfb68b51, - 0x909b1f15262dbf6d, - 0x4f66ea054b62bcb5, - 0x1ae2cf5a52aa6ae8, - 0xbea053fbd0ce0148, - 0xed6808c0e66314c9, - 0x43fe16cd15a82710, - 0xcd049231a06970f6, - 0xe7bc8a6c97cc4cb0, - 0x337ce835fcb3b9c0, - 0x65def2587cc780f3, - 0x52214ede4132bb50, - 0x95f15e4390f493df, - 0x870839625dd2e0f1, - 0x41313c1afb8b66af, - 0x91720af051b211bc, - 0x477d427ed4eea573, - 0x2e3b4ceef6e3be25, - 0x82627834eb0bcc43, - 0x9c03e3dd78e724c8, - 0x2877328ad9867df9, - 0x14b51945e243b0f2, - 0x574b0f88f7eb97e2, - 0x88b6fa989aa4943a, - 0x19c4f068cb168586, - 0x50ee6409af11faef, - 0x7df317d5c04eaba4, - 0x7a567c5498b4c6a9, - 0xb6bbfb804f42188e, - 0x3cc22bcf3bc5cd0b, - 0xd04336eaaa397713, - 0xf02fac1bec33132c, - 0x2506dba7f0d3488d, - 0xd7e65d6bf2c31a1e, - 0x5eb9b2161ff820f5, - 0x842e0650c46e0f9f, - 0x716beb1d9e843001, - 0xa933758cab315ed4, - 0x3fe414fda2792265, - 0x27c9f1701ef00932, - 0x73a4c1ca70a771be, - 0x94184ba6e76b3d0e, - 0x40d829ff8c14c87e, - 0x0fbec3fac77674cb, - 0x3616a9634a6a9572, - 0x8f139119c25ef937, - 0xf545ed4d5aea3f9e, - 0xe802499650ba387b, - 0x6437e7bd0b582e22, - 0xe6559f89e053e261, - 0x80ad52e305288dfc, - 0x6dc55a23e34b9935, - 0xde14e0f51ad0ad09, - 0xc6390578a659865e, - 0x96d7617109487cb1, - 0xe2d6cb3a21156002, - 0x01e915e5779faed1, - 0xadb0213f6a77dcb7, - 0x9880b76eb9a1a6ab, - 0x5d9f8d248644cf9b, - 0xfd5e4536c5662658, - 0xf1c6b9fe9bacbdfd, - 0xeacd6341be9979c4, - 0xefa7221708405576, - 0x510771ecd88e543e, - 0xc2ba51cb671f043d, - 0x0ad482ac71af5879, - 0xfe787a045cdac936, - 0xb238af338e049aed, - 0xbd866cc94972ee26, - 0x615da6ebbd810290, - 0x3295fdd08b2c1711, - 0xf834046073bf0aea, - 0xf3099329758ffc42, - 0x1caeb13e7dcfa934, - 0xba2307481188832b, - 0x24efce42874ce65c, - 0x0e57d61fb0e9da1a, - 0xb3d1bad6f99b343c, - 0xc0757b1c893c4582, - 0x2b510db8403a9297, - 0x5c7698c1f1db614a, - 0x3e0d0118d5e68cb4, - 0xd60f488e855cb4cf, - 0xae961e0df3cb33d9, - 0x3a8e55ab14a00ed7, - 0x42170328623789c1, - 0x838b6dd19c946292, - 0x895fef7ded3b3aeb, - 0xcfcbb8e64e4a3149, - 0x064c7e642f65c3dc, - 0x3d2b3e2a4c5a63da, - 0x5bd3f340a9210c47, - 0xb474d157a1615931, - 0xac5934da1de87266, - 0x6ee365117af7765b, - 0xc86ed36716b05c44, - 0x9ba6885c201d49c5, - 0xb905387a88346c45, - 0x131072c4bab9ddff, - 0xbf49461ea751af99, - 0xd52977bc1ce05ba1, - 0xb0f785e46027db52, - 0x546d30ba6e57788c, - 0x305ad707650f56ae, - 0xc987c682612ff295, - 0xa5ab8944f5fbc571, - 0x7ed528e759f244ca, - 0x8ddcbbce2c7db888, - 0xaa154abe328db1ba, - 0x1e619be993ece88b, - 0x09f2bd9ee813b717, - 0x7401aa4b285d1cb3, - 0x21858f143195caee, - 0x48c381841398d1b8, - 0xfcb750d3b2f98889, - 0x39a86a998d1ce1b9, - 0x1f888e0ce473465a, - 0x7899568376978716, - 0x02cf2ad7ee2341bf, - 0x85c713b5b3f1a14e, - 0xff916fe12b4567e7, - 0x7c1a0230b7d10575, - 0x0c98fcc85eca9ba5, - 0xa3e7f720da9e06ad, - 0x6a6031a2bbb1f438, - 0x973e74947ed7d260, - 0x2cf4663918c0ff9a, - 0x5f50a7f368678e24, - 0x34d983b4a449d4cd, - 0x68af1b755592b587, - 0x7f3c3d022e6dea1b, - 0xabfc5f5b45121f6b, - 0x0d71e92d29553574, - 0xdffdf5106d4f03d8, - 0x081ba87b9f8c19c6, - 0xdb7ea1a3ac0981bb, - 0xbbca12ad66172dfa, - 0x79704366010829c7, - 0x179326777bff5f9c, - 0x0000000000000000, - 0xeb2476a4c906d715, - 0x724dd42f0738df6f, - 0xb752ee6538ddb65f, - 0x37ffbc863df53ba3, - 0x8efa84fcb5c157e6, - 0xe9eb5c73272596aa, - 0x1b0bdabf2535c439, - 0x86e12c872a4d4e20, - 0x9969a28bce3e087a, - 0xfafb2eb79d9c4b55, - 0x056a4156b6d92cb2, - 0x5a3ae6a5debea296, - 0x22a3b026a8292580, - 0x53c85b3b36ad1581, - 0xb11e900117b87583, - 0xc51f3a4a3fe56930, - 0xe019e1edcf3621bd, - 0xec811d2591fcba18, - 0x445b7d4c4d524a1d, - 0xa8da6069dcaef005, - 0x58f5cc72309de329, - 0xd4c062596b7ff570, - 0xce22ad0339d59f98, - 0x591cd99747024df8, - 0x8b90c5aa03187b54, - 0xf663d27fc356d0f0, - 0xd8589e9135b56ed5, - 0x35309651d3d67a1c, - 0x12f96721cd26732e, - 0xd28c1c3d441a36ac, - 0x492a946164077f69, - 0x2d1d73dc6f5f514b, - 0x6f0a70f40d68d88a, - 0x60b4b30eca1eac41, - 0xd36509d83385987d, - 0x0b3d97490630f6a8, - 0x9eccc90a96c46577, - 0xa20ee2c5ad01a87c, - 0xe49ab55e0e70a3de, - 0xa4429ca182646ba0, - 0xda97b446db962f6a, - 0xcced87d4d7f6de27, - 0x2ab8185d37a53c46, - 0x9f25dcefe15bcba6, - 0xc19c6ef9fea3eb53, - 0xa764a3931bd884ce, - 0x2fd2590b817c10f4, - 0x56a21a6d80743933, - 0xe573a0bb79ef0d0f, - 0x155c0ca095dc1e23, - 0x6c2c4fc694d437e4, - 0x10364df623053291, - 0xdd32dfc7836c4267, - 0x03263f3299bcef6e, - 0x66f8cd6ae57b6f9d, - 0x8c35ae2b5be21659, - 0x31b3c2e21290f87f, - 0x93bd2027bf915003, - 0x69460e90220d1b56, - 0x299e276fae19d328, - 0x63928c3c53a2432f, - 0x7082fef8e91b9ed0, - 0xbc6f792c3eed40f7, - 0x4c40d537d2de53db, - 0x75e8bfae5fc2b262, - 0x4da9c0d2a541fd0a, - 0x4e8fffe03cfd1264, - 0x2620e495696fa7e3, - 0xe1f0f408b8a98f6c, - 0xd1aa230fdda6d9c2, - 0xc7d0109dd1c6288f, - 0x8a79d04f7487d585, - 0x4694579ba3710ba2, - 0x38417f7cfa834f68, - 0x1d47a4db0a5007e5, - 0x206c9af1460a643f, - 0xa128ddf734bd4712, - 0x8144470672b7232d, - 0xf2e086cc02105293, - 0x182de58dbc892b57, - 0xcaa1f9b0f8931dfb, - 0x6b892447cc2e5ae9, - 0xf9dd11850420a43b, - 0x4be5beb68a243ed6, - 0x5584255f19c8d65d, - 0x3b67404e633fa006, - 0xa68db6766c472a1f, - 0xf78ac79ab4c97e21, - 0xc353442e1080aaec, - 0x9a4f9db95782e714, - }, - { - 0xc811a8058c3f55de, - 0x65f5b43196b50619, - 0xf74f96b1d6706e43, - 0x859d1e8bcb43d336, - 0x5aab8a85ccfa3d84, - 0xf9c7bf99c295fcfd, - 0xa21fd5a1de4b630f, - 0xcdb3ef763b8b456d, - 0x803f59f87cf7c385, - 0xb27c73be5f31913c, - 0x98e3ac6633b04821, - 0xbf61674c26b8f818, - 0x0ffbc995c4c130c8, - 0xaaa0862010761a98, - 0x6057f342210116aa, - 0xf63c760c0654cc35, - 0x2ddb45cc667d9042, - 0xbcf45a964bd40382, - 0x68e8a0c3ef3c6f3d, - 0xa7bd92d269ff73bc, - 0x290ae20201ed2287, - 0xb7de34cde885818f, - 0xd901eea7dd61059b, - 0xd6fa273219a03553, - 0xd56f1ae874cccec9, - 0xea31245c2e83f554, - 0x7034555da07be499, - 0xce26d2ac56e7bef7, - 0xfd161857a5054e38, - 0x6a0e7da4527436d1, - 0x5bd86a381cde9ff2, - 0xcaf7756231770c32, - 0xb09aaed9e279c8d0, - 0x5def1091c60674db, - 0x111046a2515e5045, - 0x23536ce4729802fc, - 0xc50cbcf7f5b63cfa, - 0x73a16887cd171f03, - 0x7d2941afd9f28dbd, - 0x3f5e3eb45a4f3b9d, - 0x84eefe361b677140, - 0x3db8e3d3e7076271, - 0x1a3a28f9f20fd248, - 0x7ebc7c75b49e7627, - 0x74e5f293c7eb565c, - 0x18dcf59e4f478ba4, - 0x0c6ef44fa9adcb52, - 0xc699812d98dac760, - 0x788b06dc6e469d0e, - 0xfc65f8ea7521ec4e, - 0x30a5f7219e8e0b55, - 0x2bec3f65bca57b6b, - 0xddd04969baf1b75e, - 0x99904cdbe394ea57, - 0x14b201d1e6ea40f6, - 0xbbb0c08241284add, - 0x50f20463bf8f1dff, - 0xe8d7f93b93cbacb8, - 0x4d8cb68e477c86e8, - 0xc1dd1b3992268e3f, - 0x7c5aa11209d62fcb, - 0x2f3d98abdb35c9ae, - 0x671369562bfd5ff5, - 0x15c1e16c36cee280, - 0x1d7eb2edf8f39b17, - 0xda94d37db00dfe01, - 0x877bc3ec760b8ada, - 0xcb8495dfe153ae44, - 0x05a24773b7b410b3, - 0x12857b783c32abdf, - 0x8eb770d06812513b, - 0x536739b9d2e3e665, - 0x584d57e271b26468, - 0xd789c78fc9849725, - 0xa935bbfa7d1ae102, - 0x8b1537a3dfa64188, - 0xd0cd5d9bc378de7a, - 0x4ac82c9a4d80cfb7, - 0x42777f1b83bdb620, - 0x72d2883a1d33bd75, - 0x5e7a2d4bab6a8f41, - 0xf4daab6bbb1c95d9, - 0x905cffe7fd8d31b6, - 0x83aa6422119b381f, - 0xc0aefb8442022c49, - 0xa0f908c663033ae3, - 0xa428af0804938826, - 0xade41c341a8a53c7, - 0xae7121ee77e6a85d, - 0xc47f5c4a25929e8c, - 0xb538e9aa55cdd863, - 0x06377aa9dad8eb29, - 0xa18ae87bb3279895, - 0x6edfda6a35e48414, - 0x6b7d9d19825094a7, - 0xd41cfa55a4e86cbf, - 0xe5caedc9ea42c59c, - 0xa36c351c0e6fc179, - 0x5181e4de6fabbf89, - 0xfff0c530184d17d4, - 0x9d41eb1584045892, - 0x1c0d525028d73961, - 0xf178ec180ca8856a, - 0x9a0571018ef811cd, - 0x4091a27c3ef5efcc, - 0x19af15239f6329d2, - 0x347450eff91eb990, - 0xe11b4a078dd27759, - 0xb9561de5fc601331, - 0x912f1f5a2da993c0, - 0x1654dcb65ba2191a, - 0x3e2dde098a6b99eb, - 0x8a66d71e0f82e3fe, - 0x8c51adb7d55a08d7, - 0x4533e50f8941ff7f, - 0x02e6dd67bd4859ec, - 0xe068aaba5df6d52f, - 0xc24826e3ff4a75a5, - 0x6c39070d88acddf8, - 0x6486548c4691a46f, - 0xd1bebd26135c7c0c, - 0xb30f93038f15334a, - 0x82d9849fc1bf9a69, - 0x9c320ba85420fae4, - 0xfa528243aff90767, - 0x9ed4d6cfe968a308, - 0xb825fd582c44b147, - 0x9b7691bc5edcb3bb, - 0xc7ea619048fe6516, - 0x1063a61f817af233, - 0x47d538683409a693, - 0x63c2ce984c6ded30, - 0x2a9fdfd86c81d91d, - 0x7b1e3b06032a6694, - 0x666089ebfbd9fd83, - 0x0a598ee67375207b, - 0x07449a140afc495f, - 0x2ca8a571b6593234, - 0x1f986f8a45bbc2fb, - 0x381aa4a050b372c2, - 0x5423a3add81faf3a, - 0x17273c0b8b86bb6c, - 0xfe83258dc869b5a2, - 0x287902bfd1c980f1, - 0xf5a94bd66b3837af, - 0x88800a79b2caba12, - 0x55504310083b0d4c, - 0xdf36940e07b9eeb2, - 0x04d1a7ce6790b2c5, - 0x612413fff125b4dc, - 0x26f12b97c52c124f, - 0x86082351a62f28ac, - 0xef93632f9937e5e7, - 0x3507b052293a1be6, - 0xe72c30ae570a9c70, - 0xd3586041ae1425e0, - 0xde4574b3d79d4cc4, - 0x92ba228040c5685a, - 0xf00b0ca5dc8c271c, - 0xbe1287f1f69c5a6e, - 0xf39e317fb1e0dc86, - 0x495d114020ec342d, - 0x699b407e3f18cd4b, - 0xdca3a9d46ad51528, - 0x0d1d14f279896924, - 0x0000000000000000, - 0x593eb75fa196c61e, - 0x2e4e78160b116bd8, - 0x6d4ae7b058887f8e, - 0xe65fd013872e3e06, - 0x7a6ddbbbd30ec4e2, - 0xac97fc89caaef1b1, - 0x09ccb33c1e19dbe1, - 0x89f3eac462ee1864, - 0x7770cf49aa87adc6, - 0x56c57eca6557f6d6, - 0x03953dda6d6cfb9a, - 0x36928d884456e07c, - 0x1eeb8f37959f608d, - 0x31d6179c4eaaa923, - 0x6fac3ad7e5c02662, - 0x43049fa653991456, - 0xabd3669dc052b8ee, - 0xaf02c153a7c20a2b, - 0x3ccb036e3723c007, - 0x93c9c23d90e1ca2c, - 0xc33bc65e2f6ed7d3, - 0x4cff56339758249e, - 0xb1e94e64325d6aa6, - 0x37e16d359472420a, - 0x79f8e661be623f78, - 0x5214d90402c74413, - 0x482ef1fdf0c8965b, - 0x13f69bc5ec1609a9, - 0x0e88292814e592be, - 0x4e198b542a107d72, - 0xccc00fcbebafe71b, - 0x1b49c844222b703e, - 0x2564164da840e9d5, - 0x20c6513e1ff4f966, - 0xbac3203f910ce8ab, - 0xf2edd1c261c47ef0, - 0x814cb945acd361f3, - 0x95feb8944a392105, - 0x5c9cf02c1622d6ad, - 0x971865f3f77178e9, - 0xbd87ba2b9bf0a1f4, - 0x444005b259655d09, - 0xed75be48247fbc0b, - 0x7596122e17cff42a, - 0xb44b091785e97a15, - 0x966b854e2755da9f, - 0xeee0839249134791, - 0x32432a4623c652b9, - 0xa8465b47ad3e4374, - 0xf8b45f2412b15e8b, - 0x2417f6f078644ba3, - 0xfb2162fe7fdda511, - 0x4bbbcc279da46dc1, - 0x0173e0bdd024a276, - 0x22208c59a2bca08a, - 0x8fc4906db836f34d, - 0xe4b90d743a6667ea, - 0x7147b5e0705f46ef, - 0x2782cb2a1508b039, - 0xec065ef5f45b1e7d, - 0x21b5b183cfd05b10, - 0xdbe733c060295c77, - 0x9fa73672394c017e, - 0xcf55321186c31c81, - 0xd8720e1a0d45a7ed, - 0x3b8f997a3ddf8958, - 0x3afc79c7edfb2b2e, - 0xe9a4198643ef0ece, - 0x5f09cdf67b4e2d37, - 0x4f6a6be9fa34df04, - 0xb6add47038a123f9, - 0x8d224d0a057eaaa1, - 0xc96248b85c1bf7a8, - 0xe3fd9760309a2eb5, - 0x0b2a6e5ba351820d, - 0xeb42c4e1fea75722, - 0x948d58299a1d8373, - 0x7fcf9cc864bad451, - 0xa55b4fb5d4b72a50, - 0x08bf5381ce3d7997, - 0x46a6d8d5e42d04e5, - 0xd22b80fc7e308796, - 0x57b69e77b57354a0, - 0x3969441d8097d0b4, - 0x3330cafbf3e2f0cf, - 0xe28e77dde0be8cc3, - 0x62b12e259c494f46, - 0xa6ce726fb9dbd1ca, - 0x41e242c1eed14dba, - 0x76032ff47aa30fb0, - }, - { - 0xe6f87e5c5b711fd0, - 0x258377800924fa16, - 0xc849e07e852ea4a8, - 0x5b4686a18f06c16a, - 0x0b32e9a2d77b416e, - 0xabda37a467815c66, - 0xf61796a81a686676, - 0xf5dc0b706391954b, - 0x4862f38db7e64bf1, - 0xff5c629a68bd85c5, - 0xcb827da6fcd75795, - 0x66d36daf69b9f089, - 0x356c9f74483d83b0, - 0x7cbcecb1238c99a1, - 0x36a702ac31c4708d, - 0x9eb6a8d02fbcdfd6, - 0x8b19fa51e5b3ae37, - 0x9ccfb5408a127d0b, - 0xbc0c78b508208f5a, - 0xe533e3842288eced, - 0xcec2c7d377c15fd2, - 0xec7817b6505d0f5e, - 0xb94cc2c08336871d, - 0x8c205db4cb0b04ad, - 0x763c855b28a0892f, - 0x588d1b79f6ff3257, - 0x3fecf69e4311933e, - 0x0fc0d39f803a18c9, - 0xee010a26f5f3ad83, - 0x10efe8f4411979a6, - 0x5dcda10c7de93a10, - 0x4a1bee1d1248e92c, - 0x53bff2db21847339, - 0xb4f50ccfa6a23d09, - 0x5fb4bc9cd84798cd, - 0xe88a2d8b071c56f9, - 0x7f7771695a756a9c, - 0xc5f02e71a0ba1ebc, - 0xa663f9ab4215e672, - 0x2eb19e22de5fbb78, - 0x0db9ce0f2594ba14, - 0x82520e6397664d84, - 0x2f031e6a0208ea98, - 0x5c7f2144a1be6bf0, - 0x7a37cb1cd16362db, - 0x83e08e2b4b311c64, - 0xcf70479bab960e32, - 0x856ba986b9dee71e, - 0xb5478c877af56ce9, - 0xb8fe42885f61d6fd, - 0x1bdd0156966238c8, - 0x622157923ef8a92e, - 0xfc97ff42114476f8, - 0x9d7d350856452ceb, - 0x4c90c9b0e0a71256, - 0x2308502dfbcb016c, - 0x2d7a03faa7a64845, - 0xf46e8b38bfc6c4ab, - 0xbdbef8fdd477deba, - 0x3aac4cebc8079b79, - 0xf09cb105e8879d0c, - 0x27fa6a10ac8a58cb, - 0x8960e7c1401d0cea, - 0x1a6f811e4a356928, - 0x90c4fb0773d196ff, - 0x43501a2f609d0a9f, - 0xf7a516e0c63f3796, - 0x1ce4a6b3b8da9252, - 0x1324752c38e08a9b, - 0xa5a864733bec154f, - 0x2bf124575549b33f, - 0xd766db15440dc5c7, - 0xa7d179e39e42b792, - 0xdadf151a61997fd3, - 0x86a0345ec0271423, - 0x38d5517b6da939a4, - 0x6518f077104003b4, - 0x02791d90a5aea2dd, - 0x88d267899c4a5d0a, - 0x930f66df0a2865c2, - 0x4ee9d4204509b08b, - 0x325538916685292a, - 0x412907bfc533a842, - 0xb27e2b62544dc673, - 0x6c5304456295e007, - 0x5af406e95351908a, - 0x1f2f3b6bc123616f, - 0xc37b09dc5255e5c6, - 0x3967d133b1fe6844, - 0x298839c7f0e711e2, - 0x409b87f71964f9a2, - 0xe938adc3db4b0719, - 0x0c0b4e47f9c3ebf4, - 0x5534d576d36b8843, - 0x4610a05aeb8b02d8, - 0x20c3cdf58232f251, - 0x6de1840dbec2b1e7, - 0xa0e8de06b0fa1d08, - 0x7b854b540d34333b, - 0x42e29a67bcca5b7f, - 0xd8a6088ac437dd0e, - 0xc63bb3a9d943ed81, - 0x21714dbd5e65a3b1, - 0x6761ede7b5eea169, - 0x2431f7c8d573abf6, - 0xd51fc685e1a3671a, - 0x5e063cd40410c92d, - 0x283ab98f2cb04002, - 0x8febc06cb2f2f790, - 0x17d64f116fa1d33c, - 0xe07359f1a99ee4aa, - 0x784ed68c74cdc006, - 0x6e2a19d5c73b42da, - 0x8712b4161c7045c3, - 0x371582e4ed93216d, - 0xace390414939f6fc, - 0x7ec5f12186223b7c, - 0xc0b094042bac16fb, - 0xf9d745379a527ebf, - 0x737c3f2ea3b68168, - 0x33e7b8d9bad278ca, - 0xa9a32a34c22ffebb, - 0xe48163ccfedfbd0d, - 0x8e5940246ea5a670, - 0x51c6ef4b842ad1e4, - 0x22bad065279c508c, - 0xd91488c218608cee, - 0x319ea5491f7cda17, - 0xd394e128134c9c60, - 0x094bf43272d5e3b3, - 0x9bf612a5a4aad791, - 0xccbbda43d26ffd0f, - 0x34de1f3c946ad250, - 0x4f5b5468995ee16b, - 0xdf9faf6fea8f7794, - 0x2648ea5870dd092b, - 0xbfc7e56d71d97c67, - 0xdde6b2ff4f21d549, - 0x3c276b463ae86003, - 0x91767b4faf86c71f, - 0x68a13e7835d4b9a0, - 0xb68c115f030c9fd4, - 0x141dd2c916582001, - 0x983d8f7ddd5324ac, - 0x64aa703fcc175254, - 0xc2c989948e02b426, - 0x3e5e76d69f46c2de, - 0x50746f03587d8004, - 0x45db3d829272f1e5, - 0x60584a029b560bf3, - 0xfbae58a73ffcdc62, - 0xa15a5e4e6cad4ce8, - 0x4ba96e55ce1fb8cc, - 0x08f9747aae82b253, - 0xc102144cf7fb471b, - 0x9f042898f3eb8e36, - 0x068b27adf2effb7a, - 0xedca97fe8c0a5ebe, - 0x778e0513f4f7d8cf, - 0x302c2501c32b8bf7, - 0x8d92ddfc175c554d, - 0xf865c57f46052f5f, - 0xeaf3301ba2b2f424, - 0xaa68b7ecbbd60d86, - 0x998f0f350104754c, - 0x0000000000000000, - 0xf12e314d34d0ccec, - 0x710522be061823b5, - 0xaf280d9930c005c1, - 0x97fd5ce25d693c65, - 0x19a41cc633cc9a15, - 0x95844172f8c79eb8, - 0xdc5432b7937684a9, - 0x9436c13a2490cf58, - 0x802b13f332c8ef59, - 0xc442ae397ced4f5c, - 0xfa1cd8efe3ab8d82, - 0xf2e5ac954d293fd1, - 0x6ad823e8907a1b7d, - 0x4d2249f83cf043b6, - 0x03cb9dd879f9f33d, - 0xde2d2f2736d82674, - 0x2a43a41f891ee2df, - 0x6f98999d1b6c133a, - 0xd4ad46cd3df436fa, - 0xbb35df50269825c0, - 0x964fdcaa813e6d85, - 0xeb41b0537ee5a5c4, - 0x0540ba758b160847, - 0xa41ae43be7bb44af, - 0xe3b8c429d0671797, - 0x819993bbee9fbeb9, - 0xae9a8dd1ec975421, - 0xf3572cdd917e6e31, - 0x6393d7dae2aff8ce, - 0x47a2201237dc5338, - 0xa32343dec903ee35, - 0x79fc56c4a89a91e6, - 0x01b28048dc5751e0, - 0x1296f564e4b7db7b, - 0x75f7188351597a12, - 0xdb6d9552bdce2e33, - 0x1e9dbb231d74308f, - 0x520d7293fdd322d9, - 0xe20a44610c304677, - 0xfeeee2d2b4ead425, - 0xca30fdee20800675, - 0x61eaca4a47015a13, - 0xe74afe1487264e30, - 0x2cc883b27bf119a5, - 0x1664cf59b3f682dc, - 0xa811aa7c1e78af5b, - 0x1d5626fb648dc3b2, - 0xb73e9117df5bce34, - 0xd05f7cf06ab56f5d, - 0xfd257f0acd132718, - 0x574dc8e676c52a9e, - 0x0739a7e52eb8aa9a, - 0x5486553e0f3cd9a3, - 0x56ff48aeaa927b7e, - 0xbe756525ad8e2d87, - 0x7d0e6cf9ffdbc841, - 0x3b1ecca31450ca99, - 0x6913be30e983e840, - 0xad511009956ea71c, - 0xb1b5b6ba2db4354e, - 0x4469bdca4e25a005, - 0x15af5281ca0f71e1, - 0x744598cb8d0e2bf2, - 0x593f9b312aa863b7, - 0xefb38a6e29a4fc63, - 0x6b6aa3a04c2d4a9d, - 0x3d95eb0ee6bf31e3, - 0xa291c3961554bfd5, - 0x18169c8eef9bcbf5, - 0x115d68bc9d4e2846, - 0xba875f18facf7420, - 0xd1edfcb8b6e23ebd, - 0xb00736f2f1e364ae, - 0x84d929ce6589b6fe, - 0x70b7a2f6da4f7255, - 0x0e7253d75c6d4929, - 0x04f23a3d574159a7, - 0x0a8069ea0b2c108e, - 0x49d073c56bb11a11, - 0x8aab7a1939e4ffd7, - 0xcd095a0b0e38acef, - 0xc9fb60365979f548, - 0x92bde697d67f3422, - 0xc78933e10514bc61, - 0xe1c1d9b975c9b54a, - 0xd2266160cf1bcd80, - 0x9a4492ed78fd8671, - 0xb3ccab2a881a9793, - 0x72cebf667fe1d088, - 0xd6d45b5d985a9427, - }, -}; - -__constant u64a sbob_rc64[12][8] = -{ - { - 0xe9daca1eda5b08b1, - 0x1f7c65c0812fcbeb, - 0x16d0452e43766a2f, - 0xfcc485758db84e71, - 0x0169679291e07c4b, - 0x15d360a4082a42a2, - 0x234d74cc36747605, - 0x0745a6f2596580dd, - }, - { - 0x1a2f9da98ab5a36f, - 0xd7b5700f469de34f, - 0x982b230a72eafef3, - 0x3101b5160f5ed561, - 0x5899d6126b17b59a, - 0xcaa70adbc261b55c, - 0x56cdcbd71ba2dd55, - 0xb79bb121700479e6, - }, - { - 0xc72fce2bacdc74f5, - 0x35843d6a28fc390a, - 0x8b1f9c525f5ef106, - 0x7b7b29b11475eaf2, - 0xb19e3590e40fe2d3, - 0x09db6260373ac9c1, - 0x31db7a8643f4b6c2, - 0xb20aba0af5961e99, - }, - { - 0xd26615e8b3df1fef, - 0xdde4715da0e148f9, - 0x7d3c5c337e858e48, - 0x3f355e68ad1c729d, - 0x75d603ed822cd7a9, - 0xbe0352933313b7d8, - 0xf137e893a1ea5334, - 0x2ed1e384bcbe0c22, - }, - { - 0x994747adac6bea4b, - 0x6323a96c0c413f9a, - 0x4a1086161f1c157f, - 0xbdff0f80d7359e35, - 0xa3f53a254717cdbf, - 0x161a2723b700ffdf, - 0xf563eaa97ea2567a, - 0x57fe6c7cfd581760, - }, - { - 0xd9d33a1daeae4fae, - 0xc039307a3bc3a46f, - 0x6ca44251f9c4662d, - 0xc68ef09ab49a7f18, - 0xb4b79a1cb7a6facf, - 0xb6c6bec2661ff20a, - 0x354f903672c571bf, - 0x6e7d64467a4068fa, - }, - { - 0xecc5aaee160ec7f4, - 0x540924bffe86ac51, - 0xc987bfe6c7c69e39, - 0xc9937a19333e47d3, - 0x372c822dc5ab9209, - 0x04054a2883694706, - 0xf34a3ca24c451735, - 0x93d4143a4d568688, - }, - { - 0xa7c9934d425b1f9b, - 0x41416e0c02aae703, - 0x1ede369c71f8b74e, - 0x9ac4db4d3b44b489, - 0x90069b92cb2b89f4, - 0x2fc4a5d12b8dd169, - 0xd9a8515935c2ac36, - 0x1ee702bfd40d7fa4, - }, - { - 0x9b223116545a8f37, - 0xde5f16ecd89a4c94, - 0x244289251b3a7d3a, - 0x84090de0b755d93c, - 0xb1ceb2db0b440a80, - 0x549c07a69a8a2b7b, - 0x602a1fcb92dc380e, - 0xdb5a238351446172, - }, - { - 0x526f0580a6debeab, - 0xf3f3e4b248e52a38, - 0xdb788aff1ce74189, - 0x0361331b8ae1ff1f, - 0x4b3369af0267e79f, - 0xf452763b306c1e7a, - 0xc3b63b15d1fa9836, - 0xed9c4598fbc7b474, - }, - { - 0xfb89c8efd09ecd7b, - 0x94fe5a63cdc60230, - 0x6107abebbb6bfad8, - 0x7966841421800120, - 0xcab948eaef711d8a, - 0x986e477d1dcdbaef, - 0x5dd86fc04a59a2de, - 0x1b2df381cda4ca6b, - }, - { - 0xba3116f167e78e37, - 0x7ab14904b08013d2, - 0x771ddfbc323ca4cd, - 0x9b9f2130d41220f8, - 0x86cc91189def805d, - 0x5228e188aaa41de7, - 0x991bb2d9d517f4fa, - 0x20d71bf14a92bc48, - }, -}; - DECLSPEC void streebog_g (u64x *h, const u64x *m, __local u64 (*s_sbob_sl64)[256]) { u64x k[8]; diff --git a/OpenCL/m11700_a0-pure.cl b/OpenCL/m11700_a0-pure.cl index 4f9860ecb..02c75c3db 100644 --- a/OpenCL/m11700_a0-pure.cl +++ b/OpenCL/m11700_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11700_a1-optimized.cl b/OpenCL/m11700_a1-optimized.cl index 1381722fe..76fe46ea8 100644 --- a/OpenCL/m11700_a1-optimized.cl +++ b/OpenCL/m11700_a1-optimized.cl @@ -6,2231 +6,14 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_streebog256.cl" #define INITVAL 0x0101010101010101 -#if VECT_SIZE == 1 -#define BOX(S,n,i) (S)[(n)][(i)] -#elif VECT_SIZE == 2 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1]) -#elif VECT_SIZE == 4 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3]) -#elif VECT_SIZE == 8 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) -#elif VECT_SIZE == 16 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) -#endif - -#define SBOG_LPSti64 \ - BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff)) - -// constants - -__constant u64a sbob_sl64[8][256] = -{ - { - 0xd031c397ce553fe6, - 0x16ba5b01b006b525, - 0xa89bade6296e70c8, - 0x6a1f525d77d3435b, - 0x6e103570573dfa0b, - 0x660efb2a17fc95ab, - 0x76327a9e97634bf6, - 0x4bad9d6462458bf5, - 0xf1830caedbc3f748, - 0xc5c8f542669131ff, - 0x95044a1cdc48b0cb, - 0x892962df3cf8b866, - 0xb0b9e208e930c135, - 0xa14fb3f0611a767c, - 0x8d2605f21c160136, - 0xd6b71922fecc549e, - 0x37089438a5907d8b, - 0x0b5da38e5803d49c, - 0x5a5bcc9cea6f3cbc, - 0xedae246d3b73ffe5, - 0xd2b87e0fde22edce, - 0x5e54abb1ca8185ec, - 0x1de7f88fe80561b9, - 0xad5e1a870135a08c, - 0x2f2adbd665cecc76, - 0x5780b5a782f58358, - 0x3edc8a2eede47b3f, - 0xc9d95c3506bee70f, - 0x83be111d6c4e05ee, - 0xa603b90959367410, - 0x103c81b4809fde5d, - 0x2c69b6027d0c774a, - 0x399080d7d5c87953, - 0x09d41e16487406b4, - 0xcdd63b1826505e5f, - 0xf99dc2f49b0298e8, - 0x9cd0540a943cb67f, - 0xbca84b7f891f17c5, - 0x723d1db3b78df2a6, - 0x78aa6e71e73b4f2e, - 0x1433e699a071670d, - 0x84f21be454620782, - 0x98df3327b4d20f2f, - 0xf049dce2d3769e5c, - 0xdb6c60199656eb7a, - 0x648746b2078b4783, - 0x32cd23598dcbadcf, - 0x1ea4955bf0c7da85, - 0xe9a143401b9d46b5, - 0xfd92a5d9bbec21b8, - 0xc8138c790e0b8e1b, - 0x2ee00b9a6d7ba562, - 0xf85712b893b7f1fc, - 0xeb28fed80bea949d, - 0x564a65eb8a40ea4c, - 0x6c9988e8474a2823, - 0x4535898b121d8f2d, - 0xabd8c03231accbf4, - 0xba2e91cab9867cbd, - 0x7960be3def8e263a, - 0x0c11a977602fd6f0, - 0xcb50e1ad16c93527, - 0xeae22e94035ffd89, - 0x2866d12f5de2ce1a, - 0xff1b1841ab9bf390, - 0x9f9339de8cfe0d43, - 0x964727c8c48a0bf7, - 0x524502c6aaae531c, - 0x9b9c5ef3ac10b413, - 0x4fa2fa4942ab32a5, - 0x3f165a62e551122b, - 0xc74148da76e6e3d7, - 0x924840e5e464b2a7, - 0xd372ae43d69784da, - 0x233b72a105e11a86, - 0xa48a04914941a638, - 0xb4b68525c9de7865, - 0xddeabaaca6cf8002, - 0x0a9773c250b6bd88, - 0xc284ffbb5ebd3393, - 0x8ba0df472c8f6a4e, - 0x2aef6cb74d951c32, - 0x427983722a318d41, - 0x73f7cdffbf389bb2, - 0x074c0af9382c026c, - 0x8a6a0f0b243a035a, - 0x6fdae53c5f88931f, - 0xc68b98967e538ac3, - 0x44ff59c71aa8e639, - 0xe2fce0ce439e9229, - 0xa20cde2479d8cd40, - 0x19e89fa2c8ebd8e9, - 0xf446bbcff398270c, - 0x43b3533e2284e455, - 0xd82f0dcd8e945046, - 0x51066f12b26ce820, - 0xe73957af6bc5426d, - 0x081ece5a40c16fa0, - 0x3b193d4fc5bfab7b, - 0x7fe66488df174d42, - 0x0e9814ef705804d8, - 0x8137ac857c39d7c6, - 0xb1733244e185a821, - 0x695c3f896f11f867, - 0xf6cf0657e3eff524, - 0x1aabf276d02963d5, - 0x2da3664e75b91e5e, - 0x0289bd981077d228, - 0x90c1fd7df413608f, - 0x3c5537b6fd93a917, - 0xaa12107e3919a2e0, - 0x0686dab530996b78, - 0xdaa6b0559ee3826e, - 0xc34e2ff756085a87, - 0x6d5358a44fff4137, - 0xfc587595b35948ac, - 0x7ca5095cc7d5f67e, - 0xfb147f6c8b754ac0, - 0xbfeb26ab91ddacf9, - 0x6896efc567a49173, - 0xca9a31e11e7c5c33, - 0xbbe44186b13315a9, - 0x0ddb793b689abfe4, - 0x70b4a02ba7fa208e, - 0xe47a3a7b7307f951, - 0x8cecd5be14a36822, - 0xeeed49b923b144d9, - 0x17708b4db8b3dc31, - 0x6088219f2765fed3, - 0xb3fa8fdcf1f27a09, - 0x910b2d31fca6099b, - 0x0f52c4a378ed6dcc, - 0x50ccbf5ebad98134, - 0x6bd582117f662a4f, - 0x94ce9a50d4fdd9df, - 0x2b25bcfb45207526, - 0x67c42b661f49fcbf, - 0x492420fc723259dd, - 0x03436dd418c2bb3c, - 0x1f6e4517f872b391, - 0xa08563bc69af1f68, - 0xd43ea4baeebb86b6, - 0x01cad04c08b56914, - 0xac94cacb0980c998, - 0x54c3d8739a373864, - 0x26fec5c02dbacac2, - 0xdea9d778be0d3b3e, - 0x040f672d20eeb950, - 0xe5b0ea377bb29045, - 0xf30ab136cbb42560, - 0x62019c0737122cfb, - 0xe86b930c13282fa1, - 0xcc1ceb542ee5374b, - 0x538fd28aa21b3a08, - 0x1b61223ad89c0ac1, - 0x36c24474ad25149f, - 0x7a23d3e9f74c9d06, - 0xbe21f6e79968c5ed, - 0xcf5f868036278c77, - 0xf705d61beb5a9c30, - 0x4d2b47d152dce08d, - 0x5f9e7bfdc234ecf8, - 0x247778583dcd18ea, - 0x867ba67c4415d5aa, - 0x4ce1979d5a698999, - 0x0000000000000000, - 0xec64f42133c696f1, - 0xb57c5569c16b1171, - 0xc1c7926f467f88af, - 0x654d96fe0f3e2e97, - 0x15f936d5a8c40e19, - 0xb8a72c52a9f1ae95, - 0xa9517daa21db19dc, - 0x58d27104fa18ee94, - 0x5918a148f2ad8780, - 0x5cdd1629daf657c4, - 0x8274c15164fb6cfa, - 0xd1fb13dbc6e056f2, - 0x7d6fd910cf609f6a, - 0xb63f38bdd9a9aa4d, - 0x3d9fe7faf526c003, - 0x74bbc706871499de, - 0xdf630734b6b8522a, - 0x3ad3ed03cd0ac26f, - 0xfadeaf2083c023d4, - 0xc00d42234ecae1bb, - 0x8538cba85cd76e96, - 0xc402250e6e2458eb, - 0x47bc3413026a5d05, - 0xafd7a71f114272a4, - 0x978df784cc3f62e3, - 0xb96dfc1ea144c781, - 0x21b2cf391596c8ae, - 0x318e4e8d950916f3, - 0xce9556cc3e92e563, - 0x385a509bdd7d1047, - 0x358129a0b5e7afa3, - 0xe6f387e363702b79, - 0xe0755d5653e94001, - 0x7be903a5fff9f412, - 0x12b53c2c90e80c75, - 0x3307f315857ec4db, - 0x8fafb86a0c61d31e, - 0xd9e5dd8186213952, - 0x77f8aad29fd622e2, - 0x25bda814357871fe, - 0x7571174a8fa1f0ca, - 0x137fec60985d6561, - 0x30449ec19dbc7fe7, - 0xa540d4dd41f4cf2c, - 0xdc206ae0ae7ae916, - 0x5b911cd0e2da55a8, - 0xb2305f90f947131d, - 0x344bf9ecbd52c6b7, - 0x5d17c665d2433ed0, - 0x18224feec05eb1fd, - 0x9e59e992844b6457, - 0x9a568ebfa4a5dd07, - 0xa3c60e68716da454, - 0x7e2cb4c4d7a22456, - 0x87b176304ca0bcbe, - 0x413aeea632f3367d, - 0x9915e36bbc67663b, - 0x40f03eea3a465f69, - 0x1c2d28c3e0b008ad, - 0x4e682a054a1e5bb1, - 0x05c5b761285bd044, - 0xe1bf8d1a5b5c2915, - 0xf2c0617ac3014c74, - 0xb7f5e8f1d11cc359, - 0x63cb4c4b3fa745ef, - 0x9d1a84469c89df6b, - 0xe33630824b2bfb3d, - 0xd5f474f6e60eefa2, - 0xf58c6b83fb2d4e18, - 0x4676e45f0adf3411, - 0x20781f751d23a1ba, - 0xbd629b3381aa7ed1, - 0xae1d775319f71bb0, - 0xfed1c80da32e9a84, - 0x5509083f92825170, - 0x29ac01635557a70e, - 0xa7c9694551831d04, - 0x8e65682604d4ba0a, - 0x11f651f8882ab749, - 0xd77dc96ef6793d8a, - 0xef2799f52b042dcd, - 0x48eef0b07a8730c9, - 0x22f1a2ed0d547392, - 0x6142f1d32fd097c7, - 0x4a674d286af0e2e1, - 0x80fd7cc9748cbed2, - 0x717e7067af4f499a, - 0x938290a9ecd1dbb3, - 0x88e3b293344dd172, - 0x2734158c250fa3d6, - }, - { - 0x7e37e62dfc7d40c3, - 0x776f25a4ee939e5b, - 0xe045c850dd8fb5ad, - 0x86ed5ba711ff1952, - 0xe91d0bd9cf616b35, - 0x37e0ab256e408ffb, - 0x9607f6c031025a7a, - 0x0b02f5e116d23c9d, - 0xf3d8486bfb50650c, - 0x621cff27c40875f5, - 0x7d40cb71fa5fd34a, - 0x6daa6616daa29062, - 0x9f5f354923ec84e2, - 0xec847c3dc507c3b3, - 0x025a3668043ce205, - 0xa8bf9e6c4dac0b19, - 0xfa808be2e9bebb94, - 0xb5b99c5277c74fa3, - 0x78d9bc95f0397bcc, - 0xe332e50cdbad2624, - 0xc74fce129332797e, - 0x1729eceb2ea709ab, - 0xc2d6b9f69954d1f8, - 0x5d898cbfbab8551a, - 0x859a76fb17dd8adb, - 0x1be85886362f7fb5, - 0xf6413f8ff136cd8a, - 0xd3110fa5bbb7e35c, - 0x0a2feed514cc4d11, - 0xe83010edcd7f1ab9, - 0xa1e75de55f42d581, - 0xeede4a55c13b21b6, - 0xf2f5535ff94e1480, - 0x0cc1b46d1888761e, - 0xbce15fdb6529913b, - 0x2d25e8975a7181c2, - 0x71817f1ce2d7a554, - 0x2e52c5cb5c53124b, - 0xf9f7a6beef9c281d, - 0x9e722e7d21f2f56e, - 0xce170d9b81dca7e6, - 0x0e9b82051cb4941b, - 0x1e712f623c49d733, - 0x21e45cfa42f9f7dc, - 0xcb8e7a7f8bba0f60, - 0x8e98831a010fb646, - 0x474ccf0d8e895b23, - 0xa99285584fb27a95, - 0x8cc2b57205335443, - 0x42d5b8e984eff3a5, - 0x012d1b34021e718c, - 0x57a6626aae74180b, - 0xff19fc06e3d81312, - 0x35ba9d4d6a7c6dfe, - 0xc9d44c178f86ed65, - 0x506523e6a02e5288, - 0x03772d5c06229389, - 0x8b01f4fe0b691ec0, - 0xf8dabd8aed825991, - 0x4c4e3aec985b67be, - 0xb10df0827fbf96a9, - 0x6a69279ad4f8dae1, - 0xe78689dcd3d5ff2e, - 0x812e1a2b1fa553d1, - 0xfbad90d6eba0ca18, - 0x1ac543b234310e39, - 0x1604f7df2cb97827, - 0xa6241c6951189f02, - 0x753513cceaaf7c5e, - 0x64f2a59fc84c4efa, - 0x247d2b1e489f5f5a, - 0xdb64d718ab474c48, - 0x79f4a7a1f2270a40, - 0x1573da832a9bebae, - 0x3497867968621c72, - 0x514838d2a2302304, - 0xf0af6537fd72f685, - 0x1d06023e3a6b44ba, - 0x678588c3ce6edd73, - 0x66a893f7cc70acff, - 0xd4d24e29b5eda9df, - 0x3856321470ea6a6c, - 0x07c3418c0e5a4a83, - 0x2bcbb22f5635bacd, - 0x04b46cd00878d90a, - 0x06ee5ab80c443b0f, - 0x3b211f4876c8f9e5, - 0x0958c38912eede98, - 0xd14b39cdbf8b0159, - 0x397b292072f41be0, - 0x87c0409313e168de, - 0xad26e98847caa39f, - 0x4e140c849c6785bb, - 0xd5ff551db7f3d853, - 0xa0ca46d15d5ca40d, - 0xcd6020c787fe346f, - 0x84b76dcf15c3fb57, - 0xdefda0fca121e4ce, - 0x4b8d7b6096012d3d, - 0x9ac642ad298a2c64, - 0x0875d8bd10f0af14, - 0xb357c6ea7b8374ac, - 0x4d6321d89a451632, - 0xeda96709c719b23f, - 0xf76c24bbf328bc06, - 0xc662d526912c08f2, - 0x3ce25ec47892b366, - 0xb978283f6f4f39bd, - 0xc08c8f9e9d6833fd, - 0x4f3917b09e79f437, - 0x593de06fb2c08c10, - 0xd6887841b1d14bda, - 0x19b26eee32139db0, - 0xb494876675d93e2f, - 0x825937771987c058, - 0x90e9ac783d466175, - 0xf1827e03ff6c8709, - 0x945dc0a8353eb87f, - 0x4516f9658ab5b926, - 0x3f9573987eb020ef, - 0xb855330b6d514831, - 0x2ae6a91b542bcb41, - 0x6331e413c6160479, - 0x408f8e8180d311a0, - 0xeff35161c325503a, - 0xd06622f9bd9570d5, - 0x8876d9a20d4b8d49, - 0xa5533135573a0c8b, - 0xe168d364df91c421, - 0xf41b09e7f50a2f8f, - 0x12b09b0f24c1a12d, - 0xda49cc2ca9593dc4, - 0x1f5c34563e57a6bf, - 0x54d14f36a8568b82, - 0xaf7cdfe043f6419a, - 0xea6a2685c943f8bc, - 0xe5dcbfb4d7e91d2b, - 0xb27addde799d0520, - 0x6b443caed6e6ab6d, - 0x7bae91c9f61be845, - 0x3eb868ac7cae5163, - 0x11c7b65322e332a4, - 0xd23c1491b9a992d0, - 0x8fb5982e0311c7ca, - 0x70ac6428e0c9d4d8, - 0x895bc2960f55fcc5, - 0x76423e90ec8defd7, - 0x6ff0507ede9e7267, - 0x3dcf45f07a8cc2ea, - 0x4aa06054941f5cb1, - 0x5810fb5bb0defd9c, - 0x5efea1e3bc9ac693, - 0x6edd4b4adc8003eb, - 0x741808f8e8b10dd2, - 0x145ec1b728859a22, - 0x28bc9f7350172944, - 0x270a06424ebdccd3, - 0x972aedf4331c2bf6, - 0x059977e40a66a886, - 0x2550302a4a812ed6, - 0xdd8a8da0a7037747, - 0xc515f87a970e9b7b, - 0x3023eaa9601ac578, - 0xb7e3aa3a73fbada6, - 0x0fb699311eaae597, - 0x0000000000000000, - 0x310ef19d6204b4f4, - 0x229371a644db6455, - 0x0decaf591a960792, - 0x5ca4978bb8a62496, - 0x1c2b190a38753536, - 0x41a295b582cd602c, - 0x3279dcc16426277d, - 0xc1a194aa9f764271, - 0x139d803b26dfd0a1, - 0xae51c4d441e83016, - 0xd813fa44ad65dfc1, - 0xac0bf2bc45d4d213, - 0x23be6a9246c515d9, - 0x49d74d08923dcf38, - 0x9d05032127d066e7, - 0x2f7fdeff5e4d63c7, - 0xa47e2a0155247d07, - 0x99b16ff12fa8bfed, - 0x4661d4398c972aaf, - 0xdfd0bbc8a33f9542, - 0xdca79694a51d06cb, - 0xb020ebb67da1e725, - 0xba0f0563696daa34, - 0xe4f1a480d5f76ca7, - 0xc438e34e9510eaf7, - 0x939e81243b64f2fc, - 0x8defae46072d25cf, - 0x2c08f3a3586ff04e, - 0xd7a56375b3cf3a56, - 0x20c947ce40e78650, - 0x43f8a3dd86f18229, - 0x568b795eac6a6987, - 0x8003011f1dbb225d, - 0xf53612d3f7145e03, - 0x189f75da300dec3c, - 0x9570db9c3720c9f3, - 0xbb221e576b73dbb8, - 0x72f65240e4f536dd, - 0x443be25188abc8aa, - 0xe21ffe38d9b357a8, - 0xfd43ca6ee7e4f117, - 0xcaa3614b89a47eec, - 0xfe34e732e1c6629e, - 0x83742c431b99b1d4, - 0xcf3a16af83c2d66a, - 0xaae5a8044990e91c, - 0x26271d764ca3bd5f, - 0x91c4b74c3f5810f9, - 0x7c6dd045f841a2c6, - 0x7f1afd19fe63314f, - 0xc8f957238d989ce9, - 0xa709075d5306ee8e, - 0x55fc5402aa48fa0e, - 0x48fa563c9023beb4, - 0x65dfbeabca523f76, - 0x6c877d22d8bce1ee, - 0xcc4d3bf385e045e3, - 0xbebb69b36115733e, - 0x10eaad6720fd4328, - 0xb6ceb10e71e5dc2a, - 0xbdcc44ef6737e0b7, - 0x523f158ea412b08d, - 0x989c74c52db6ce61, - 0x9beb59992b945de8, - 0x8a2cefca09776f4c, - 0xa3bd6b8d5b7e3784, - 0xeb473db1cb5d8930, - 0xc3fba2c29b4aa074, - 0x9c28181525ce176b, - 0x683311f2d0c438e4, - 0x5fd3bad7be84b71f, - 0xfc6ed15ae5fa809b, - 0x36cdb0116c5efe77, - 0x29918447520958c8, - 0xa29070b959604608, - 0x53120ebaa60cc101, - 0x3a0c047c74d68869, - 0x691e0ac6d2da4968, - 0x73db4974e6eb4751, - 0x7a838afdf40599c9, - 0x5a4acd33b4e21f99, - 0x6046c94fc03497f0, - 0xe6ab92e8d1cb8ea2, - 0x3354c7f5663856f1, - 0xd93ee170af7bae4d, - 0x616bd27bc22ae67c, - 0x92b39a10397a8370, - 0xabc8b3304b8e9890, - 0xbf967287630b02b2, - 0x5b67d607b6fc6e15, - }, - { - 0x8ab0a96846e06a6d, - 0x43c7e80b4bf0b33a, - 0x08c9b3546b161ee5, - 0x39f1c235eba990be, - 0xc1bef2376606c7b2, - 0x2c209233614569aa, - 0xeb01523b6fc3289a, - 0x946953ab935acedd, - 0x272838f63e13340e, - 0x8b0455eca12ba052, - 0x77a1b2c4978ff8a2, - 0xa55122ca13e54086, - 0x2276135862d3f1cd, - 0xdb8ddfde08b76cfe, - 0x5d1e12c89e4a178a, - 0x0e56816b03969867, - 0xee5f79953303ed59, - 0xafed748bab78d71d, - 0x6d929f2df93e53ee, - 0xf5d8a8f8ba798c2a, - 0xf619b1698e39cf6b, - 0x95ddaf2f749104e2, - 0xec2a9c80e0886427, - 0xce5c8fd8825b95ea, - 0xc4e0d9993ac60271, - 0x4699c3a5173076f9, - 0x3d1b151f50a29f42, - 0x9ed505ea2bc75946, - 0x34665acfdc7f4b98, - 0x61b1fb53292342f7, - 0xc721c0080e864130, - 0x8693cd1696fd7b74, - 0x872731927136b14b, - 0xd3446c8a63a1721b, - 0x669a35e8a6680e4a, - 0xcab658f239509a16, - 0xa4e5de4ef42e8ab9, - 0x37a7435ee83f08d9, - 0x134e6239e26c7f96, - 0x82791a3c2df67488, - 0x3f6ef00a8329163c, - 0x8e5a7e42fdeb6591, - 0x5caaee4c7981ddb5, - 0x19f234785af1e80d, - 0x255ddde3ed98bd70, - 0x50898a32a99cccac, - 0x28ca4519da4e6656, - 0xae59880f4cb31d22, - 0x0d9798fa37d6db26, - 0x32f968f0b4ffcd1a, - 0xa00f09644f258545, - 0xfa3ad5175e24de72, - 0xf46c547c5db24615, - 0x713e80fbff0f7e20, - 0x7843cf2b73d2aafa, - 0xbd17ea36aedf62b4, - 0xfd111bacd16f92cf, - 0x4abaa7dbc72d67e0, - 0xb3416b5dad49fad3, - 0xbca316b24914a88b, - 0x15d150068aecf914, - 0xe27c1debe31efc40, - 0x4fe48c759beda223, - 0x7edcfd141b522c78, - 0x4e5070f17c26681c, - 0xe696cac15815f3bc, - 0x35d2a64b3bb481a7, - 0x800cff29fe7dfdf6, - 0x1ed9fac3d5baa4b0, - 0x6c2663a91ef599d1, - 0x03c1199134404341, - 0xf7ad4ded69f20554, - 0xcd9d9649b61bd6ab, - 0xc8c3bde7eadb1368, - 0xd131899fb02afb65, - 0x1d18e352e1fae7f1, - 0xda39235aef7ca6c1, - 0xa1bbf5e0a8ee4f7a, - 0x91377805cf9a0b1e, - 0x3138716180bf8e5b, - 0xd9f83acbdb3ce580, - 0x0275e515d38b897e, - 0x472d3f21f0fbbcc6, - 0x2d946eb7868ea395, - 0xba3c248d21942e09, - 0xe7223645bfde3983, - 0xff64feb902e41bb1, - 0xc97741630d10d957, - 0xc3cb1722b58d4ecc, - 0xa27aec719cae0c3b, - 0x99fecb51a48c15fb, - 0x1465ac826d27332b, - 0xe1bd047ad75ebf01, - 0x79f733af941960c5, - 0x672ec96c41a3c475, - 0xc27feba6524684f3, - 0x64efd0fd75e38734, - 0xed9e60040743ae18, - 0xfb8e2993b9ef144d, - 0x38453eb10c625a81, - 0x6978480742355c12, - 0x48cf42ce14a6ee9e, - 0x1cac1fd606312dce, - 0x7b82d6ba4792e9bb, - 0x9d141c7b1f871a07, - 0x5616b80dc11c4a2e, - 0xb849c198f21fa777, - 0x7ca91801c8d9a506, - 0xb1348e487ec273ad, - 0x41b20d1e987b3a44, - 0x7460ab55a3cfbbe3, - 0x84e628034576f20a, - 0x1b87d16d897a6173, - 0x0fe27defe45d5258, - 0x83cde6b8ca3dbeb7, - 0x0c23647ed01d1119, - 0x7a362a3ea0592384, - 0xb61f40f3f1893f10, - 0x75d457d1440471dc, - 0x4558da34237035b8, - 0xdca6116587fc2043, - 0x8d9b67d3c9ab26d0, - 0x2b0b5c88ee0e2517, - 0x6fe77a382ab5da90, - 0x269cc472d9d8fe31, - 0x63c41e46faa8cb89, - 0xb7abbc771642f52f, - 0x7d1de4852f126f39, - 0xa8c6ba3024339ba0, - 0x600507d7cee888c8, - 0x8fee82c61a20afae, - 0x57a2448926d78011, - 0xfca5e72836a458f0, - 0x072bcebb8f4b4cbd, - 0x497bbe4af36d24a1, - 0x3cafe99bb769557d, - 0x12fa9ebd05a7b5a9, - 0xe8c04baa5b836bdb, - 0x4273148fac3b7905, - 0x908384812851c121, - 0xe557d3506c55b0fd, - 0x72ff996acb4f3d61, - 0x3eda0c8e64e2dc03, - 0xf0868356e6b949e9, - 0x04ead72abb0b0ffc, - 0x17a4b5135967706a, - 0xe3c8e16f04d5367f, - 0xf84f30028daf570c, - 0x1846c8fcbd3a2232, - 0x5b8120f7f6ca9108, - 0xd46fa231ecea3ea6, - 0x334d947453340725, - 0x58403966c28ad249, - 0xbed6f3a79a9f21f5, - 0x68ccb483a5fe962d, - 0xd085751b57e1315a, - 0xfed0023de52fd18e, - 0x4b0e5b5f20e6addf, - 0x1a332de96eb1ab4c, - 0xa3ce10f57b65c604, - 0x108f7ba8d62c3cd7, - 0xab07a3a11073d8e1, - 0x6b0dad1291bed56c, - 0xf2f366433532c097, - 0x2e557726b2cee0d4, - 0x0000000000000000, - 0xcb02a476de9b5029, - 0xe4e32fd48b9e7ac2, - 0x734b65ee2c84f75e, - 0x6e5386bccd7e10af, - 0x01b4fc84e7cbca3f, - 0xcfe8735c65905fd5, - 0x3613bfda0ff4c2e6, - 0x113b872c31e7f6e8, - 0x2fe18ba255052aeb, - 0xe974b72ebc48a1e4, - 0x0abc5641b89d979b, - 0xb46aa5e62202b66e, - 0x44ec26b0c4bbff87, - 0xa6903b5b27a503c7, - 0x7f680190fc99e647, - 0x97a84a3aa71a8d9c, - 0xdd12ede16037ea7c, - 0xc554251ddd0dc84e, - 0x88c54c7d956be313, - 0x4d91696048662b5d, - 0xb08072cc9909b992, - 0xb5de5962c5c97c51, - 0x81b803ad19b637c9, - 0xb2f597d94a8230ec, - 0x0b08aac55f565da4, - 0xf1327fd2017283d6, - 0xad98919e78f35e63, - 0x6ab9519676751f53, - 0x24e921670a53774f, - 0xb9fd3d1c15d46d48, - 0x92f66194fbda485f, - 0x5a35dc7311015b37, - 0xded3f4705477a93d, - 0xc00a0eb381cd0d8d, - 0xbb88d809c65fe436, - 0x16104997beacba55, - 0x21b70ac95693b28c, - 0x59f4c5e225411876, - 0xd5db5eb50b21f499, - 0x55d7a19cf55c096f, - 0xa97246b4c3f8519f, - 0x8552d487a2bd3835, - 0x54635d181297c350, - 0x23c2efdc85183bf2, - 0x9f61f96ecc0c9379, - 0x534893a39ddc8fed, - 0x5edf0b59aa0a54cb, - 0xac2c6d1a9f38945c, - 0xd7aebba0d8aa7de7, - 0x2abfa00c09c5ef28, - 0xd84cc64f3cf72fbf, - 0x2003f64db15878b3, - 0xa724c7dfc06ec9f8, - 0x069f323f68808682, - 0xcc296acd51d01c94, - 0x055e2bae5cc0c5c3, - 0x6270e2c21d6301b6, - 0x3b842720382219c0, - 0xd2f0900e846ab824, - 0x52fc6f277a1745d2, - 0xc6953c8ce94d8b0f, - 0xe009f8fe3095753e, - 0x655b2c7992284d0b, - 0x984a37d54347dfc4, - 0xeab5aebf8808e2a5, - 0x9a3fd2c090cc56ba, - 0x9ca0e0fff84cd038, - 0x4c2595e4afade162, - 0xdf6708f4b3bc6302, - 0xbf620f237d54ebca, - 0x93429d101c118260, - 0x097d4fd08cddd4da, - 0x8c2f9b572e60ecef, - 0x708a7c7f18c4b41f, - 0x3a30dba4dfe9d3ff, - 0x4006f19a7fb0f07b, - 0x5f6bf7dd4dc19ef4, - 0x1f6d064732716e8f, - 0xf9fbcc866a649d33, - 0x308c8de567744464, - 0x8971b0f972a0292c, - 0xd61a47243f61b7d8, - 0xefeb8511d4c82766, - 0x961cb6be40d147a3, - 0xaab35f25f7b812de, - 0x76154e407044329d, - 0x513d76b64e570693, - 0xf3479ac7d2f90aa8, - 0x9b8b2e4477079c85, - 0x297eb99d3d85ac69, - }, - { - 0x3ef29d249b2c0a19, - 0xe9e16322b6f8622f, - 0x5536994047757f7a, - 0x9f4d56d5a47b0b33, - 0x822567466aa1174c, - 0xb8f5057deb082fb2, - 0xcc48c10bf4475f53, - 0x373088d4275dec3a, - 0x968f4325180aed10, - 0x173d232cf7016151, - 0xae4ed09f946fcc13, - 0xfd4b4741c4539873, - 0x1b5b3f0dd9933765, - 0x2ffcb0967b644052, - 0xe02376d20a89840c, - 0xa3ae3a70329b18d7, - 0x419cbd2335de8526, - 0xfafebf115b7c3199, - 0x0397074f85aa9b0d, - 0xc58ad4fb4836b970, - 0xbec60be3fc4104a8, - 0x1eff36dc4b708772, - 0x131fdc33ed8453b6, - 0x0844e33e341764d3, - 0x0ff11b6eab38cd39, - 0x64351f0a7761b85a, - 0x3b5694f509cfba0e, - 0x30857084b87245d0, - 0x47afb3bd2297ae3c, - 0xf2ba5c2f6f6b554a, - 0x74bdc4761f4f70e1, - 0xcfdfc64471edc45e, - 0xe610784c1dc0af16, - 0x7aca29d63c113f28, - 0x2ded411776a859af, - 0xac5f211e99a3d5ee, - 0xd484f949a87ef33b, - 0x3ce36ca596e013e4, - 0xd120f0983a9d432c, - 0x6bc40464dc597563, - 0x69d5f5e5d1956c9e, - 0x9ae95f043698bb24, - 0xc9ecc8da66a4ef44, - 0xd69508c8a5b2eac6, - 0xc40c2235c0503b80, - 0x38c193ba8c652103, - 0x1ceec75d46bc9e8f, - 0xd331011937515ad1, - 0xd8e2e56886eca50f, - 0xb137108d5779c991, - 0x709f3b6905ca4206, - 0x4feb50831680caef, - 0xec456af3241bd238, - 0x58d673afe181abbe, - 0x242f54e7cad9bf8c, - 0x0211f1810dcc19fd, - 0x90bc4dbb0f43c60a, - 0x9518446a9da0761d, - 0xa1bfcbf13f57012a, - 0x2bde4f8961e172b5, - 0x27b853a84f732481, - 0xb0b1e643df1f4b61, - 0x18cc38425c39ac68, - 0xd2b7f7d7bf37d821, - 0x3103864a3014c720, - 0x14aa246372abfa5c, - 0x6e600db54ebac574, - 0x394765740403a3f3, - 0x09c215f0bc71e623, - 0x2a58b947e987f045, - 0x7b4cdf18b477bdd8, - 0x9709b5eb906c6fe0, - 0x73083c268060d90b, - 0xfedc400e41f9037e, - 0x284948c6e44be9b8, - 0x728ecae808065bfb, - 0x06330e9e17492b1a, - 0x5950856169e7294e, - 0xbae4f4fce6c4364f, - 0xca7bcf95e30e7449, - 0x7d7fd186a33e96c2, - 0x52836110d85ad690, - 0x4dfaa1021b4cd312, - 0x913abb75872544fa, - 0xdd46ecb9140f1518, - 0x3d659a6b1e869114, - 0xc23f2cabd719109a, - 0xd713fe062dd46836, - 0xd0a60656b2fbc1dc, - 0x221c5a79dd909496, - 0xefd26dbca1b14935, - 0x0e77eda0235e4fc9, - 0xcbfd395b6b68f6b9, - 0x0de0eaefa6f4d4c4, - 0x0422ff1f1a8532e7, - 0xf969b85eded6aa94, - 0x7f6e2007aef28f3f, - 0x3ad0623b81a938fe, - 0x6624ee8b7aada1a7, - 0xb682e8ddc856607b, - 0xa78cc56f281e2a30, - 0xc79b257a45faa08d, - 0x5b4174e0642b30b3, - 0x5f638bff7eae0254, - 0x4bc9af9c0c05f808, - 0xce59308af98b46ae, - 0x8fc58da9cc55c388, - 0x803496c7676d0eb1, - 0xf33caae1e70dd7ba, - 0xbb6202326ea2b4bf, - 0xd5020f87201871cb, - 0x9d5ca754a9b712ce, - 0x841669d87de83c56, - 0x8a6184785eb6739f, - 0x420bba6cb0741e2b, - 0xf12d5b60eac1ce47, - 0x76ac35f71283691c, - 0x2c6bb7d9fecedb5f, - 0xfccdb18f4c351a83, - 0x1f79c012c3160582, - 0xf0abadae62a74cb7, - 0xe1a5801c82ef06fc, - 0x67a21845f2cb2357, - 0x5114665f5df04d9d, - 0xbf40fd2d74278658, - 0xa0393d3fb73183da, - 0x05a409d192e3b017, - 0xa9fb28cf0b4065f9, - 0x25a9a22942bf3d7c, - 0xdb75e22703463e02, - 0xb326e10c5ab5d06c, - 0xe7968e8295a62de6, - 0xb973f3b3636ead42, - 0xdf571d3819c30ce5, - 0xee549b7229d7cbc5, - 0x12992afd65e2d146, - 0xf8ef4e9056b02864, - 0xb7041e134030e28b, - 0xc02edd2adad50967, - 0x932b4af48ae95d07, - 0x6fe6fb7bc6dc4784, - 0x239aacb755f61666, - 0x401a4bedbdb807d6, - 0x485ea8d389af6305, - 0xa41bc220adb4b13d, - 0x753b32b89729f211, - 0x997e584bb3322029, - 0x1d683193ceda1c7f, - 0xff5ab6c0c99f818e, - 0x16bbd5e27f67e3a1, - 0xa59d34ee25d233cd, - 0x98f8ae853b54a2d9, - 0x6df70afacb105e79, - 0x795d2e99b9bba425, - 0x8e437b6744334178, - 0x0186f6ce886682f0, - 0xebf092a3bb347bd2, - 0xbcd7fa62f18d1d55, - 0xadd9d7d011c5571e, - 0x0bd3e471b1bdffde, - 0xaa6c2f808eeafef4, - 0x5ee57d31f6c880a4, - 0xf50fa47ff044fca0, - 0x1addc9c351f5b595, - 0xea76646d3352f922, - 0x0000000000000000, - 0x85909f16f58ebea6, - 0x46294573aaf12ccc, - 0x0a5512bf39db7d2e, - 0x78dbd85731dd26d5, - 0x29cfbe086c2d6b48, - 0x218b5d36583a0f9b, - 0x152cd2adfacd78ac, - 0x83a39188e2c795bc, - 0xc3b9da655f7f926a, - 0x9ecba01b2c1d89c3, - 0x07b5f8509f2fa9ea, - 0x7ee8d6c926940dcf, - 0x36b67e1aaf3b6eca, - 0x86079859702425ab, - 0xfb7849dfd31ab369, - 0x4c7c57cc932a51e2, - 0xd96413a60e8a27ff, - 0x263ea566c715a671, - 0x6c71fc344376dc89, - 0x4a4f595284637af8, - 0xdaf314e98b20bcf2, - 0x572768c14ab96687, - 0x1088db7c682ec8bb, - 0x887075f9537a6a62, - 0x2e7a4658f302c2a2, - 0x619116dbe582084d, - 0xa87dde018326e709, - 0xdcc01a779c6997e8, - 0xedc39c3dac7d50c8, - 0xa60a33a1a078a8c0, - 0xc1a82be452b38b97, - 0x3f746bea134a88e9, - 0xa228ccbebafd9a27, - 0xabead94e068c7c04, - 0xf48952b178227e50, - 0x5cf48cb0fb049959, - 0x6017e0156de48abd, - 0x4438b4f2a73d3531, - 0x8c528ae649ff5885, - 0xb515ef924dfcfb76, - 0x0c661c212e925634, - 0xb493195cc59a7986, - 0x9cda519a21d1903e, - 0x32948105b5be5c2d, - 0x194ace8cd45f2e98, - 0x438d4ca238129cdb, - 0x9b6fa9cabefe39d4, - 0x81b26009ef0b8c41, - 0xded1ebf691a58e15, - 0x4e6da64d9ee6481f, - 0x54b06f8ecf13fd8a, - 0x49d85e1d01c9e1f5, - 0xafc826511c094ee3, - 0xf698a33075ee67ad, - 0x5ac7822eec4db243, - 0x8dd47c28c199da75, - 0x89f68337db1ce892, - 0xcdce37c57c21dda3, - 0x530597de503c5460, - 0x6a42f2aa543ff793, - 0x5d727a7e73621ba9, - 0xe232875307459df1, - 0x56a19e0fc2dfe477, - 0xc61dd3b4cd9c227d, - 0xe5877f03986a341b, - 0x949eb2a415c6f4ed, - 0x6206119460289340, - 0x6380e75ae84e11b0, - 0x8be772b6d6d0f16f, - 0x50929091d596cf6d, - 0xe86795ec3e9ee0df, - 0x7cf927482b581432, - 0xc86a3e14eec26db4, - 0x7119cda78dacc0f6, - 0xe40189cd100cb6eb, - 0x92adbc3a028fdff7, - 0xb2a017c2d2d3529c, - 0x200dabf8d05c8d6b, - 0x34a78f9ba2f77737, - 0xe3b4719d8f231f01, - 0x45be423c2f5bb7c1, - 0xf71e55fefd88e55d, - 0x6853032b59f3ee6e, - 0x65b3e9c4ff073aaa, - 0x772ac3399ae5ebec, - 0x87816e97f842a75b, - 0x110e2db2e0484a4b, - 0x331277cb3dd8dedd, - 0xbd510cac79eb9fa5, - 0x352179552a91f5c7, - }, - { - 0x05ba7bc82c9b3220, - 0x31a54665f8b65e4f, - 0xb1b651f77547f4d4, - 0x8bfa0d857ba46682, - 0x85a96c5aa16a98bb, - 0x990faef908eb79c9, - 0xa15e37a247f4a62d, - 0x76857dcd5d27741e, - 0xf8c50b800a1820bc, - 0xbe65dcb201f7a2b4, - 0x666d1b986f9426e7, - 0x4cc921bf53c4e648, - 0x95410a0f93d9ca42, - 0x20cdccaa647ba4ef, - 0x429a4060890a1871, - 0x0c4ea4f69b32b38b, - 0xccda362dde354cd3, - 0x96dc23bc7c5b2fa9, - 0xc309bb68aa851ab3, - 0xd26131a73648e013, - 0x021dc52941fc4db2, - 0xcd5adab7704be48a, - 0xa77965d984ed71e6, - 0x32386fd61734bba4, - 0xe82d6dd538ab7245, - 0x5c2147ea6177b4b1, - 0x5da1ab70cf091ce8, - 0xac907fce72b8bdff, - 0x57c85dfd972278a8, - 0xa4e44c6a6b6f940d, - 0x3851995b4f1fdfe4, - 0x62578ccaed71bc9e, - 0xd9882bb0c01d2c0a, - 0x917b9d5d113c503b, - 0xa2c31e11a87643c6, - 0xe463c923a399c1ce, - 0xf71686c57ea876dc, - 0x87b4a973e096d509, - 0xaf0d567d9d3a5814, - 0xb40c2a3f59dcc6f4, - 0x3602f88495d121dd, - 0xd3e1dd3d9836484a, - 0xf945e71aa46688e5, - 0x7518547eb2a591f5, - 0x9366587450c01d89, - 0x9ea81018658c065b, - 0x4f54080cbc4603a3, - 0x2d0384c65137bf3d, - 0xdc325078ec861e2a, - 0xea30a8fc79573ff7, - 0x214d2030ca050cb6, - 0x65f0322b8016c30c, - 0x69be96dd1b247087, - 0xdb95ee9981e161b8, - 0xd1fc1814d9ca05f8, - 0x820ed2bbcc0de729, - 0x63d76050430f14c7, - 0x3bccb0e8a09d3a0f, - 0x8e40764d573f54a2, - 0x39d175c1e16177bd, - 0x12f5a37c734f1f4b, - 0xab37c12f1fdfc26d, - 0x5648b167395cd0f1, - 0x6c04ed1537bf42a7, - 0xed97161d14304065, - 0x7d6c67daab72b807, - 0xec17fa87ba4ee83c, - 0xdfaf79cb0304fbc1, - 0x733f060571bc463e, - 0x78d61c1287e98a27, - 0xd07cf48e77b4ada1, - 0xb9c262536c90dd26, - 0xe2449b5860801605, - 0x8fc09ad7f941fcfb, - 0xfad8cea94be46d0e, - 0xa343f28b0608eb9f, - 0x9b126bd04917347b, - 0x9a92874ae7699c22, - 0x1b017c42c4e69ee0, - 0x3a4c5c720ee39256, - 0x4b6e9f5e3ea399da, - 0x6ba353f45ad83d35, - 0xe7fee0904c1b2425, - 0x22d009832587e95d, - 0x842980c00f1430e2, - 0xc6b3c0a0861e2893, - 0x087433a419d729f2, - 0x341f3dadd42d6c6f, - 0xee0a3faefbb2a58e, - 0x4aee73c490dd3183, - 0xaab72db5b1a16a34, - 0xa92a04065e238fdf, - 0x7b4b35a1686b6fcc, - 0x6a23bf6ef4a6956c, - 0x191cb96b851ad352, - 0x55d598d4d6de351a, - 0xc9604de5f2ae7ef3, - 0x1ca6c2a3a981e172, - 0xde2f9551ad7a5398, - 0x3025aaff56c8f616, - 0x15521d9d1e2860d9, - 0x506fe31cfa45073a, - 0x189c55f12b647b0b, - 0x0180ec9aae7ea859, - 0x7cec8b40050c105e, - 0x2350e5198bf94104, - 0xef8ad33455cc0dd7, - 0x07a7bee16d677f92, - 0xe5e325b90de76997, - 0x5a061591a26e637a, - 0xb611ef1618208b46, - 0x09f4df3eb7a981ab, - 0x1ebb078ae87dacc0, - 0xb791038cb65e231f, - 0x0fd38d4574b05660, - 0x67edf702c1ea8ebe, - 0xba5f4be0831238cd, - 0xe3c477c2cefebe5c, - 0x0dce486c354c1bd2, - 0x8c5db36416c31910, - 0x26ea9ed1a7627324, - 0x039d29b3ef82e5eb, - 0x9f28fc82cbf2ae02, - 0xa8aae89cf05d2786, - 0x431aacfa2774b028, - 0xcf471f9e31b7a938, - 0x581bd0b8e3922ec8, - 0xbc78199b400bef06, - 0x90fb71c7bf42f862, - 0x1f3beb1046030499, - 0x683e7a47b55ad8de, - 0x988f4263a695d190, - 0xd808c72a6e638453, - 0x0627527bc319d7cb, - 0xebb04466d72997ae, - 0xe67e0c0ae2658c7c, - 0x14d2f107b056c880, - 0x7122c32c30400b8c, - 0x8a7ae11fd5dacedb, - 0xa0dedb38e98a0e74, - 0xad109354dcc615a6, - 0x0be91a17f655cc19, - 0x8ddd5ffeb8bdb149, - 0xbfe53028af890aed, - 0xd65ba6f5b4ad7a6a, - 0x7956f0882997227e, - 0x10e8665532b352f9, - 0x0e5361dfdacefe39, - 0xcec7f3049fc90161, - 0xff62b561677f5f2e, - 0x975ccf26d22587f0, - 0x51ef0f86543baf63, - 0x2f1e41ef10cbf28f, - 0x52722635bbb94a88, - 0xae8dbae73344f04d, - 0x410769d36688fd9a, - 0xb3ab94de34bbb966, - 0x801317928df1aa9b, - 0xa564a0f0c5113c54, - 0xf131d4bebdb1a117, - 0x7f71a2f3ea8ef5b5, - 0x40878549c8f655c3, - 0x7ef14e6944f05dec, - 0xd44663dcf55137d8, - 0xf2acfd0d523344fc, - 0x0000000000000000, - 0x5fbc6e598ef5515a, - 0x16cf342ef1aa8532, - 0xb036bd6ddb395c8d, - 0x13754fe6dd31b712, - 0xbbdfa77a2d6c9094, - 0x89e7c8ac3a582b30, - 0x3c6b0e09cdfa459d, - 0xc4ae0589c7e26521, - 0x49735a777f5fd468, - 0xcafd64561d2c9b18, - 0xda1502032f9fc9e1, - 0x8867243694268369, - 0x3782141e3baf8984, - 0x9cb5d53124704be9, - 0xd7db4a6f1ad3d233, - 0xa6f989432a93d9bf, - 0x9d3539ab8a0ee3b0, - 0x53f2caaf15c7e2d1, - 0x6e19283c76430f15, - 0x3debe2936384edc4, - 0x5e3c82c3208bf903, - 0x33b8834cb94a13fd, - 0x6470deb12e686b55, - 0x359fd1377a53c436, - 0x61caa57902f35975, - 0x043a975282e59a79, - 0xfd7f70482683129c, - 0xc52ee913699ccd78, - 0x28b9ff0e7dac8d1d, - 0x5455744e78a09d43, - 0xcb7d88ccb3523341, - 0x44bd121b4a13cfba, - 0x4d49cd25fdba4e11, - 0x3e76cb208c06082f, - 0x3ff627ba2278a076, - 0xc28957f204fbb2ea, - 0x453dfe81e46d67e3, - 0x94c1e6953da7621b, - 0x2c83685cff491764, - 0xf32c1197fc4deca5, - 0x2b24d6bd922e68f6, - 0xb22b78449ac5113f, - 0x48f3b6edd1217c31, - 0x2e9ead75beb55ad6, - 0x174fd8b45fd42d6b, - 0x4ed4e4961238abfa, - 0x92e6b4eefebeb5d0, - 0x46a0d7320bef8208, - 0x47203ba8a5912a51, - 0x24f75bf8e69e3e96, - 0xf0b1382413cf094e, - 0xfee259fbc901f777, - 0x276a724b091cdb7d, - 0xbdf8f501ee75475f, - 0x599b3c224dec8691, - 0x6d84018f99c1eafe, - 0x7498b8e41cdb39ac, - 0xe0595e71217c5bb7, - 0x2aa43a273c50c0af, - 0xf50b43ec3f543b6e, - 0x838e3e2162734f70, - 0xc09492db4507ff58, - 0x72bfea9fdfc2ee67, - 0x11688acf9ccdfaa0, - 0x1a8190d86a9836b9, - 0x7acbd93bc615c795, - 0xc7332c3a286080ca, - 0x863445e94ee87d50, - 0xf6966a5fd0d6de85, - 0xe9ad814f96d5da1c, - 0x70a22fb69e3ea3d5, - 0x0a69f68d582b6440, - 0xb8428ec9c2ee757f, - 0x604a49e3ac8df12c, - 0x5b86f90b0c10cb23, - 0xe1d9b2eb8f02f3ee, - 0x29391394d3d22544, - 0xc8e0a17f5cd0d6aa, - 0xb58cc6a5f7a26ead, - 0x8193fb08238f02c2, - 0xd5c68f465b2f9f81, - 0xfcff9cd288fdbac5, - 0x77059157f359dc47, - 0x1d262e3907ff492b, - 0xfb582233e59ac557, - 0xddb2bce242f8b673, - 0x2577b76248e096cf, - 0x6f99c4a6d83da74c, - 0xc1147e41eb795701, - 0xf48baf76912a9337, - }, - { - 0x45b268a93acde4cc, - 0xaf7f0be884549d08, - 0x048354b3c1468263, - 0x925435c2c80efed2, - 0xee4e37f27fdffba7, - 0x167a33920c60f14d, - 0xfb123b52ea03e584, - 0x4a0cab53fdbb9007, - 0x9deaf6380f788a19, - 0xcb48ec558f0cb32a, - 0xb59dc4b2d6fef7e0, - 0xdcdbca22f4f3ecb6, - 0x11df5813549a9c40, - 0xe33fdedf568aced3, - 0xa0c1c8124322e9c3, - 0x07a56b8158fa6d0d, - 0x77279579b1e1f3dd, - 0xd9b18b74422ac004, - 0xb8ec2d9fffabc294, - 0xf4acf8a82d75914f, - 0x7bbf69b1ef2b6878, - 0xc4f62faf487ac7e1, - 0x76ce809cc67e5d0c, - 0x6711d88f92e4c14c, - 0x627b99d9243dedfe, - 0x234aa5c3dfb68b51, - 0x909b1f15262dbf6d, - 0x4f66ea054b62bcb5, - 0x1ae2cf5a52aa6ae8, - 0xbea053fbd0ce0148, - 0xed6808c0e66314c9, - 0x43fe16cd15a82710, - 0xcd049231a06970f6, - 0xe7bc8a6c97cc4cb0, - 0x337ce835fcb3b9c0, - 0x65def2587cc780f3, - 0x52214ede4132bb50, - 0x95f15e4390f493df, - 0x870839625dd2e0f1, - 0x41313c1afb8b66af, - 0x91720af051b211bc, - 0x477d427ed4eea573, - 0x2e3b4ceef6e3be25, - 0x82627834eb0bcc43, - 0x9c03e3dd78e724c8, - 0x2877328ad9867df9, - 0x14b51945e243b0f2, - 0x574b0f88f7eb97e2, - 0x88b6fa989aa4943a, - 0x19c4f068cb168586, - 0x50ee6409af11faef, - 0x7df317d5c04eaba4, - 0x7a567c5498b4c6a9, - 0xb6bbfb804f42188e, - 0x3cc22bcf3bc5cd0b, - 0xd04336eaaa397713, - 0xf02fac1bec33132c, - 0x2506dba7f0d3488d, - 0xd7e65d6bf2c31a1e, - 0x5eb9b2161ff820f5, - 0x842e0650c46e0f9f, - 0x716beb1d9e843001, - 0xa933758cab315ed4, - 0x3fe414fda2792265, - 0x27c9f1701ef00932, - 0x73a4c1ca70a771be, - 0x94184ba6e76b3d0e, - 0x40d829ff8c14c87e, - 0x0fbec3fac77674cb, - 0x3616a9634a6a9572, - 0x8f139119c25ef937, - 0xf545ed4d5aea3f9e, - 0xe802499650ba387b, - 0x6437e7bd0b582e22, - 0xe6559f89e053e261, - 0x80ad52e305288dfc, - 0x6dc55a23e34b9935, - 0xde14e0f51ad0ad09, - 0xc6390578a659865e, - 0x96d7617109487cb1, - 0xe2d6cb3a21156002, - 0x01e915e5779faed1, - 0xadb0213f6a77dcb7, - 0x9880b76eb9a1a6ab, - 0x5d9f8d248644cf9b, - 0xfd5e4536c5662658, - 0xf1c6b9fe9bacbdfd, - 0xeacd6341be9979c4, - 0xefa7221708405576, - 0x510771ecd88e543e, - 0xc2ba51cb671f043d, - 0x0ad482ac71af5879, - 0xfe787a045cdac936, - 0xb238af338e049aed, - 0xbd866cc94972ee26, - 0x615da6ebbd810290, - 0x3295fdd08b2c1711, - 0xf834046073bf0aea, - 0xf3099329758ffc42, - 0x1caeb13e7dcfa934, - 0xba2307481188832b, - 0x24efce42874ce65c, - 0x0e57d61fb0e9da1a, - 0xb3d1bad6f99b343c, - 0xc0757b1c893c4582, - 0x2b510db8403a9297, - 0x5c7698c1f1db614a, - 0x3e0d0118d5e68cb4, - 0xd60f488e855cb4cf, - 0xae961e0df3cb33d9, - 0x3a8e55ab14a00ed7, - 0x42170328623789c1, - 0x838b6dd19c946292, - 0x895fef7ded3b3aeb, - 0xcfcbb8e64e4a3149, - 0x064c7e642f65c3dc, - 0x3d2b3e2a4c5a63da, - 0x5bd3f340a9210c47, - 0xb474d157a1615931, - 0xac5934da1de87266, - 0x6ee365117af7765b, - 0xc86ed36716b05c44, - 0x9ba6885c201d49c5, - 0xb905387a88346c45, - 0x131072c4bab9ddff, - 0xbf49461ea751af99, - 0xd52977bc1ce05ba1, - 0xb0f785e46027db52, - 0x546d30ba6e57788c, - 0x305ad707650f56ae, - 0xc987c682612ff295, - 0xa5ab8944f5fbc571, - 0x7ed528e759f244ca, - 0x8ddcbbce2c7db888, - 0xaa154abe328db1ba, - 0x1e619be993ece88b, - 0x09f2bd9ee813b717, - 0x7401aa4b285d1cb3, - 0x21858f143195caee, - 0x48c381841398d1b8, - 0xfcb750d3b2f98889, - 0x39a86a998d1ce1b9, - 0x1f888e0ce473465a, - 0x7899568376978716, - 0x02cf2ad7ee2341bf, - 0x85c713b5b3f1a14e, - 0xff916fe12b4567e7, - 0x7c1a0230b7d10575, - 0x0c98fcc85eca9ba5, - 0xa3e7f720da9e06ad, - 0x6a6031a2bbb1f438, - 0x973e74947ed7d260, - 0x2cf4663918c0ff9a, - 0x5f50a7f368678e24, - 0x34d983b4a449d4cd, - 0x68af1b755592b587, - 0x7f3c3d022e6dea1b, - 0xabfc5f5b45121f6b, - 0x0d71e92d29553574, - 0xdffdf5106d4f03d8, - 0x081ba87b9f8c19c6, - 0xdb7ea1a3ac0981bb, - 0xbbca12ad66172dfa, - 0x79704366010829c7, - 0x179326777bff5f9c, - 0x0000000000000000, - 0xeb2476a4c906d715, - 0x724dd42f0738df6f, - 0xb752ee6538ddb65f, - 0x37ffbc863df53ba3, - 0x8efa84fcb5c157e6, - 0xe9eb5c73272596aa, - 0x1b0bdabf2535c439, - 0x86e12c872a4d4e20, - 0x9969a28bce3e087a, - 0xfafb2eb79d9c4b55, - 0x056a4156b6d92cb2, - 0x5a3ae6a5debea296, - 0x22a3b026a8292580, - 0x53c85b3b36ad1581, - 0xb11e900117b87583, - 0xc51f3a4a3fe56930, - 0xe019e1edcf3621bd, - 0xec811d2591fcba18, - 0x445b7d4c4d524a1d, - 0xa8da6069dcaef005, - 0x58f5cc72309de329, - 0xd4c062596b7ff570, - 0xce22ad0339d59f98, - 0x591cd99747024df8, - 0x8b90c5aa03187b54, - 0xf663d27fc356d0f0, - 0xd8589e9135b56ed5, - 0x35309651d3d67a1c, - 0x12f96721cd26732e, - 0xd28c1c3d441a36ac, - 0x492a946164077f69, - 0x2d1d73dc6f5f514b, - 0x6f0a70f40d68d88a, - 0x60b4b30eca1eac41, - 0xd36509d83385987d, - 0x0b3d97490630f6a8, - 0x9eccc90a96c46577, - 0xa20ee2c5ad01a87c, - 0xe49ab55e0e70a3de, - 0xa4429ca182646ba0, - 0xda97b446db962f6a, - 0xcced87d4d7f6de27, - 0x2ab8185d37a53c46, - 0x9f25dcefe15bcba6, - 0xc19c6ef9fea3eb53, - 0xa764a3931bd884ce, - 0x2fd2590b817c10f4, - 0x56a21a6d80743933, - 0xe573a0bb79ef0d0f, - 0x155c0ca095dc1e23, - 0x6c2c4fc694d437e4, - 0x10364df623053291, - 0xdd32dfc7836c4267, - 0x03263f3299bcef6e, - 0x66f8cd6ae57b6f9d, - 0x8c35ae2b5be21659, - 0x31b3c2e21290f87f, - 0x93bd2027bf915003, - 0x69460e90220d1b56, - 0x299e276fae19d328, - 0x63928c3c53a2432f, - 0x7082fef8e91b9ed0, - 0xbc6f792c3eed40f7, - 0x4c40d537d2de53db, - 0x75e8bfae5fc2b262, - 0x4da9c0d2a541fd0a, - 0x4e8fffe03cfd1264, - 0x2620e495696fa7e3, - 0xe1f0f408b8a98f6c, - 0xd1aa230fdda6d9c2, - 0xc7d0109dd1c6288f, - 0x8a79d04f7487d585, - 0x4694579ba3710ba2, - 0x38417f7cfa834f68, - 0x1d47a4db0a5007e5, - 0x206c9af1460a643f, - 0xa128ddf734bd4712, - 0x8144470672b7232d, - 0xf2e086cc02105293, - 0x182de58dbc892b57, - 0xcaa1f9b0f8931dfb, - 0x6b892447cc2e5ae9, - 0xf9dd11850420a43b, - 0x4be5beb68a243ed6, - 0x5584255f19c8d65d, - 0x3b67404e633fa006, - 0xa68db6766c472a1f, - 0xf78ac79ab4c97e21, - 0xc353442e1080aaec, - 0x9a4f9db95782e714, - }, - { - 0xc811a8058c3f55de, - 0x65f5b43196b50619, - 0xf74f96b1d6706e43, - 0x859d1e8bcb43d336, - 0x5aab8a85ccfa3d84, - 0xf9c7bf99c295fcfd, - 0xa21fd5a1de4b630f, - 0xcdb3ef763b8b456d, - 0x803f59f87cf7c385, - 0xb27c73be5f31913c, - 0x98e3ac6633b04821, - 0xbf61674c26b8f818, - 0x0ffbc995c4c130c8, - 0xaaa0862010761a98, - 0x6057f342210116aa, - 0xf63c760c0654cc35, - 0x2ddb45cc667d9042, - 0xbcf45a964bd40382, - 0x68e8a0c3ef3c6f3d, - 0xa7bd92d269ff73bc, - 0x290ae20201ed2287, - 0xb7de34cde885818f, - 0xd901eea7dd61059b, - 0xd6fa273219a03553, - 0xd56f1ae874cccec9, - 0xea31245c2e83f554, - 0x7034555da07be499, - 0xce26d2ac56e7bef7, - 0xfd161857a5054e38, - 0x6a0e7da4527436d1, - 0x5bd86a381cde9ff2, - 0xcaf7756231770c32, - 0xb09aaed9e279c8d0, - 0x5def1091c60674db, - 0x111046a2515e5045, - 0x23536ce4729802fc, - 0xc50cbcf7f5b63cfa, - 0x73a16887cd171f03, - 0x7d2941afd9f28dbd, - 0x3f5e3eb45a4f3b9d, - 0x84eefe361b677140, - 0x3db8e3d3e7076271, - 0x1a3a28f9f20fd248, - 0x7ebc7c75b49e7627, - 0x74e5f293c7eb565c, - 0x18dcf59e4f478ba4, - 0x0c6ef44fa9adcb52, - 0xc699812d98dac760, - 0x788b06dc6e469d0e, - 0xfc65f8ea7521ec4e, - 0x30a5f7219e8e0b55, - 0x2bec3f65bca57b6b, - 0xddd04969baf1b75e, - 0x99904cdbe394ea57, - 0x14b201d1e6ea40f6, - 0xbbb0c08241284add, - 0x50f20463bf8f1dff, - 0xe8d7f93b93cbacb8, - 0x4d8cb68e477c86e8, - 0xc1dd1b3992268e3f, - 0x7c5aa11209d62fcb, - 0x2f3d98abdb35c9ae, - 0x671369562bfd5ff5, - 0x15c1e16c36cee280, - 0x1d7eb2edf8f39b17, - 0xda94d37db00dfe01, - 0x877bc3ec760b8ada, - 0xcb8495dfe153ae44, - 0x05a24773b7b410b3, - 0x12857b783c32abdf, - 0x8eb770d06812513b, - 0x536739b9d2e3e665, - 0x584d57e271b26468, - 0xd789c78fc9849725, - 0xa935bbfa7d1ae102, - 0x8b1537a3dfa64188, - 0xd0cd5d9bc378de7a, - 0x4ac82c9a4d80cfb7, - 0x42777f1b83bdb620, - 0x72d2883a1d33bd75, - 0x5e7a2d4bab6a8f41, - 0xf4daab6bbb1c95d9, - 0x905cffe7fd8d31b6, - 0x83aa6422119b381f, - 0xc0aefb8442022c49, - 0xa0f908c663033ae3, - 0xa428af0804938826, - 0xade41c341a8a53c7, - 0xae7121ee77e6a85d, - 0xc47f5c4a25929e8c, - 0xb538e9aa55cdd863, - 0x06377aa9dad8eb29, - 0xa18ae87bb3279895, - 0x6edfda6a35e48414, - 0x6b7d9d19825094a7, - 0xd41cfa55a4e86cbf, - 0xe5caedc9ea42c59c, - 0xa36c351c0e6fc179, - 0x5181e4de6fabbf89, - 0xfff0c530184d17d4, - 0x9d41eb1584045892, - 0x1c0d525028d73961, - 0xf178ec180ca8856a, - 0x9a0571018ef811cd, - 0x4091a27c3ef5efcc, - 0x19af15239f6329d2, - 0x347450eff91eb990, - 0xe11b4a078dd27759, - 0xb9561de5fc601331, - 0x912f1f5a2da993c0, - 0x1654dcb65ba2191a, - 0x3e2dde098a6b99eb, - 0x8a66d71e0f82e3fe, - 0x8c51adb7d55a08d7, - 0x4533e50f8941ff7f, - 0x02e6dd67bd4859ec, - 0xe068aaba5df6d52f, - 0xc24826e3ff4a75a5, - 0x6c39070d88acddf8, - 0x6486548c4691a46f, - 0xd1bebd26135c7c0c, - 0xb30f93038f15334a, - 0x82d9849fc1bf9a69, - 0x9c320ba85420fae4, - 0xfa528243aff90767, - 0x9ed4d6cfe968a308, - 0xb825fd582c44b147, - 0x9b7691bc5edcb3bb, - 0xc7ea619048fe6516, - 0x1063a61f817af233, - 0x47d538683409a693, - 0x63c2ce984c6ded30, - 0x2a9fdfd86c81d91d, - 0x7b1e3b06032a6694, - 0x666089ebfbd9fd83, - 0x0a598ee67375207b, - 0x07449a140afc495f, - 0x2ca8a571b6593234, - 0x1f986f8a45bbc2fb, - 0x381aa4a050b372c2, - 0x5423a3add81faf3a, - 0x17273c0b8b86bb6c, - 0xfe83258dc869b5a2, - 0x287902bfd1c980f1, - 0xf5a94bd66b3837af, - 0x88800a79b2caba12, - 0x55504310083b0d4c, - 0xdf36940e07b9eeb2, - 0x04d1a7ce6790b2c5, - 0x612413fff125b4dc, - 0x26f12b97c52c124f, - 0x86082351a62f28ac, - 0xef93632f9937e5e7, - 0x3507b052293a1be6, - 0xe72c30ae570a9c70, - 0xd3586041ae1425e0, - 0xde4574b3d79d4cc4, - 0x92ba228040c5685a, - 0xf00b0ca5dc8c271c, - 0xbe1287f1f69c5a6e, - 0xf39e317fb1e0dc86, - 0x495d114020ec342d, - 0x699b407e3f18cd4b, - 0xdca3a9d46ad51528, - 0x0d1d14f279896924, - 0x0000000000000000, - 0x593eb75fa196c61e, - 0x2e4e78160b116bd8, - 0x6d4ae7b058887f8e, - 0xe65fd013872e3e06, - 0x7a6ddbbbd30ec4e2, - 0xac97fc89caaef1b1, - 0x09ccb33c1e19dbe1, - 0x89f3eac462ee1864, - 0x7770cf49aa87adc6, - 0x56c57eca6557f6d6, - 0x03953dda6d6cfb9a, - 0x36928d884456e07c, - 0x1eeb8f37959f608d, - 0x31d6179c4eaaa923, - 0x6fac3ad7e5c02662, - 0x43049fa653991456, - 0xabd3669dc052b8ee, - 0xaf02c153a7c20a2b, - 0x3ccb036e3723c007, - 0x93c9c23d90e1ca2c, - 0xc33bc65e2f6ed7d3, - 0x4cff56339758249e, - 0xb1e94e64325d6aa6, - 0x37e16d359472420a, - 0x79f8e661be623f78, - 0x5214d90402c74413, - 0x482ef1fdf0c8965b, - 0x13f69bc5ec1609a9, - 0x0e88292814e592be, - 0x4e198b542a107d72, - 0xccc00fcbebafe71b, - 0x1b49c844222b703e, - 0x2564164da840e9d5, - 0x20c6513e1ff4f966, - 0xbac3203f910ce8ab, - 0xf2edd1c261c47ef0, - 0x814cb945acd361f3, - 0x95feb8944a392105, - 0x5c9cf02c1622d6ad, - 0x971865f3f77178e9, - 0xbd87ba2b9bf0a1f4, - 0x444005b259655d09, - 0xed75be48247fbc0b, - 0x7596122e17cff42a, - 0xb44b091785e97a15, - 0x966b854e2755da9f, - 0xeee0839249134791, - 0x32432a4623c652b9, - 0xa8465b47ad3e4374, - 0xf8b45f2412b15e8b, - 0x2417f6f078644ba3, - 0xfb2162fe7fdda511, - 0x4bbbcc279da46dc1, - 0x0173e0bdd024a276, - 0x22208c59a2bca08a, - 0x8fc4906db836f34d, - 0xe4b90d743a6667ea, - 0x7147b5e0705f46ef, - 0x2782cb2a1508b039, - 0xec065ef5f45b1e7d, - 0x21b5b183cfd05b10, - 0xdbe733c060295c77, - 0x9fa73672394c017e, - 0xcf55321186c31c81, - 0xd8720e1a0d45a7ed, - 0x3b8f997a3ddf8958, - 0x3afc79c7edfb2b2e, - 0xe9a4198643ef0ece, - 0x5f09cdf67b4e2d37, - 0x4f6a6be9fa34df04, - 0xb6add47038a123f9, - 0x8d224d0a057eaaa1, - 0xc96248b85c1bf7a8, - 0xe3fd9760309a2eb5, - 0x0b2a6e5ba351820d, - 0xeb42c4e1fea75722, - 0x948d58299a1d8373, - 0x7fcf9cc864bad451, - 0xa55b4fb5d4b72a50, - 0x08bf5381ce3d7997, - 0x46a6d8d5e42d04e5, - 0xd22b80fc7e308796, - 0x57b69e77b57354a0, - 0x3969441d8097d0b4, - 0x3330cafbf3e2f0cf, - 0xe28e77dde0be8cc3, - 0x62b12e259c494f46, - 0xa6ce726fb9dbd1ca, - 0x41e242c1eed14dba, - 0x76032ff47aa30fb0, - }, - { - 0xe6f87e5c5b711fd0, - 0x258377800924fa16, - 0xc849e07e852ea4a8, - 0x5b4686a18f06c16a, - 0x0b32e9a2d77b416e, - 0xabda37a467815c66, - 0xf61796a81a686676, - 0xf5dc0b706391954b, - 0x4862f38db7e64bf1, - 0xff5c629a68bd85c5, - 0xcb827da6fcd75795, - 0x66d36daf69b9f089, - 0x356c9f74483d83b0, - 0x7cbcecb1238c99a1, - 0x36a702ac31c4708d, - 0x9eb6a8d02fbcdfd6, - 0x8b19fa51e5b3ae37, - 0x9ccfb5408a127d0b, - 0xbc0c78b508208f5a, - 0xe533e3842288eced, - 0xcec2c7d377c15fd2, - 0xec7817b6505d0f5e, - 0xb94cc2c08336871d, - 0x8c205db4cb0b04ad, - 0x763c855b28a0892f, - 0x588d1b79f6ff3257, - 0x3fecf69e4311933e, - 0x0fc0d39f803a18c9, - 0xee010a26f5f3ad83, - 0x10efe8f4411979a6, - 0x5dcda10c7de93a10, - 0x4a1bee1d1248e92c, - 0x53bff2db21847339, - 0xb4f50ccfa6a23d09, - 0x5fb4bc9cd84798cd, - 0xe88a2d8b071c56f9, - 0x7f7771695a756a9c, - 0xc5f02e71a0ba1ebc, - 0xa663f9ab4215e672, - 0x2eb19e22de5fbb78, - 0x0db9ce0f2594ba14, - 0x82520e6397664d84, - 0x2f031e6a0208ea98, - 0x5c7f2144a1be6bf0, - 0x7a37cb1cd16362db, - 0x83e08e2b4b311c64, - 0xcf70479bab960e32, - 0x856ba986b9dee71e, - 0xb5478c877af56ce9, - 0xb8fe42885f61d6fd, - 0x1bdd0156966238c8, - 0x622157923ef8a92e, - 0xfc97ff42114476f8, - 0x9d7d350856452ceb, - 0x4c90c9b0e0a71256, - 0x2308502dfbcb016c, - 0x2d7a03faa7a64845, - 0xf46e8b38bfc6c4ab, - 0xbdbef8fdd477deba, - 0x3aac4cebc8079b79, - 0xf09cb105e8879d0c, - 0x27fa6a10ac8a58cb, - 0x8960e7c1401d0cea, - 0x1a6f811e4a356928, - 0x90c4fb0773d196ff, - 0x43501a2f609d0a9f, - 0xf7a516e0c63f3796, - 0x1ce4a6b3b8da9252, - 0x1324752c38e08a9b, - 0xa5a864733bec154f, - 0x2bf124575549b33f, - 0xd766db15440dc5c7, - 0xa7d179e39e42b792, - 0xdadf151a61997fd3, - 0x86a0345ec0271423, - 0x38d5517b6da939a4, - 0x6518f077104003b4, - 0x02791d90a5aea2dd, - 0x88d267899c4a5d0a, - 0x930f66df0a2865c2, - 0x4ee9d4204509b08b, - 0x325538916685292a, - 0x412907bfc533a842, - 0xb27e2b62544dc673, - 0x6c5304456295e007, - 0x5af406e95351908a, - 0x1f2f3b6bc123616f, - 0xc37b09dc5255e5c6, - 0x3967d133b1fe6844, - 0x298839c7f0e711e2, - 0x409b87f71964f9a2, - 0xe938adc3db4b0719, - 0x0c0b4e47f9c3ebf4, - 0x5534d576d36b8843, - 0x4610a05aeb8b02d8, - 0x20c3cdf58232f251, - 0x6de1840dbec2b1e7, - 0xa0e8de06b0fa1d08, - 0x7b854b540d34333b, - 0x42e29a67bcca5b7f, - 0xd8a6088ac437dd0e, - 0xc63bb3a9d943ed81, - 0x21714dbd5e65a3b1, - 0x6761ede7b5eea169, - 0x2431f7c8d573abf6, - 0xd51fc685e1a3671a, - 0x5e063cd40410c92d, - 0x283ab98f2cb04002, - 0x8febc06cb2f2f790, - 0x17d64f116fa1d33c, - 0xe07359f1a99ee4aa, - 0x784ed68c74cdc006, - 0x6e2a19d5c73b42da, - 0x8712b4161c7045c3, - 0x371582e4ed93216d, - 0xace390414939f6fc, - 0x7ec5f12186223b7c, - 0xc0b094042bac16fb, - 0xf9d745379a527ebf, - 0x737c3f2ea3b68168, - 0x33e7b8d9bad278ca, - 0xa9a32a34c22ffebb, - 0xe48163ccfedfbd0d, - 0x8e5940246ea5a670, - 0x51c6ef4b842ad1e4, - 0x22bad065279c508c, - 0xd91488c218608cee, - 0x319ea5491f7cda17, - 0xd394e128134c9c60, - 0x094bf43272d5e3b3, - 0x9bf612a5a4aad791, - 0xccbbda43d26ffd0f, - 0x34de1f3c946ad250, - 0x4f5b5468995ee16b, - 0xdf9faf6fea8f7794, - 0x2648ea5870dd092b, - 0xbfc7e56d71d97c67, - 0xdde6b2ff4f21d549, - 0x3c276b463ae86003, - 0x91767b4faf86c71f, - 0x68a13e7835d4b9a0, - 0xb68c115f030c9fd4, - 0x141dd2c916582001, - 0x983d8f7ddd5324ac, - 0x64aa703fcc175254, - 0xc2c989948e02b426, - 0x3e5e76d69f46c2de, - 0x50746f03587d8004, - 0x45db3d829272f1e5, - 0x60584a029b560bf3, - 0xfbae58a73ffcdc62, - 0xa15a5e4e6cad4ce8, - 0x4ba96e55ce1fb8cc, - 0x08f9747aae82b253, - 0xc102144cf7fb471b, - 0x9f042898f3eb8e36, - 0x068b27adf2effb7a, - 0xedca97fe8c0a5ebe, - 0x778e0513f4f7d8cf, - 0x302c2501c32b8bf7, - 0x8d92ddfc175c554d, - 0xf865c57f46052f5f, - 0xeaf3301ba2b2f424, - 0xaa68b7ecbbd60d86, - 0x998f0f350104754c, - 0x0000000000000000, - 0xf12e314d34d0ccec, - 0x710522be061823b5, - 0xaf280d9930c005c1, - 0x97fd5ce25d693c65, - 0x19a41cc633cc9a15, - 0x95844172f8c79eb8, - 0xdc5432b7937684a9, - 0x9436c13a2490cf58, - 0x802b13f332c8ef59, - 0xc442ae397ced4f5c, - 0xfa1cd8efe3ab8d82, - 0xf2e5ac954d293fd1, - 0x6ad823e8907a1b7d, - 0x4d2249f83cf043b6, - 0x03cb9dd879f9f33d, - 0xde2d2f2736d82674, - 0x2a43a41f891ee2df, - 0x6f98999d1b6c133a, - 0xd4ad46cd3df436fa, - 0xbb35df50269825c0, - 0x964fdcaa813e6d85, - 0xeb41b0537ee5a5c4, - 0x0540ba758b160847, - 0xa41ae43be7bb44af, - 0xe3b8c429d0671797, - 0x819993bbee9fbeb9, - 0xae9a8dd1ec975421, - 0xf3572cdd917e6e31, - 0x6393d7dae2aff8ce, - 0x47a2201237dc5338, - 0xa32343dec903ee35, - 0x79fc56c4a89a91e6, - 0x01b28048dc5751e0, - 0x1296f564e4b7db7b, - 0x75f7188351597a12, - 0xdb6d9552bdce2e33, - 0x1e9dbb231d74308f, - 0x520d7293fdd322d9, - 0xe20a44610c304677, - 0xfeeee2d2b4ead425, - 0xca30fdee20800675, - 0x61eaca4a47015a13, - 0xe74afe1487264e30, - 0x2cc883b27bf119a5, - 0x1664cf59b3f682dc, - 0xa811aa7c1e78af5b, - 0x1d5626fb648dc3b2, - 0xb73e9117df5bce34, - 0xd05f7cf06ab56f5d, - 0xfd257f0acd132718, - 0x574dc8e676c52a9e, - 0x0739a7e52eb8aa9a, - 0x5486553e0f3cd9a3, - 0x56ff48aeaa927b7e, - 0xbe756525ad8e2d87, - 0x7d0e6cf9ffdbc841, - 0x3b1ecca31450ca99, - 0x6913be30e983e840, - 0xad511009956ea71c, - 0xb1b5b6ba2db4354e, - 0x4469bdca4e25a005, - 0x15af5281ca0f71e1, - 0x744598cb8d0e2bf2, - 0x593f9b312aa863b7, - 0xefb38a6e29a4fc63, - 0x6b6aa3a04c2d4a9d, - 0x3d95eb0ee6bf31e3, - 0xa291c3961554bfd5, - 0x18169c8eef9bcbf5, - 0x115d68bc9d4e2846, - 0xba875f18facf7420, - 0xd1edfcb8b6e23ebd, - 0xb00736f2f1e364ae, - 0x84d929ce6589b6fe, - 0x70b7a2f6da4f7255, - 0x0e7253d75c6d4929, - 0x04f23a3d574159a7, - 0x0a8069ea0b2c108e, - 0x49d073c56bb11a11, - 0x8aab7a1939e4ffd7, - 0xcd095a0b0e38acef, - 0xc9fb60365979f548, - 0x92bde697d67f3422, - 0xc78933e10514bc61, - 0xe1c1d9b975c9b54a, - 0xd2266160cf1bcd80, - 0x9a4492ed78fd8671, - 0xb3ccab2a881a9793, - 0x72cebf667fe1d088, - 0xd6d45b5d985a9427, - }, -}; - -__constant u64a sbob_rc64[12][8] = -{ - { - 0xe9daca1eda5b08b1, - 0x1f7c65c0812fcbeb, - 0x16d0452e43766a2f, - 0xfcc485758db84e71, - 0x0169679291e07c4b, - 0x15d360a4082a42a2, - 0x234d74cc36747605, - 0x0745a6f2596580dd, - }, - { - 0x1a2f9da98ab5a36f, - 0xd7b5700f469de34f, - 0x982b230a72eafef3, - 0x3101b5160f5ed561, - 0x5899d6126b17b59a, - 0xcaa70adbc261b55c, - 0x56cdcbd71ba2dd55, - 0xb79bb121700479e6, - }, - { - 0xc72fce2bacdc74f5, - 0x35843d6a28fc390a, - 0x8b1f9c525f5ef106, - 0x7b7b29b11475eaf2, - 0xb19e3590e40fe2d3, - 0x09db6260373ac9c1, - 0x31db7a8643f4b6c2, - 0xb20aba0af5961e99, - }, - { - 0xd26615e8b3df1fef, - 0xdde4715da0e148f9, - 0x7d3c5c337e858e48, - 0x3f355e68ad1c729d, - 0x75d603ed822cd7a9, - 0xbe0352933313b7d8, - 0xf137e893a1ea5334, - 0x2ed1e384bcbe0c22, - }, - { - 0x994747adac6bea4b, - 0x6323a96c0c413f9a, - 0x4a1086161f1c157f, - 0xbdff0f80d7359e35, - 0xa3f53a254717cdbf, - 0x161a2723b700ffdf, - 0xf563eaa97ea2567a, - 0x57fe6c7cfd581760, - }, - { - 0xd9d33a1daeae4fae, - 0xc039307a3bc3a46f, - 0x6ca44251f9c4662d, - 0xc68ef09ab49a7f18, - 0xb4b79a1cb7a6facf, - 0xb6c6bec2661ff20a, - 0x354f903672c571bf, - 0x6e7d64467a4068fa, - }, - { - 0xecc5aaee160ec7f4, - 0x540924bffe86ac51, - 0xc987bfe6c7c69e39, - 0xc9937a19333e47d3, - 0x372c822dc5ab9209, - 0x04054a2883694706, - 0xf34a3ca24c451735, - 0x93d4143a4d568688, - }, - { - 0xa7c9934d425b1f9b, - 0x41416e0c02aae703, - 0x1ede369c71f8b74e, - 0x9ac4db4d3b44b489, - 0x90069b92cb2b89f4, - 0x2fc4a5d12b8dd169, - 0xd9a8515935c2ac36, - 0x1ee702bfd40d7fa4, - }, - { - 0x9b223116545a8f37, - 0xde5f16ecd89a4c94, - 0x244289251b3a7d3a, - 0x84090de0b755d93c, - 0xb1ceb2db0b440a80, - 0x549c07a69a8a2b7b, - 0x602a1fcb92dc380e, - 0xdb5a238351446172, - }, - { - 0x526f0580a6debeab, - 0xf3f3e4b248e52a38, - 0xdb788aff1ce74189, - 0x0361331b8ae1ff1f, - 0x4b3369af0267e79f, - 0xf452763b306c1e7a, - 0xc3b63b15d1fa9836, - 0xed9c4598fbc7b474, - }, - { - 0xfb89c8efd09ecd7b, - 0x94fe5a63cdc60230, - 0x6107abebbb6bfad8, - 0x7966841421800120, - 0xcab948eaef711d8a, - 0x986e477d1dcdbaef, - 0x5dd86fc04a59a2de, - 0x1b2df381cda4ca6b, - }, - { - 0xba3116f167e78e37, - 0x7ab14904b08013d2, - 0x771ddfbc323ca4cd, - 0x9b9f2130d41220f8, - 0x86cc91189def805d, - 0x5228e188aaa41de7, - 0x991bb2d9d517f4fa, - 0x20d71bf14a92bc48, - }, -}; - DECLSPEC void streebog_g (u64x *h, const u64x *m, __local u64 (*s_sbob_sl64)[256]) { u64x k[8]; diff --git a/OpenCL/m11700_a1-pure.cl b/OpenCL/m11700_a1-pure.cl index 82d33ca82..095ebc4bf 100644 --- a/OpenCL/m11700_a1-pure.cl +++ b/OpenCL/m11700_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_streebog256.cl" diff --git a/OpenCL/m11700_a3-optimized.cl b/OpenCL/m11700_a3-optimized.cl index 7afbcd247..0816f04d1 100644 --- a/OpenCL/m11700_a3-optimized.cl +++ b/OpenCL/m11700_a3-optimized.cl @@ -6,2231 +6,14 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_streebog256.cl" #define INITVAL 0x0101010101010101 -#if VECT_SIZE == 1 -#define BOX(S,n,i) (S)[(n)][(i)] -#elif VECT_SIZE == 2 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1]) -#elif VECT_SIZE == 4 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3]) -#elif VECT_SIZE == 8 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) -#elif VECT_SIZE == 16 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) -#endif - -#define SBOG_LPSti64 \ - BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff)) - -// constants - -__constant u64a sbob_sl64[8][256] = -{ - { - 0xd031c397ce553fe6, - 0x16ba5b01b006b525, - 0xa89bade6296e70c8, - 0x6a1f525d77d3435b, - 0x6e103570573dfa0b, - 0x660efb2a17fc95ab, - 0x76327a9e97634bf6, - 0x4bad9d6462458bf5, - 0xf1830caedbc3f748, - 0xc5c8f542669131ff, - 0x95044a1cdc48b0cb, - 0x892962df3cf8b866, - 0xb0b9e208e930c135, - 0xa14fb3f0611a767c, - 0x8d2605f21c160136, - 0xd6b71922fecc549e, - 0x37089438a5907d8b, - 0x0b5da38e5803d49c, - 0x5a5bcc9cea6f3cbc, - 0xedae246d3b73ffe5, - 0xd2b87e0fde22edce, - 0x5e54abb1ca8185ec, - 0x1de7f88fe80561b9, - 0xad5e1a870135a08c, - 0x2f2adbd665cecc76, - 0x5780b5a782f58358, - 0x3edc8a2eede47b3f, - 0xc9d95c3506bee70f, - 0x83be111d6c4e05ee, - 0xa603b90959367410, - 0x103c81b4809fde5d, - 0x2c69b6027d0c774a, - 0x399080d7d5c87953, - 0x09d41e16487406b4, - 0xcdd63b1826505e5f, - 0xf99dc2f49b0298e8, - 0x9cd0540a943cb67f, - 0xbca84b7f891f17c5, - 0x723d1db3b78df2a6, - 0x78aa6e71e73b4f2e, - 0x1433e699a071670d, - 0x84f21be454620782, - 0x98df3327b4d20f2f, - 0xf049dce2d3769e5c, - 0xdb6c60199656eb7a, - 0x648746b2078b4783, - 0x32cd23598dcbadcf, - 0x1ea4955bf0c7da85, - 0xe9a143401b9d46b5, - 0xfd92a5d9bbec21b8, - 0xc8138c790e0b8e1b, - 0x2ee00b9a6d7ba562, - 0xf85712b893b7f1fc, - 0xeb28fed80bea949d, - 0x564a65eb8a40ea4c, - 0x6c9988e8474a2823, - 0x4535898b121d8f2d, - 0xabd8c03231accbf4, - 0xba2e91cab9867cbd, - 0x7960be3def8e263a, - 0x0c11a977602fd6f0, - 0xcb50e1ad16c93527, - 0xeae22e94035ffd89, - 0x2866d12f5de2ce1a, - 0xff1b1841ab9bf390, - 0x9f9339de8cfe0d43, - 0x964727c8c48a0bf7, - 0x524502c6aaae531c, - 0x9b9c5ef3ac10b413, - 0x4fa2fa4942ab32a5, - 0x3f165a62e551122b, - 0xc74148da76e6e3d7, - 0x924840e5e464b2a7, - 0xd372ae43d69784da, - 0x233b72a105e11a86, - 0xa48a04914941a638, - 0xb4b68525c9de7865, - 0xddeabaaca6cf8002, - 0x0a9773c250b6bd88, - 0xc284ffbb5ebd3393, - 0x8ba0df472c8f6a4e, - 0x2aef6cb74d951c32, - 0x427983722a318d41, - 0x73f7cdffbf389bb2, - 0x074c0af9382c026c, - 0x8a6a0f0b243a035a, - 0x6fdae53c5f88931f, - 0xc68b98967e538ac3, - 0x44ff59c71aa8e639, - 0xe2fce0ce439e9229, - 0xa20cde2479d8cd40, - 0x19e89fa2c8ebd8e9, - 0xf446bbcff398270c, - 0x43b3533e2284e455, - 0xd82f0dcd8e945046, - 0x51066f12b26ce820, - 0xe73957af6bc5426d, - 0x081ece5a40c16fa0, - 0x3b193d4fc5bfab7b, - 0x7fe66488df174d42, - 0x0e9814ef705804d8, - 0x8137ac857c39d7c6, - 0xb1733244e185a821, - 0x695c3f896f11f867, - 0xf6cf0657e3eff524, - 0x1aabf276d02963d5, - 0x2da3664e75b91e5e, - 0x0289bd981077d228, - 0x90c1fd7df413608f, - 0x3c5537b6fd93a917, - 0xaa12107e3919a2e0, - 0x0686dab530996b78, - 0xdaa6b0559ee3826e, - 0xc34e2ff756085a87, - 0x6d5358a44fff4137, - 0xfc587595b35948ac, - 0x7ca5095cc7d5f67e, - 0xfb147f6c8b754ac0, - 0xbfeb26ab91ddacf9, - 0x6896efc567a49173, - 0xca9a31e11e7c5c33, - 0xbbe44186b13315a9, - 0x0ddb793b689abfe4, - 0x70b4a02ba7fa208e, - 0xe47a3a7b7307f951, - 0x8cecd5be14a36822, - 0xeeed49b923b144d9, - 0x17708b4db8b3dc31, - 0x6088219f2765fed3, - 0xb3fa8fdcf1f27a09, - 0x910b2d31fca6099b, - 0x0f52c4a378ed6dcc, - 0x50ccbf5ebad98134, - 0x6bd582117f662a4f, - 0x94ce9a50d4fdd9df, - 0x2b25bcfb45207526, - 0x67c42b661f49fcbf, - 0x492420fc723259dd, - 0x03436dd418c2bb3c, - 0x1f6e4517f872b391, - 0xa08563bc69af1f68, - 0xd43ea4baeebb86b6, - 0x01cad04c08b56914, - 0xac94cacb0980c998, - 0x54c3d8739a373864, - 0x26fec5c02dbacac2, - 0xdea9d778be0d3b3e, - 0x040f672d20eeb950, - 0xe5b0ea377bb29045, - 0xf30ab136cbb42560, - 0x62019c0737122cfb, - 0xe86b930c13282fa1, - 0xcc1ceb542ee5374b, - 0x538fd28aa21b3a08, - 0x1b61223ad89c0ac1, - 0x36c24474ad25149f, - 0x7a23d3e9f74c9d06, - 0xbe21f6e79968c5ed, - 0xcf5f868036278c77, - 0xf705d61beb5a9c30, - 0x4d2b47d152dce08d, - 0x5f9e7bfdc234ecf8, - 0x247778583dcd18ea, - 0x867ba67c4415d5aa, - 0x4ce1979d5a698999, - 0x0000000000000000, - 0xec64f42133c696f1, - 0xb57c5569c16b1171, - 0xc1c7926f467f88af, - 0x654d96fe0f3e2e97, - 0x15f936d5a8c40e19, - 0xb8a72c52a9f1ae95, - 0xa9517daa21db19dc, - 0x58d27104fa18ee94, - 0x5918a148f2ad8780, - 0x5cdd1629daf657c4, - 0x8274c15164fb6cfa, - 0xd1fb13dbc6e056f2, - 0x7d6fd910cf609f6a, - 0xb63f38bdd9a9aa4d, - 0x3d9fe7faf526c003, - 0x74bbc706871499de, - 0xdf630734b6b8522a, - 0x3ad3ed03cd0ac26f, - 0xfadeaf2083c023d4, - 0xc00d42234ecae1bb, - 0x8538cba85cd76e96, - 0xc402250e6e2458eb, - 0x47bc3413026a5d05, - 0xafd7a71f114272a4, - 0x978df784cc3f62e3, - 0xb96dfc1ea144c781, - 0x21b2cf391596c8ae, - 0x318e4e8d950916f3, - 0xce9556cc3e92e563, - 0x385a509bdd7d1047, - 0x358129a0b5e7afa3, - 0xe6f387e363702b79, - 0xe0755d5653e94001, - 0x7be903a5fff9f412, - 0x12b53c2c90e80c75, - 0x3307f315857ec4db, - 0x8fafb86a0c61d31e, - 0xd9e5dd8186213952, - 0x77f8aad29fd622e2, - 0x25bda814357871fe, - 0x7571174a8fa1f0ca, - 0x137fec60985d6561, - 0x30449ec19dbc7fe7, - 0xa540d4dd41f4cf2c, - 0xdc206ae0ae7ae916, - 0x5b911cd0e2da55a8, - 0xb2305f90f947131d, - 0x344bf9ecbd52c6b7, - 0x5d17c665d2433ed0, - 0x18224feec05eb1fd, - 0x9e59e992844b6457, - 0x9a568ebfa4a5dd07, - 0xa3c60e68716da454, - 0x7e2cb4c4d7a22456, - 0x87b176304ca0bcbe, - 0x413aeea632f3367d, - 0x9915e36bbc67663b, - 0x40f03eea3a465f69, - 0x1c2d28c3e0b008ad, - 0x4e682a054a1e5bb1, - 0x05c5b761285bd044, - 0xe1bf8d1a5b5c2915, - 0xf2c0617ac3014c74, - 0xb7f5e8f1d11cc359, - 0x63cb4c4b3fa745ef, - 0x9d1a84469c89df6b, - 0xe33630824b2bfb3d, - 0xd5f474f6e60eefa2, - 0xf58c6b83fb2d4e18, - 0x4676e45f0adf3411, - 0x20781f751d23a1ba, - 0xbd629b3381aa7ed1, - 0xae1d775319f71bb0, - 0xfed1c80da32e9a84, - 0x5509083f92825170, - 0x29ac01635557a70e, - 0xa7c9694551831d04, - 0x8e65682604d4ba0a, - 0x11f651f8882ab749, - 0xd77dc96ef6793d8a, - 0xef2799f52b042dcd, - 0x48eef0b07a8730c9, - 0x22f1a2ed0d547392, - 0x6142f1d32fd097c7, - 0x4a674d286af0e2e1, - 0x80fd7cc9748cbed2, - 0x717e7067af4f499a, - 0x938290a9ecd1dbb3, - 0x88e3b293344dd172, - 0x2734158c250fa3d6, - }, - { - 0x7e37e62dfc7d40c3, - 0x776f25a4ee939e5b, - 0xe045c850dd8fb5ad, - 0x86ed5ba711ff1952, - 0xe91d0bd9cf616b35, - 0x37e0ab256e408ffb, - 0x9607f6c031025a7a, - 0x0b02f5e116d23c9d, - 0xf3d8486bfb50650c, - 0x621cff27c40875f5, - 0x7d40cb71fa5fd34a, - 0x6daa6616daa29062, - 0x9f5f354923ec84e2, - 0xec847c3dc507c3b3, - 0x025a3668043ce205, - 0xa8bf9e6c4dac0b19, - 0xfa808be2e9bebb94, - 0xb5b99c5277c74fa3, - 0x78d9bc95f0397bcc, - 0xe332e50cdbad2624, - 0xc74fce129332797e, - 0x1729eceb2ea709ab, - 0xc2d6b9f69954d1f8, - 0x5d898cbfbab8551a, - 0x859a76fb17dd8adb, - 0x1be85886362f7fb5, - 0xf6413f8ff136cd8a, - 0xd3110fa5bbb7e35c, - 0x0a2feed514cc4d11, - 0xe83010edcd7f1ab9, - 0xa1e75de55f42d581, - 0xeede4a55c13b21b6, - 0xf2f5535ff94e1480, - 0x0cc1b46d1888761e, - 0xbce15fdb6529913b, - 0x2d25e8975a7181c2, - 0x71817f1ce2d7a554, - 0x2e52c5cb5c53124b, - 0xf9f7a6beef9c281d, - 0x9e722e7d21f2f56e, - 0xce170d9b81dca7e6, - 0x0e9b82051cb4941b, - 0x1e712f623c49d733, - 0x21e45cfa42f9f7dc, - 0xcb8e7a7f8bba0f60, - 0x8e98831a010fb646, - 0x474ccf0d8e895b23, - 0xa99285584fb27a95, - 0x8cc2b57205335443, - 0x42d5b8e984eff3a5, - 0x012d1b34021e718c, - 0x57a6626aae74180b, - 0xff19fc06e3d81312, - 0x35ba9d4d6a7c6dfe, - 0xc9d44c178f86ed65, - 0x506523e6a02e5288, - 0x03772d5c06229389, - 0x8b01f4fe0b691ec0, - 0xf8dabd8aed825991, - 0x4c4e3aec985b67be, - 0xb10df0827fbf96a9, - 0x6a69279ad4f8dae1, - 0xe78689dcd3d5ff2e, - 0x812e1a2b1fa553d1, - 0xfbad90d6eba0ca18, - 0x1ac543b234310e39, - 0x1604f7df2cb97827, - 0xa6241c6951189f02, - 0x753513cceaaf7c5e, - 0x64f2a59fc84c4efa, - 0x247d2b1e489f5f5a, - 0xdb64d718ab474c48, - 0x79f4a7a1f2270a40, - 0x1573da832a9bebae, - 0x3497867968621c72, - 0x514838d2a2302304, - 0xf0af6537fd72f685, - 0x1d06023e3a6b44ba, - 0x678588c3ce6edd73, - 0x66a893f7cc70acff, - 0xd4d24e29b5eda9df, - 0x3856321470ea6a6c, - 0x07c3418c0e5a4a83, - 0x2bcbb22f5635bacd, - 0x04b46cd00878d90a, - 0x06ee5ab80c443b0f, - 0x3b211f4876c8f9e5, - 0x0958c38912eede98, - 0xd14b39cdbf8b0159, - 0x397b292072f41be0, - 0x87c0409313e168de, - 0xad26e98847caa39f, - 0x4e140c849c6785bb, - 0xd5ff551db7f3d853, - 0xa0ca46d15d5ca40d, - 0xcd6020c787fe346f, - 0x84b76dcf15c3fb57, - 0xdefda0fca121e4ce, - 0x4b8d7b6096012d3d, - 0x9ac642ad298a2c64, - 0x0875d8bd10f0af14, - 0xb357c6ea7b8374ac, - 0x4d6321d89a451632, - 0xeda96709c719b23f, - 0xf76c24bbf328bc06, - 0xc662d526912c08f2, - 0x3ce25ec47892b366, - 0xb978283f6f4f39bd, - 0xc08c8f9e9d6833fd, - 0x4f3917b09e79f437, - 0x593de06fb2c08c10, - 0xd6887841b1d14bda, - 0x19b26eee32139db0, - 0xb494876675d93e2f, - 0x825937771987c058, - 0x90e9ac783d466175, - 0xf1827e03ff6c8709, - 0x945dc0a8353eb87f, - 0x4516f9658ab5b926, - 0x3f9573987eb020ef, - 0xb855330b6d514831, - 0x2ae6a91b542bcb41, - 0x6331e413c6160479, - 0x408f8e8180d311a0, - 0xeff35161c325503a, - 0xd06622f9bd9570d5, - 0x8876d9a20d4b8d49, - 0xa5533135573a0c8b, - 0xe168d364df91c421, - 0xf41b09e7f50a2f8f, - 0x12b09b0f24c1a12d, - 0xda49cc2ca9593dc4, - 0x1f5c34563e57a6bf, - 0x54d14f36a8568b82, - 0xaf7cdfe043f6419a, - 0xea6a2685c943f8bc, - 0xe5dcbfb4d7e91d2b, - 0xb27addde799d0520, - 0x6b443caed6e6ab6d, - 0x7bae91c9f61be845, - 0x3eb868ac7cae5163, - 0x11c7b65322e332a4, - 0xd23c1491b9a992d0, - 0x8fb5982e0311c7ca, - 0x70ac6428e0c9d4d8, - 0x895bc2960f55fcc5, - 0x76423e90ec8defd7, - 0x6ff0507ede9e7267, - 0x3dcf45f07a8cc2ea, - 0x4aa06054941f5cb1, - 0x5810fb5bb0defd9c, - 0x5efea1e3bc9ac693, - 0x6edd4b4adc8003eb, - 0x741808f8e8b10dd2, - 0x145ec1b728859a22, - 0x28bc9f7350172944, - 0x270a06424ebdccd3, - 0x972aedf4331c2bf6, - 0x059977e40a66a886, - 0x2550302a4a812ed6, - 0xdd8a8da0a7037747, - 0xc515f87a970e9b7b, - 0x3023eaa9601ac578, - 0xb7e3aa3a73fbada6, - 0x0fb699311eaae597, - 0x0000000000000000, - 0x310ef19d6204b4f4, - 0x229371a644db6455, - 0x0decaf591a960792, - 0x5ca4978bb8a62496, - 0x1c2b190a38753536, - 0x41a295b582cd602c, - 0x3279dcc16426277d, - 0xc1a194aa9f764271, - 0x139d803b26dfd0a1, - 0xae51c4d441e83016, - 0xd813fa44ad65dfc1, - 0xac0bf2bc45d4d213, - 0x23be6a9246c515d9, - 0x49d74d08923dcf38, - 0x9d05032127d066e7, - 0x2f7fdeff5e4d63c7, - 0xa47e2a0155247d07, - 0x99b16ff12fa8bfed, - 0x4661d4398c972aaf, - 0xdfd0bbc8a33f9542, - 0xdca79694a51d06cb, - 0xb020ebb67da1e725, - 0xba0f0563696daa34, - 0xe4f1a480d5f76ca7, - 0xc438e34e9510eaf7, - 0x939e81243b64f2fc, - 0x8defae46072d25cf, - 0x2c08f3a3586ff04e, - 0xd7a56375b3cf3a56, - 0x20c947ce40e78650, - 0x43f8a3dd86f18229, - 0x568b795eac6a6987, - 0x8003011f1dbb225d, - 0xf53612d3f7145e03, - 0x189f75da300dec3c, - 0x9570db9c3720c9f3, - 0xbb221e576b73dbb8, - 0x72f65240e4f536dd, - 0x443be25188abc8aa, - 0xe21ffe38d9b357a8, - 0xfd43ca6ee7e4f117, - 0xcaa3614b89a47eec, - 0xfe34e732e1c6629e, - 0x83742c431b99b1d4, - 0xcf3a16af83c2d66a, - 0xaae5a8044990e91c, - 0x26271d764ca3bd5f, - 0x91c4b74c3f5810f9, - 0x7c6dd045f841a2c6, - 0x7f1afd19fe63314f, - 0xc8f957238d989ce9, - 0xa709075d5306ee8e, - 0x55fc5402aa48fa0e, - 0x48fa563c9023beb4, - 0x65dfbeabca523f76, - 0x6c877d22d8bce1ee, - 0xcc4d3bf385e045e3, - 0xbebb69b36115733e, - 0x10eaad6720fd4328, - 0xb6ceb10e71e5dc2a, - 0xbdcc44ef6737e0b7, - 0x523f158ea412b08d, - 0x989c74c52db6ce61, - 0x9beb59992b945de8, - 0x8a2cefca09776f4c, - 0xa3bd6b8d5b7e3784, - 0xeb473db1cb5d8930, - 0xc3fba2c29b4aa074, - 0x9c28181525ce176b, - 0x683311f2d0c438e4, - 0x5fd3bad7be84b71f, - 0xfc6ed15ae5fa809b, - 0x36cdb0116c5efe77, - 0x29918447520958c8, - 0xa29070b959604608, - 0x53120ebaa60cc101, - 0x3a0c047c74d68869, - 0x691e0ac6d2da4968, - 0x73db4974e6eb4751, - 0x7a838afdf40599c9, - 0x5a4acd33b4e21f99, - 0x6046c94fc03497f0, - 0xe6ab92e8d1cb8ea2, - 0x3354c7f5663856f1, - 0xd93ee170af7bae4d, - 0x616bd27bc22ae67c, - 0x92b39a10397a8370, - 0xabc8b3304b8e9890, - 0xbf967287630b02b2, - 0x5b67d607b6fc6e15, - }, - { - 0x8ab0a96846e06a6d, - 0x43c7e80b4bf0b33a, - 0x08c9b3546b161ee5, - 0x39f1c235eba990be, - 0xc1bef2376606c7b2, - 0x2c209233614569aa, - 0xeb01523b6fc3289a, - 0x946953ab935acedd, - 0x272838f63e13340e, - 0x8b0455eca12ba052, - 0x77a1b2c4978ff8a2, - 0xa55122ca13e54086, - 0x2276135862d3f1cd, - 0xdb8ddfde08b76cfe, - 0x5d1e12c89e4a178a, - 0x0e56816b03969867, - 0xee5f79953303ed59, - 0xafed748bab78d71d, - 0x6d929f2df93e53ee, - 0xf5d8a8f8ba798c2a, - 0xf619b1698e39cf6b, - 0x95ddaf2f749104e2, - 0xec2a9c80e0886427, - 0xce5c8fd8825b95ea, - 0xc4e0d9993ac60271, - 0x4699c3a5173076f9, - 0x3d1b151f50a29f42, - 0x9ed505ea2bc75946, - 0x34665acfdc7f4b98, - 0x61b1fb53292342f7, - 0xc721c0080e864130, - 0x8693cd1696fd7b74, - 0x872731927136b14b, - 0xd3446c8a63a1721b, - 0x669a35e8a6680e4a, - 0xcab658f239509a16, - 0xa4e5de4ef42e8ab9, - 0x37a7435ee83f08d9, - 0x134e6239e26c7f96, - 0x82791a3c2df67488, - 0x3f6ef00a8329163c, - 0x8e5a7e42fdeb6591, - 0x5caaee4c7981ddb5, - 0x19f234785af1e80d, - 0x255ddde3ed98bd70, - 0x50898a32a99cccac, - 0x28ca4519da4e6656, - 0xae59880f4cb31d22, - 0x0d9798fa37d6db26, - 0x32f968f0b4ffcd1a, - 0xa00f09644f258545, - 0xfa3ad5175e24de72, - 0xf46c547c5db24615, - 0x713e80fbff0f7e20, - 0x7843cf2b73d2aafa, - 0xbd17ea36aedf62b4, - 0xfd111bacd16f92cf, - 0x4abaa7dbc72d67e0, - 0xb3416b5dad49fad3, - 0xbca316b24914a88b, - 0x15d150068aecf914, - 0xe27c1debe31efc40, - 0x4fe48c759beda223, - 0x7edcfd141b522c78, - 0x4e5070f17c26681c, - 0xe696cac15815f3bc, - 0x35d2a64b3bb481a7, - 0x800cff29fe7dfdf6, - 0x1ed9fac3d5baa4b0, - 0x6c2663a91ef599d1, - 0x03c1199134404341, - 0xf7ad4ded69f20554, - 0xcd9d9649b61bd6ab, - 0xc8c3bde7eadb1368, - 0xd131899fb02afb65, - 0x1d18e352e1fae7f1, - 0xda39235aef7ca6c1, - 0xa1bbf5e0a8ee4f7a, - 0x91377805cf9a0b1e, - 0x3138716180bf8e5b, - 0xd9f83acbdb3ce580, - 0x0275e515d38b897e, - 0x472d3f21f0fbbcc6, - 0x2d946eb7868ea395, - 0xba3c248d21942e09, - 0xe7223645bfde3983, - 0xff64feb902e41bb1, - 0xc97741630d10d957, - 0xc3cb1722b58d4ecc, - 0xa27aec719cae0c3b, - 0x99fecb51a48c15fb, - 0x1465ac826d27332b, - 0xe1bd047ad75ebf01, - 0x79f733af941960c5, - 0x672ec96c41a3c475, - 0xc27feba6524684f3, - 0x64efd0fd75e38734, - 0xed9e60040743ae18, - 0xfb8e2993b9ef144d, - 0x38453eb10c625a81, - 0x6978480742355c12, - 0x48cf42ce14a6ee9e, - 0x1cac1fd606312dce, - 0x7b82d6ba4792e9bb, - 0x9d141c7b1f871a07, - 0x5616b80dc11c4a2e, - 0xb849c198f21fa777, - 0x7ca91801c8d9a506, - 0xb1348e487ec273ad, - 0x41b20d1e987b3a44, - 0x7460ab55a3cfbbe3, - 0x84e628034576f20a, - 0x1b87d16d897a6173, - 0x0fe27defe45d5258, - 0x83cde6b8ca3dbeb7, - 0x0c23647ed01d1119, - 0x7a362a3ea0592384, - 0xb61f40f3f1893f10, - 0x75d457d1440471dc, - 0x4558da34237035b8, - 0xdca6116587fc2043, - 0x8d9b67d3c9ab26d0, - 0x2b0b5c88ee0e2517, - 0x6fe77a382ab5da90, - 0x269cc472d9d8fe31, - 0x63c41e46faa8cb89, - 0xb7abbc771642f52f, - 0x7d1de4852f126f39, - 0xa8c6ba3024339ba0, - 0x600507d7cee888c8, - 0x8fee82c61a20afae, - 0x57a2448926d78011, - 0xfca5e72836a458f0, - 0x072bcebb8f4b4cbd, - 0x497bbe4af36d24a1, - 0x3cafe99bb769557d, - 0x12fa9ebd05a7b5a9, - 0xe8c04baa5b836bdb, - 0x4273148fac3b7905, - 0x908384812851c121, - 0xe557d3506c55b0fd, - 0x72ff996acb4f3d61, - 0x3eda0c8e64e2dc03, - 0xf0868356e6b949e9, - 0x04ead72abb0b0ffc, - 0x17a4b5135967706a, - 0xe3c8e16f04d5367f, - 0xf84f30028daf570c, - 0x1846c8fcbd3a2232, - 0x5b8120f7f6ca9108, - 0xd46fa231ecea3ea6, - 0x334d947453340725, - 0x58403966c28ad249, - 0xbed6f3a79a9f21f5, - 0x68ccb483a5fe962d, - 0xd085751b57e1315a, - 0xfed0023de52fd18e, - 0x4b0e5b5f20e6addf, - 0x1a332de96eb1ab4c, - 0xa3ce10f57b65c604, - 0x108f7ba8d62c3cd7, - 0xab07a3a11073d8e1, - 0x6b0dad1291bed56c, - 0xf2f366433532c097, - 0x2e557726b2cee0d4, - 0x0000000000000000, - 0xcb02a476de9b5029, - 0xe4e32fd48b9e7ac2, - 0x734b65ee2c84f75e, - 0x6e5386bccd7e10af, - 0x01b4fc84e7cbca3f, - 0xcfe8735c65905fd5, - 0x3613bfda0ff4c2e6, - 0x113b872c31e7f6e8, - 0x2fe18ba255052aeb, - 0xe974b72ebc48a1e4, - 0x0abc5641b89d979b, - 0xb46aa5e62202b66e, - 0x44ec26b0c4bbff87, - 0xa6903b5b27a503c7, - 0x7f680190fc99e647, - 0x97a84a3aa71a8d9c, - 0xdd12ede16037ea7c, - 0xc554251ddd0dc84e, - 0x88c54c7d956be313, - 0x4d91696048662b5d, - 0xb08072cc9909b992, - 0xb5de5962c5c97c51, - 0x81b803ad19b637c9, - 0xb2f597d94a8230ec, - 0x0b08aac55f565da4, - 0xf1327fd2017283d6, - 0xad98919e78f35e63, - 0x6ab9519676751f53, - 0x24e921670a53774f, - 0xb9fd3d1c15d46d48, - 0x92f66194fbda485f, - 0x5a35dc7311015b37, - 0xded3f4705477a93d, - 0xc00a0eb381cd0d8d, - 0xbb88d809c65fe436, - 0x16104997beacba55, - 0x21b70ac95693b28c, - 0x59f4c5e225411876, - 0xd5db5eb50b21f499, - 0x55d7a19cf55c096f, - 0xa97246b4c3f8519f, - 0x8552d487a2bd3835, - 0x54635d181297c350, - 0x23c2efdc85183bf2, - 0x9f61f96ecc0c9379, - 0x534893a39ddc8fed, - 0x5edf0b59aa0a54cb, - 0xac2c6d1a9f38945c, - 0xd7aebba0d8aa7de7, - 0x2abfa00c09c5ef28, - 0xd84cc64f3cf72fbf, - 0x2003f64db15878b3, - 0xa724c7dfc06ec9f8, - 0x069f323f68808682, - 0xcc296acd51d01c94, - 0x055e2bae5cc0c5c3, - 0x6270e2c21d6301b6, - 0x3b842720382219c0, - 0xd2f0900e846ab824, - 0x52fc6f277a1745d2, - 0xc6953c8ce94d8b0f, - 0xe009f8fe3095753e, - 0x655b2c7992284d0b, - 0x984a37d54347dfc4, - 0xeab5aebf8808e2a5, - 0x9a3fd2c090cc56ba, - 0x9ca0e0fff84cd038, - 0x4c2595e4afade162, - 0xdf6708f4b3bc6302, - 0xbf620f237d54ebca, - 0x93429d101c118260, - 0x097d4fd08cddd4da, - 0x8c2f9b572e60ecef, - 0x708a7c7f18c4b41f, - 0x3a30dba4dfe9d3ff, - 0x4006f19a7fb0f07b, - 0x5f6bf7dd4dc19ef4, - 0x1f6d064732716e8f, - 0xf9fbcc866a649d33, - 0x308c8de567744464, - 0x8971b0f972a0292c, - 0xd61a47243f61b7d8, - 0xefeb8511d4c82766, - 0x961cb6be40d147a3, - 0xaab35f25f7b812de, - 0x76154e407044329d, - 0x513d76b64e570693, - 0xf3479ac7d2f90aa8, - 0x9b8b2e4477079c85, - 0x297eb99d3d85ac69, - }, - { - 0x3ef29d249b2c0a19, - 0xe9e16322b6f8622f, - 0x5536994047757f7a, - 0x9f4d56d5a47b0b33, - 0x822567466aa1174c, - 0xb8f5057deb082fb2, - 0xcc48c10bf4475f53, - 0x373088d4275dec3a, - 0x968f4325180aed10, - 0x173d232cf7016151, - 0xae4ed09f946fcc13, - 0xfd4b4741c4539873, - 0x1b5b3f0dd9933765, - 0x2ffcb0967b644052, - 0xe02376d20a89840c, - 0xa3ae3a70329b18d7, - 0x419cbd2335de8526, - 0xfafebf115b7c3199, - 0x0397074f85aa9b0d, - 0xc58ad4fb4836b970, - 0xbec60be3fc4104a8, - 0x1eff36dc4b708772, - 0x131fdc33ed8453b6, - 0x0844e33e341764d3, - 0x0ff11b6eab38cd39, - 0x64351f0a7761b85a, - 0x3b5694f509cfba0e, - 0x30857084b87245d0, - 0x47afb3bd2297ae3c, - 0xf2ba5c2f6f6b554a, - 0x74bdc4761f4f70e1, - 0xcfdfc64471edc45e, - 0xe610784c1dc0af16, - 0x7aca29d63c113f28, - 0x2ded411776a859af, - 0xac5f211e99a3d5ee, - 0xd484f949a87ef33b, - 0x3ce36ca596e013e4, - 0xd120f0983a9d432c, - 0x6bc40464dc597563, - 0x69d5f5e5d1956c9e, - 0x9ae95f043698bb24, - 0xc9ecc8da66a4ef44, - 0xd69508c8a5b2eac6, - 0xc40c2235c0503b80, - 0x38c193ba8c652103, - 0x1ceec75d46bc9e8f, - 0xd331011937515ad1, - 0xd8e2e56886eca50f, - 0xb137108d5779c991, - 0x709f3b6905ca4206, - 0x4feb50831680caef, - 0xec456af3241bd238, - 0x58d673afe181abbe, - 0x242f54e7cad9bf8c, - 0x0211f1810dcc19fd, - 0x90bc4dbb0f43c60a, - 0x9518446a9da0761d, - 0xa1bfcbf13f57012a, - 0x2bde4f8961e172b5, - 0x27b853a84f732481, - 0xb0b1e643df1f4b61, - 0x18cc38425c39ac68, - 0xd2b7f7d7bf37d821, - 0x3103864a3014c720, - 0x14aa246372abfa5c, - 0x6e600db54ebac574, - 0x394765740403a3f3, - 0x09c215f0bc71e623, - 0x2a58b947e987f045, - 0x7b4cdf18b477bdd8, - 0x9709b5eb906c6fe0, - 0x73083c268060d90b, - 0xfedc400e41f9037e, - 0x284948c6e44be9b8, - 0x728ecae808065bfb, - 0x06330e9e17492b1a, - 0x5950856169e7294e, - 0xbae4f4fce6c4364f, - 0xca7bcf95e30e7449, - 0x7d7fd186a33e96c2, - 0x52836110d85ad690, - 0x4dfaa1021b4cd312, - 0x913abb75872544fa, - 0xdd46ecb9140f1518, - 0x3d659a6b1e869114, - 0xc23f2cabd719109a, - 0xd713fe062dd46836, - 0xd0a60656b2fbc1dc, - 0x221c5a79dd909496, - 0xefd26dbca1b14935, - 0x0e77eda0235e4fc9, - 0xcbfd395b6b68f6b9, - 0x0de0eaefa6f4d4c4, - 0x0422ff1f1a8532e7, - 0xf969b85eded6aa94, - 0x7f6e2007aef28f3f, - 0x3ad0623b81a938fe, - 0x6624ee8b7aada1a7, - 0xb682e8ddc856607b, - 0xa78cc56f281e2a30, - 0xc79b257a45faa08d, - 0x5b4174e0642b30b3, - 0x5f638bff7eae0254, - 0x4bc9af9c0c05f808, - 0xce59308af98b46ae, - 0x8fc58da9cc55c388, - 0x803496c7676d0eb1, - 0xf33caae1e70dd7ba, - 0xbb6202326ea2b4bf, - 0xd5020f87201871cb, - 0x9d5ca754a9b712ce, - 0x841669d87de83c56, - 0x8a6184785eb6739f, - 0x420bba6cb0741e2b, - 0xf12d5b60eac1ce47, - 0x76ac35f71283691c, - 0x2c6bb7d9fecedb5f, - 0xfccdb18f4c351a83, - 0x1f79c012c3160582, - 0xf0abadae62a74cb7, - 0xe1a5801c82ef06fc, - 0x67a21845f2cb2357, - 0x5114665f5df04d9d, - 0xbf40fd2d74278658, - 0xa0393d3fb73183da, - 0x05a409d192e3b017, - 0xa9fb28cf0b4065f9, - 0x25a9a22942bf3d7c, - 0xdb75e22703463e02, - 0xb326e10c5ab5d06c, - 0xe7968e8295a62de6, - 0xb973f3b3636ead42, - 0xdf571d3819c30ce5, - 0xee549b7229d7cbc5, - 0x12992afd65e2d146, - 0xf8ef4e9056b02864, - 0xb7041e134030e28b, - 0xc02edd2adad50967, - 0x932b4af48ae95d07, - 0x6fe6fb7bc6dc4784, - 0x239aacb755f61666, - 0x401a4bedbdb807d6, - 0x485ea8d389af6305, - 0xa41bc220adb4b13d, - 0x753b32b89729f211, - 0x997e584bb3322029, - 0x1d683193ceda1c7f, - 0xff5ab6c0c99f818e, - 0x16bbd5e27f67e3a1, - 0xa59d34ee25d233cd, - 0x98f8ae853b54a2d9, - 0x6df70afacb105e79, - 0x795d2e99b9bba425, - 0x8e437b6744334178, - 0x0186f6ce886682f0, - 0xebf092a3bb347bd2, - 0xbcd7fa62f18d1d55, - 0xadd9d7d011c5571e, - 0x0bd3e471b1bdffde, - 0xaa6c2f808eeafef4, - 0x5ee57d31f6c880a4, - 0xf50fa47ff044fca0, - 0x1addc9c351f5b595, - 0xea76646d3352f922, - 0x0000000000000000, - 0x85909f16f58ebea6, - 0x46294573aaf12ccc, - 0x0a5512bf39db7d2e, - 0x78dbd85731dd26d5, - 0x29cfbe086c2d6b48, - 0x218b5d36583a0f9b, - 0x152cd2adfacd78ac, - 0x83a39188e2c795bc, - 0xc3b9da655f7f926a, - 0x9ecba01b2c1d89c3, - 0x07b5f8509f2fa9ea, - 0x7ee8d6c926940dcf, - 0x36b67e1aaf3b6eca, - 0x86079859702425ab, - 0xfb7849dfd31ab369, - 0x4c7c57cc932a51e2, - 0xd96413a60e8a27ff, - 0x263ea566c715a671, - 0x6c71fc344376dc89, - 0x4a4f595284637af8, - 0xdaf314e98b20bcf2, - 0x572768c14ab96687, - 0x1088db7c682ec8bb, - 0x887075f9537a6a62, - 0x2e7a4658f302c2a2, - 0x619116dbe582084d, - 0xa87dde018326e709, - 0xdcc01a779c6997e8, - 0xedc39c3dac7d50c8, - 0xa60a33a1a078a8c0, - 0xc1a82be452b38b97, - 0x3f746bea134a88e9, - 0xa228ccbebafd9a27, - 0xabead94e068c7c04, - 0xf48952b178227e50, - 0x5cf48cb0fb049959, - 0x6017e0156de48abd, - 0x4438b4f2a73d3531, - 0x8c528ae649ff5885, - 0xb515ef924dfcfb76, - 0x0c661c212e925634, - 0xb493195cc59a7986, - 0x9cda519a21d1903e, - 0x32948105b5be5c2d, - 0x194ace8cd45f2e98, - 0x438d4ca238129cdb, - 0x9b6fa9cabefe39d4, - 0x81b26009ef0b8c41, - 0xded1ebf691a58e15, - 0x4e6da64d9ee6481f, - 0x54b06f8ecf13fd8a, - 0x49d85e1d01c9e1f5, - 0xafc826511c094ee3, - 0xf698a33075ee67ad, - 0x5ac7822eec4db243, - 0x8dd47c28c199da75, - 0x89f68337db1ce892, - 0xcdce37c57c21dda3, - 0x530597de503c5460, - 0x6a42f2aa543ff793, - 0x5d727a7e73621ba9, - 0xe232875307459df1, - 0x56a19e0fc2dfe477, - 0xc61dd3b4cd9c227d, - 0xe5877f03986a341b, - 0x949eb2a415c6f4ed, - 0x6206119460289340, - 0x6380e75ae84e11b0, - 0x8be772b6d6d0f16f, - 0x50929091d596cf6d, - 0xe86795ec3e9ee0df, - 0x7cf927482b581432, - 0xc86a3e14eec26db4, - 0x7119cda78dacc0f6, - 0xe40189cd100cb6eb, - 0x92adbc3a028fdff7, - 0xb2a017c2d2d3529c, - 0x200dabf8d05c8d6b, - 0x34a78f9ba2f77737, - 0xe3b4719d8f231f01, - 0x45be423c2f5bb7c1, - 0xf71e55fefd88e55d, - 0x6853032b59f3ee6e, - 0x65b3e9c4ff073aaa, - 0x772ac3399ae5ebec, - 0x87816e97f842a75b, - 0x110e2db2e0484a4b, - 0x331277cb3dd8dedd, - 0xbd510cac79eb9fa5, - 0x352179552a91f5c7, - }, - { - 0x05ba7bc82c9b3220, - 0x31a54665f8b65e4f, - 0xb1b651f77547f4d4, - 0x8bfa0d857ba46682, - 0x85a96c5aa16a98bb, - 0x990faef908eb79c9, - 0xa15e37a247f4a62d, - 0x76857dcd5d27741e, - 0xf8c50b800a1820bc, - 0xbe65dcb201f7a2b4, - 0x666d1b986f9426e7, - 0x4cc921bf53c4e648, - 0x95410a0f93d9ca42, - 0x20cdccaa647ba4ef, - 0x429a4060890a1871, - 0x0c4ea4f69b32b38b, - 0xccda362dde354cd3, - 0x96dc23bc7c5b2fa9, - 0xc309bb68aa851ab3, - 0xd26131a73648e013, - 0x021dc52941fc4db2, - 0xcd5adab7704be48a, - 0xa77965d984ed71e6, - 0x32386fd61734bba4, - 0xe82d6dd538ab7245, - 0x5c2147ea6177b4b1, - 0x5da1ab70cf091ce8, - 0xac907fce72b8bdff, - 0x57c85dfd972278a8, - 0xa4e44c6a6b6f940d, - 0x3851995b4f1fdfe4, - 0x62578ccaed71bc9e, - 0xd9882bb0c01d2c0a, - 0x917b9d5d113c503b, - 0xa2c31e11a87643c6, - 0xe463c923a399c1ce, - 0xf71686c57ea876dc, - 0x87b4a973e096d509, - 0xaf0d567d9d3a5814, - 0xb40c2a3f59dcc6f4, - 0x3602f88495d121dd, - 0xd3e1dd3d9836484a, - 0xf945e71aa46688e5, - 0x7518547eb2a591f5, - 0x9366587450c01d89, - 0x9ea81018658c065b, - 0x4f54080cbc4603a3, - 0x2d0384c65137bf3d, - 0xdc325078ec861e2a, - 0xea30a8fc79573ff7, - 0x214d2030ca050cb6, - 0x65f0322b8016c30c, - 0x69be96dd1b247087, - 0xdb95ee9981e161b8, - 0xd1fc1814d9ca05f8, - 0x820ed2bbcc0de729, - 0x63d76050430f14c7, - 0x3bccb0e8a09d3a0f, - 0x8e40764d573f54a2, - 0x39d175c1e16177bd, - 0x12f5a37c734f1f4b, - 0xab37c12f1fdfc26d, - 0x5648b167395cd0f1, - 0x6c04ed1537bf42a7, - 0xed97161d14304065, - 0x7d6c67daab72b807, - 0xec17fa87ba4ee83c, - 0xdfaf79cb0304fbc1, - 0x733f060571bc463e, - 0x78d61c1287e98a27, - 0xd07cf48e77b4ada1, - 0xb9c262536c90dd26, - 0xe2449b5860801605, - 0x8fc09ad7f941fcfb, - 0xfad8cea94be46d0e, - 0xa343f28b0608eb9f, - 0x9b126bd04917347b, - 0x9a92874ae7699c22, - 0x1b017c42c4e69ee0, - 0x3a4c5c720ee39256, - 0x4b6e9f5e3ea399da, - 0x6ba353f45ad83d35, - 0xe7fee0904c1b2425, - 0x22d009832587e95d, - 0x842980c00f1430e2, - 0xc6b3c0a0861e2893, - 0x087433a419d729f2, - 0x341f3dadd42d6c6f, - 0xee0a3faefbb2a58e, - 0x4aee73c490dd3183, - 0xaab72db5b1a16a34, - 0xa92a04065e238fdf, - 0x7b4b35a1686b6fcc, - 0x6a23bf6ef4a6956c, - 0x191cb96b851ad352, - 0x55d598d4d6de351a, - 0xc9604de5f2ae7ef3, - 0x1ca6c2a3a981e172, - 0xde2f9551ad7a5398, - 0x3025aaff56c8f616, - 0x15521d9d1e2860d9, - 0x506fe31cfa45073a, - 0x189c55f12b647b0b, - 0x0180ec9aae7ea859, - 0x7cec8b40050c105e, - 0x2350e5198bf94104, - 0xef8ad33455cc0dd7, - 0x07a7bee16d677f92, - 0xe5e325b90de76997, - 0x5a061591a26e637a, - 0xb611ef1618208b46, - 0x09f4df3eb7a981ab, - 0x1ebb078ae87dacc0, - 0xb791038cb65e231f, - 0x0fd38d4574b05660, - 0x67edf702c1ea8ebe, - 0xba5f4be0831238cd, - 0xe3c477c2cefebe5c, - 0x0dce486c354c1bd2, - 0x8c5db36416c31910, - 0x26ea9ed1a7627324, - 0x039d29b3ef82e5eb, - 0x9f28fc82cbf2ae02, - 0xa8aae89cf05d2786, - 0x431aacfa2774b028, - 0xcf471f9e31b7a938, - 0x581bd0b8e3922ec8, - 0xbc78199b400bef06, - 0x90fb71c7bf42f862, - 0x1f3beb1046030499, - 0x683e7a47b55ad8de, - 0x988f4263a695d190, - 0xd808c72a6e638453, - 0x0627527bc319d7cb, - 0xebb04466d72997ae, - 0xe67e0c0ae2658c7c, - 0x14d2f107b056c880, - 0x7122c32c30400b8c, - 0x8a7ae11fd5dacedb, - 0xa0dedb38e98a0e74, - 0xad109354dcc615a6, - 0x0be91a17f655cc19, - 0x8ddd5ffeb8bdb149, - 0xbfe53028af890aed, - 0xd65ba6f5b4ad7a6a, - 0x7956f0882997227e, - 0x10e8665532b352f9, - 0x0e5361dfdacefe39, - 0xcec7f3049fc90161, - 0xff62b561677f5f2e, - 0x975ccf26d22587f0, - 0x51ef0f86543baf63, - 0x2f1e41ef10cbf28f, - 0x52722635bbb94a88, - 0xae8dbae73344f04d, - 0x410769d36688fd9a, - 0xb3ab94de34bbb966, - 0x801317928df1aa9b, - 0xa564a0f0c5113c54, - 0xf131d4bebdb1a117, - 0x7f71a2f3ea8ef5b5, - 0x40878549c8f655c3, - 0x7ef14e6944f05dec, - 0xd44663dcf55137d8, - 0xf2acfd0d523344fc, - 0x0000000000000000, - 0x5fbc6e598ef5515a, - 0x16cf342ef1aa8532, - 0xb036bd6ddb395c8d, - 0x13754fe6dd31b712, - 0xbbdfa77a2d6c9094, - 0x89e7c8ac3a582b30, - 0x3c6b0e09cdfa459d, - 0xc4ae0589c7e26521, - 0x49735a777f5fd468, - 0xcafd64561d2c9b18, - 0xda1502032f9fc9e1, - 0x8867243694268369, - 0x3782141e3baf8984, - 0x9cb5d53124704be9, - 0xd7db4a6f1ad3d233, - 0xa6f989432a93d9bf, - 0x9d3539ab8a0ee3b0, - 0x53f2caaf15c7e2d1, - 0x6e19283c76430f15, - 0x3debe2936384edc4, - 0x5e3c82c3208bf903, - 0x33b8834cb94a13fd, - 0x6470deb12e686b55, - 0x359fd1377a53c436, - 0x61caa57902f35975, - 0x043a975282e59a79, - 0xfd7f70482683129c, - 0xc52ee913699ccd78, - 0x28b9ff0e7dac8d1d, - 0x5455744e78a09d43, - 0xcb7d88ccb3523341, - 0x44bd121b4a13cfba, - 0x4d49cd25fdba4e11, - 0x3e76cb208c06082f, - 0x3ff627ba2278a076, - 0xc28957f204fbb2ea, - 0x453dfe81e46d67e3, - 0x94c1e6953da7621b, - 0x2c83685cff491764, - 0xf32c1197fc4deca5, - 0x2b24d6bd922e68f6, - 0xb22b78449ac5113f, - 0x48f3b6edd1217c31, - 0x2e9ead75beb55ad6, - 0x174fd8b45fd42d6b, - 0x4ed4e4961238abfa, - 0x92e6b4eefebeb5d0, - 0x46a0d7320bef8208, - 0x47203ba8a5912a51, - 0x24f75bf8e69e3e96, - 0xf0b1382413cf094e, - 0xfee259fbc901f777, - 0x276a724b091cdb7d, - 0xbdf8f501ee75475f, - 0x599b3c224dec8691, - 0x6d84018f99c1eafe, - 0x7498b8e41cdb39ac, - 0xe0595e71217c5bb7, - 0x2aa43a273c50c0af, - 0xf50b43ec3f543b6e, - 0x838e3e2162734f70, - 0xc09492db4507ff58, - 0x72bfea9fdfc2ee67, - 0x11688acf9ccdfaa0, - 0x1a8190d86a9836b9, - 0x7acbd93bc615c795, - 0xc7332c3a286080ca, - 0x863445e94ee87d50, - 0xf6966a5fd0d6de85, - 0xe9ad814f96d5da1c, - 0x70a22fb69e3ea3d5, - 0x0a69f68d582b6440, - 0xb8428ec9c2ee757f, - 0x604a49e3ac8df12c, - 0x5b86f90b0c10cb23, - 0xe1d9b2eb8f02f3ee, - 0x29391394d3d22544, - 0xc8e0a17f5cd0d6aa, - 0xb58cc6a5f7a26ead, - 0x8193fb08238f02c2, - 0xd5c68f465b2f9f81, - 0xfcff9cd288fdbac5, - 0x77059157f359dc47, - 0x1d262e3907ff492b, - 0xfb582233e59ac557, - 0xddb2bce242f8b673, - 0x2577b76248e096cf, - 0x6f99c4a6d83da74c, - 0xc1147e41eb795701, - 0xf48baf76912a9337, - }, - { - 0x45b268a93acde4cc, - 0xaf7f0be884549d08, - 0x048354b3c1468263, - 0x925435c2c80efed2, - 0xee4e37f27fdffba7, - 0x167a33920c60f14d, - 0xfb123b52ea03e584, - 0x4a0cab53fdbb9007, - 0x9deaf6380f788a19, - 0xcb48ec558f0cb32a, - 0xb59dc4b2d6fef7e0, - 0xdcdbca22f4f3ecb6, - 0x11df5813549a9c40, - 0xe33fdedf568aced3, - 0xa0c1c8124322e9c3, - 0x07a56b8158fa6d0d, - 0x77279579b1e1f3dd, - 0xd9b18b74422ac004, - 0xb8ec2d9fffabc294, - 0xf4acf8a82d75914f, - 0x7bbf69b1ef2b6878, - 0xc4f62faf487ac7e1, - 0x76ce809cc67e5d0c, - 0x6711d88f92e4c14c, - 0x627b99d9243dedfe, - 0x234aa5c3dfb68b51, - 0x909b1f15262dbf6d, - 0x4f66ea054b62bcb5, - 0x1ae2cf5a52aa6ae8, - 0xbea053fbd0ce0148, - 0xed6808c0e66314c9, - 0x43fe16cd15a82710, - 0xcd049231a06970f6, - 0xe7bc8a6c97cc4cb0, - 0x337ce835fcb3b9c0, - 0x65def2587cc780f3, - 0x52214ede4132bb50, - 0x95f15e4390f493df, - 0x870839625dd2e0f1, - 0x41313c1afb8b66af, - 0x91720af051b211bc, - 0x477d427ed4eea573, - 0x2e3b4ceef6e3be25, - 0x82627834eb0bcc43, - 0x9c03e3dd78e724c8, - 0x2877328ad9867df9, - 0x14b51945e243b0f2, - 0x574b0f88f7eb97e2, - 0x88b6fa989aa4943a, - 0x19c4f068cb168586, - 0x50ee6409af11faef, - 0x7df317d5c04eaba4, - 0x7a567c5498b4c6a9, - 0xb6bbfb804f42188e, - 0x3cc22bcf3bc5cd0b, - 0xd04336eaaa397713, - 0xf02fac1bec33132c, - 0x2506dba7f0d3488d, - 0xd7e65d6bf2c31a1e, - 0x5eb9b2161ff820f5, - 0x842e0650c46e0f9f, - 0x716beb1d9e843001, - 0xa933758cab315ed4, - 0x3fe414fda2792265, - 0x27c9f1701ef00932, - 0x73a4c1ca70a771be, - 0x94184ba6e76b3d0e, - 0x40d829ff8c14c87e, - 0x0fbec3fac77674cb, - 0x3616a9634a6a9572, - 0x8f139119c25ef937, - 0xf545ed4d5aea3f9e, - 0xe802499650ba387b, - 0x6437e7bd0b582e22, - 0xe6559f89e053e261, - 0x80ad52e305288dfc, - 0x6dc55a23e34b9935, - 0xde14e0f51ad0ad09, - 0xc6390578a659865e, - 0x96d7617109487cb1, - 0xe2d6cb3a21156002, - 0x01e915e5779faed1, - 0xadb0213f6a77dcb7, - 0x9880b76eb9a1a6ab, - 0x5d9f8d248644cf9b, - 0xfd5e4536c5662658, - 0xf1c6b9fe9bacbdfd, - 0xeacd6341be9979c4, - 0xefa7221708405576, - 0x510771ecd88e543e, - 0xc2ba51cb671f043d, - 0x0ad482ac71af5879, - 0xfe787a045cdac936, - 0xb238af338e049aed, - 0xbd866cc94972ee26, - 0x615da6ebbd810290, - 0x3295fdd08b2c1711, - 0xf834046073bf0aea, - 0xf3099329758ffc42, - 0x1caeb13e7dcfa934, - 0xba2307481188832b, - 0x24efce42874ce65c, - 0x0e57d61fb0e9da1a, - 0xb3d1bad6f99b343c, - 0xc0757b1c893c4582, - 0x2b510db8403a9297, - 0x5c7698c1f1db614a, - 0x3e0d0118d5e68cb4, - 0xd60f488e855cb4cf, - 0xae961e0df3cb33d9, - 0x3a8e55ab14a00ed7, - 0x42170328623789c1, - 0x838b6dd19c946292, - 0x895fef7ded3b3aeb, - 0xcfcbb8e64e4a3149, - 0x064c7e642f65c3dc, - 0x3d2b3e2a4c5a63da, - 0x5bd3f340a9210c47, - 0xb474d157a1615931, - 0xac5934da1de87266, - 0x6ee365117af7765b, - 0xc86ed36716b05c44, - 0x9ba6885c201d49c5, - 0xb905387a88346c45, - 0x131072c4bab9ddff, - 0xbf49461ea751af99, - 0xd52977bc1ce05ba1, - 0xb0f785e46027db52, - 0x546d30ba6e57788c, - 0x305ad707650f56ae, - 0xc987c682612ff295, - 0xa5ab8944f5fbc571, - 0x7ed528e759f244ca, - 0x8ddcbbce2c7db888, - 0xaa154abe328db1ba, - 0x1e619be993ece88b, - 0x09f2bd9ee813b717, - 0x7401aa4b285d1cb3, - 0x21858f143195caee, - 0x48c381841398d1b8, - 0xfcb750d3b2f98889, - 0x39a86a998d1ce1b9, - 0x1f888e0ce473465a, - 0x7899568376978716, - 0x02cf2ad7ee2341bf, - 0x85c713b5b3f1a14e, - 0xff916fe12b4567e7, - 0x7c1a0230b7d10575, - 0x0c98fcc85eca9ba5, - 0xa3e7f720da9e06ad, - 0x6a6031a2bbb1f438, - 0x973e74947ed7d260, - 0x2cf4663918c0ff9a, - 0x5f50a7f368678e24, - 0x34d983b4a449d4cd, - 0x68af1b755592b587, - 0x7f3c3d022e6dea1b, - 0xabfc5f5b45121f6b, - 0x0d71e92d29553574, - 0xdffdf5106d4f03d8, - 0x081ba87b9f8c19c6, - 0xdb7ea1a3ac0981bb, - 0xbbca12ad66172dfa, - 0x79704366010829c7, - 0x179326777bff5f9c, - 0x0000000000000000, - 0xeb2476a4c906d715, - 0x724dd42f0738df6f, - 0xb752ee6538ddb65f, - 0x37ffbc863df53ba3, - 0x8efa84fcb5c157e6, - 0xe9eb5c73272596aa, - 0x1b0bdabf2535c439, - 0x86e12c872a4d4e20, - 0x9969a28bce3e087a, - 0xfafb2eb79d9c4b55, - 0x056a4156b6d92cb2, - 0x5a3ae6a5debea296, - 0x22a3b026a8292580, - 0x53c85b3b36ad1581, - 0xb11e900117b87583, - 0xc51f3a4a3fe56930, - 0xe019e1edcf3621bd, - 0xec811d2591fcba18, - 0x445b7d4c4d524a1d, - 0xa8da6069dcaef005, - 0x58f5cc72309de329, - 0xd4c062596b7ff570, - 0xce22ad0339d59f98, - 0x591cd99747024df8, - 0x8b90c5aa03187b54, - 0xf663d27fc356d0f0, - 0xd8589e9135b56ed5, - 0x35309651d3d67a1c, - 0x12f96721cd26732e, - 0xd28c1c3d441a36ac, - 0x492a946164077f69, - 0x2d1d73dc6f5f514b, - 0x6f0a70f40d68d88a, - 0x60b4b30eca1eac41, - 0xd36509d83385987d, - 0x0b3d97490630f6a8, - 0x9eccc90a96c46577, - 0xa20ee2c5ad01a87c, - 0xe49ab55e0e70a3de, - 0xa4429ca182646ba0, - 0xda97b446db962f6a, - 0xcced87d4d7f6de27, - 0x2ab8185d37a53c46, - 0x9f25dcefe15bcba6, - 0xc19c6ef9fea3eb53, - 0xa764a3931bd884ce, - 0x2fd2590b817c10f4, - 0x56a21a6d80743933, - 0xe573a0bb79ef0d0f, - 0x155c0ca095dc1e23, - 0x6c2c4fc694d437e4, - 0x10364df623053291, - 0xdd32dfc7836c4267, - 0x03263f3299bcef6e, - 0x66f8cd6ae57b6f9d, - 0x8c35ae2b5be21659, - 0x31b3c2e21290f87f, - 0x93bd2027bf915003, - 0x69460e90220d1b56, - 0x299e276fae19d328, - 0x63928c3c53a2432f, - 0x7082fef8e91b9ed0, - 0xbc6f792c3eed40f7, - 0x4c40d537d2de53db, - 0x75e8bfae5fc2b262, - 0x4da9c0d2a541fd0a, - 0x4e8fffe03cfd1264, - 0x2620e495696fa7e3, - 0xe1f0f408b8a98f6c, - 0xd1aa230fdda6d9c2, - 0xc7d0109dd1c6288f, - 0x8a79d04f7487d585, - 0x4694579ba3710ba2, - 0x38417f7cfa834f68, - 0x1d47a4db0a5007e5, - 0x206c9af1460a643f, - 0xa128ddf734bd4712, - 0x8144470672b7232d, - 0xf2e086cc02105293, - 0x182de58dbc892b57, - 0xcaa1f9b0f8931dfb, - 0x6b892447cc2e5ae9, - 0xf9dd11850420a43b, - 0x4be5beb68a243ed6, - 0x5584255f19c8d65d, - 0x3b67404e633fa006, - 0xa68db6766c472a1f, - 0xf78ac79ab4c97e21, - 0xc353442e1080aaec, - 0x9a4f9db95782e714, - }, - { - 0xc811a8058c3f55de, - 0x65f5b43196b50619, - 0xf74f96b1d6706e43, - 0x859d1e8bcb43d336, - 0x5aab8a85ccfa3d84, - 0xf9c7bf99c295fcfd, - 0xa21fd5a1de4b630f, - 0xcdb3ef763b8b456d, - 0x803f59f87cf7c385, - 0xb27c73be5f31913c, - 0x98e3ac6633b04821, - 0xbf61674c26b8f818, - 0x0ffbc995c4c130c8, - 0xaaa0862010761a98, - 0x6057f342210116aa, - 0xf63c760c0654cc35, - 0x2ddb45cc667d9042, - 0xbcf45a964bd40382, - 0x68e8a0c3ef3c6f3d, - 0xa7bd92d269ff73bc, - 0x290ae20201ed2287, - 0xb7de34cde885818f, - 0xd901eea7dd61059b, - 0xd6fa273219a03553, - 0xd56f1ae874cccec9, - 0xea31245c2e83f554, - 0x7034555da07be499, - 0xce26d2ac56e7bef7, - 0xfd161857a5054e38, - 0x6a0e7da4527436d1, - 0x5bd86a381cde9ff2, - 0xcaf7756231770c32, - 0xb09aaed9e279c8d0, - 0x5def1091c60674db, - 0x111046a2515e5045, - 0x23536ce4729802fc, - 0xc50cbcf7f5b63cfa, - 0x73a16887cd171f03, - 0x7d2941afd9f28dbd, - 0x3f5e3eb45a4f3b9d, - 0x84eefe361b677140, - 0x3db8e3d3e7076271, - 0x1a3a28f9f20fd248, - 0x7ebc7c75b49e7627, - 0x74e5f293c7eb565c, - 0x18dcf59e4f478ba4, - 0x0c6ef44fa9adcb52, - 0xc699812d98dac760, - 0x788b06dc6e469d0e, - 0xfc65f8ea7521ec4e, - 0x30a5f7219e8e0b55, - 0x2bec3f65bca57b6b, - 0xddd04969baf1b75e, - 0x99904cdbe394ea57, - 0x14b201d1e6ea40f6, - 0xbbb0c08241284add, - 0x50f20463bf8f1dff, - 0xe8d7f93b93cbacb8, - 0x4d8cb68e477c86e8, - 0xc1dd1b3992268e3f, - 0x7c5aa11209d62fcb, - 0x2f3d98abdb35c9ae, - 0x671369562bfd5ff5, - 0x15c1e16c36cee280, - 0x1d7eb2edf8f39b17, - 0xda94d37db00dfe01, - 0x877bc3ec760b8ada, - 0xcb8495dfe153ae44, - 0x05a24773b7b410b3, - 0x12857b783c32abdf, - 0x8eb770d06812513b, - 0x536739b9d2e3e665, - 0x584d57e271b26468, - 0xd789c78fc9849725, - 0xa935bbfa7d1ae102, - 0x8b1537a3dfa64188, - 0xd0cd5d9bc378de7a, - 0x4ac82c9a4d80cfb7, - 0x42777f1b83bdb620, - 0x72d2883a1d33bd75, - 0x5e7a2d4bab6a8f41, - 0xf4daab6bbb1c95d9, - 0x905cffe7fd8d31b6, - 0x83aa6422119b381f, - 0xc0aefb8442022c49, - 0xa0f908c663033ae3, - 0xa428af0804938826, - 0xade41c341a8a53c7, - 0xae7121ee77e6a85d, - 0xc47f5c4a25929e8c, - 0xb538e9aa55cdd863, - 0x06377aa9dad8eb29, - 0xa18ae87bb3279895, - 0x6edfda6a35e48414, - 0x6b7d9d19825094a7, - 0xd41cfa55a4e86cbf, - 0xe5caedc9ea42c59c, - 0xa36c351c0e6fc179, - 0x5181e4de6fabbf89, - 0xfff0c530184d17d4, - 0x9d41eb1584045892, - 0x1c0d525028d73961, - 0xf178ec180ca8856a, - 0x9a0571018ef811cd, - 0x4091a27c3ef5efcc, - 0x19af15239f6329d2, - 0x347450eff91eb990, - 0xe11b4a078dd27759, - 0xb9561de5fc601331, - 0x912f1f5a2da993c0, - 0x1654dcb65ba2191a, - 0x3e2dde098a6b99eb, - 0x8a66d71e0f82e3fe, - 0x8c51adb7d55a08d7, - 0x4533e50f8941ff7f, - 0x02e6dd67bd4859ec, - 0xe068aaba5df6d52f, - 0xc24826e3ff4a75a5, - 0x6c39070d88acddf8, - 0x6486548c4691a46f, - 0xd1bebd26135c7c0c, - 0xb30f93038f15334a, - 0x82d9849fc1bf9a69, - 0x9c320ba85420fae4, - 0xfa528243aff90767, - 0x9ed4d6cfe968a308, - 0xb825fd582c44b147, - 0x9b7691bc5edcb3bb, - 0xc7ea619048fe6516, - 0x1063a61f817af233, - 0x47d538683409a693, - 0x63c2ce984c6ded30, - 0x2a9fdfd86c81d91d, - 0x7b1e3b06032a6694, - 0x666089ebfbd9fd83, - 0x0a598ee67375207b, - 0x07449a140afc495f, - 0x2ca8a571b6593234, - 0x1f986f8a45bbc2fb, - 0x381aa4a050b372c2, - 0x5423a3add81faf3a, - 0x17273c0b8b86bb6c, - 0xfe83258dc869b5a2, - 0x287902bfd1c980f1, - 0xf5a94bd66b3837af, - 0x88800a79b2caba12, - 0x55504310083b0d4c, - 0xdf36940e07b9eeb2, - 0x04d1a7ce6790b2c5, - 0x612413fff125b4dc, - 0x26f12b97c52c124f, - 0x86082351a62f28ac, - 0xef93632f9937e5e7, - 0x3507b052293a1be6, - 0xe72c30ae570a9c70, - 0xd3586041ae1425e0, - 0xde4574b3d79d4cc4, - 0x92ba228040c5685a, - 0xf00b0ca5dc8c271c, - 0xbe1287f1f69c5a6e, - 0xf39e317fb1e0dc86, - 0x495d114020ec342d, - 0x699b407e3f18cd4b, - 0xdca3a9d46ad51528, - 0x0d1d14f279896924, - 0x0000000000000000, - 0x593eb75fa196c61e, - 0x2e4e78160b116bd8, - 0x6d4ae7b058887f8e, - 0xe65fd013872e3e06, - 0x7a6ddbbbd30ec4e2, - 0xac97fc89caaef1b1, - 0x09ccb33c1e19dbe1, - 0x89f3eac462ee1864, - 0x7770cf49aa87adc6, - 0x56c57eca6557f6d6, - 0x03953dda6d6cfb9a, - 0x36928d884456e07c, - 0x1eeb8f37959f608d, - 0x31d6179c4eaaa923, - 0x6fac3ad7e5c02662, - 0x43049fa653991456, - 0xabd3669dc052b8ee, - 0xaf02c153a7c20a2b, - 0x3ccb036e3723c007, - 0x93c9c23d90e1ca2c, - 0xc33bc65e2f6ed7d3, - 0x4cff56339758249e, - 0xb1e94e64325d6aa6, - 0x37e16d359472420a, - 0x79f8e661be623f78, - 0x5214d90402c74413, - 0x482ef1fdf0c8965b, - 0x13f69bc5ec1609a9, - 0x0e88292814e592be, - 0x4e198b542a107d72, - 0xccc00fcbebafe71b, - 0x1b49c844222b703e, - 0x2564164da840e9d5, - 0x20c6513e1ff4f966, - 0xbac3203f910ce8ab, - 0xf2edd1c261c47ef0, - 0x814cb945acd361f3, - 0x95feb8944a392105, - 0x5c9cf02c1622d6ad, - 0x971865f3f77178e9, - 0xbd87ba2b9bf0a1f4, - 0x444005b259655d09, - 0xed75be48247fbc0b, - 0x7596122e17cff42a, - 0xb44b091785e97a15, - 0x966b854e2755da9f, - 0xeee0839249134791, - 0x32432a4623c652b9, - 0xa8465b47ad3e4374, - 0xf8b45f2412b15e8b, - 0x2417f6f078644ba3, - 0xfb2162fe7fdda511, - 0x4bbbcc279da46dc1, - 0x0173e0bdd024a276, - 0x22208c59a2bca08a, - 0x8fc4906db836f34d, - 0xe4b90d743a6667ea, - 0x7147b5e0705f46ef, - 0x2782cb2a1508b039, - 0xec065ef5f45b1e7d, - 0x21b5b183cfd05b10, - 0xdbe733c060295c77, - 0x9fa73672394c017e, - 0xcf55321186c31c81, - 0xd8720e1a0d45a7ed, - 0x3b8f997a3ddf8958, - 0x3afc79c7edfb2b2e, - 0xe9a4198643ef0ece, - 0x5f09cdf67b4e2d37, - 0x4f6a6be9fa34df04, - 0xb6add47038a123f9, - 0x8d224d0a057eaaa1, - 0xc96248b85c1bf7a8, - 0xe3fd9760309a2eb5, - 0x0b2a6e5ba351820d, - 0xeb42c4e1fea75722, - 0x948d58299a1d8373, - 0x7fcf9cc864bad451, - 0xa55b4fb5d4b72a50, - 0x08bf5381ce3d7997, - 0x46a6d8d5e42d04e5, - 0xd22b80fc7e308796, - 0x57b69e77b57354a0, - 0x3969441d8097d0b4, - 0x3330cafbf3e2f0cf, - 0xe28e77dde0be8cc3, - 0x62b12e259c494f46, - 0xa6ce726fb9dbd1ca, - 0x41e242c1eed14dba, - 0x76032ff47aa30fb0, - }, - { - 0xe6f87e5c5b711fd0, - 0x258377800924fa16, - 0xc849e07e852ea4a8, - 0x5b4686a18f06c16a, - 0x0b32e9a2d77b416e, - 0xabda37a467815c66, - 0xf61796a81a686676, - 0xf5dc0b706391954b, - 0x4862f38db7e64bf1, - 0xff5c629a68bd85c5, - 0xcb827da6fcd75795, - 0x66d36daf69b9f089, - 0x356c9f74483d83b0, - 0x7cbcecb1238c99a1, - 0x36a702ac31c4708d, - 0x9eb6a8d02fbcdfd6, - 0x8b19fa51e5b3ae37, - 0x9ccfb5408a127d0b, - 0xbc0c78b508208f5a, - 0xe533e3842288eced, - 0xcec2c7d377c15fd2, - 0xec7817b6505d0f5e, - 0xb94cc2c08336871d, - 0x8c205db4cb0b04ad, - 0x763c855b28a0892f, - 0x588d1b79f6ff3257, - 0x3fecf69e4311933e, - 0x0fc0d39f803a18c9, - 0xee010a26f5f3ad83, - 0x10efe8f4411979a6, - 0x5dcda10c7de93a10, - 0x4a1bee1d1248e92c, - 0x53bff2db21847339, - 0xb4f50ccfa6a23d09, - 0x5fb4bc9cd84798cd, - 0xe88a2d8b071c56f9, - 0x7f7771695a756a9c, - 0xc5f02e71a0ba1ebc, - 0xa663f9ab4215e672, - 0x2eb19e22de5fbb78, - 0x0db9ce0f2594ba14, - 0x82520e6397664d84, - 0x2f031e6a0208ea98, - 0x5c7f2144a1be6bf0, - 0x7a37cb1cd16362db, - 0x83e08e2b4b311c64, - 0xcf70479bab960e32, - 0x856ba986b9dee71e, - 0xb5478c877af56ce9, - 0xb8fe42885f61d6fd, - 0x1bdd0156966238c8, - 0x622157923ef8a92e, - 0xfc97ff42114476f8, - 0x9d7d350856452ceb, - 0x4c90c9b0e0a71256, - 0x2308502dfbcb016c, - 0x2d7a03faa7a64845, - 0xf46e8b38bfc6c4ab, - 0xbdbef8fdd477deba, - 0x3aac4cebc8079b79, - 0xf09cb105e8879d0c, - 0x27fa6a10ac8a58cb, - 0x8960e7c1401d0cea, - 0x1a6f811e4a356928, - 0x90c4fb0773d196ff, - 0x43501a2f609d0a9f, - 0xf7a516e0c63f3796, - 0x1ce4a6b3b8da9252, - 0x1324752c38e08a9b, - 0xa5a864733bec154f, - 0x2bf124575549b33f, - 0xd766db15440dc5c7, - 0xa7d179e39e42b792, - 0xdadf151a61997fd3, - 0x86a0345ec0271423, - 0x38d5517b6da939a4, - 0x6518f077104003b4, - 0x02791d90a5aea2dd, - 0x88d267899c4a5d0a, - 0x930f66df0a2865c2, - 0x4ee9d4204509b08b, - 0x325538916685292a, - 0x412907bfc533a842, - 0xb27e2b62544dc673, - 0x6c5304456295e007, - 0x5af406e95351908a, - 0x1f2f3b6bc123616f, - 0xc37b09dc5255e5c6, - 0x3967d133b1fe6844, - 0x298839c7f0e711e2, - 0x409b87f71964f9a2, - 0xe938adc3db4b0719, - 0x0c0b4e47f9c3ebf4, - 0x5534d576d36b8843, - 0x4610a05aeb8b02d8, - 0x20c3cdf58232f251, - 0x6de1840dbec2b1e7, - 0xa0e8de06b0fa1d08, - 0x7b854b540d34333b, - 0x42e29a67bcca5b7f, - 0xd8a6088ac437dd0e, - 0xc63bb3a9d943ed81, - 0x21714dbd5e65a3b1, - 0x6761ede7b5eea169, - 0x2431f7c8d573abf6, - 0xd51fc685e1a3671a, - 0x5e063cd40410c92d, - 0x283ab98f2cb04002, - 0x8febc06cb2f2f790, - 0x17d64f116fa1d33c, - 0xe07359f1a99ee4aa, - 0x784ed68c74cdc006, - 0x6e2a19d5c73b42da, - 0x8712b4161c7045c3, - 0x371582e4ed93216d, - 0xace390414939f6fc, - 0x7ec5f12186223b7c, - 0xc0b094042bac16fb, - 0xf9d745379a527ebf, - 0x737c3f2ea3b68168, - 0x33e7b8d9bad278ca, - 0xa9a32a34c22ffebb, - 0xe48163ccfedfbd0d, - 0x8e5940246ea5a670, - 0x51c6ef4b842ad1e4, - 0x22bad065279c508c, - 0xd91488c218608cee, - 0x319ea5491f7cda17, - 0xd394e128134c9c60, - 0x094bf43272d5e3b3, - 0x9bf612a5a4aad791, - 0xccbbda43d26ffd0f, - 0x34de1f3c946ad250, - 0x4f5b5468995ee16b, - 0xdf9faf6fea8f7794, - 0x2648ea5870dd092b, - 0xbfc7e56d71d97c67, - 0xdde6b2ff4f21d549, - 0x3c276b463ae86003, - 0x91767b4faf86c71f, - 0x68a13e7835d4b9a0, - 0xb68c115f030c9fd4, - 0x141dd2c916582001, - 0x983d8f7ddd5324ac, - 0x64aa703fcc175254, - 0xc2c989948e02b426, - 0x3e5e76d69f46c2de, - 0x50746f03587d8004, - 0x45db3d829272f1e5, - 0x60584a029b560bf3, - 0xfbae58a73ffcdc62, - 0xa15a5e4e6cad4ce8, - 0x4ba96e55ce1fb8cc, - 0x08f9747aae82b253, - 0xc102144cf7fb471b, - 0x9f042898f3eb8e36, - 0x068b27adf2effb7a, - 0xedca97fe8c0a5ebe, - 0x778e0513f4f7d8cf, - 0x302c2501c32b8bf7, - 0x8d92ddfc175c554d, - 0xf865c57f46052f5f, - 0xeaf3301ba2b2f424, - 0xaa68b7ecbbd60d86, - 0x998f0f350104754c, - 0x0000000000000000, - 0xf12e314d34d0ccec, - 0x710522be061823b5, - 0xaf280d9930c005c1, - 0x97fd5ce25d693c65, - 0x19a41cc633cc9a15, - 0x95844172f8c79eb8, - 0xdc5432b7937684a9, - 0x9436c13a2490cf58, - 0x802b13f332c8ef59, - 0xc442ae397ced4f5c, - 0xfa1cd8efe3ab8d82, - 0xf2e5ac954d293fd1, - 0x6ad823e8907a1b7d, - 0x4d2249f83cf043b6, - 0x03cb9dd879f9f33d, - 0xde2d2f2736d82674, - 0x2a43a41f891ee2df, - 0x6f98999d1b6c133a, - 0xd4ad46cd3df436fa, - 0xbb35df50269825c0, - 0x964fdcaa813e6d85, - 0xeb41b0537ee5a5c4, - 0x0540ba758b160847, - 0xa41ae43be7bb44af, - 0xe3b8c429d0671797, - 0x819993bbee9fbeb9, - 0xae9a8dd1ec975421, - 0xf3572cdd917e6e31, - 0x6393d7dae2aff8ce, - 0x47a2201237dc5338, - 0xa32343dec903ee35, - 0x79fc56c4a89a91e6, - 0x01b28048dc5751e0, - 0x1296f564e4b7db7b, - 0x75f7188351597a12, - 0xdb6d9552bdce2e33, - 0x1e9dbb231d74308f, - 0x520d7293fdd322d9, - 0xe20a44610c304677, - 0xfeeee2d2b4ead425, - 0xca30fdee20800675, - 0x61eaca4a47015a13, - 0xe74afe1487264e30, - 0x2cc883b27bf119a5, - 0x1664cf59b3f682dc, - 0xa811aa7c1e78af5b, - 0x1d5626fb648dc3b2, - 0xb73e9117df5bce34, - 0xd05f7cf06ab56f5d, - 0xfd257f0acd132718, - 0x574dc8e676c52a9e, - 0x0739a7e52eb8aa9a, - 0x5486553e0f3cd9a3, - 0x56ff48aeaa927b7e, - 0xbe756525ad8e2d87, - 0x7d0e6cf9ffdbc841, - 0x3b1ecca31450ca99, - 0x6913be30e983e840, - 0xad511009956ea71c, - 0xb1b5b6ba2db4354e, - 0x4469bdca4e25a005, - 0x15af5281ca0f71e1, - 0x744598cb8d0e2bf2, - 0x593f9b312aa863b7, - 0xefb38a6e29a4fc63, - 0x6b6aa3a04c2d4a9d, - 0x3d95eb0ee6bf31e3, - 0xa291c3961554bfd5, - 0x18169c8eef9bcbf5, - 0x115d68bc9d4e2846, - 0xba875f18facf7420, - 0xd1edfcb8b6e23ebd, - 0xb00736f2f1e364ae, - 0x84d929ce6589b6fe, - 0x70b7a2f6da4f7255, - 0x0e7253d75c6d4929, - 0x04f23a3d574159a7, - 0x0a8069ea0b2c108e, - 0x49d073c56bb11a11, - 0x8aab7a1939e4ffd7, - 0xcd095a0b0e38acef, - 0xc9fb60365979f548, - 0x92bde697d67f3422, - 0xc78933e10514bc61, - 0xe1c1d9b975c9b54a, - 0xd2266160cf1bcd80, - 0x9a4492ed78fd8671, - 0xb3ccab2a881a9793, - 0x72cebf667fe1d088, - 0xd6d45b5d985a9427, - }, -}; - -__constant u64a sbob_rc64[12][8] = -{ - { - 0xe9daca1eda5b08b1, - 0x1f7c65c0812fcbeb, - 0x16d0452e43766a2f, - 0xfcc485758db84e71, - 0x0169679291e07c4b, - 0x15d360a4082a42a2, - 0x234d74cc36747605, - 0x0745a6f2596580dd, - }, - { - 0x1a2f9da98ab5a36f, - 0xd7b5700f469de34f, - 0x982b230a72eafef3, - 0x3101b5160f5ed561, - 0x5899d6126b17b59a, - 0xcaa70adbc261b55c, - 0x56cdcbd71ba2dd55, - 0xb79bb121700479e6, - }, - { - 0xc72fce2bacdc74f5, - 0x35843d6a28fc390a, - 0x8b1f9c525f5ef106, - 0x7b7b29b11475eaf2, - 0xb19e3590e40fe2d3, - 0x09db6260373ac9c1, - 0x31db7a8643f4b6c2, - 0xb20aba0af5961e99, - }, - { - 0xd26615e8b3df1fef, - 0xdde4715da0e148f9, - 0x7d3c5c337e858e48, - 0x3f355e68ad1c729d, - 0x75d603ed822cd7a9, - 0xbe0352933313b7d8, - 0xf137e893a1ea5334, - 0x2ed1e384bcbe0c22, - }, - { - 0x994747adac6bea4b, - 0x6323a96c0c413f9a, - 0x4a1086161f1c157f, - 0xbdff0f80d7359e35, - 0xa3f53a254717cdbf, - 0x161a2723b700ffdf, - 0xf563eaa97ea2567a, - 0x57fe6c7cfd581760, - }, - { - 0xd9d33a1daeae4fae, - 0xc039307a3bc3a46f, - 0x6ca44251f9c4662d, - 0xc68ef09ab49a7f18, - 0xb4b79a1cb7a6facf, - 0xb6c6bec2661ff20a, - 0x354f903672c571bf, - 0x6e7d64467a4068fa, - }, - { - 0xecc5aaee160ec7f4, - 0x540924bffe86ac51, - 0xc987bfe6c7c69e39, - 0xc9937a19333e47d3, - 0x372c822dc5ab9209, - 0x04054a2883694706, - 0xf34a3ca24c451735, - 0x93d4143a4d568688, - }, - { - 0xa7c9934d425b1f9b, - 0x41416e0c02aae703, - 0x1ede369c71f8b74e, - 0x9ac4db4d3b44b489, - 0x90069b92cb2b89f4, - 0x2fc4a5d12b8dd169, - 0xd9a8515935c2ac36, - 0x1ee702bfd40d7fa4, - }, - { - 0x9b223116545a8f37, - 0xde5f16ecd89a4c94, - 0x244289251b3a7d3a, - 0x84090de0b755d93c, - 0xb1ceb2db0b440a80, - 0x549c07a69a8a2b7b, - 0x602a1fcb92dc380e, - 0xdb5a238351446172, - }, - { - 0x526f0580a6debeab, - 0xf3f3e4b248e52a38, - 0xdb788aff1ce74189, - 0x0361331b8ae1ff1f, - 0x4b3369af0267e79f, - 0xf452763b306c1e7a, - 0xc3b63b15d1fa9836, - 0xed9c4598fbc7b474, - }, - { - 0xfb89c8efd09ecd7b, - 0x94fe5a63cdc60230, - 0x6107abebbb6bfad8, - 0x7966841421800120, - 0xcab948eaef711d8a, - 0x986e477d1dcdbaef, - 0x5dd86fc04a59a2de, - 0x1b2df381cda4ca6b, - }, - { - 0xba3116f167e78e37, - 0x7ab14904b08013d2, - 0x771ddfbc323ca4cd, - 0x9b9f2130d41220f8, - 0x86cc91189def805d, - 0x5228e188aaa41de7, - 0x991bb2d9d517f4fa, - 0x20d71bf14a92bc48, - }, -}; - DECLSPEC void streebog_g (u64x *h, const u64x *m, __local u64 (*s_sbob_sl64)[256]) { u64x k[8]; diff --git a/OpenCL/m11700_a3-pure.cl b/OpenCL/m11700_a3-pure.cl index c8f844422..7e0145699 100644 --- a/OpenCL/m11700_a3-pure.cl +++ b/OpenCL/m11700_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog256.cl" diff --git a/OpenCL/m11750_a0-pure.cl b/OpenCL/m11750_a0-pure.cl index 28946262f..c46356a25 100644 --- a/OpenCL/m11750_a0-pure.cl +++ b/OpenCL/m11750_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11750_a1-pure.cl b/OpenCL/m11750_a1-pure.cl index e32afb1f0..aedb73c66 100644 --- a/OpenCL/m11750_a1-pure.cl +++ b/OpenCL/m11750_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_streebog256.cl" diff --git a/OpenCL/m11750_a3-pure.cl b/OpenCL/m11750_a3-pure.cl index f6bbf25b4..6f62d205d 100644 --- a/OpenCL/m11750_a3-pure.cl +++ b/OpenCL/m11750_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog256.cl" diff --git a/OpenCL/m11760_a0-pure.cl b/OpenCL/m11760_a0-pure.cl index 053dccc05..6ae933825 100644 --- a/OpenCL/m11760_a0-pure.cl +++ b/OpenCL/m11760_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11760_a1-pure.cl b/OpenCL/m11760_a1-pure.cl index 136ba6b80..b13607bb0 100644 --- a/OpenCL/m11760_a1-pure.cl +++ b/OpenCL/m11760_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_streebog256.cl" diff --git a/OpenCL/m11760_a3-pure.cl b/OpenCL/m11760_a3-pure.cl index d444f4c9c..b6d0702d6 100644 --- a/OpenCL/m11760_a3-pure.cl +++ b/OpenCL/m11760_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog256.cl" diff --git a/OpenCL/m11800_a0-optimized.cl b/OpenCL/m11800_a0-optimized.cl index 7862976bf..729ae3c4f 100644 --- a/OpenCL/m11800_a0-optimized.cl +++ b/OpenCL/m11800_a0-optimized.cl @@ -6,2233 +6,16 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_streebog512.cl" #define INITVAL 0 -#if VECT_SIZE == 1 -#define BOX(S,n,i) (S)[(n)][(i)] -#elif VECT_SIZE == 2 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1]) -#elif VECT_SIZE == 4 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3]) -#elif VECT_SIZE == 8 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) -#elif VECT_SIZE == 16 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) -#endif - -#define SBOG_LPSti64 \ - BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff)) - -// constants - -__constant u64a sbob_sl64[8][256] = -{ - { - 0xd031c397ce553fe6, - 0x16ba5b01b006b525, - 0xa89bade6296e70c8, - 0x6a1f525d77d3435b, - 0x6e103570573dfa0b, - 0x660efb2a17fc95ab, - 0x76327a9e97634bf6, - 0x4bad9d6462458bf5, - 0xf1830caedbc3f748, - 0xc5c8f542669131ff, - 0x95044a1cdc48b0cb, - 0x892962df3cf8b866, - 0xb0b9e208e930c135, - 0xa14fb3f0611a767c, - 0x8d2605f21c160136, - 0xd6b71922fecc549e, - 0x37089438a5907d8b, - 0x0b5da38e5803d49c, - 0x5a5bcc9cea6f3cbc, - 0xedae246d3b73ffe5, - 0xd2b87e0fde22edce, - 0x5e54abb1ca8185ec, - 0x1de7f88fe80561b9, - 0xad5e1a870135a08c, - 0x2f2adbd665cecc76, - 0x5780b5a782f58358, - 0x3edc8a2eede47b3f, - 0xc9d95c3506bee70f, - 0x83be111d6c4e05ee, - 0xa603b90959367410, - 0x103c81b4809fde5d, - 0x2c69b6027d0c774a, - 0x399080d7d5c87953, - 0x09d41e16487406b4, - 0xcdd63b1826505e5f, - 0xf99dc2f49b0298e8, - 0x9cd0540a943cb67f, - 0xbca84b7f891f17c5, - 0x723d1db3b78df2a6, - 0x78aa6e71e73b4f2e, - 0x1433e699a071670d, - 0x84f21be454620782, - 0x98df3327b4d20f2f, - 0xf049dce2d3769e5c, - 0xdb6c60199656eb7a, - 0x648746b2078b4783, - 0x32cd23598dcbadcf, - 0x1ea4955bf0c7da85, - 0xe9a143401b9d46b5, - 0xfd92a5d9bbec21b8, - 0xc8138c790e0b8e1b, - 0x2ee00b9a6d7ba562, - 0xf85712b893b7f1fc, - 0xeb28fed80bea949d, - 0x564a65eb8a40ea4c, - 0x6c9988e8474a2823, - 0x4535898b121d8f2d, - 0xabd8c03231accbf4, - 0xba2e91cab9867cbd, - 0x7960be3def8e263a, - 0x0c11a977602fd6f0, - 0xcb50e1ad16c93527, - 0xeae22e94035ffd89, - 0x2866d12f5de2ce1a, - 0xff1b1841ab9bf390, - 0x9f9339de8cfe0d43, - 0x964727c8c48a0bf7, - 0x524502c6aaae531c, - 0x9b9c5ef3ac10b413, - 0x4fa2fa4942ab32a5, - 0x3f165a62e551122b, - 0xc74148da76e6e3d7, - 0x924840e5e464b2a7, - 0xd372ae43d69784da, - 0x233b72a105e11a86, - 0xa48a04914941a638, - 0xb4b68525c9de7865, - 0xddeabaaca6cf8002, - 0x0a9773c250b6bd88, - 0xc284ffbb5ebd3393, - 0x8ba0df472c8f6a4e, - 0x2aef6cb74d951c32, - 0x427983722a318d41, - 0x73f7cdffbf389bb2, - 0x074c0af9382c026c, - 0x8a6a0f0b243a035a, - 0x6fdae53c5f88931f, - 0xc68b98967e538ac3, - 0x44ff59c71aa8e639, - 0xe2fce0ce439e9229, - 0xa20cde2479d8cd40, - 0x19e89fa2c8ebd8e9, - 0xf446bbcff398270c, - 0x43b3533e2284e455, - 0xd82f0dcd8e945046, - 0x51066f12b26ce820, - 0xe73957af6bc5426d, - 0x081ece5a40c16fa0, - 0x3b193d4fc5bfab7b, - 0x7fe66488df174d42, - 0x0e9814ef705804d8, - 0x8137ac857c39d7c6, - 0xb1733244e185a821, - 0x695c3f896f11f867, - 0xf6cf0657e3eff524, - 0x1aabf276d02963d5, - 0x2da3664e75b91e5e, - 0x0289bd981077d228, - 0x90c1fd7df413608f, - 0x3c5537b6fd93a917, - 0xaa12107e3919a2e0, - 0x0686dab530996b78, - 0xdaa6b0559ee3826e, - 0xc34e2ff756085a87, - 0x6d5358a44fff4137, - 0xfc587595b35948ac, - 0x7ca5095cc7d5f67e, - 0xfb147f6c8b754ac0, - 0xbfeb26ab91ddacf9, - 0x6896efc567a49173, - 0xca9a31e11e7c5c33, - 0xbbe44186b13315a9, - 0x0ddb793b689abfe4, - 0x70b4a02ba7fa208e, - 0xe47a3a7b7307f951, - 0x8cecd5be14a36822, - 0xeeed49b923b144d9, - 0x17708b4db8b3dc31, - 0x6088219f2765fed3, - 0xb3fa8fdcf1f27a09, - 0x910b2d31fca6099b, - 0x0f52c4a378ed6dcc, - 0x50ccbf5ebad98134, - 0x6bd582117f662a4f, - 0x94ce9a50d4fdd9df, - 0x2b25bcfb45207526, - 0x67c42b661f49fcbf, - 0x492420fc723259dd, - 0x03436dd418c2bb3c, - 0x1f6e4517f872b391, - 0xa08563bc69af1f68, - 0xd43ea4baeebb86b6, - 0x01cad04c08b56914, - 0xac94cacb0980c998, - 0x54c3d8739a373864, - 0x26fec5c02dbacac2, - 0xdea9d778be0d3b3e, - 0x040f672d20eeb950, - 0xe5b0ea377bb29045, - 0xf30ab136cbb42560, - 0x62019c0737122cfb, - 0xe86b930c13282fa1, - 0xcc1ceb542ee5374b, - 0x538fd28aa21b3a08, - 0x1b61223ad89c0ac1, - 0x36c24474ad25149f, - 0x7a23d3e9f74c9d06, - 0xbe21f6e79968c5ed, - 0xcf5f868036278c77, - 0xf705d61beb5a9c30, - 0x4d2b47d152dce08d, - 0x5f9e7bfdc234ecf8, - 0x247778583dcd18ea, - 0x867ba67c4415d5aa, - 0x4ce1979d5a698999, - 0x0000000000000000, - 0xec64f42133c696f1, - 0xb57c5569c16b1171, - 0xc1c7926f467f88af, - 0x654d96fe0f3e2e97, - 0x15f936d5a8c40e19, - 0xb8a72c52a9f1ae95, - 0xa9517daa21db19dc, - 0x58d27104fa18ee94, - 0x5918a148f2ad8780, - 0x5cdd1629daf657c4, - 0x8274c15164fb6cfa, - 0xd1fb13dbc6e056f2, - 0x7d6fd910cf609f6a, - 0xb63f38bdd9a9aa4d, - 0x3d9fe7faf526c003, - 0x74bbc706871499de, - 0xdf630734b6b8522a, - 0x3ad3ed03cd0ac26f, - 0xfadeaf2083c023d4, - 0xc00d42234ecae1bb, - 0x8538cba85cd76e96, - 0xc402250e6e2458eb, - 0x47bc3413026a5d05, - 0xafd7a71f114272a4, - 0x978df784cc3f62e3, - 0xb96dfc1ea144c781, - 0x21b2cf391596c8ae, - 0x318e4e8d950916f3, - 0xce9556cc3e92e563, - 0x385a509bdd7d1047, - 0x358129a0b5e7afa3, - 0xe6f387e363702b79, - 0xe0755d5653e94001, - 0x7be903a5fff9f412, - 0x12b53c2c90e80c75, - 0x3307f315857ec4db, - 0x8fafb86a0c61d31e, - 0xd9e5dd8186213952, - 0x77f8aad29fd622e2, - 0x25bda814357871fe, - 0x7571174a8fa1f0ca, - 0x137fec60985d6561, - 0x30449ec19dbc7fe7, - 0xa540d4dd41f4cf2c, - 0xdc206ae0ae7ae916, - 0x5b911cd0e2da55a8, - 0xb2305f90f947131d, - 0x344bf9ecbd52c6b7, - 0x5d17c665d2433ed0, - 0x18224feec05eb1fd, - 0x9e59e992844b6457, - 0x9a568ebfa4a5dd07, - 0xa3c60e68716da454, - 0x7e2cb4c4d7a22456, - 0x87b176304ca0bcbe, - 0x413aeea632f3367d, - 0x9915e36bbc67663b, - 0x40f03eea3a465f69, - 0x1c2d28c3e0b008ad, - 0x4e682a054a1e5bb1, - 0x05c5b761285bd044, - 0xe1bf8d1a5b5c2915, - 0xf2c0617ac3014c74, - 0xb7f5e8f1d11cc359, - 0x63cb4c4b3fa745ef, - 0x9d1a84469c89df6b, - 0xe33630824b2bfb3d, - 0xd5f474f6e60eefa2, - 0xf58c6b83fb2d4e18, - 0x4676e45f0adf3411, - 0x20781f751d23a1ba, - 0xbd629b3381aa7ed1, - 0xae1d775319f71bb0, - 0xfed1c80da32e9a84, - 0x5509083f92825170, - 0x29ac01635557a70e, - 0xa7c9694551831d04, - 0x8e65682604d4ba0a, - 0x11f651f8882ab749, - 0xd77dc96ef6793d8a, - 0xef2799f52b042dcd, - 0x48eef0b07a8730c9, - 0x22f1a2ed0d547392, - 0x6142f1d32fd097c7, - 0x4a674d286af0e2e1, - 0x80fd7cc9748cbed2, - 0x717e7067af4f499a, - 0x938290a9ecd1dbb3, - 0x88e3b293344dd172, - 0x2734158c250fa3d6, - }, - { - 0x7e37e62dfc7d40c3, - 0x776f25a4ee939e5b, - 0xe045c850dd8fb5ad, - 0x86ed5ba711ff1952, - 0xe91d0bd9cf616b35, - 0x37e0ab256e408ffb, - 0x9607f6c031025a7a, - 0x0b02f5e116d23c9d, - 0xf3d8486bfb50650c, - 0x621cff27c40875f5, - 0x7d40cb71fa5fd34a, - 0x6daa6616daa29062, - 0x9f5f354923ec84e2, - 0xec847c3dc507c3b3, - 0x025a3668043ce205, - 0xa8bf9e6c4dac0b19, - 0xfa808be2e9bebb94, - 0xb5b99c5277c74fa3, - 0x78d9bc95f0397bcc, - 0xe332e50cdbad2624, - 0xc74fce129332797e, - 0x1729eceb2ea709ab, - 0xc2d6b9f69954d1f8, - 0x5d898cbfbab8551a, - 0x859a76fb17dd8adb, - 0x1be85886362f7fb5, - 0xf6413f8ff136cd8a, - 0xd3110fa5bbb7e35c, - 0x0a2feed514cc4d11, - 0xe83010edcd7f1ab9, - 0xa1e75de55f42d581, - 0xeede4a55c13b21b6, - 0xf2f5535ff94e1480, - 0x0cc1b46d1888761e, - 0xbce15fdb6529913b, - 0x2d25e8975a7181c2, - 0x71817f1ce2d7a554, - 0x2e52c5cb5c53124b, - 0xf9f7a6beef9c281d, - 0x9e722e7d21f2f56e, - 0xce170d9b81dca7e6, - 0x0e9b82051cb4941b, - 0x1e712f623c49d733, - 0x21e45cfa42f9f7dc, - 0xcb8e7a7f8bba0f60, - 0x8e98831a010fb646, - 0x474ccf0d8e895b23, - 0xa99285584fb27a95, - 0x8cc2b57205335443, - 0x42d5b8e984eff3a5, - 0x012d1b34021e718c, - 0x57a6626aae74180b, - 0xff19fc06e3d81312, - 0x35ba9d4d6a7c6dfe, - 0xc9d44c178f86ed65, - 0x506523e6a02e5288, - 0x03772d5c06229389, - 0x8b01f4fe0b691ec0, - 0xf8dabd8aed825991, - 0x4c4e3aec985b67be, - 0xb10df0827fbf96a9, - 0x6a69279ad4f8dae1, - 0xe78689dcd3d5ff2e, - 0x812e1a2b1fa553d1, - 0xfbad90d6eba0ca18, - 0x1ac543b234310e39, - 0x1604f7df2cb97827, - 0xa6241c6951189f02, - 0x753513cceaaf7c5e, - 0x64f2a59fc84c4efa, - 0x247d2b1e489f5f5a, - 0xdb64d718ab474c48, - 0x79f4a7a1f2270a40, - 0x1573da832a9bebae, - 0x3497867968621c72, - 0x514838d2a2302304, - 0xf0af6537fd72f685, - 0x1d06023e3a6b44ba, - 0x678588c3ce6edd73, - 0x66a893f7cc70acff, - 0xd4d24e29b5eda9df, - 0x3856321470ea6a6c, - 0x07c3418c0e5a4a83, - 0x2bcbb22f5635bacd, - 0x04b46cd00878d90a, - 0x06ee5ab80c443b0f, - 0x3b211f4876c8f9e5, - 0x0958c38912eede98, - 0xd14b39cdbf8b0159, - 0x397b292072f41be0, - 0x87c0409313e168de, - 0xad26e98847caa39f, - 0x4e140c849c6785bb, - 0xd5ff551db7f3d853, - 0xa0ca46d15d5ca40d, - 0xcd6020c787fe346f, - 0x84b76dcf15c3fb57, - 0xdefda0fca121e4ce, - 0x4b8d7b6096012d3d, - 0x9ac642ad298a2c64, - 0x0875d8bd10f0af14, - 0xb357c6ea7b8374ac, - 0x4d6321d89a451632, - 0xeda96709c719b23f, - 0xf76c24bbf328bc06, - 0xc662d526912c08f2, - 0x3ce25ec47892b366, - 0xb978283f6f4f39bd, - 0xc08c8f9e9d6833fd, - 0x4f3917b09e79f437, - 0x593de06fb2c08c10, - 0xd6887841b1d14bda, - 0x19b26eee32139db0, - 0xb494876675d93e2f, - 0x825937771987c058, - 0x90e9ac783d466175, - 0xf1827e03ff6c8709, - 0x945dc0a8353eb87f, - 0x4516f9658ab5b926, - 0x3f9573987eb020ef, - 0xb855330b6d514831, - 0x2ae6a91b542bcb41, - 0x6331e413c6160479, - 0x408f8e8180d311a0, - 0xeff35161c325503a, - 0xd06622f9bd9570d5, - 0x8876d9a20d4b8d49, - 0xa5533135573a0c8b, - 0xe168d364df91c421, - 0xf41b09e7f50a2f8f, - 0x12b09b0f24c1a12d, - 0xda49cc2ca9593dc4, - 0x1f5c34563e57a6bf, - 0x54d14f36a8568b82, - 0xaf7cdfe043f6419a, - 0xea6a2685c943f8bc, - 0xe5dcbfb4d7e91d2b, - 0xb27addde799d0520, - 0x6b443caed6e6ab6d, - 0x7bae91c9f61be845, - 0x3eb868ac7cae5163, - 0x11c7b65322e332a4, - 0xd23c1491b9a992d0, - 0x8fb5982e0311c7ca, - 0x70ac6428e0c9d4d8, - 0x895bc2960f55fcc5, - 0x76423e90ec8defd7, - 0x6ff0507ede9e7267, - 0x3dcf45f07a8cc2ea, - 0x4aa06054941f5cb1, - 0x5810fb5bb0defd9c, - 0x5efea1e3bc9ac693, - 0x6edd4b4adc8003eb, - 0x741808f8e8b10dd2, - 0x145ec1b728859a22, - 0x28bc9f7350172944, - 0x270a06424ebdccd3, - 0x972aedf4331c2bf6, - 0x059977e40a66a886, - 0x2550302a4a812ed6, - 0xdd8a8da0a7037747, - 0xc515f87a970e9b7b, - 0x3023eaa9601ac578, - 0xb7e3aa3a73fbada6, - 0x0fb699311eaae597, - 0x0000000000000000, - 0x310ef19d6204b4f4, - 0x229371a644db6455, - 0x0decaf591a960792, - 0x5ca4978bb8a62496, - 0x1c2b190a38753536, - 0x41a295b582cd602c, - 0x3279dcc16426277d, - 0xc1a194aa9f764271, - 0x139d803b26dfd0a1, - 0xae51c4d441e83016, - 0xd813fa44ad65dfc1, - 0xac0bf2bc45d4d213, - 0x23be6a9246c515d9, - 0x49d74d08923dcf38, - 0x9d05032127d066e7, - 0x2f7fdeff5e4d63c7, - 0xa47e2a0155247d07, - 0x99b16ff12fa8bfed, - 0x4661d4398c972aaf, - 0xdfd0bbc8a33f9542, - 0xdca79694a51d06cb, - 0xb020ebb67da1e725, - 0xba0f0563696daa34, - 0xe4f1a480d5f76ca7, - 0xc438e34e9510eaf7, - 0x939e81243b64f2fc, - 0x8defae46072d25cf, - 0x2c08f3a3586ff04e, - 0xd7a56375b3cf3a56, - 0x20c947ce40e78650, - 0x43f8a3dd86f18229, - 0x568b795eac6a6987, - 0x8003011f1dbb225d, - 0xf53612d3f7145e03, - 0x189f75da300dec3c, - 0x9570db9c3720c9f3, - 0xbb221e576b73dbb8, - 0x72f65240e4f536dd, - 0x443be25188abc8aa, - 0xe21ffe38d9b357a8, - 0xfd43ca6ee7e4f117, - 0xcaa3614b89a47eec, - 0xfe34e732e1c6629e, - 0x83742c431b99b1d4, - 0xcf3a16af83c2d66a, - 0xaae5a8044990e91c, - 0x26271d764ca3bd5f, - 0x91c4b74c3f5810f9, - 0x7c6dd045f841a2c6, - 0x7f1afd19fe63314f, - 0xc8f957238d989ce9, - 0xa709075d5306ee8e, - 0x55fc5402aa48fa0e, - 0x48fa563c9023beb4, - 0x65dfbeabca523f76, - 0x6c877d22d8bce1ee, - 0xcc4d3bf385e045e3, - 0xbebb69b36115733e, - 0x10eaad6720fd4328, - 0xb6ceb10e71e5dc2a, - 0xbdcc44ef6737e0b7, - 0x523f158ea412b08d, - 0x989c74c52db6ce61, - 0x9beb59992b945de8, - 0x8a2cefca09776f4c, - 0xa3bd6b8d5b7e3784, - 0xeb473db1cb5d8930, - 0xc3fba2c29b4aa074, - 0x9c28181525ce176b, - 0x683311f2d0c438e4, - 0x5fd3bad7be84b71f, - 0xfc6ed15ae5fa809b, - 0x36cdb0116c5efe77, - 0x29918447520958c8, - 0xa29070b959604608, - 0x53120ebaa60cc101, - 0x3a0c047c74d68869, - 0x691e0ac6d2da4968, - 0x73db4974e6eb4751, - 0x7a838afdf40599c9, - 0x5a4acd33b4e21f99, - 0x6046c94fc03497f0, - 0xe6ab92e8d1cb8ea2, - 0x3354c7f5663856f1, - 0xd93ee170af7bae4d, - 0x616bd27bc22ae67c, - 0x92b39a10397a8370, - 0xabc8b3304b8e9890, - 0xbf967287630b02b2, - 0x5b67d607b6fc6e15, - }, - { - 0x8ab0a96846e06a6d, - 0x43c7e80b4bf0b33a, - 0x08c9b3546b161ee5, - 0x39f1c235eba990be, - 0xc1bef2376606c7b2, - 0x2c209233614569aa, - 0xeb01523b6fc3289a, - 0x946953ab935acedd, - 0x272838f63e13340e, - 0x8b0455eca12ba052, - 0x77a1b2c4978ff8a2, - 0xa55122ca13e54086, - 0x2276135862d3f1cd, - 0xdb8ddfde08b76cfe, - 0x5d1e12c89e4a178a, - 0x0e56816b03969867, - 0xee5f79953303ed59, - 0xafed748bab78d71d, - 0x6d929f2df93e53ee, - 0xf5d8a8f8ba798c2a, - 0xf619b1698e39cf6b, - 0x95ddaf2f749104e2, - 0xec2a9c80e0886427, - 0xce5c8fd8825b95ea, - 0xc4e0d9993ac60271, - 0x4699c3a5173076f9, - 0x3d1b151f50a29f42, - 0x9ed505ea2bc75946, - 0x34665acfdc7f4b98, - 0x61b1fb53292342f7, - 0xc721c0080e864130, - 0x8693cd1696fd7b74, - 0x872731927136b14b, - 0xd3446c8a63a1721b, - 0x669a35e8a6680e4a, - 0xcab658f239509a16, - 0xa4e5de4ef42e8ab9, - 0x37a7435ee83f08d9, - 0x134e6239e26c7f96, - 0x82791a3c2df67488, - 0x3f6ef00a8329163c, - 0x8e5a7e42fdeb6591, - 0x5caaee4c7981ddb5, - 0x19f234785af1e80d, - 0x255ddde3ed98bd70, - 0x50898a32a99cccac, - 0x28ca4519da4e6656, - 0xae59880f4cb31d22, - 0x0d9798fa37d6db26, - 0x32f968f0b4ffcd1a, - 0xa00f09644f258545, - 0xfa3ad5175e24de72, - 0xf46c547c5db24615, - 0x713e80fbff0f7e20, - 0x7843cf2b73d2aafa, - 0xbd17ea36aedf62b4, - 0xfd111bacd16f92cf, - 0x4abaa7dbc72d67e0, - 0xb3416b5dad49fad3, - 0xbca316b24914a88b, - 0x15d150068aecf914, - 0xe27c1debe31efc40, - 0x4fe48c759beda223, - 0x7edcfd141b522c78, - 0x4e5070f17c26681c, - 0xe696cac15815f3bc, - 0x35d2a64b3bb481a7, - 0x800cff29fe7dfdf6, - 0x1ed9fac3d5baa4b0, - 0x6c2663a91ef599d1, - 0x03c1199134404341, - 0xf7ad4ded69f20554, - 0xcd9d9649b61bd6ab, - 0xc8c3bde7eadb1368, - 0xd131899fb02afb65, - 0x1d18e352e1fae7f1, - 0xda39235aef7ca6c1, - 0xa1bbf5e0a8ee4f7a, - 0x91377805cf9a0b1e, - 0x3138716180bf8e5b, - 0xd9f83acbdb3ce580, - 0x0275e515d38b897e, - 0x472d3f21f0fbbcc6, - 0x2d946eb7868ea395, - 0xba3c248d21942e09, - 0xe7223645bfde3983, - 0xff64feb902e41bb1, - 0xc97741630d10d957, - 0xc3cb1722b58d4ecc, - 0xa27aec719cae0c3b, - 0x99fecb51a48c15fb, - 0x1465ac826d27332b, - 0xe1bd047ad75ebf01, - 0x79f733af941960c5, - 0x672ec96c41a3c475, - 0xc27feba6524684f3, - 0x64efd0fd75e38734, - 0xed9e60040743ae18, - 0xfb8e2993b9ef144d, - 0x38453eb10c625a81, - 0x6978480742355c12, - 0x48cf42ce14a6ee9e, - 0x1cac1fd606312dce, - 0x7b82d6ba4792e9bb, - 0x9d141c7b1f871a07, - 0x5616b80dc11c4a2e, - 0xb849c198f21fa777, - 0x7ca91801c8d9a506, - 0xb1348e487ec273ad, - 0x41b20d1e987b3a44, - 0x7460ab55a3cfbbe3, - 0x84e628034576f20a, - 0x1b87d16d897a6173, - 0x0fe27defe45d5258, - 0x83cde6b8ca3dbeb7, - 0x0c23647ed01d1119, - 0x7a362a3ea0592384, - 0xb61f40f3f1893f10, - 0x75d457d1440471dc, - 0x4558da34237035b8, - 0xdca6116587fc2043, - 0x8d9b67d3c9ab26d0, - 0x2b0b5c88ee0e2517, - 0x6fe77a382ab5da90, - 0x269cc472d9d8fe31, - 0x63c41e46faa8cb89, - 0xb7abbc771642f52f, - 0x7d1de4852f126f39, - 0xa8c6ba3024339ba0, - 0x600507d7cee888c8, - 0x8fee82c61a20afae, - 0x57a2448926d78011, - 0xfca5e72836a458f0, - 0x072bcebb8f4b4cbd, - 0x497bbe4af36d24a1, - 0x3cafe99bb769557d, - 0x12fa9ebd05a7b5a9, - 0xe8c04baa5b836bdb, - 0x4273148fac3b7905, - 0x908384812851c121, - 0xe557d3506c55b0fd, - 0x72ff996acb4f3d61, - 0x3eda0c8e64e2dc03, - 0xf0868356e6b949e9, - 0x04ead72abb0b0ffc, - 0x17a4b5135967706a, - 0xe3c8e16f04d5367f, - 0xf84f30028daf570c, - 0x1846c8fcbd3a2232, - 0x5b8120f7f6ca9108, - 0xd46fa231ecea3ea6, - 0x334d947453340725, - 0x58403966c28ad249, - 0xbed6f3a79a9f21f5, - 0x68ccb483a5fe962d, - 0xd085751b57e1315a, - 0xfed0023de52fd18e, - 0x4b0e5b5f20e6addf, - 0x1a332de96eb1ab4c, - 0xa3ce10f57b65c604, - 0x108f7ba8d62c3cd7, - 0xab07a3a11073d8e1, - 0x6b0dad1291bed56c, - 0xf2f366433532c097, - 0x2e557726b2cee0d4, - 0x0000000000000000, - 0xcb02a476de9b5029, - 0xe4e32fd48b9e7ac2, - 0x734b65ee2c84f75e, - 0x6e5386bccd7e10af, - 0x01b4fc84e7cbca3f, - 0xcfe8735c65905fd5, - 0x3613bfda0ff4c2e6, - 0x113b872c31e7f6e8, - 0x2fe18ba255052aeb, - 0xe974b72ebc48a1e4, - 0x0abc5641b89d979b, - 0xb46aa5e62202b66e, - 0x44ec26b0c4bbff87, - 0xa6903b5b27a503c7, - 0x7f680190fc99e647, - 0x97a84a3aa71a8d9c, - 0xdd12ede16037ea7c, - 0xc554251ddd0dc84e, - 0x88c54c7d956be313, - 0x4d91696048662b5d, - 0xb08072cc9909b992, - 0xb5de5962c5c97c51, - 0x81b803ad19b637c9, - 0xb2f597d94a8230ec, - 0x0b08aac55f565da4, - 0xf1327fd2017283d6, - 0xad98919e78f35e63, - 0x6ab9519676751f53, - 0x24e921670a53774f, - 0xb9fd3d1c15d46d48, - 0x92f66194fbda485f, - 0x5a35dc7311015b37, - 0xded3f4705477a93d, - 0xc00a0eb381cd0d8d, - 0xbb88d809c65fe436, - 0x16104997beacba55, - 0x21b70ac95693b28c, - 0x59f4c5e225411876, - 0xd5db5eb50b21f499, - 0x55d7a19cf55c096f, - 0xa97246b4c3f8519f, - 0x8552d487a2bd3835, - 0x54635d181297c350, - 0x23c2efdc85183bf2, - 0x9f61f96ecc0c9379, - 0x534893a39ddc8fed, - 0x5edf0b59aa0a54cb, - 0xac2c6d1a9f38945c, - 0xd7aebba0d8aa7de7, - 0x2abfa00c09c5ef28, - 0xd84cc64f3cf72fbf, - 0x2003f64db15878b3, - 0xa724c7dfc06ec9f8, - 0x069f323f68808682, - 0xcc296acd51d01c94, - 0x055e2bae5cc0c5c3, - 0x6270e2c21d6301b6, - 0x3b842720382219c0, - 0xd2f0900e846ab824, - 0x52fc6f277a1745d2, - 0xc6953c8ce94d8b0f, - 0xe009f8fe3095753e, - 0x655b2c7992284d0b, - 0x984a37d54347dfc4, - 0xeab5aebf8808e2a5, - 0x9a3fd2c090cc56ba, - 0x9ca0e0fff84cd038, - 0x4c2595e4afade162, - 0xdf6708f4b3bc6302, - 0xbf620f237d54ebca, - 0x93429d101c118260, - 0x097d4fd08cddd4da, - 0x8c2f9b572e60ecef, - 0x708a7c7f18c4b41f, - 0x3a30dba4dfe9d3ff, - 0x4006f19a7fb0f07b, - 0x5f6bf7dd4dc19ef4, - 0x1f6d064732716e8f, - 0xf9fbcc866a649d33, - 0x308c8de567744464, - 0x8971b0f972a0292c, - 0xd61a47243f61b7d8, - 0xefeb8511d4c82766, - 0x961cb6be40d147a3, - 0xaab35f25f7b812de, - 0x76154e407044329d, - 0x513d76b64e570693, - 0xf3479ac7d2f90aa8, - 0x9b8b2e4477079c85, - 0x297eb99d3d85ac69, - }, - { - 0x3ef29d249b2c0a19, - 0xe9e16322b6f8622f, - 0x5536994047757f7a, - 0x9f4d56d5a47b0b33, - 0x822567466aa1174c, - 0xb8f5057deb082fb2, - 0xcc48c10bf4475f53, - 0x373088d4275dec3a, - 0x968f4325180aed10, - 0x173d232cf7016151, - 0xae4ed09f946fcc13, - 0xfd4b4741c4539873, - 0x1b5b3f0dd9933765, - 0x2ffcb0967b644052, - 0xe02376d20a89840c, - 0xa3ae3a70329b18d7, - 0x419cbd2335de8526, - 0xfafebf115b7c3199, - 0x0397074f85aa9b0d, - 0xc58ad4fb4836b970, - 0xbec60be3fc4104a8, - 0x1eff36dc4b708772, - 0x131fdc33ed8453b6, - 0x0844e33e341764d3, - 0x0ff11b6eab38cd39, - 0x64351f0a7761b85a, - 0x3b5694f509cfba0e, - 0x30857084b87245d0, - 0x47afb3bd2297ae3c, - 0xf2ba5c2f6f6b554a, - 0x74bdc4761f4f70e1, - 0xcfdfc64471edc45e, - 0xe610784c1dc0af16, - 0x7aca29d63c113f28, - 0x2ded411776a859af, - 0xac5f211e99a3d5ee, - 0xd484f949a87ef33b, - 0x3ce36ca596e013e4, - 0xd120f0983a9d432c, - 0x6bc40464dc597563, - 0x69d5f5e5d1956c9e, - 0x9ae95f043698bb24, - 0xc9ecc8da66a4ef44, - 0xd69508c8a5b2eac6, - 0xc40c2235c0503b80, - 0x38c193ba8c652103, - 0x1ceec75d46bc9e8f, - 0xd331011937515ad1, - 0xd8e2e56886eca50f, - 0xb137108d5779c991, - 0x709f3b6905ca4206, - 0x4feb50831680caef, - 0xec456af3241bd238, - 0x58d673afe181abbe, - 0x242f54e7cad9bf8c, - 0x0211f1810dcc19fd, - 0x90bc4dbb0f43c60a, - 0x9518446a9da0761d, - 0xa1bfcbf13f57012a, - 0x2bde4f8961e172b5, - 0x27b853a84f732481, - 0xb0b1e643df1f4b61, - 0x18cc38425c39ac68, - 0xd2b7f7d7bf37d821, - 0x3103864a3014c720, - 0x14aa246372abfa5c, - 0x6e600db54ebac574, - 0x394765740403a3f3, - 0x09c215f0bc71e623, - 0x2a58b947e987f045, - 0x7b4cdf18b477bdd8, - 0x9709b5eb906c6fe0, - 0x73083c268060d90b, - 0xfedc400e41f9037e, - 0x284948c6e44be9b8, - 0x728ecae808065bfb, - 0x06330e9e17492b1a, - 0x5950856169e7294e, - 0xbae4f4fce6c4364f, - 0xca7bcf95e30e7449, - 0x7d7fd186a33e96c2, - 0x52836110d85ad690, - 0x4dfaa1021b4cd312, - 0x913abb75872544fa, - 0xdd46ecb9140f1518, - 0x3d659a6b1e869114, - 0xc23f2cabd719109a, - 0xd713fe062dd46836, - 0xd0a60656b2fbc1dc, - 0x221c5a79dd909496, - 0xefd26dbca1b14935, - 0x0e77eda0235e4fc9, - 0xcbfd395b6b68f6b9, - 0x0de0eaefa6f4d4c4, - 0x0422ff1f1a8532e7, - 0xf969b85eded6aa94, - 0x7f6e2007aef28f3f, - 0x3ad0623b81a938fe, - 0x6624ee8b7aada1a7, - 0xb682e8ddc856607b, - 0xa78cc56f281e2a30, - 0xc79b257a45faa08d, - 0x5b4174e0642b30b3, - 0x5f638bff7eae0254, - 0x4bc9af9c0c05f808, - 0xce59308af98b46ae, - 0x8fc58da9cc55c388, - 0x803496c7676d0eb1, - 0xf33caae1e70dd7ba, - 0xbb6202326ea2b4bf, - 0xd5020f87201871cb, - 0x9d5ca754a9b712ce, - 0x841669d87de83c56, - 0x8a6184785eb6739f, - 0x420bba6cb0741e2b, - 0xf12d5b60eac1ce47, - 0x76ac35f71283691c, - 0x2c6bb7d9fecedb5f, - 0xfccdb18f4c351a83, - 0x1f79c012c3160582, - 0xf0abadae62a74cb7, - 0xe1a5801c82ef06fc, - 0x67a21845f2cb2357, - 0x5114665f5df04d9d, - 0xbf40fd2d74278658, - 0xa0393d3fb73183da, - 0x05a409d192e3b017, - 0xa9fb28cf0b4065f9, - 0x25a9a22942bf3d7c, - 0xdb75e22703463e02, - 0xb326e10c5ab5d06c, - 0xe7968e8295a62de6, - 0xb973f3b3636ead42, - 0xdf571d3819c30ce5, - 0xee549b7229d7cbc5, - 0x12992afd65e2d146, - 0xf8ef4e9056b02864, - 0xb7041e134030e28b, - 0xc02edd2adad50967, - 0x932b4af48ae95d07, - 0x6fe6fb7bc6dc4784, - 0x239aacb755f61666, - 0x401a4bedbdb807d6, - 0x485ea8d389af6305, - 0xa41bc220adb4b13d, - 0x753b32b89729f211, - 0x997e584bb3322029, - 0x1d683193ceda1c7f, - 0xff5ab6c0c99f818e, - 0x16bbd5e27f67e3a1, - 0xa59d34ee25d233cd, - 0x98f8ae853b54a2d9, - 0x6df70afacb105e79, - 0x795d2e99b9bba425, - 0x8e437b6744334178, - 0x0186f6ce886682f0, - 0xebf092a3bb347bd2, - 0xbcd7fa62f18d1d55, - 0xadd9d7d011c5571e, - 0x0bd3e471b1bdffde, - 0xaa6c2f808eeafef4, - 0x5ee57d31f6c880a4, - 0xf50fa47ff044fca0, - 0x1addc9c351f5b595, - 0xea76646d3352f922, - 0x0000000000000000, - 0x85909f16f58ebea6, - 0x46294573aaf12ccc, - 0x0a5512bf39db7d2e, - 0x78dbd85731dd26d5, - 0x29cfbe086c2d6b48, - 0x218b5d36583a0f9b, - 0x152cd2adfacd78ac, - 0x83a39188e2c795bc, - 0xc3b9da655f7f926a, - 0x9ecba01b2c1d89c3, - 0x07b5f8509f2fa9ea, - 0x7ee8d6c926940dcf, - 0x36b67e1aaf3b6eca, - 0x86079859702425ab, - 0xfb7849dfd31ab369, - 0x4c7c57cc932a51e2, - 0xd96413a60e8a27ff, - 0x263ea566c715a671, - 0x6c71fc344376dc89, - 0x4a4f595284637af8, - 0xdaf314e98b20bcf2, - 0x572768c14ab96687, - 0x1088db7c682ec8bb, - 0x887075f9537a6a62, - 0x2e7a4658f302c2a2, - 0x619116dbe582084d, - 0xa87dde018326e709, - 0xdcc01a779c6997e8, - 0xedc39c3dac7d50c8, - 0xa60a33a1a078a8c0, - 0xc1a82be452b38b97, - 0x3f746bea134a88e9, - 0xa228ccbebafd9a27, - 0xabead94e068c7c04, - 0xf48952b178227e50, - 0x5cf48cb0fb049959, - 0x6017e0156de48abd, - 0x4438b4f2a73d3531, - 0x8c528ae649ff5885, - 0xb515ef924dfcfb76, - 0x0c661c212e925634, - 0xb493195cc59a7986, - 0x9cda519a21d1903e, - 0x32948105b5be5c2d, - 0x194ace8cd45f2e98, - 0x438d4ca238129cdb, - 0x9b6fa9cabefe39d4, - 0x81b26009ef0b8c41, - 0xded1ebf691a58e15, - 0x4e6da64d9ee6481f, - 0x54b06f8ecf13fd8a, - 0x49d85e1d01c9e1f5, - 0xafc826511c094ee3, - 0xf698a33075ee67ad, - 0x5ac7822eec4db243, - 0x8dd47c28c199da75, - 0x89f68337db1ce892, - 0xcdce37c57c21dda3, - 0x530597de503c5460, - 0x6a42f2aa543ff793, - 0x5d727a7e73621ba9, - 0xe232875307459df1, - 0x56a19e0fc2dfe477, - 0xc61dd3b4cd9c227d, - 0xe5877f03986a341b, - 0x949eb2a415c6f4ed, - 0x6206119460289340, - 0x6380e75ae84e11b0, - 0x8be772b6d6d0f16f, - 0x50929091d596cf6d, - 0xe86795ec3e9ee0df, - 0x7cf927482b581432, - 0xc86a3e14eec26db4, - 0x7119cda78dacc0f6, - 0xe40189cd100cb6eb, - 0x92adbc3a028fdff7, - 0xb2a017c2d2d3529c, - 0x200dabf8d05c8d6b, - 0x34a78f9ba2f77737, - 0xe3b4719d8f231f01, - 0x45be423c2f5bb7c1, - 0xf71e55fefd88e55d, - 0x6853032b59f3ee6e, - 0x65b3e9c4ff073aaa, - 0x772ac3399ae5ebec, - 0x87816e97f842a75b, - 0x110e2db2e0484a4b, - 0x331277cb3dd8dedd, - 0xbd510cac79eb9fa5, - 0x352179552a91f5c7, - }, - { - 0x05ba7bc82c9b3220, - 0x31a54665f8b65e4f, - 0xb1b651f77547f4d4, - 0x8bfa0d857ba46682, - 0x85a96c5aa16a98bb, - 0x990faef908eb79c9, - 0xa15e37a247f4a62d, - 0x76857dcd5d27741e, - 0xf8c50b800a1820bc, - 0xbe65dcb201f7a2b4, - 0x666d1b986f9426e7, - 0x4cc921bf53c4e648, - 0x95410a0f93d9ca42, - 0x20cdccaa647ba4ef, - 0x429a4060890a1871, - 0x0c4ea4f69b32b38b, - 0xccda362dde354cd3, - 0x96dc23bc7c5b2fa9, - 0xc309bb68aa851ab3, - 0xd26131a73648e013, - 0x021dc52941fc4db2, - 0xcd5adab7704be48a, - 0xa77965d984ed71e6, - 0x32386fd61734bba4, - 0xe82d6dd538ab7245, - 0x5c2147ea6177b4b1, - 0x5da1ab70cf091ce8, - 0xac907fce72b8bdff, - 0x57c85dfd972278a8, - 0xa4e44c6a6b6f940d, - 0x3851995b4f1fdfe4, - 0x62578ccaed71bc9e, - 0xd9882bb0c01d2c0a, - 0x917b9d5d113c503b, - 0xa2c31e11a87643c6, - 0xe463c923a399c1ce, - 0xf71686c57ea876dc, - 0x87b4a973e096d509, - 0xaf0d567d9d3a5814, - 0xb40c2a3f59dcc6f4, - 0x3602f88495d121dd, - 0xd3e1dd3d9836484a, - 0xf945e71aa46688e5, - 0x7518547eb2a591f5, - 0x9366587450c01d89, - 0x9ea81018658c065b, - 0x4f54080cbc4603a3, - 0x2d0384c65137bf3d, - 0xdc325078ec861e2a, - 0xea30a8fc79573ff7, - 0x214d2030ca050cb6, - 0x65f0322b8016c30c, - 0x69be96dd1b247087, - 0xdb95ee9981e161b8, - 0xd1fc1814d9ca05f8, - 0x820ed2bbcc0de729, - 0x63d76050430f14c7, - 0x3bccb0e8a09d3a0f, - 0x8e40764d573f54a2, - 0x39d175c1e16177bd, - 0x12f5a37c734f1f4b, - 0xab37c12f1fdfc26d, - 0x5648b167395cd0f1, - 0x6c04ed1537bf42a7, - 0xed97161d14304065, - 0x7d6c67daab72b807, - 0xec17fa87ba4ee83c, - 0xdfaf79cb0304fbc1, - 0x733f060571bc463e, - 0x78d61c1287e98a27, - 0xd07cf48e77b4ada1, - 0xb9c262536c90dd26, - 0xe2449b5860801605, - 0x8fc09ad7f941fcfb, - 0xfad8cea94be46d0e, - 0xa343f28b0608eb9f, - 0x9b126bd04917347b, - 0x9a92874ae7699c22, - 0x1b017c42c4e69ee0, - 0x3a4c5c720ee39256, - 0x4b6e9f5e3ea399da, - 0x6ba353f45ad83d35, - 0xe7fee0904c1b2425, - 0x22d009832587e95d, - 0x842980c00f1430e2, - 0xc6b3c0a0861e2893, - 0x087433a419d729f2, - 0x341f3dadd42d6c6f, - 0xee0a3faefbb2a58e, - 0x4aee73c490dd3183, - 0xaab72db5b1a16a34, - 0xa92a04065e238fdf, - 0x7b4b35a1686b6fcc, - 0x6a23bf6ef4a6956c, - 0x191cb96b851ad352, - 0x55d598d4d6de351a, - 0xc9604de5f2ae7ef3, - 0x1ca6c2a3a981e172, - 0xde2f9551ad7a5398, - 0x3025aaff56c8f616, - 0x15521d9d1e2860d9, - 0x506fe31cfa45073a, - 0x189c55f12b647b0b, - 0x0180ec9aae7ea859, - 0x7cec8b40050c105e, - 0x2350e5198bf94104, - 0xef8ad33455cc0dd7, - 0x07a7bee16d677f92, - 0xe5e325b90de76997, - 0x5a061591a26e637a, - 0xb611ef1618208b46, - 0x09f4df3eb7a981ab, - 0x1ebb078ae87dacc0, - 0xb791038cb65e231f, - 0x0fd38d4574b05660, - 0x67edf702c1ea8ebe, - 0xba5f4be0831238cd, - 0xe3c477c2cefebe5c, - 0x0dce486c354c1bd2, - 0x8c5db36416c31910, - 0x26ea9ed1a7627324, - 0x039d29b3ef82e5eb, - 0x9f28fc82cbf2ae02, - 0xa8aae89cf05d2786, - 0x431aacfa2774b028, - 0xcf471f9e31b7a938, - 0x581bd0b8e3922ec8, - 0xbc78199b400bef06, - 0x90fb71c7bf42f862, - 0x1f3beb1046030499, - 0x683e7a47b55ad8de, - 0x988f4263a695d190, - 0xd808c72a6e638453, - 0x0627527bc319d7cb, - 0xebb04466d72997ae, - 0xe67e0c0ae2658c7c, - 0x14d2f107b056c880, - 0x7122c32c30400b8c, - 0x8a7ae11fd5dacedb, - 0xa0dedb38e98a0e74, - 0xad109354dcc615a6, - 0x0be91a17f655cc19, - 0x8ddd5ffeb8bdb149, - 0xbfe53028af890aed, - 0xd65ba6f5b4ad7a6a, - 0x7956f0882997227e, - 0x10e8665532b352f9, - 0x0e5361dfdacefe39, - 0xcec7f3049fc90161, - 0xff62b561677f5f2e, - 0x975ccf26d22587f0, - 0x51ef0f86543baf63, - 0x2f1e41ef10cbf28f, - 0x52722635bbb94a88, - 0xae8dbae73344f04d, - 0x410769d36688fd9a, - 0xb3ab94de34bbb966, - 0x801317928df1aa9b, - 0xa564a0f0c5113c54, - 0xf131d4bebdb1a117, - 0x7f71a2f3ea8ef5b5, - 0x40878549c8f655c3, - 0x7ef14e6944f05dec, - 0xd44663dcf55137d8, - 0xf2acfd0d523344fc, - 0x0000000000000000, - 0x5fbc6e598ef5515a, - 0x16cf342ef1aa8532, - 0xb036bd6ddb395c8d, - 0x13754fe6dd31b712, - 0xbbdfa77a2d6c9094, - 0x89e7c8ac3a582b30, - 0x3c6b0e09cdfa459d, - 0xc4ae0589c7e26521, - 0x49735a777f5fd468, - 0xcafd64561d2c9b18, - 0xda1502032f9fc9e1, - 0x8867243694268369, - 0x3782141e3baf8984, - 0x9cb5d53124704be9, - 0xd7db4a6f1ad3d233, - 0xa6f989432a93d9bf, - 0x9d3539ab8a0ee3b0, - 0x53f2caaf15c7e2d1, - 0x6e19283c76430f15, - 0x3debe2936384edc4, - 0x5e3c82c3208bf903, - 0x33b8834cb94a13fd, - 0x6470deb12e686b55, - 0x359fd1377a53c436, - 0x61caa57902f35975, - 0x043a975282e59a79, - 0xfd7f70482683129c, - 0xc52ee913699ccd78, - 0x28b9ff0e7dac8d1d, - 0x5455744e78a09d43, - 0xcb7d88ccb3523341, - 0x44bd121b4a13cfba, - 0x4d49cd25fdba4e11, - 0x3e76cb208c06082f, - 0x3ff627ba2278a076, - 0xc28957f204fbb2ea, - 0x453dfe81e46d67e3, - 0x94c1e6953da7621b, - 0x2c83685cff491764, - 0xf32c1197fc4deca5, - 0x2b24d6bd922e68f6, - 0xb22b78449ac5113f, - 0x48f3b6edd1217c31, - 0x2e9ead75beb55ad6, - 0x174fd8b45fd42d6b, - 0x4ed4e4961238abfa, - 0x92e6b4eefebeb5d0, - 0x46a0d7320bef8208, - 0x47203ba8a5912a51, - 0x24f75bf8e69e3e96, - 0xf0b1382413cf094e, - 0xfee259fbc901f777, - 0x276a724b091cdb7d, - 0xbdf8f501ee75475f, - 0x599b3c224dec8691, - 0x6d84018f99c1eafe, - 0x7498b8e41cdb39ac, - 0xe0595e71217c5bb7, - 0x2aa43a273c50c0af, - 0xf50b43ec3f543b6e, - 0x838e3e2162734f70, - 0xc09492db4507ff58, - 0x72bfea9fdfc2ee67, - 0x11688acf9ccdfaa0, - 0x1a8190d86a9836b9, - 0x7acbd93bc615c795, - 0xc7332c3a286080ca, - 0x863445e94ee87d50, - 0xf6966a5fd0d6de85, - 0xe9ad814f96d5da1c, - 0x70a22fb69e3ea3d5, - 0x0a69f68d582b6440, - 0xb8428ec9c2ee757f, - 0x604a49e3ac8df12c, - 0x5b86f90b0c10cb23, - 0xe1d9b2eb8f02f3ee, - 0x29391394d3d22544, - 0xc8e0a17f5cd0d6aa, - 0xb58cc6a5f7a26ead, - 0x8193fb08238f02c2, - 0xd5c68f465b2f9f81, - 0xfcff9cd288fdbac5, - 0x77059157f359dc47, - 0x1d262e3907ff492b, - 0xfb582233e59ac557, - 0xddb2bce242f8b673, - 0x2577b76248e096cf, - 0x6f99c4a6d83da74c, - 0xc1147e41eb795701, - 0xf48baf76912a9337, - }, - { - 0x45b268a93acde4cc, - 0xaf7f0be884549d08, - 0x048354b3c1468263, - 0x925435c2c80efed2, - 0xee4e37f27fdffba7, - 0x167a33920c60f14d, - 0xfb123b52ea03e584, - 0x4a0cab53fdbb9007, - 0x9deaf6380f788a19, - 0xcb48ec558f0cb32a, - 0xb59dc4b2d6fef7e0, - 0xdcdbca22f4f3ecb6, - 0x11df5813549a9c40, - 0xe33fdedf568aced3, - 0xa0c1c8124322e9c3, - 0x07a56b8158fa6d0d, - 0x77279579b1e1f3dd, - 0xd9b18b74422ac004, - 0xb8ec2d9fffabc294, - 0xf4acf8a82d75914f, - 0x7bbf69b1ef2b6878, - 0xc4f62faf487ac7e1, - 0x76ce809cc67e5d0c, - 0x6711d88f92e4c14c, - 0x627b99d9243dedfe, - 0x234aa5c3dfb68b51, - 0x909b1f15262dbf6d, - 0x4f66ea054b62bcb5, - 0x1ae2cf5a52aa6ae8, - 0xbea053fbd0ce0148, - 0xed6808c0e66314c9, - 0x43fe16cd15a82710, - 0xcd049231a06970f6, - 0xe7bc8a6c97cc4cb0, - 0x337ce835fcb3b9c0, - 0x65def2587cc780f3, - 0x52214ede4132bb50, - 0x95f15e4390f493df, - 0x870839625dd2e0f1, - 0x41313c1afb8b66af, - 0x91720af051b211bc, - 0x477d427ed4eea573, - 0x2e3b4ceef6e3be25, - 0x82627834eb0bcc43, - 0x9c03e3dd78e724c8, - 0x2877328ad9867df9, - 0x14b51945e243b0f2, - 0x574b0f88f7eb97e2, - 0x88b6fa989aa4943a, - 0x19c4f068cb168586, - 0x50ee6409af11faef, - 0x7df317d5c04eaba4, - 0x7a567c5498b4c6a9, - 0xb6bbfb804f42188e, - 0x3cc22bcf3bc5cd0b, - 0xd04336eaaa397713, - 0xf02fac1bec33132c, - 0x2506dba7f0d3488d, - 0xd7e65d6bf2c31a1e, - 0x5eb9b2161ff820f5, - 0x842e0650c46e0f9f, - 0x716beb1d9e843001, - 0xa933758cab315ed4, - 0x3fe414fda2792265, - 0x27c9f1701ef00932, - 0x73a4c1ca70a771be, - 0x94184ba6e76b3d0e, - 0x40d829ff8c14c87e, - 0x0fbec3fac77674cb, - 0x3616a9634a6a9572, - 0x8f139119c25ef937, - 0xf545ed4d5aea3f9e, - 0xe802499650ba387b, - 0x6437e7bd0b582e22, - 0xe6559f89e053e261, - 0x80ad52e305288dfc, - 0x6dc55a23e34b9935, - 0xde14e0f51ad0ad09, - 0xc6390578a659865e, - 0x96d7617109487cb1, - 0xe2d6cb3a21156002, - 0x01e915e5779faed1, - 0xadb0213f6a77dcb7, - 0x9880b76eb9a1a6ab, - 0x5d9f8d248644cf9b, - 0xfd5e4536c5662658, - 0xf1c6b9fe9bacbdfd, - 0xeacd6341be9979c4, - 0xefa7221708405576, - 0x510771ecd88e543e, - 0xc2ba51cb671f043d, - 0x0ad482ac71af5879, - 0xfe787a045cdac936, - 0xb238af338e049aed, - 0xbd866cc94972ee26, - 0x615da6ebbd810290, - 0x3295fdd08b2c1711, - 0xf834046073bf0aea, - 0xf3099329758ffc42, - 0x1caeb13e7dcfa934, - 0xba2307481188832b, - 0x24efce42874ce65c, - 0x0e57d61fb0e9da1a, - 0xb3d1bad6f99b343c, - 0xc0757b1c893c4582, - 0x2b510db8403a9297, - 0x5c7698c1f1db614a, - 0x3e0d0118d5e68cb4, - 0xd60f488e855cb4cf, - 0xae961e0df3cb33d9, - 0x3a8e55ab14a00ed7, - 0x42170328623789c1, - 0x838b6dd19c946292, - 0x895fef7ded3b3aeb, - 0xcfcbb8e64e4a3149, - 0x064c7e642f65c3dc, - 0x3d2b3e2a4c5a63da, - 0x5bd3f340a9210c47, - 0xb474d157a1615931, - 0xac5934da1de87266, - 0x6ee365117af7765b, - 0xc86ed36716b05c44, - 0x9ba6885c201d49c5, - 0xb905387a88346c45, - 0x131072c4bab9ddff, - 0xbf49461ea751af99, - 0xd52977bc1ce05ba1, - 0xb0f785e46027db52, - 0x546d30ba6e57788c, - 0x305ad707650f56ae, - 0xc987c682612ff295, - 0xa5ab8944f5fbc571, - 0x7ed528e759f244ca, - 0x8ddcbbce2c7db888, - 0xaa154abe328db1ba, - 0x1e619be993ece88b, - 0x09f2bd9ee813b717, - 0x7401aa4b285d1cb3, - 0x21858f143195caee, - 0x48c381841398d1b8, - 0xfcb750d3b2f98889, - 0x39a86a998d1ce1b9, - 0x1f888e0ce473465a, - 0x7899568376978716, - 0x02cf2ad7ee2341bf, - 0x85c713b5b3f1a14e, - 0xff916fe12b4567e7, - 0x7c1a0230b7d10575, - 0x0c98fcc85eca9ba5, - 0xa3e7f720da9e06ad, - 0x6a6031a2bbb1f438, - 0x973e74947ed7d260, - 0x2cf4663918c0ff9a, - 0x5f50a7f368678e24, - 0x34d983b4a449d4cd, - 0x68af1b755592b587, - 0x7f3c3d022e6dea1b, - 0xabfc5f5b45121f6b, - 0x0d71e92d29553574, - 0xdffdf5106d4f03d8, - 0x081ba87b9f8c19c6, - 0xdb7ea1a3ac0981bb, - 0xbbca12ad66172dfa, - 0x79704366010829c7, - 0x179326777bff5f9c, - 0x0000000000000000, - 0xeb2476a4c906d715, - 0x724dd42f0738df6f, - 0xb752ee6538ddb65f, - 0x37ffbc863df53ba3, - 0x8efa84fcb5c157e6, - 0xe9eb5c73272596aa, - 0x1b0bdabf2535c439, - 0x86e12c872a4d4e20, - 0x9969a28bce3e087a, - 0xfafb2eb79d9c4b55, - 0x056a4156b6d92cb2, - 0x5a3ae6a5debea296, - 0x22a3b026a8292580, - 0x53c85b3b36ad1581, - 0xb11e900117b87583, - 0xc51f3a4a3fe56930, - 0xe019e1edcf3621bd, - 0xec811d2591fcba18, - 0x445b7d4c4d524a1d, - 0xa8da6069dcaef005, - 0x58f5cc72309de329, - 0xd4c062596b7ff570, - 0xce22ad0339d59f98, - 0x591cd99747024df8, - 0x8b90c5aa03187b54, - 0xf663d27fc356d0f0, - 0xd8589e9135b56ed5, - 0x35309651d3d67a1c, - 0x12f96721cd26732e, - 0xd28c1c3d441a36ac, - 0x492a946164077f69, - 0x2d1d73dc6f5f514b, - 0x6f0a70f40d68d88a, - 0x60b4b30eca1eac41, - 0xd36509d83385987d, - 0x0b3d97490630f6a8, - 0x9eccc90a96c46577, - 0xa20ee2c5ad01a87c, - 0xe49ab55e0e70a3de, - 0xa4429ca182646ba0, - 0xda97b446db962f6a, - 0xcced87d4d7f6de27, - 0x2ab8185d37a53c46, - 0x9f25dcefe15bcba6, - 0xc19c6ef9fea3eb53, - 0xa764a3931bd884ce, - 0x2fd2590b817c10f4, - 0x56a21a6d80743933, - 0xe573a0bb79ef0d0f, - 0x155c0ca095dc1e23, - 0x6c2c4fc694d437e4, - 0x10364df623053291, - 0xdd32dfc7836c4267, - 0x03263f3299bcef6e, - 0x66f8cd6ae57b6f9d, - 0x8c35ae2b5be21659, - 0x31b3c2e21290f87f, - 0x93bd2027bf915003, - 0x69460e90220d1b56, - 0x299e276fae19d328, - 0x63928c3c53a2432f, - 0x7082fef8e91b9ed0, - 0xbc6f792c3eed40f7, - 0x4c40d537d2de53db, - 0x75e8bfae5fc2b262, - 0x4da9c0d2a541fd0a, - 0x4e8fffe03cfd1264, - 0x2620e495696fa7e3, - 0xe1f0f408b8a98f6c, - 0xd1aa230fdda6d9c2, - 0xc7d0109dd1c6288f, - 0x8a79d04f7487d585, - 0x4694579ba3710ba2, - 0x38417f7cfa834f68, - 0x1d47a4db0a5007e5, - 0x206c9af1460a643f, - 0xa128ddf734bd4712, - 0x8144470672b7232d, - 0xf2e086cc02105293, - 0x182de58dbc892b57, - 0xcaa1f9b0f8931dfb, - 0x6b892447cc2e5ae9, - 0xf9dd11850420a43b, - 0x4be5beb68a243ed6, - 0x5584255f19c8d65d, - 0x3b67404e633fa006, - 0xa68db6766c472a1f, - 0xf78ac79ab4c97e21, - 0xc353442e1080aaec, - 0x9a4f9db95782e714, - }, - { - 0xc811a8058c3f55de, - 0x65f5b43196b50619, - 0xf74f96b1d6706e43, - 0x859d1e8bcb43d336, - 0x5aab8a85ccfa3d84, - 0xf9c7bf99c295fcfd, - 0xa21fd5a1de4b630f, - 0xcdb3ef763b8b456d, - 0x803f59f87cf7c385, - 0xb27c73be5f31913c, - 0x98e3ac6633b04821, - 0xbf61674c26b8f818, - 0x0ffbc995c4c130c8, - 0xaaa0862010761a98, - 0x6057f342210116aa, - 0xf63c760c0654cc35, - 0x2ddb45cc667d9042, - 0xbcf45a964bd40382, - 0x68e8a0c3ef3c6f3d, - 0xa7bd92d269ff73bc, - 0x290ae20201ed2287, - 0xb7de34cde885818f, - 0xd901eea7dd61059b, - 0xd6fa273219a03553, - 0xd56f1ae874cccec9, - 0xea31245c2e83f554, - 0x7034555da07be499, - 0xce26d2ac56e7bef7, - 0xfd161857a5054e38, - 0x6a0e7da4527436d1, - 0x5bd86a381cde9ff2, - 0xcaf7756231770c32, - 0xb09aaed9e279c8d0, - 0x5def1091c60674db, - 0x111046a2515e5045, - 0x23536ce4729802fc, - 0xc50cbcf7f5b63cfa, - 0x73a16887cd171f03, - 0x7d2941afd9f28dbd, - 0x3f5e3eb45a4f3b9d, - 0x84eefe361b677140, - 0x3db8e3d3e7076271, - 0x1a3a28f9f20fd248, - 0x7ebc7c75b49e7627, - 0x74e5f293c7eb565c, - 0x18dcf59e4f478ba4, - 0x0c6ef44fa9adcb52, - 0xc699812d98dac760, - 0x788b06dc6e469d0e, - 0xfc65f8ea7521ec4e, - 0x30a5f7219e8e0b55, - 0x2bec3f65bca57b6b, - 0xddd04969baf1b75e, - 0x99904cdbe394ea57, - 0x14b201d1e6ea40f6, - 0xbbb0c08241284add, - 0x50f20463bf8f1dff, - 0xe8d7f93b93cbacb8, - 0x4d8cb68e477c86e8, - 0xc1dd1b3992268e3f, - 0x7c5aa11209d62fcb, - 0x2f3d98abdb35c9ae, - 0x671369562bfd5ff5, - 0x15c1e16c36cee280, - 0x1d7eb2edf8f39b17, - 0xda94d37db00dfe01, - 0x877bc3ec760b8ada, - 0xcb8495dfe153ae44, - 0x05a24773b7b410b3, - 0x12857b783c32abdf, - 0x8eb770d06812513b, - 0x536739b9d2e3e665, - 0x584d57e271b26468, - 0xd789c78fc9849725, - 0xa935bbfa7d1ae102, - 0x8b1537a3dfa64188, - 0xd0cd5d9bc378de7a, - 0x4ac82c9a4d80cfb7, - 0x42777f1b83bdb620, - 0x72d2883a1d33bd75, - 0x5e7a2d4bab6a8f41, - 0xf4daab6bbb1c95d9, - 0x905cffe7fd8d31b6, - 0x83aa6422119b381f, - 0xc0aefb8442022c49, - 0xa0f908c663033ae3, - 0xa428af0804938826, - 0xade41c341a8a53c7, - 0xae7121ee77e6a85d, - 0xc47f5c4a25929e8c, - 0xb538e9aa55cdd863, - 0x06377aa9dad8eb29, - 0xa18ae87bb3279895, - 0x6edfda6a35e48414, - 0x6b7d9d19825094a7, - 0xd41cfa55a4e86cbf, - 0xe5caedc9ea42c59c, - 0xa36c351c0e6fc179, - 0x5181e4de6fabbf89, - 0xfff0c530184d17d4, - 0x9d41eb1584045892, - 0x1c0d525028d73961, - 0xf178ec180ca8856a, - 0x9a0571018ef811cd, - 0x4091a27c3ef5efcc, - 0x19af15239f6329d2, - 0x347450eff91eb990, - 0xe11b4a078dd27759, - 0xb9561de5fc601331, - 0x912f1f5a2da993c0, - 0x1654dcb65ba2191a, - 0x3e2dde098a6b99eb, - 0x8a66d71e0f82e3fe, - 0x8c51adb7d55a08d7, - 0x4533e50f8941ff7f, - 0x02e6dd67bd4859ec, - 0xe068aaba5df6d52f, - 0xc24826e3ff4a75a5, - 0x6c39070d88acddf8, - 0x6486548c4691a46f, - 0xd1bebd26135c7c0c, - 0xb30f93038f15334a, - 0x82d9849fc1bf9a69, - 0x9c320ba85420fae4, - 0xfa528243aff90767, - 0x9ed4d6cfe968a308, - 0xb825fd582c44b147, - 0x9b7691bc5edcb3bb, - 0xc7ea619048fe6516, - 0x1063a61f817af233, - 0x47d538683409a693, - 0x63c2ce984c6ded30, - 0x2a9fdfd86c81d91d, - 0x7b1e3b06032a6694, - 0x666089ebfbd9fd83, - 0x0a598ee67375207b, - 0x07449a140afc495f, - 0x2ca8a571b6593234, - 0x1f986f8a45bbc2fb, - 0x381aa4a050b372c2, - 0x5423a3add81faf3a, - 0x17273c0b8b86bb6c, - 0xfe83258dc869b5a2, - 0x287902bfd1c980f1, - 0xf5a94bd66b3837af, - 0x88800a79b2caba12, - 0x55504310083b0d4c, - 0xdf36940e07b9eeb2, - 0x04d1a7ce6790b2c5, - 0x612413fff125b4dc, - 0x26f12b97c52c124f, - 0x86082351a62f28ac, - 0xef93632f9937e5e7, - 0x3507b052293a1be6, - 0xe72c30ae570a9c70, - 0xd3586041ae1425e0, - 0xde4574b3d79d4cc4, - 0x92ba228040c5685a, - 0xf00b0ca5dc8c271c, - 0xbe1287f1f69c5a6e, - 0xf39e317fb1e0dc86, - 0x495d114020ec342d, - 0x699b407e3f18cd4b, - 0xdca3a9d46ad51528, - 0x0d1d14f279896924, - 0x0000000000000000, - 0x593eb75fa196c61e, - 0x2e4e78160b116bd8, - 0x6d4ae7b058887f8e, - 0xe65fd013872e3e06, - 0x7a6ddbbbd30ec4e2, - 0xac97fc89caaef1b1, - 0x09ccb33c1e19dbe1, - 0x89f3eac462ee1864, - 0x7770cf49aa87adc6, - 0x56c57eca6557f6d6, - 0x03953dda6d6cfb9a, - 0x36928d884456e07c, - 0x1eeb8f37959f608d, - 0x31d6179c4eaaa923, - 0x6fac3ad7e5c02662, - 0x43049fa653991456, - 0xabd3669dc052b8ee, - 0xaf02c153a7c20a2b, - 0x3ccb036e3723c007, - 0x93c9c23d90e1ca2c, - 0xc33bc65e2f6ed7d3, - 0x4cff56339758249e, - 0xb1e94e64325d6aa6, - 0x37e16d359472420a, - 0x79f8e661be623f78, - 0x5214d90402c74413, - 0x482ef1fdf0c8965b, - 0x13f69bc5ec1609a9, - 0x0e88292814e592be, - 0x4e198b542a107d72, - 0xccc00fcbebafe71b, - 0x1b49c844222b703e, - 0x2564164da840e9d5, - 0x20c6513e1ff4f966, - 0xbac3203f910ce8ab, - 0xf2edd1c261c47ef0, - 0x814cb945acd361f3, - 0x95feb8944a392105, - 0x5c9cf02c1622d6ad, - 0x971865f3f77178e9, - 0xbd87ba2b9bf0a1f4, - 0x444005b259655d09, - 0xed75be48247fbc0b, - 0x7596122e17cff42a, - 0xb44b091785e97a15, - 0x966b854e2755da9f, - 0xeee0839249134791, - 0x32432a4623c652b9, - 0xa8465b47ad3e4374, - 0xf8b45f2412b15e8b, - 0x2417f6f078644ba3, - 0xfb2162fe7fdda511, - 0x4bbbcc279da46dc1, - 0x0173e0bdd024a276, - 0x22208c59a2bca08a, - 0x8fc4906db836f34d, - 0xe4b90d743a6667ea, - 0x7147b5e0705f46ef, - 0x2782cb2a1508b039, - 0xec065ef5f45b1e7d, - 0x21b5b183cfd05b10, - 0xdbe733c060295c77, - 0x9fa73672394c017e, - 0xcf55321186c31c81, - 0xd8720e1a0d45a7ed, - 0x3b8f997a3ddf8958, - 0x3afc79c7edfb2b2e, - 0xe9a4198643ef0ece, - 0x5f09cdf67b4e2d37, - 0x4f6a6be9fa34df04, - 0xb6add47038a123f9, - 0x8d224d0a057eaaa1, - 0xc96248b85c1bf7a8, - 0xe3fd9760309a2eb5, - 0x0b2a6e5ba351820d, - 0xeb42c4e1fea75722, - 0x948d58299a1d8373, - 0x7fcf9cc864bad451, - 0xa55b4fb5d4b72a50, - 0x08bf5381ce3d7997, - 0x46a6d8d5e42d04e5, - 0xd22b80fc7e308796, - 0x57b69e77b57354a0, - 0x3969441d8097d0b4, - 0x3330cafbf3e2f0cf, - 0xe28e77dde0be8cc3, - 0x62b12e259c494f46, - 0xa6ce726fb9dbd1ca, - 0x41e242c1eed14dba, - 0x76032ff47aa30fb0, - }, - { - 0xe6f87e5c5b711fd0, - 0x258377800924fa16, - 0xc849e07e852ea4a8, - 0x5b4686a18f06c16a, - 0x0b32e9a2d77b416e, - 0xabda37a467815c66, - 0xf61796a81a686676, - 0xf5dc0b706391954b, - 0x4862f38db7e64bf1, - 0xff5c629a68bd85c5, - 0xcb827da6fcd75795, - 0x66d36daf69b9f089, - 0x356c9f74483d83b0, - 0x7cbcecb1238c99a1, - 0x36a702ac31c4708d, - 0x9eb6a8d02fbcdfd6, - 0x8b19fa51e5b3ae37, - 0x9ccfb5408a127d0b, - 0xbc0c78b508208f5a, - 0xe533e3842288eced, - 0xcec2c7d377c15fd2, - 0xec7817b6505d0f5e, - 0xb94cc2c08336871d, - 0x8c205db4cb0b04ad, - 0x763c855b28a0892f, - 0x588d1b79f6ff3257, - 0x3fecf69e4311933e, - 0x0fc0d39f803a18c9, - 0xee010a26f5f3ad83, - 0x10efe8f4411979a6, - 0x5dcda10c7de93a10, - 0x4a1bee1d1248e92c, - 0x53bff2db21847339, - 0xb4f50ccfa6a23d09, - 0x5fb4bc9cd84798cd, - 0xe88a2d8b071c56f9, - 0x7f7771695a756a9c, - 0xc5f02e71a0ba1ebc, - 0xa663f9ab4215e672, - 0x2eb19e22de5fbb78, - 0x0db9ce0f2594ba14, - 0x82520e6397664d84, - 0x2f031e6a0208ea98, - 0x5c7f2144a1be6bf0, - 0x7a37cb1cd16362db, - 0x83e08e2b4b311c64, - 0xcf70479bab960e32, - 0x856ba986b9dee71e, - 0xb5478c877af56ce9, - 0xb8fe42885f61d6fd, - 0x1bdd0156966238c8, - 0x622157923ef8a92e, - 0xfc97ff42114476f8, - 0x9d7d350856452ceb, - 0x4c90c9b0e0a71256, - 0x2308502dfbcb016c, - 0x2d7a03faa7a64845, - 0xf46e8b38bfc6c4ab, - 0xbdbef8fdd477deba, - 0x3aac4cebc8079b79, - 0xf09cb105e8879d0c, - 0x27fa6a10ac8a58cb, - 0x8960e7c1401d0cea, - 0x1a6f811e4a356928, - 0x90c4fb0773d196ff, - 0x43501a2f609d0a9f, - 0xf7a516e0c63f3796, - 0x1ce4a6b3b8da9252, - 0x1324752c38e08a9b, - 0xa5a864733bec154f, - 0x2bf124575549b33f, - 0xd766db15440dc5c7, - 0xa7d179e39e42b792, - 0xdadf151a61997fd3, - 0x86a0345ec0271423, - 0x38d5517b6da939a4, - 0x6518f077104003b4, - 0x02791d90a5aea2dd, - 0x88d267899c4a5d0a, - 0x930f66df0a2865c2, - 0x4ee9d4204509b08b, - 0x325538916685292a, - 0x412907bfc533a842, - 0xb27e2b62544dc673, - 0x6c5304456295e007, - 0x5af406e95351908a, - 0x1f2f3b6bc123616f, - 0xc37b09dc5255e5c6, - 0x3967d133b1fe6844, - 0x298839c7f0e711e2, - 0x409b87f71964f9a2, - 0xe938adc3db4b0719, - 0x0c0b4e47f9c3ebf4, - 0x5534d576d36b8843, - 0x4610a05aeb8b02d8, - 0x20c3cdf58232f251, - 0x6de1840dbec2b1e7, - 0xa0e8de06b0fa1d08, - 0x7b854b540d34333b, - 0x42e29a67bcca5b7f, - 0xd8a6088ac437dd0e, - 0xc63bb3a9d943ed81, - 0x21714dbd5e65a3b1, - 0x6761ede7b5eea169, - 0x2431f7c8d573abf6, - 0xd51fc685e1a3671a, - 0x5e063cd40410c92d, - 0x283ab98f2cb04002, - 0x8febc06cb2f2f790, - 0x17d64f116fa1d33c, - 0xe07359f1a99ee4aa, - 0x784ed68c74cdc006, - 0x6e2a19d5c73b42da, - 0x8712b4161c7045c3, - 0x371582e4ed93216d, - 0xace390414939f6fc, - 0x7ec5f12186223b7c, - 0xc0b094042bac16fb, - 0xf9d745379a527ebf, - 0x737c3f2ea3b68168, - 0x33e7b8d9bad278ca, - 0xa9a32a34c22ffebb, - 0xe48163ccfedfbd0d, - 0x8e5940246ea5a670, - 0x51c6ef4b842ad1e4, - 0x22bad065279c508c, - 0xd91488c218608cee, - 0x319ea5491f7cda17, - 0xd394e128134c9c60, - 0x094bf43272d5e3b3, - 0x9bf612a5a4aad791, - 0xccbbda43d26ffd0f, - 0x34de1f3c946ad250, - 0x4f5b5468995ee16b, - 0xdf9faf6fea8f7794, - 0x2648ea5870dd092b, - 0xbfc7e56d71d97c67, - 0xdde6b2ff4f21d549, - 0x3c276b463ae86003, - 0x91767b4faf86c71f, - 0x68a13e7835d4b9a0, - 0xb68c115f030c9fd4, - 0x141dd2c916582001, - 0x983d8f7ddd5324ac, - 0x64aa703fcc175254, - 0xc2c989948e02b426, - 0x3e5e76d69f46c2de, - 0x50746f03587d8004, - 0x45db3d829272f1e5, - 0x60584a029b560bf3, - 0xfbae58a73ffcdc62, - 0xa15a5e4e6cad4ce8, - 0x4ba96e55ce1fb8cc, - 0x08f9747aae82b253, - 0xc102144cf7fb471b, - 0x9f042898f3eb8e36, - 0x068b27adf2effb7a, - 0xedca97fe8c0a5ebe, - 0x778e0513f4f7d8cf, - 0x302c2501c32b8bf7, - 0x8d92ddfc175c554d, - 0xf865c57f46052f5f, - 0xeaf3301ba2b2f424, - 0xaa68b7ecbbd60d86, - 0x998f0f350104754c, - 0x0000000000000000, - 0xf12e314d34d0ccec, - 0x710522be061823b5, - 0xaf280d9930c005c1, - 0x97fd5ce25d693c65, - 0x19a41cc633cc9a15, - 0x95844172f8c79eb8, - 0xdc5432b7937684a9, - 0x9436c13a2490cf58, - 0x802b13f332c8ef59, - 0xc442ae397ced4f5c, - 0xfa1cd8efe3ab8d82, - 0xf2e5ac954d293fd1, - 0x6ad823e8907a1b7d, - 0x4d2249f83cf043b6, - 0x03cb9dd879f9f33d, - 0xde2d2f2736d82674, - 0x2a43a41f891ee2df, - 0x6f98999d1b6c133a, - 0xd4ad46cd3df436fa, - 0xbb35df50269825c0, - 0x964fdcaa813e6d85, - 0xeb41b0537ee5a5c4, - 0x0540ba758b160847, - 0xa41ae43be7bb44af, - 0xe3b8c429d0671797, - 0x819993bbee9fbeb9, - 0xae9a8dd1ec975421, - 0xf3572cdd917e6e31, - 0x6393d7dae2aff8ce, - 0x47a2201237dc5338, - 0xa32343dec903ee35, - 0x79fc56c4a89a91e6, - 0x01b28048dc5751e0, - 0x1296f564e4b7db7b, - 0x75f7188351597a12, - 0xdb6d9552bdce2e33, - 0x1e9dbb231d74308f, - 0x520d7293fdd322d9, - 0xe20a44610c304677, - 0xfeeee2d2b4ead425, - 0xca30fdee20800675, - 0x61eaca4a47015a13, - 0xe74afe1487264e30, - 0x2cc883b27bf119a5, - 0x1664cf59b3f682dc, - 0xa811aa7c1e78af5b, - 0x1d5626fb648dc3b2, - 0xb73e9117df5bce34, - 0xd05f7cf06ab56f5d, - 0xfd257f0acd132718, - 0x574dc8e676c52a9e, - 0x0739a7e52eb8aa9a, - 0x5486553e0f3cd9a3, - 0x56ff48aeaa927b7e, - 0xbe756525ad8e2d87, - 0x7d0e6cf9ffdbc841, - 0x3b1ecca31450ca99, - 0x6913be30e983e840, - 0xad511009956ea71c, - 0xb1b5b6ba2db4354e, - 0x4469bdca4e25a005, - 0x15af5281ca0f71e1, - 0x744598cb8d0e2bf2, - 0x593f9b312aa863b7, - 0xefb38a6e29a4fc63, - 0x6b6aa3a04c2d4a9d, - 0x3d95eb0ee6bf31e3, - 0xa291c3961554bfd5, - 0x18169c8eef9bcbf5, - 0x115d68bc9d4e2846, - 0xba875f18facf7420, - 0xd1edfcb8b6e23ebd, - 0xb00736f2f1e364ae, - 0x84d929ce6589b6fe, - 0x70b7a2f6da4f7255, - 0x0e7253d75c6d4929, - 0x04f23a3d574159a7, - 0x0a8069ea0b2c108e, - 0x49d073c56bb11a11, - 0x8aab7a1939e4ffd7, - 0xcd095a0b0e38acef, - 0xc9fb60365979f548, - 0x92bde697d67f3422, - 0xc78933e10514bc61, - 0xe1c1d9b975c9b54a, - 0xd2266160cf1bcd80, - 0x9a4492ed78fd8671, - 0xb3ccab2a881a9793, - 0x72cebf667fe1d088, - 0xd6d45b5d985a9427, - }, -}; - -__constant u64a sbob_rc64[12][8] = -{ - { - 0xe9daca1eda5b08b1, - 0x1f7c65c0812fcbeb, - 0x16d0452e43766a2f, - 0xfcc485758db84e71, - 0x0169679291e07c4b, - 0x15d360a4082a42a2, - 0x234d74cc36747605, - 0x0745a6f2596580dd, - }, - { - 0x1a2f9da98ab5a36f, - 0xd7b5700f469de34f, - 0x982b230a72eafef3, - 0x3101b5160f5ed561, - 0x5899d6126b17b59a, - 0xcaa70adbc261b55c, - 0x56cdcbd71ba2dd55, - 0xb79bb121700479e6, - }, - { - 0xc72fce2bacdc74f5, - 0x35843d6a28fc390a, - 0x8b1f9c525f5ef106, - 0x7b7b29b11475eaf2, - 0xb19e3590e40fe2d3, - 0x09db6260373ac9c1, - 0x31db7a8643f4b6c2, - 0xb20aba0af5961e99, - }, - { - 0xd26615e8b3df1fef, - 0xdde4715da0e148f9, - 0x7d3c5c337e858e48, - 0x3f355e68ad1c729d, - 0x75d603ed822cd7a9, - 0xbe0352933313b7d8, - 0xf137e893a1ea5334, - 0x2ed1e384bcbe0c22, - }, - { - 0x994747adac6bea4b, - 0x6323a96c0c413f9a, - 0x4a1086161f1c157f, - 0xbdff0f80d7359e35, - 0xa3f53a254717cdbf, - 0x161a2723b700ffdf, - 0xf563eaa97ea2567a, - 0x57fe6c7cfd581760, - }, - { - 0xd9d33a1daeae4fae, - 0xc039307a3bc3a46f, - 0x6ca44251f9c4662d, - 0xc68ef09ab49a7f18, - 0xb4b79a1cb7a6facf, - 0xb6c6bec2661ff20a, - 0x354f903672c571bf, - 0x6e7d64467a4068fa, - }, - { - 0xecc5aaee160ec7f4, - 0x540924bffe86ac51, - 0xc987bfe6c7c69e39, - 0xc9937a19333e47d3, - 0x372c822dc5ab9209, - 0x04054a2883694706, - 0xf34a3ca24c451735, - 0x93d4143a4d568688, - }, - { - 0xa7c9934d425b1f9b, - 0x41416e0c02aae703, - 0x1ede369c71f8b74e, - 0x9ac4db4d3b44b489, - 0x90069b92cb2b89f4, - 0x2fc4a5d12b8dd169, - 0xd9a8515935c2ac36, - 0x1ee702bfd40d7fa4, - }, - { - 0x9b223116545a8f37, - 0xde5f16ecd89a4c94, - 0x244289251b3a7d3a, - 0x84090de0b755d93c, - 0xb1ceb2db0b440a80, - 0x549c07a69a8a2b7b, - 0x602a1fcb92dc380e, - 0xdb5a238351446172, - }, - { - 0x526f0580a6debeab, - 0xf3f3e4b248e52a38, - 0xdb788aff1ce74189, - 0x0361331b8ae1ff1f, - 0x4b3369af0267e79f, - 0xf452763b306c1e7a, - 0xc3b63b15d1fa9836, - 0xed9c4598fbc7b474, - }, - { - 0xfb89c8efd09ecd7b, - 0x94fe5a63cdc60230, - 0x6107abebbb6bfad8, - 0x7966841421800120, - 0xcab948eaef711d8a, - 0x986e477d1dcdbaef, - 0x5dd86fc04a59a2de, - 0x1b2df381cda4ca6b, - }, - { - 0xba3116f167e78e37, - 0x7ab14904b08013d2, - 0x771ddfbc323ca4cd, - 0x9b9f2130d41220f8, - 0x86cc91189def805d, - 0x5228e188aaa41de7, - 0x991bb2d9d517f4fa, - 0x20d71bf14a92bc48, - }, -}; - DECLSPEC void streebog_g (u64x *h, const u64x *m, __local u64 (*s_sbob_sl64)[256]) { u64x k[8]; diff --git a/OpenCL/m11800_a0-pure.cl b/OpenCL/m11800_a0-pure.cl index d26dd59ed..78178e740 100644 --- a/OpenCL/m11800_a0-pure.cl +++ b/OpenCL/m11800_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11800_a1-optimized.cl b/OpenCL/m11800_a1-optimized.cl index 6b450632a..59e59bb31 100644 --- a/OpenCL/m11800_a1-optimized.cl +++ b/OpenCL/m11800_a1-optimized.cl @@ -6,2231 +6,14 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_streebog512.cl" #define INITVAL 0 -#if VECT_SIZE == 1 -#define BOX(S,n,i) (S)[(n)][(i)] -#elif VECT_SIZE == 2 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1]) -#elif VECT_SIZE == 4 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3]) -#elif VECT_SIZE == 8 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) -#elif VECT_SIZE == 16 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) -#endif - -#define SBOG_LPSti64 \ - BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff)) - -// constants - -__constant u64a sbob_sl64[8][256] = -{ - { - 0xd031c397ce553fe6, - 0x16ba5b01b006b525, - 0xa89bade6296e70c8, - 0x6a1f525d77d3435b, - 0x6e103570573dfa0b, - 0x660efb2a17fc95ab, - 0x76327a9e97634bf6, - 0x4bad9d6462458bf5, - 0xf1830caedbc3f748, - 0xc5c8f542669131ff, - 0x95044a1cdc48b0cb, - 0x892962df3cf8b866, - 0xb0b9e208e930c135, - 0xa14fb3f0611a767c, - 0x8d2605f21c160136, - 0xd6b71922fecc549e, - 0x37089438a5907d8b, - 0x0b5da38e5803d49c, - 0x5a5bcc9cea6f3cbc, - 0xedae246d3b73ffe5, - 0xd2b87e0fde22edce, - 0x5e54abb1ca8185ec, - 0x1de7f88fe80561b9, - 0xad5e1a870135a08c, - 0x2f2adbd665cecc76, - 0x5780b5a782f58358, - 0x3edc8a2eede47b3f, - 0xc9d95c3506bee70f, - 0x83be111d6c4e05ee, - 0xa603b90959367410, - 0x103c81b4809fde5d, - 0x2c69b6027d0c774a, - 0x399080d7d5c87953, - 0x09d41e16487406b4, - 0xcdd63b1826505e5f, - 0xf99dc2f49b0298e8, - 0x9cd0540a943cb67f, - 0xbca84b7f891f17c5, - 0x723d1db3b78df2a6, - 0x78aa6e71e73b4f2e, - 0x1433e699a071670d, - 0x84f21be454620782, - 0x98df3327b4d20f2f, - 0xf049dce2d3769e5c, - 0xdb6c60199656eb7a, - 0x648746b2078b4783, - 0x32cd23598dcbadcf, - 0x1ea4955bf0c7da85, - 0xe9a143401b9d46b5, - 0xfd92a5d9bbec21b8, - 0xc8138c790e0b8e1b, - 0x2ee00b9a6d7ba562, - 0xf85712b893b7f1fc, - 0xeb28fed80bea949d, - 0x564a65eb8a40ea4c, - 0x6c9988e8474a2823, - 0x4535898b121d8f2d, - 0xabd8c03231accbf4, - 0xba2e91cab9867cbd, - 0x7960be3def8e263a, - 0x0c11a977602fd6f0, - 0xcb50e1ad16c93527, - 0xeae22e94035ffd89, - 0x2866d12f5de2ce1a, - 0xff1b1841ab9bf390, - 0x9f9339de8cfe0d43, - 0x964727c8c48a0bf7, - 0x524502c6aaae531c, - 0x9b9c5ef3ac10b413, - 0x4fa2fa4942ab32a5, - 0x3f165a62e551122b, - 0xc74148da76e6e3d7, - 0x924840e5e464b2a7, - 0xd372ae43d69784da, - 0x233b72a105e11a86, - 0xa48a04914941a638, - 0xb4b68525c9de7865, - 0xddeabaaca6cf8002, - 0x0a9773c250b6bd88, - 0xc284ffbb5ebd3393, - 0x8ba0df472c8f6a4e, - 0x2aef6cb74d951c32, - 0x427983722a318d41, - 0x73f7cdffbf389bb2, - 0x074c0af9382c026c, - 0x8a6a0f0b243a035a, - 0x6fdae53c5f88931f, - 0xc68b98967e538ac3, - 0x44ff59c71aa8e639, - 0xe2fce0ce439e9229, - 0xa20cde2479d8cd40, - 0x19e89fa2c8ebd8e9, - 0xf446bbcff398270c, - 0x43b3533e2284e455, - 0xd82f0dcd8e945046, - 0x51066f12b26ce820, - 0xe73957af6bc5426d, - 0x081ece5a40c16fa0, - 0x3b193d4fc5bfab7b, - 0x7fe66488df174d42, - 0x0e9814ef705804d8, - 0x8137ac857c39d7c6, - 0xb1733244e185a821, - 0x695c3f896f11f867, - 0xf6cf0657e3eff524, - 0x1aabf276d02963d5, - 0x2da3664e75b91e5e, - 0x0289bd981077d228, - 0x90c1fd7df413608f, - 0x3c5537b6fd93a917, - 0xaa12107e3919a2e0, - 0x0686dab530996b78, - 0xdaa6b0559ee3826e, - 0xc34e2ff756085a87, - 0x6d5358a44fff4137, - 0xfc587595b35948ac, - 0x7ca5095cc7d5f67e, - 0xfb147f6c8b754ac0, - 0xbfeb26ab91ddacf9, - 0x6896efc567a49173, - 0xca9a31e11e7c5c33, - 0xbbe44186b13315a9, - 0x0ddb793b689abfe4, - 0x70b4a02ba7fa208e, - 0xe47a3a7b7307f951, - 0x8cecd5be14a36822, - 0xeeed49b923b144d9, - 0x17708b4db8b3dc31, - 0x6088219f2765fed3, - 0xb3fa8fdcf1f27a09, - 0x910b2d31fca6099b, - 0x0f52c4a378ed6dcc, - 0x50ccbf5ebad98134, - 0x6bd582117f662a4f, - 0x94ce9a50d4fdd9df, - 0x2b25bcfb45207526, - 0x67c42b661f49fcbf, - 0x492420fc723259dd, - 0x03436dd418c2bb3c, - 0x1f6e4517f872b391, - 0xa08563bc69af1f68, - 0xd43ea4baeebb86b6, - 0x01cad04c08b56914, - 0xac94cacb0980c998, - 0x54c3d8739a373864, - 0x26fec5c02dbacac2, - 0xdea9d778be0d3b3e, - 0x040f672d20eeb950, - 0xe5b0ea377bb29045, - 0xf30ab136cbb42560, - 0x62019c0737122cfb, - 0xe86b930c13282fa1, - 0xcc1ceb542ee5374b, - 0x538fd28aa21b3a08, - 0x1b61223ad89c0ac1, - 0x36c24474ad25149f, - 0x7a23d3e9f74c9d06, - 0xbe21f6e79968c5ed, - 0xcf5f868036278c77, - 0xf705d61beb5a9c30, - 0x4d2b47d152dce08d, - 0x5f9e7bfdc234ecf8, - 0x247778583dcd18ea, - 0x867ba67c4415d5aa, - 0x4ce1979d5a698999, - 0x0000000000000000, - 0xec64f42133c696f1, - 0xb57c5569c16b1171, - 0xc1c7926f467f88af, - 0x654d96fe0f3e2e97, - 0x15f936d5a8c40e19, - 0xb8a72c52a9f1ae95, - 0xa9517daa21db19dc, - 0x58d27104fa18ee94, - 0x5918a148f2ad8780, - 0x5cdd1629daf657c4, - 0x8274c15164fb6cfa, - 0xd1fb13dbc6e056f2, - 0x7d6fd910cf609f6a, - 0xb63f38bdd9a9aa4d, - 0x3d9fe7faf526c003, - 0x74bbc706871499de, - 0xdf630734b6b8522a, - 0x3ad3ed03cd0ac26f, - 0xfadeaf2083c023d4, - 0xc00d42234ecae1bb, - 0x8538cba85cd76e96, - 0xc402250e6e2458eb, - 0x47bc3413026a5d05, - 0xafd7a71f114272a4, - 0x978df784cc3f62e3, - 0xb96dfc1ea144c781, - 0x21b2cf391596c8ae, - 0x318e4e8d950916f3, - 0xce9556cc3e92e563, - 0x385a509bdd7d1047, - 0x358129a0b5e7afa3, - 0xe6f387e363702b79, - 0xe0755d5653e94001, - 0x7be903a5fff9f412, - 0x12b53c2c90e80c75, - 0x3307f315857ec4db, - 0x8fafb86a0c61d31e, - 0xd9e5dd8186213952, - 0x77f8aad29fd622e2, - 0x25bda814357871fe, - 0x7571174a8fa1f0ca, - 0x137fec60985d6561, - 0x30449ec19dbc7fe7, - 0xa540d4dd41f4cf2c, - 0xdc206ae0ae7ae916, - 0x5b911cd0e2da55a8, - 0xb2305f90f947131d, - 0x344bf9ecbd52c6b7, - 0x5d17c665d2433ed0, - 0x18224feec05eb1fd, - 0x9e59e992844b6457, - 0x9a568ebfa4a5dd07, - 0xa3c60e68716da454, - 0x7e2cb4c4d7a22456, - 0x87b176304ca0bcbe, - 0x413aeea632f3367d, - 0x9915e36bbc67663b, - 0x40f03eea3a465f69, - 0x1c2d28c3e0b008ad, - 0x4e682a054a1e5bb1, - 0x05c5b761285bd044, - 0xe1bf8d1a5b5c2915, - 0xf2c0617ac3014c74, - 0xb7f5e8f1d11cc359, - 0x63cb4c4b3fa745ef, - 0x9d1a84469c89df6b, - 0xe33630824b2bfb3d, - 0xd5f474f6e60eefa2, - 0xf58c6b83fb2d4e18, - 0x4676e45f0adf3411, - 0x20781f751d23a1ba, - 0xbd629b3381aa7ed1, - 0xae1d775319f71bb0, - 0xfed1c80da32e9a84, - 0x5509083f92825170, - 0x29ac01635557a70e, - 0xa7c9694551831d04, - 0x8e65682604d4ba0a, - 0x11f651f8882ab749, - 0xd77dc96ef6793d8a, - 0xef2799f52b042dcd, - 0x48eef0b07a8730c9, - 0x22f1a2ed0d547392, - 0x6142f1d32fd097c7, - 0x4a674d286af0e2e1, - 0x80fd7cc9748cbed2, - 0x717e7067af4f499a, - 0x938290a9ecd1dbb3, - 0x88e3b293344dd172, - 0x2734158c250fa3d6, - }, - { - 0x7e37e62dfc7d40c3, - 0x776f25a4ee939e5b, - 0xe045c850dd8fb5ad, - 0x86ed5ba711ff1952, - 0xe91d0bd9cf616b35, - 0x37e0ab256e408ffb, - 0x9607f6c031025a7a, - 0x0b02f5e116d23c9d, - 0xf3d8486bfb50650c, - 0x621cff27c40875f5, - 0x7d40cb71fa5fd34a, - 0x6daa6616daa29062, - 0x9f5f354923ec84e2, - 0xec847c3dc507c3b3, - 0x025a3668043ce205, - 0xa8bf9e6c4dac0b19, - 0xfa808be2e9bebb94, - 0xb5b99c5277c74fa3, - 0x78d9bc95f0397bcc, - 0xe332e50cdbad2624, - 0xc74fce129332797e, - 0x1729eceb2ea709ab, - 0xc2d6b9f69954d1f8, - 0x5d898cbfbab8551a, - 0x859a76fb17dd8adb, - 0x1be85886362f7fb5, - 0xf6413f8ff136cd8a, - 0xd3110fa5bbb7e35c, - 0x0a2feed514cc4d11, - 0xe83010edcd7f1ab9, - 0xa1e75de55f42d581, - 0xeede4a55c13b21b6, - 0xf2f5535ff94e1480, - 0x0cc1b46d1888761e, - 0xbce15fdb6529913b, - 0x2d25e8975a7181c2, - 0x71817f1ce2d7a554, - 0x2e52c5cb5c53124b, - 0xf9f7a6beef9c281d, - 0x9e722e7d21f2f56e, - 0xce170d9b81dca7e6, - 0x0e9b82051cb4941b, - 0x1e712f623c49d733, - 0x21e45cfa42f9f7dc, - 0xcb8e7a7f8bba0f60, - 0x8e98831a010fb646, - 0x474ccf0d8e895b23, - 0xa99285584fb27a95, - 0x8cc2b57205335443, - 0x42d5b8e984eff3a5, - 0x012d1b34021e718c, - 0x57a6626aae74180b, - 0xff19fc06e3d81312, - 0x35ba9d4d6a7c6dfe, - 0xc9d44c178f86ed65, - 0x506523e6a02e5288, - 0x03772d5c06229389, - 0x8b01f4fe0b691ec0, - 0xf8dabd8aed825991, - 0x4c4e3aec985b67be, - 0xb10df0827fbf96a9, - 0x6a69279ad4f8dae1, - 0xe78689dcd3d5ff2e, - 0x812e1a2b1fa553d1, - 0xfbad90d6eba0ca18, - 0x1ac543b234310e39, - 0x1604f7df2cb97827, - 0xa6241c6951189f02, - 0x753513cceaaf7c5e, - 0x64f2a59fc84c4efa, - 0x247d2b1e489f5f5a, - 0xdb64d718ab474c48, - 0x79f4a7a1f2270a40, - 0x1573da832a9bebae, - 0x3497867968621c72, - 0x514838d2a2302304, - 0xf0af6537fd72f685, - 0x1d06023e3a6b44ba, - 0x678588c3ce6edd73, - 0x66a893f7cc70acff, - 0xd4d24e29b5eda9df, - 0x3856321470ea6a6c, - 0x07c3418c0e5a4a83, - 0x2bcbb22f5635bacd, - 0x04b46cd00878d90a, - 0x06ee5ab80c443b0f, - 0x3b211f4876c8f9e5, - 0x0958c38912eede98, - 0xd14b39cdbf8b0159, - 0x397b292072f41be0, - 0x87c0409313e168de, - 0xad26e98847caa39f, - 0x4e140c849c6785bb, - 0xd5ff551db7f3d853, - 0xa0ca46d15d5ca40d, - 0xcd6020c787fe346f, - 0x84b76dcf15c3fb57, - 0xdefda0fca121e4ce, - 0x4b8d7b6096012d3d, - 0x9ac642ad298a2c64, - 0x0875d8bd10f0af14, - 0xb357c6ea7b8374ac, - 0x4d6321d89a451632, - 0xeda96709c719b23f, - 0xf76c24bbf328bc06, - 0xc662d526912c08f2, - 0x3ce25ec47892b366, - 0xb978283f6f4f39bd, - 0xc08c8f9e9d6833fd, - 0x4f3917b09e79f437, - 0x593de06fb2c08c10, - 0xd6887841b1d14bda, - 0x19b26eee32139db0, - 0xb494876675d93e2f, - 0x825937771987c058, - 0x90e9ac783d466175, - 0xf1827e03ff6c8709, - 0x945dc0a8353eb87f, - 0x4516f9658ab5b926, - 0x3f9573987eb020ef, - 0xb855330b6d514831, - 0x2ae6a91b542bcb41, - 0x6331e413c6160479, - 0x408f8e8180d311a0, - 0xeff35161c325503a, - 0xd06622f9bd9570d5, - 0x8876d9a20d4b8d49, - 0xa5533135573a0c8b, - 0xe168d364df91c421, - 0xf41b09e7f50a2f8f, - 0x12b09b0f24c1a12d, - 0xda49cc2ca9593dc4, - 0x1f5c34563e57a6bf, - 0x54d14f36a8568b82, - 0xaf7cdfe043f6419a, - 0xea6a2685c943f8bc, - 0xe5dcbfb4d7e91d2b, - 0xb27addde799d0520, - 0x6b443caed6e6ab6d, - 0x7bae91c9f61be845, - 0x3eb868ac7cae5163, - 0x11c7b65322e332a4, - 0xd23c1491b9a992d0, - 0x8fb5982e0311c7ca, - 0x70ac6428e0c9d4d8, - 0x895bc2960f55fcc5, - 0x76423e90ec8defd7, - 0x6ff0507ede9e7267, - 0x3dcf45f07a8cc2ea, - 0x4aa06054941f5cb1, - 0x5810fb5bb0defd9c, - 0x5efea1e3bc9ac693, - 0x6edd4b4adc8003eb, - 0x741808f8e8b10dd2, - 0x145ec1b728859a22, - 0x28bc9f7350172944, - 0x270a06424ebdccd3, - 0x972aedf4331c2bf6, - 0x059977e40a66a886, - 0x2550302a4a812ed6, - 0xdd8a8da0a7037747, - 0xc515f87a970e9b7b, - 0x3023eaa9601ac578, - 0xb7e3aa3a73fbada6, - 0x0fb699311eaae597, - 0x0000000000000000, - 0x310ef19d6204b4f4, - 0x229371a644db6455, - 0x0decaf591a960792, - 0x5ca4978bb8a62496, - 0x1c2b190a38753536, - 0x41a295b582cd602c, - 0x3279dcc16426277d, - 0xc1a194aa9f764271, - 0x139d803b26dfd0a1, - 0xae51c4d441e83016, - 0xd813fa44ad65dfc1, - 0xac0bf2bc45d4d213, - 0x23be6a9246c515d9, - 0x49d74d08923dcf38, - 0x9d05032127d066e7, - 0x2f7fdeff5e4d63c7, - 0xa47e2a0155247d07, - 0x99b16ff12fa8bfed, - 0x4661d4398c972aaf, - 0xdfd0bbc8a33f9542, - 0xdca79694a51d06cb, - 0xb020ebb67da1e725, - 0xba0f0563696daa34, - 0xe4f1a480d5f76ca7, - 0xc438e34e9510eaf7, - 0x939e81243b64f2fc, - 0x8defae46072d25cf, - 0x2c08f3a3586ff04e, - 0xd7a56375b3cf3a56, - 0x20c947ce40e78650, - 0x43f8a3dd86f18229, - 0x568b795eac6a6987, - 0x8003011f1dbb225d, - 0xf53612d3f7145e03, - 0x189f75da300dec3c, - 0x9570db9c3720c9f3, - 0xbb221e576b73dbb8, - 0x72f65240e4f536dd, - 0x443be25188abc8aa, - 0xe21ffe38d9b357a8, - 0xfd43ca6ee7e4f117, - 0xcaa3614b89a47eec, - 0xfe34e732e1c6629e, - 0x83742c431b99b1d4, - 0xcf3a16af83c2d66a, - 0xaae5a8044990e91c, - 0x26271d764ca3bd5f, - 0x91c4b74c3f5810f9, - 0x7c6dd045f841a2c6, - 0x7f1afd19fe63314f, - 0xc8f957238d989ce9, - 0xa709075d5306ee8e, - 0x55fc5402aa48fa0e, - 0x48fa563c9023beb4, - 0x65dfbeabca523f76, - 0x6c877d22d8bce1ee, - 0xcc4d3bf385e045e3, - 0xbebb69b36115733e, - 0x10eaad6720fd4328, - 0xb6ceb10e71e5dc2a, - 0xbdcc44ef6737e0b7, - 0x523f158ea412b08d, - 0x989c74c52db6ce61, - 0x9beb59992b945de8, - 0x8a2cefca09776f4c, - 0xa3bd6b8d5b7e3784, - 0xeb473db1cb5d8930, - 0xc3fba2c29b4aa074, - 0x9c28181525ce176b, - 0x683311f2d0c438e4, - 0x5fd3bad7be84b71f, - 0xfc6ed15ae5fa809b, - 0x36cdb0116c5efe77, - 0x29918447520958c8, - 0xa29070b959604608, - 0x53120ebaa60cc101, - 0x3a0c047c74d68869, - 0x691e0ac6d2da4968, - 0x73db4974e6eb4751, - 0x7a838afdf40599c9, - 0x5a4acd33b4e21f99, - 0x6046c94fc03497f0, - 0xe6ab92e8d1cb8ea2, - 0x3354c7f5663856f1, - 0xd93ee170af7bae4d, - 0x616bd27bc22ae67c, - 0x92b39a10397a8370, - 0xabc8b3304b8e9890, - 0xbf967287630b02b2, - 0x5b67d607b6fc6e15, - }, - { - 0x8ab0a96846e06a6d, - 0x43c7e80b4bf0b33a, - 0x08c9b3546b161ee5, - 0x39f1c235eba990be, - 0xc1bef2376606c7b2, - 0x2c209233614569aa, - 0xeb01523b6fc3289a, - 0x946953ab935acedd, - 0x272838f63e13340e, - 0x8b0455eca12ba052, - 0x77a1b2c4978ff8a2, - 0xa55122ca13e54086, - 0x2276135862d3f1cd, - 0xdb8ddfde08b76cfe, - 0x5d1e12c89e4a178a, - 0x0e56816b03969867, - 0xee5f79953303ed59, - 0xafed748bab78d71d, - 0x6d929f2df93e53ee, - 0xf5d8a8f8ba798c2a, - 0xf619b1698e39cf6b, - 0x95ddaf2f749104e2, - 0xec2a9c80e0886427, - 0xce5c8fd8825b95ea, - 0xc4e0d9993ac60271, - 0x4699c3a5173076f9, - 0x3d1b151f50a29f42, - 0x9ed505ea2bc75946, - 0x34665acfdc7f4b98, - 0x61b1fb53292342f7, - 0xc721c0080e864130, - 0x8693cd1696fd7b74, - 0x872731927136b14b, - 0xd3446c8a63a1721b, - 0x669a35e8a6680e4a, - 0xcab658f239509a16, - 0xa4e5de4ef42e8ab9, - 0x37a7435ee83f08d9, - 0x134e6239e26c7f96, - 0x82791a3c2df67488, - 0x3f6ef00a8329163c, - 0x8e5a7e42fdeb6591, - 0x5caaee4c7981ddb5, - 0x19f234785af1e80d, - 0x255ddde3ed98bd70, - 0x50898a32a99cccac, - 0x28ca4519da4e6656, - 0xae59880f4cb31d22, - 0x0d9798fa37d6db26, - 0x32f968f0b4ffcd1a, - 0xa00f09644f258545, - 0xfa3ad5175e24de72, - 0xf46c547c5db24615, - 0x713e80fbff0f7e20, - 0x7843cf2b73d2aafa, - 0xbd17ea36aedf62b4, - 0xfd111bacd16f92cf, - 0x4abaa7dbc72d67e0, - 0xb3416b5dad49fad3, - 0xbca316b24914a88b, - 0x15d150068aecf914, - 0xe27c1debe31efc40, - 0x4fe48c759beda223, - 0x7edcfd141b522c78, - 0x4e5070f17c26681c, - 0xe696cac15815f3bc, - 0x35d2a64b3bb481a7, - 0x800cff29fe7dfdf6, - 0x1ed9fac3d5baa4b0, - 0x6c2663a91ef599d1, - 0x03c1199134404341, - 0xf7ad4ded69f20554, - 0xcd9d9649b61bd6ab, - 0xc8c3bde7eadb1368, - 0xd131899fb02afb65, - 0x1d18e352e1fae7f1, - 0xda39235aef7ca6c1, - 0xa1bbf5e0a8ee4f7a, - 0x91377805cf9a0b1e, - 0x3138716180bf8e5b, - 0xd9f83acbdb3ce580, - 0x0275e515d38b897e, - 0x472d3f21f0fbbcc6, - 0x2d946eb7868ea395, - 0xba3c248d21942e09, - 0xe7223645bfde3983, - 0xff64feb902e41bb1, - 0xc97741630d10d957, - 0xc3cb1722b58d4ecc, - 0xa27aec719cae0c3b, - 0x99fecb51a48c15fb, - 0x1465ac826d27332b, - 0xe1bd047ad75ebf01, - 0x79f733af941960c5, - 0x672ec96c41a3c475, - 0xc27feba6524684f3, - 0x64efd0fd75e38734, - 0xed9e60040743ae18, - 0xfb8e2993b9ef144d, - 0x38453eb10c625a81, - 0x6978480742355c12, - 0x48cf42ce14a6ee9e, - 0x1cac1fd606312dce, - 0x7b82d6ba4792e9bb, - 0x9d141c7b1f871a07, - 0x5616b80dc11c4a2e, - 0xb849c198f21fa777, - 0x7ca91801c8d9a506, - 0xb1348e487ec273ad, - 0x41b20d1e987b3a44, - 0x7460ab55a3cfbbe3, - 0x84e628034576f20a, - 0x1b87d16d897a6173, - 0x0fe27defe45d5258, - 0x83cde6b8ca3dbeb7, - 0x0c23647ed01d1119, - 0x7a362a3ea0592384, - 0xb61f40f3f1893f10, - 0x75d457d1440471dc, - 0x4558da34237035b8, - 0xdca6116587fc2043, - 0x8d9b67d3c9ab26d0, - 0x2b0b5c88ee0e2517, - 0x6fe77a382ab5da90, - 0x269cc472d9d8fe31, - 0x63c41e46faa8cb89, - 0xb7abbc771642f52f, - 0x7d1de4852f126f39, - 0xa8c6ba3024339ba0, - 0x600507d7cee888c8, - 0x8fee82c61a20afae, - 0x57a2448926d78011, - 0xfca5e72836a458f0, - 0x072bcebb8f4b4cbd, - 0x497bbe4af36d24a1, - 0x3cafe99bb769557d, - 0x12fa9ebd05a7b5a9, - 0xe8c04baa5b836bdb, - 0x4273148fac3b7905, - 0x908384812851c121, - 0xe557d3506c55b0fd, - 0x72ff996acb4f3d61, - 0x3eda0c8e64e2dc03, - 0xf0868356e6b949e9, - 0x04ead72abb0b0ffc, - 0x17a4b5135967706a, - 0xe3c8e16f04d5367f, - 0xf84f30028daf570c, - 0x1846c8fcbd3a2232, - 0x5b8120f7f6ca9108, - 0xd46fa231ecea3ea6, - 0x334d947453340725, - 0x58403966c28ad249, - 0xbed6f3a79a9f21f5, - 0x68ccb483a5fe962d, - 0xd085751b57e1315a, - 0xfed0023de52fd18e, - 0x4b0e5b5f20e6addf, - 0x1a332de96eb1ab4c, - 0xa3ce10f57b65c604, - 0x108f7ba8d62c3cd7, - 0xab07a3a11073d8e1, - 0x6b0dad1291bed56c, - 0xf2f366433532c097, - 0x2e557726b2cee0d4, - 0x0000000000000000, - 0xcb02a476de9b5029, - 0xe4e32fd48b9e7ac2, - 0x734b65ee2c84f75e, - 0x6e5386bccd7e10af, - 0x01b4fc84e7cbca3f, - 0xcfe8735c65905fd5, - 0x3613bfda0ff4c2e6, - 0x113b872c31e7f6e8, - 0x2fe18ba255052aeb, - 0xe974b72ebc48a1e4, - 0x0abc5641b89d979b, - 0xb46aa5e62202b66e, - 0x44ec26b0c4bbff87, - 0xa6903b5b27a503c7, - 0x7f680190fc99e647, - 0x97a84a3aa71a8d9c, - 0xdd12ede16037ea7c, - 0xc554251ddd0dc84e, - 0x88c54c7d956be313, - 0x4d91696048662b5d, - 0xb08072cc9909b992, - 0xb5de5962c5c97c51, - 0x81b803ad19b637c9, - 0xb2f597d94a8230ec, - 0x0b08aac55f565da4, - 0xf1327fd2017283d6, - 0xad98919e78f35e63, - 0x6ab9519676751f53, - 0x24e921670a53774f, - 0xb9fd3d1c15d46d48, - 0x92f66194fbda485f, - 0x5a35dc7311015b37, - 0xded3f4705477a93d, - 0xc00a0eb381cd0d8d, - 0xbb88d809c65fe436, - 0x16104997beacba55, - 0x21b70ac95693b28c, - 0x59f4c5e225411876, - 0xd5db5eb50b21f499, - 0x55d7a19cf55c096f, - 0xa97246b4c3f8519f, - 0x8552d487a2bd3835, - 0x54635d181297c350, - 0x23c2efdc85183bf2, - 0x9f61f96ecc0c9379, - 0x534893a39ddc8fed, - 0x5edf0b59aa0a54cb, - 0xac2c6d1a9f38945c, - 0xd7aebba0d8aa7de7, - 0x2abfa00c09c5ef28, - 0xd84cc64f3cf72fbf, - 0x2003f64db15878b3, - 0xa724c7dfc06ec9f8, - 0x069f323f68808682, - 0xcc296acd51d01c94, - 0x055e2bae5cc0c5c3, - 0x6270e2c21d6301b6, - 0x3b842720382219c0, - 0xd2f0900e846ab824, - 0x52fc6f277a1745d2, - 0xc6953c8ce94d8b0f, - 0xe009f8fe3095753e, - 0x655b2c7992284d0b, - 0x984a37d54347dfc4, - 0xeab5aebf8808e2a5, - 0x9a3fd2c090cc56ba, - 0x9ca0e0fff84cd038, - 0x4c2595e4afade162, - 0xdf6708f4b3bc6302, - 0xbf620f237d54ebca, - 0x93429d101c118260, - 0x097d4fd08cddd4da, - 0x8c2f9b572e60ecef, - 0x708a7c7f18c4b41f, - 0x3a30dba4dfe9d3ff, - 0x4006f19a7fb0f07b, - 0x5f6bf7dd4dc19ef4, - 0x1f6d064732716e8f, - 0xf9fbcc866a649d33, - 0x308c8de567744464, - 0x8971b0f972a0292c, - 0xd61a47243f61b7d8, - 0xefeb8511d4c82766, - 0x961cb6be40d147a3, - 0xaab35f25f7b812de, - 0x76154e407044329d, - 0x513d76b64e570693, - 0xf3479ac7d2f90aa8, - 0x9b8b2e4477079c85, - 0x297eb99d3d85ac69, - }, - { - 0x3ef29d249b2c0a19, - 0xe9e16322b6f8622f, - 0x5536994047757f7a, - 0x9f4d56d5a47b0b33, - 0x822567466aa1174c, - 0xb8f5057deb082fb2, - 0xcc48c10bf4475f53, - 0x373088d4275dec3a, - 0x968f4325180aed10, - 0x173d232cf7016151, - 0xae4ed09f946fcc13, - 0xfd4b4741c4539873, - 0x1b5b3f0dd9933765, - 0x2ffcb0967b644052, - 0xe02376d20a89840c, - 0xa3ae3a70329b18d7, - 0x419cbd2335de8526, - 0xfafebf115b7c3199, - 0x0397074f85aa9b0d, - 0xc58ad4fb4836b970, - 0xbec60be3fc4104a8, - 0x1eff36dc4b708772, - 0x131fdc33ed8453b6, - 0x0844e33e341764d3, - 0x0ff11b6eab38cd39, - 0x64351f0a7761b85a, - 0x3b5694f509cfba0e, - 0x30857084b87245d0, - 0x47afb3bd2297ae3c, - 0xf2ba5c2f6f6b554a, - 0x74bdc4761f4f70e1, - 0xcfdfc64471edc45e, - 0xe610784c1dc0af16, - 0x7aca29d63c113f28, - 0x2ded411776a859af, - 0xac5f211e99a3d5ee, - 0xd484f949a87ef33b, - 0x3ce36ca596e013e4, - 0xd120f0983a9d432c, - 0x6bc40464dc597563, - 0x69d5f5e5d1956c9e, - 0x9ae95f043698bb24, - 0xc9ecc8da66a4ef44, - 0xd69508c8a5b2eac6, - 0xc40c2235c0503b80, - 0x38c193ba8c652103, - 0x1ceec75d46bc9e8f, - 0xd331011937515ad1, - 0xd8e2e56886eca50f, - 0xb137108d5779c991, - 0x709f3b6905ca4206, - 0x4feb50831680caef, - 0xec456af3241bd238, - 0x58d673afe181abbe, - 0x242f54e7cad9bf8c, - 0x0211f1810dcc19fd, - 0x90bc4dbb0f43c60a, - 0x9518446a9da0761d, - 0xa1bfcbf13f57012a, - 0x2bde4f8961e172b5, - 0x27b853a84f732481, - 0xb0b1e643df1f4b61, - 0x18cc38425c39ac68, - 0xd2b7f7d7bf37d821, - 0x3103864a3014c720, - 0x14aa246372abfa5c, - 0x6e600db54ebac574, - 0x394765740403a3f3, - 0x09c215f0bc71e623, - 0x2a58b947e987f045, - 0x7b4cdf18b477bdd8, - 0x9709b5eb906c6fe0, - 0x73083c268060d90b, - 0xfedc400e41f9037e, - 0x284948c6e44be9b8, - 0x728ecae808065bfb, - 0x06330e9e17492b1a, - 0x5950856169e7294e, - 0xbae4f4fce6c4364f, - 0xca7bcf95e30e7449, - 0x7d7fd186a33e96c2, - 0x52836110d85ad690, - 0x4dfaa1021b4cd312, - 0x913abb75872544fa, - 0xdd46ecb9140f1518, - 0x3d659a6b1e869114, - 0xc23f2cabd719109a, - 0xd713fe062dd46836, - 0xd0a60656b2fbc1dc, - 0x221c5a79dd909496, - 0xefd26dbca1b14935, - 0x0e77eda0235e4fc9, - 0xcbfd395b6b68f6b9, - 0x0de0eaefa6f4d4c4, - 0x0422ff1f1a8532e7, - 0xf969b85eded6aa94, - 0x7f6e2007aef28f3f, - 0x3ad0623b81a938fe, - 0x6624ee8b7aada1a7, - 0xb682e8ddc856607b, - 0xa78cc56f281e2a30, - 0xc79b257a45faa08d, - 0x5b4174e0642b30b3, - 0x5f638bff7eae0254, - 0x4bc9af9c0c05f808, - 0xce59308af98b46ae, - 0x8fc58da9cc55c388, - 0x803496c7676d0eb1, - 0xf33caae1e70dd7ba, - 0xbb6202326ea2b4bf, - 0xd5020f87201871cb, - 0x9d5ca754a9b712ce, - 0x841669d87de83c56, - 0x8a6184785eb6739f, - 0x420bba6cb0741e2b, - 0xf12d5b60eac1ce47, - 0x76ac35f71283691c, - 0x2c6bb7d9fecedb5f, - 0xfccdb18f4c351a83, - 0x1f79c012c3160582, - 0xf0abadae62a74cb7, - 0xe1a5801c82ef06fc, - 0x67a21845f2cb2357, - 0x5114665f5df04d9d, - 0xbf40fd2d74278658, - 0xa0393d3fb73183da, - 0x05a409d192e3b017, - 0xa9fb28cf0b4065f9, - 0x25a9a22942bf3d7c, - 0xdb75e22703463e02, - 0xb326e10c5ab5d06c, - 0xe7968e8295a62de6, - 0xb973f3b3636ead42, - 0xdf571d3819c30ce5, - 0xee549b7229d7cbc5, - 0x12992afd65e2d146, - 0xf8ef4e9056b02864, - 0xb7041e134030e28b, - 0xc02edd2adad50967, - 0x932b4af48ae95d07, - 0x6fe6fb7bc6dc4784, - 0x239aacb755f61666, - 0x401a4bedbdb807d6, - 0x485ea8d389af6305, - 0xa41bc220adb4b13d, - 0x753b32b89729f211, - 0x997e584bb3322029, - 0x1d683193ceda1c7f, - 0xff5ab6c0c99f818e, - 0x16bbd5e27f67e3a1, - 0xa59d34ee25d233cd, - 0x98f8ae853b54a2d9, - 0x6df70afacb105e79, - 0x795d2e99b9bba425, - 0x8e437b6744334178, - 0x0186f6ce886682f0, - 0xebf092a3bb347bd2, - 0xbcd7fa62f18d1d55, - 0xadd9d7d011c5571e, - 0x0bd3e471b1bdffde, - 0xaa6c2f808eeafef4, - 0x5ee57d31f6c880a4, - 0xf50fa47ff044fca0, - 0x1addc9c351f5b595, - 0xea76646d3352f922, - 0x0000000000000000, - 0x85909f16f58ebea6, - 0x46294573aaf12ccc, - 0x0a5512bf39db7d2e, - 0x78dbd85731dd26d5, - 0x29cfbe086c2d6b48, - 0x218b5d36583a0f9b, - 0x152cd2adfacd78ac, - 0x83a39188e2c795bc, - 0xc3b9da655f7f926a, - 0x9ecba01b2c1d89c3, - 0x07b5f8509f2fa9ea, - 0x7ee8d6c926940dcf, - 0x36b67e1aaf3b6eca, - 0x86079859702425ab, - 0xfb7849dfd31ab369, - 0x4c7c57cc932a51e2, - 0xd96413a60e8a27ff, - 0x263ea566c715a671, - 0x6c71fc344376dc89, - 0x4a4f595284637af8, - 0xdaf314e98b20bcf2, - 0x572768c14ab96687, - 0x1088db7c682ec8bb, - 0x887075f9537a6a62, - 0x2e7a4658f302c2a2, - 0x619116dbe582084d, - 0xa87dde018326e709, - 0xdcc01a779c6997e8, - 0xedc39c3dac7d50c8, - 0xa60a33a1a078a8c0, - 0xc1a82be452b38b97, - 0x3f746bea134a88e9, - 0xa228ccbebafd9a27, - 0xabead94e068c7c04, - 0xf48952b178227e50, - 0x5cf48cb0fb049959, - 0x6017e0156de48abd, - 0x4438b4f2a73d3531, - 0x8c528ae649ff5885, - 0xb515ef924dfcfb76, - 0x0c661c212e925634, - 0xb493195cc59a7986, - 0x9cda519a21d1903e, - 0x32948105b5be5c2d, - 0x194ace8cd45f2e98, - 0x438d4ca238129cdb, - 0x9b6fa9cabefe39d4, - 0x81b26009ef0b8c41, - 0xded1ebf691a58e15, - 0x4e6da64d9ee6481f, - 0x54b06f8ecf13fd8a, - 0x49d85e1d01c9e1f5, - 0xafc826511c094ee3, - 0xf698a33075ee67ad, - 0x5ac7822eec4db243, - 0x8dd47c28c199da75, - 0x89f68337db1ce892, - 0xcdce37c57c21dda3, - 0x530597de503c5460, - 0x6a42f2aa543ff793, - 0x5d727a7e73621ba9, - 0xe232875307459df1, - 0x56a19e0fc2dfe477, - 0xc61dd3b4cd9c227d, - 0xe5877f03986a341b, - 0x949eb2a415c6f4ed, - 0x6206119460289340, - 0x6380e75ae84e11b0, - 0x8be772b6d6d0f16f, - 0x50929091d596cf6d, - 0xe86795ec3e9ee0df, - 0x7cf927482b581432, - 0xc86a3e14eec26db4, - 0x7119cda78dacc0f6, - 0xe40189cd100cb6eb, - 0x92adbc3a028fdff7, - 0xb2a017c2d2d3529c, - 0x200dabf8d05c8d6b, - 0x34a78f9ba2f77737, - 0xe3b4719d8f231f01, - 0x45be423c2f5bb7c1, - 0xf71e55fefd88e55d, - 0x6853032b59f3ee6e, - 0x65b3e9c4ff073aaa, - 0x772ac3399ae5ebec, - 0x87816e97f842a75b, - 0x110e2db2e0484a4b, - 0x331277cb3dd8dedd, - 0xbd510cac79eb9fa5, - 0x352179552a91f5c7, - }, - { - 0x05ba7bc82c9b3220, - 0x31a54665f8b65e4f, - 0xb1b651f77547f4d4, - 0x8bfa0d857ba46682, - 0x85a96c5aa16a98bb, - 0x990faef908eb79c9, - 0xa15e37a247f4a62d, - 0x76857dcd5d27741e, - 0xf8c50b800a1820bc, - 0xbe65dcb201f7a2b4, - 0x666d1b986f9426e7, - 0x4cc921bf53c4e648, - 0x95410a0f93d9ca42, - 0x20cdccaa647ba4ef, - 0x429a4060890a1871, - 0x0c4ea4f69b32b38b, - 0xccda362dde354cd3, - 0x96dc23bc7c5b2fa9, - 0xc309bb68aa851ab3, - 0xd26131a73648e013, - 0x021dc52941fc4db2, - 0xcd5adab7704be48a, - 0xa77965d984ed71e6, - 0x32386fd61734bba4, - 0xe82d6dd538ab7245, - 0x5c2147ea6177b4b1, - 0x5da1ab70cf091ce8, - 0xac907fce72b8bdff, - 0x57c85dfd972278a8, - 0xa4e44c6a6b6f940d, - 0x3851995b4f1fdfe4, - 0x62578ccaed71bc9e, - 0xd9882bb0c01d2c0a, - 0x917b9d5d113c503b, - 0xa2c31e11a87643c6, - 0xe463c923a399c1ce, - 0xf71686c57ea876dc, - 0x87b4a973e096d509, - 0xaf0d567d9d3a5814, - 0xb40c2a3f59dcc6f4, - 0x3602f88495d121dd, - 0xd3e1dd3d9836484a, - 0xf945e71aa46688e5, - 0x7518547eb2a591f5, - 0x9366587450c01d89, - 0x9ea81018658c065b, - 0x4f54080cbc4603a3, - 0x2d0384c65137bf3d, - 0xdc325078ec861e2a, - 0xea30a8fc79573ff7, - 0x214d2030ca050cb6, - 0x65f0322b8016c30c, - 0x69be96dd1b247087, - 0xdb95ee9981e161b8, - 0xd1fc1814d9ca05f8, - 0x820ed2bbcc0de729, - 0x63d76050430f14c7, - 0x3bccb0e8a09d3a0f, - 0x8e40764d573f54a2, - 0x39d175c1e16177bd, - 0x12f5a37c734f1f4b, - 0xab37c12f1fdfc26d, - 0x5648b167395cd0f1, - 0x6c04ed1537bf42a7, - 0xed97161d14304065, - 0x7d6c67daab72b807, - 0xec17fa87ba4ee83c, - 0xdfaf79cb0304fbc1, - 0x733f060571bc463e, - 0x78d61c1287e98a27, - 0xd07cf48e77b4ada1, - 0xb9c262536c90dd26, - 0xe2449b5860801605, - 0x8fc09ad7f941fcfb, - 0xfad8cea94be46d0e, - 0xa343f28b0608eb9f, - 0x9b126bd04917347b, - 0x9a92874ae7699c22, - 0x1b017c42c4e69ee0, - 0x3a4c5c720ee39256, - 0x4b6e9f5e3ea399da, - 0x6ba353f45ad83d35, - 0xe7fee0904c1b2425, - 0x22d009832587e95d, - 0x842980c00f1430e2, - 0xc6b3c0a0861e2893, - 0x087433a419d729f2, - 0x341f3dadd42d6c6f, - 0xee0a3faefbb2a58e, - 0x4aee73c490dd3183, - 0xaab72db5b1a16a34, - 0xa92a04065e238fdf, - 0x7b4b35a1686b6fcc, - 0x6a23bf6ef4a6956c, - 0x191cb96b851ad352, - 0x55d598d4d6de351a, - 0xc9604de5f2ae7ef3, - 0x1ca6c2a3a981e172, - 0xde2f9551ad7a5398, - 0x3025aaff56c8f616, - 0x15521d9d1e2860d9, - 0x506fe31cfa45073a, - 0x189c55f12b647b0b, - 0x0180ec9aae7ea859, - 0x7cec8b40050c105e, - 0x2350e5198bf94104, - 0xef8ad33455cc0dd7, - 0x07a7bee16d677f92, - 0xe5e325b90de76997, - 0x5a061591a26e637a, - 0xb611ef1618208b46, - 0x09f4df3eb7a981ab, - 0x1ebb078ae87dacc0, - 0xb791038cb65e231f, - 0x0fd38d4574b05660, - 0x67edf702c1ea8ebe, - 0xba5f4be0831238cd, - 0xe3c477c2cefebe5c, - 0x0dce486c354c1bd2, - 0x8c5db36416c31910, - 0x26ea9ed1a7627324, - 0x039d29b3ef82e5eb, - 0x9f28fc82cbf2ae02, - 0xa8aae89cf05d2786, - 0x431aacfa2774b028, - 0xcf471f9e31b7a938, - 0x581bd0b8e3922ec8, - 0xbc78199b400bef06, - 0x90fb71c7bf42f862, - 0x1f3beb1046030499, - 0x683e7a47b55ad8de, - 0x988f4263a695d190, - 0xd808c72a6e638453, - 0x0627527bc319d7cb, - 0xebb04466d72997ae, - 0xe67e0c0ae2658c7c, - 0x14d2f107b056c880, - 0x7122c32c30400b8c, - 0x8a7ae11fd5dacedb, - 0xa0dedb38e98a0e74, - 0xad109354dcc615a6, - 0x0be91a17f655cc19, - 0x8ddd5ffeb8bdb149, - 0xbfe53028af890aed, - 0xd65ba6f5b4ad7a6a, - 0x7956f0882997227e, - 0x10e8665532b352f9, - 0x0e5361dfdacefe39, - 0xcec7f3049fc90161, - 0xff62b561677f5f2e, - 0x975ccf26d22587f0, - 0x51ef0f86543baf63, - 0x2f1e41ef10cbf28f, - 0x52722635bbb94a88, - 0xae8dbae73344f04d, - 0x410769d36688fd9a, - 0xb3ab94de34bbb966, - 0x801317928df1aa9b, - 0xa564a0f0c5113c54, - 0xf131d4bebdb1a117, - 0x7f71a2f3ea8ef5b5, - 0x40878549c8f655c3, - 0x7ef14e6944f05dec, - 0xd44663dcf55137d8, - 0xf2acfd0d523344fc, - 0x0000000000000000, - 0x5fbc6e598ef5515a, - 0x16cf342ef1aa8532, - 0xb036bd6ddb395c8d, - 0x13754fe6dd31b712, - 0xbbdfa77a2d6c9094, - 0x89e7c8ac3a582b30, - 0x3c6b0e09cdfa459d, - 0xc4ae0589c7e26521, - 0x49735a777f5fd468, - 0xcafd64561d2c9b18, - 0xda1502032f9fc9e1, - 0x8867243694268369, - 0x3782141e3baf8984, - 0x9cb5d53124704be9, - 0xd7db4a6f1ad3d233, - 0xa6f989432a93d9bf, - 0x9d3539ab8a0ee3b0, - 0x53f2caaf15c7e2d1, - 0x6e19283c76430f15, - 0x3debe2936384edc4, - 0x5e3c82c3208bf903, - 0x33b8834cb94a13fd, - 0x6470deb12e686b55, - 0x359fd1377a53c436, - 0x61caa57902f35975, - 0x043a975282e59a79, - 0xfd7f70482683129c, - 0xc52ee913699ccd78, - 0x28b9ff0e7dac8d1d, - 0x5455744e78a09d43, - 0xcb7d88ccb3523341, - 0x44bd121b4a13cfba, - 0x4d49cd25fdba4e11, - 0x3e76cb208c06082f, - 0x3ff627ba2278a076, - 0xc28957f204fbb2ea, - 0x453dfe81e46d67e3, - 0x94c1e6953da7621b, - 0x2c83685cff491764, - 0xf32c1197fc4deca5, - 0x2b24d6bd922e68f6, - 0xb22b78449ac5113f, - 0x48f3b6edd1217c31, - 0x2e9ead75beb55ad6, - 0x174fd8b45fd42d6b, - 0x4ed4e4961238abfa, - 0x92e6b4eefebeb5d0, - 0x46a0d7320bef8208, - 0x47203ba8a5912a51, - 0x24f75bf8e69e3e96, - 0xf0b1382413cf094e, - 0xfee259fbc901f777, - 0x276a724b091cdb7d, - 0xbdf8f501ee75475f, - 0x599b3c224dec8691, - 0x6d84018f99c1eafe, - 0x7498b8e41cdb39ac, - 0xe0595e71217c5bb7, - 0x2aa43a273c50c0af, - 0xf50b43ec3f543b6e, - 0x838e3e2162734f70, - 0xc09492db4507ff58, - 0x72bfea9fdfc2ee67, - 0x11688acf9ccdfaa0, - 0x1a8190d86a9836b9, - 0x7acbd93bc615c795, - 0xc7332c3a286080ca, - 0x863445e94ee87d50, - 0xf6966a5fd0d6de85, - 0xe9ad814f96d5da1c, - 0x70a22fb69e3ea3d5, - 0x0a69f68d582b6440, - 0xb8428ec9c2ee757f, - 0x604a49e3ac8df12c, - 0x5b86f90b0c10cb23, - 0xe1d9b2eb8f02f3ee, - 0x29391394d3d22544, - 0xc8e0a17f5cd0d6aa, - 0xb58cc6a5f7a26ead, - 0x8193fb08238f02c2, - 0xd5c68f465b2f9f81, - 0xfcff9cd288fdbac5, - 0x77059157f359dc47, - 0x1d262e3907ff492b, - 0xfb582233e59ac557, - 0xddb2bce242f8b673, - 0x2577b76248e096cf, - 0x6f99c4a6d83da74c, - 0xc1147e41eb795701, - 0xf48baf76912a9337, - }, - { - 0x45b268a93acde4cc, - 0xaf7f0be884549d08, - 0x048354b3c1468263, - 0x925435c2c80efed2, - 0xee4e37f27fdffba7, - 0x167a33920c60f14d, - 0xfb123b52ea03e584, - 0x4a0cab53fdbb9007, - 0x9deaf6380f788a19, - 0xcb48ec558f0cb32a, - 0xb59dc4b2d6fef7e0, - 0xdcdbca22f4f3ecb6, - 0x11df5813549a9c40, - 0xe33fdedf568aced3, - 0xa0c1c8124322e9c3, - 0x07a56b8158fa6d0d, - 0x77279579b1e1f3dd, - 0xd9b18b74422ac004, - 0xb8ec2d9fffabc294, - 0xf4acf8a82d75914f, - 0x7bbf69b1ef2b6878, - 0xc4f62faf487ac7e1, - 0x76ce809cc67e5d0c, - 0x6711d88f92e4c14c, - 0x627b99d9243dedfe, - 0x234aa5c3dfb68b51, - 0x909b1f15262dbf6d, - 0x4f66ea054b62bcb5, - 0x1ae2cf5a52aa6ae8, - 0xbea053fbd0ce0148, - 0xed6808c0e66314c9, - 0x43fe16cd15a82710, - 0xcd049231a06970f6, - 0xe7bc8a6c97cc4cb0, - 0x337ce835fcb3b9c0, - 0x65def2587cc780f3, - 0x52214ede4132bb50, - 0x95f15e4390f493df, - 0x870839625dd2e0f1, - 0x41313c1afb8b66af, - 0x91720af051b211bc, - 0x477d427ed4eea573, - 0x2e3b4ceef6e3be25, - 0x82627834eb0bcc43, - 0x9c03e3dd78e724c8, - 0x2877328ad9867df9, - 0x14b51945e243b0f2, - 0x574b0f88f7eb97e2, - 0x88b6fa989aa4943a, - 0x19c4f068cb168586, - 0x50ee6409af11faef, - 0x7df317d5c04eaba4, - 0x7a567c5498b4c6a9, - 0xb6bbfb804f42188e, - 0x3cc22bcf3bc5cd0b, - 0xd04336eaaa397713, - 0xf02fac1bec33132c, - 0x2506dba7f0d3488d, - 0xd7e65d6bf2c31a1e, - 0x5eb9b2161ff820f5, - 0x842e0650c46e0f9f, - 0x716beb1d9e843001, - 0xa933758cab315ed4, - 0x3fe414fda2792265, - 0x27c9f1701ef00932, - 0x73a4c1ca70a771be, - 0x94184ba6e76b3d0e, - 0x40d829ff8c14c87e, - 0x0fbec3fac77674cb, - 0x3616a9634a6a9572, - 0x8f139119c25ef937, - 0xf545ed4d5aea3f9e, - 0xe802499650ba387b, - 0x6437e7bd0b582e22, - 0xe6559f89e053e261, - 0x80ad52e305288dfc, - 0x6dc55a23e34b9935, - 0xde14e0f51ad0ad09, - 0xc6390578a659865e, - 0x96d7617109487cb1, - 0xe2d6cb3a21156002, - 0x01e915e5779faed1, - 0xadb0213f6a77dcb7, - 0x9880b76eb9a1a6ab, - 0x5d9f8d248644cf9b, - 0xfd5e4536c5662658, - 0xf1c6b9fe9bacbdfd, - 0xeacd6341be9979c4, - 0xefa7221708405576, - 0x510771ecd88e543e, - 0xc2ba51cb671f043d, - 0x0ad482ac71af5879, - 0xfe787a045cdac936, - 0xb238af338e049aed, - 0xbd866cc94972ee26, - 0x615da6ebbd810290, - 0x3295fdd08b2c1711, - 0xf834046073bf0aea, - 0xf3099329758ffc42, - 0x1caeb13e7dcfa934, - 0xba2307481188832b, - 0x24efce42874ce65c, - 0x0e57d61fb0e9da1a, - 0xb3d1bad6f99b343c, - 0xc0757b1c893c4582, - 0x2b510db8403a9297, - 0x5c7698c1f1db614a, - 0x3e0d0118d5e68cb4, - 0xd60f488e855cb4cf, - 0xae961e0df3cb33d9, - 0x3a8e55ab14a00ed7, - 0x42170328623789c1, - 0x838b6dd19c946292, - 0x895fef7ded3b3aeb, - 0xcfcbb8e64e4a3149, - 0x064c7e642f65c3dc, - 0x3d2b3e2a4c5a63da, - 0x5bd3f340a9210c47, - 0xb474d157a1615931, - 0xac5934da1de87266, - 0x6ee365117af7765b, - 0xc86ed36716b05c44, - 0x9ba6885c201d49c5, - 0xb905387a88346c45, - 0x131072c4bab9ddff, - 0xbf49461ea751af99, - 0xd52977bc1ce05ba1, - 0xb0f785e46027db52, - 0x546d30ba6e57788c, - 0x305ad707650f56ae, - 0xc987c682612ff295, - 0xa5ab8944f5fbc571, - 0x7ed528e759f244ca, - 0x8ddcbbce2c7db888, - 0xaa154abe328db1ba, - 0x1e619be993ece88b, - 0x09f2bd9ee813b717, - 0x7401aa4b285d1cb3, - 0x21858f143195caee, - 0x48c381841398d1b8, - 0xfcb750d3b2f98889, - 0x39a86a998d1ce1b9, - 0x1f888e0ce473465a, - 0x7899568376978716, - 0x02cf2ad7ee2341bf, - 0x85c713b5b3f1a14e, - 0xff916fe12b4567e7, - 0x7c1a0230b7d10575, - 0x0c98fcc85eca9ba5, - 0xa3e7f720da9e06ad, - 0x6a6031a2bbb1f438, - 0x973e74947ed7d260, - 0x2cf4663918c0ff9a, - 0x5f50a7f368678e24, - 0x34d983b4a449d4cd, - 0x68af1b755592b587, - 0x7f3c3d022e6dea1b, - 0xabfc5f5b45121f6b, - 0x0d71e92d29553574, - 0xdffdf5106d4f03d8, - 0x081ba87b9f8c19c6, - 0xdb7ea1a3ac0981bb, - 0xbbca12ad66172dfa, - 0x79704366010829c7, - 0x179326777bff5f9c, - 0x0000000000000000, - 0xeb2476a4c906d715, - 0x724dd42f0738df6f, - 0xb752ee6538ddb65f, - 0x37ffbc863df53ba3, - 0x8efa84fcb5c157e6, - 0xe9eb5c73272596aa, - 0x1b0bdabf2535c439, - 0x86e12c872a4d4e20, - 0x9969a28bce3e087a, - 0xfafb2eb79d9c4b55, - 0x056a4156b6d92cb2, - 0x5a3ae6a5debea296, - 0x22a3b026a8292580, - 0x53c85b3b36ad1581, - 0xb11e900117b87583, - 0xc51f3a4a3fe56930, - 0xe019e1edcf3621bd, - 0xec811d2591fcba18, - 0x445b7d4c4d524a1d, - 0xa8da6069dcaef005, - 0x58f5cc72309de329, - 0xd4c062596b7ff570, - 0xce22ad0339d59f98, - 0x591cd99747024df8, - 0x8b90c5aa03187b54, - 0xf663d27fc356d0f0, - 0xd8589e9135b56ed5, - 0x35309651d3d67a1c, - 0x12f96721cd26732e, - 0xd28c1c3d441a36ac, - 0x492a946164077f69, - 0x2d1d73dc6f5f514b, - 0x6f0a70f40d68d88a, - 0x60b4b30eca1eac41, - 0xd36509d83385987d, - 0x0b3d97490630f6a8, - 0x9eccc90a96c46577, - 0xa20ee2c5ad01a87c, - 0xe49ab55e0e70a3de, - 0xa4429ca182646ba0, - 0xda97b446db962f6a, - 0xcced87d4d7f6de27, - 0x2ab8185d37a53c46, - 0x9f25dcefe15bcba6, - 0xc19c6ef9fea3eb53, - 0xa764a3931bd884ce, - 0x2fd2590b817c10f4, - 0x56a21a6d80743933, - 0xe573a0bb79ef0d0f, - 0x155c0ca095dc1e23, - 0x6c2c4fc694d437e4, - 0x10364df623053291, - 0xdd32dfc7836c4267, - 0x03263f3299bcef6e, - 0x66f8cd6ae57b6f9d, - 0x8c35ae2b5be21659, - 0x31b3c2e21290f87f, - 0x93bd2027bf915003, - 0x69460e90220d1b56, - 0x299e276fae19d328, - 0x63928c3c53a2432f, - 0x7082fef8e91b9ed0, - 0xbc6f792c3eed40f7, - 0x4c40d537d2de53db, - 0x75e8bfae5fc2b262, - 0x4da9c0d2a541fd0a, - 0x4e8fffe03cfd1264, - 0x2620e495696fa7e3, - 0xe1f0f408b8a98f6c, - 0xd1aa230fdda6d9c2, - 0xc7d0109dd1c6288f, - 0x8a79d04f7487d585, - 0x4694579ba3710ba2, - 0x38417f7cfa834f68, - 0x1d47a4db0a5007e5, - 0x206c9af1460a643f, - 0xa128ddf734bd4712, - 0x8144470672b7232d, - 0xf2e086cc02105293, - 0x182de58dbc892b57, - 0xcaa1f9b0f8931dfb, - 0x6b892447cc2e5ae9, - 0xf9dd11850420a43b, - 0x4be5beb68a243ed6, - 0x5584255f19c8d65d, - 0x3b67404e633fa006, - 0xa68db6766c472a1f, - 0xf78ac79ab4c97e21, - 0xc353442e1080aaec, - 0x9a4f9db95782e714, - }, - { - 0xc811a8058c3f55de, - 0x65f5b43196b50619, - 0xf74f96b1d6706e43, - 0x859d1e8bcb43d336, - 0x5aab8a85ccfa3d84, - 0xf9c7bf99c295fcfd, - 0xa21fd5a1de4b630f, - 0xcdb3ef763b8b456d, - 0x803f59f87cf7c385, - 0xb27c73be5f31913c, - 0x98e3ac6633b04821, - 0xbf61674c26b8f818, - 0x0ffbc995c4c130c8, - 0xaaa0862010761a98, - 0x6057f342210116aa, - 0xf63c760c0654cc35, - 0x2ddb45cc667d9042, - 0xbcf45a964bd40382, - 0x68e8a0c3ef3c6f3d, - 0xa7bd92d269ff73bc, - 0x290ae20201ed2287, - 0xb7de34cde885818f, - 0xd901eea7dd61059b, - 0xd6fa273219a03553, - 0xd56f1ae874cccec9, - 0xea31245c2e83f554, - 0x7034555da07be499, - 0xce26d2ac56e7bef7, - 0xfd161857a5054e38, - 0x6a0e7da4527436d1, - 0x5bd86a381cde9ff2, - 0xcaf7756231770c32, - 0xb09aaed9e279c8d0, - 0x5def1091c60674db, - 0x111046a2515e5045, - 0x23536ce4729802fc, - 0xc50cbcf7f5b63cfa, - 0x73a16887cd171f03, - 0x7d2941afd9f28dbd, - 0x3f5e3eb45a4f3b9d, - 0x84eefe361b677140, - 0x3db8e3d3e7076271, - 0x1a3a28f9f20fd248, - 0x7ebc7c75b49e7627, - 0x74e5f293c7eb565c, - 0x18dcf59e4f478ba4, - 0x0c6ef44fa9adcb52, - 0xc699812d98dac760, - 0x788b06dc6e469d0e, - 0xfc65f8ea7521ec4e, - 0x30a5f7219e8e0b55, - 0x2bec3f65bca57b6b, - 0xddd04969baf1b75e, - 0x99904cdbe394ea57, - 0x14b201d1e6ea40f6, - 0xbbb0c08241284add, - 0x50f20463bf8f1dff, - 0xe8d7f93b93cbacb8, - 0x4d8cb68e477c86e8, - 0xc1dd1b3992268e3f, - 0x7c5aa11209d62fcb, - 0x2f3d98abdb35c9ae, - 0x671369562bfd5ff5, - 0x15c1e16c36cee280, - 0x1d7eb2edf8f39b17, - 0xda94d37db00dfe01, - 0x877bc3ec760b8ada, - 0xcb8495dfe153ae44, - 0x05a24773b7b410b3, - 0x12857b783c32abdf, - 0x8eb770d06812513b, - 0x536739b9d2e3e665, - 0x584d57e271b26468, - 0xd789c78fc9849725, - 0xa935bbfa7d1ae102, - 0x8b1537a3dfa64188, - 0xd0cd5d9bc378de7a, - 0x4ac82c9a4d80cfb7, - 0x42777f1b83bdb620, - 0x72d2883a1d33bd75, - 0x5e7a2d4bab6a8f41, - 0xf4daab6bbb1c95d9, - 0x905cffe7fd8d31b6, - 0x83aa6422119b381f, - 0xc0aefb8442022c49, - 0xa0f908c663033ae3, - 0xa428af0804938826, - 0xade41c341a8a53c7, - 0xae7121ee77e6a85d, - 0xc47f5c4a25929e8c, - 0xb538e9aa55cdd863, - 0x06377aa9dad8eb29, - 0xa18ae87bb3279895, - 0x6edfda6a35e48414, - 0x6b7d9d19825094a7, - 0xd41cfa55a4e86cbf, - 0xe5caedc9ea42c59c, - 0xa36c351c0e6fc179, - 0x5181e4de6fabbf89, - 0xfff0c530184d17d4, - 0x9d41eb1584045892, - 0x1c0d525028d73961, - 0xf178ec180ca8856a, - 0x9a0571018ef811cd, - 0x4091a27c3ef5efcc, - 0x19af15239f6329d2, - 0x347450eff91eb990, - 0xe11b4a078dd27759, - 0xb9561de5fc601331, - 0x912f1f5a2da993c0, - 0x1654dcb65ba2191a, - 0x3e2dde098a6b99eb, - 0x8a66d71e0f82e3fe, - 0x8c51adb7d55a08d7, - 0x4533e50f8941ff7f, - 0x02e6dd67bd4859ec, - 0xe068aaba5df6d52f, - 0xc24826e3ff4a75a5, - 0x6c39070d88acddf8, - 0x6486548c4691a46f, - 0xd1bebd26135c7c0c, - 0xb30f93038f15334a, - 0x82d9849fc1bf9a69, - 0x9c320ba85420fae4, - 0xfa528243aff90767, - 0x9ed4d6cfe968a308, - 0xb825fd582c44b147, - 0x9b7691bc5edcb3bb, - 0xc7ea619048fe6516, - 0x1063a61f817af233, - 0x47d538683409a693, - 0x63c2ce984c6ded30, - 0x2a9fdfd86c81d91d, - 0x7b1e3b06032a6694, - 0x666089ebfbd9fd83, - 0x0a598ee67375207b, - 0x07449a140afc495f, - 0x2ca8a571b6593234, - 0x1f986f8a45bbc2fb, - 0x381aa4a050b372c2, - 0x5423a3add81faf3a, - 0x17273c0b8b86bb6c, - 0xfe83258dc869b5a2, - 0x287902bfd1c980f1, - 0xf5a94bd66b3837af, - 0x88800a79b2caba12, - 0x55504310083b0d4c, - 0xdf36940e07b9eeb2, - 0x04d1a7ce6790b2c5, - 0x612413fff125b4dc, - 0x26f12b97c52c124f, - 0x86082351a62f28ac, - 0xef93632f9937e5e7, - 0x3507b052293a1be6, - 0xe72c30ae570a9c70, - 0xd3586041ae1425e0, - 0xde4574b3d79d4cc4, - 0x92ba228040c5685a, - 0xf00b0ca5dc8c271c, - 0xbe1287f1f69c5a6e, - 0xf39e317fb1e0dc86, - 0x495d114020ec342d, - 0x699b407e3f18cd4b, - 0xdca3a9d46ad51528, - 0x0d1d14f279896924, - 0x0000000000000000, - 0x593eb75fa196c61e, - 0x2e4e78160b116bd8, - 0x6d4ae7b058887f8e, - 0xe65fd013872e3e06, - 0x7a6ddbbbd30ec4e2, - 0xac97fc89caaef1b1, - 0x09ccb33c1e19dbe1, - 0x89f3eac462ee1864, - 0x7770cf49aa87adc6, - 0x56c57eca6557f6d6, - 0x03953dda6d6cfb9a, - 0x36928d884456e07c, - 0x1eeb8f37959f608d, - 0x31d6179c4eaaa923, - 0x6fac3ad7e5c02662, - 0x43049fa653991456, - 0xabd3669dc052b8ee, - 0xaf02c153a7c20a2b, - 0x3ccb036e3723c007, - 0x93c9c23d90e1ca2c, - 0xc33bc65e2f6ed7d3, - 0x4cff56339758249e, - 0xb1e94e64325d6aa6, - 0x37e16d359472420a, - 0x79f8e661be623f78, - 0x5214d90402c74413, - 0x482ef1fdf0c8965b, - 0x13f69bc5ec1609a9, - 0x0e88292814e592be, - 0x4e198b542a107d72, - 0xccc00fcbebafe71b, - 0x1b49c844222b703e, - 0x2564164da840e9d5, - 0x20c6513e1ff4f966, - 0xbac3203f910ce8ab, - 0xf2edd1c261c47ef0, - 0x814cb945acd361f3, - 0x95feb8944a392105, - 0x5c9cf02c1622d6ad, - 0x971865f3f77178e9, - 0xbd87ba2b9bf0a1f4, - 0x444005b259655d09, - 0xed75be48247fbc0b, - 0x7596122e17cff42a, - 0xb44b091785e97a15, - 0x966b854e2755da9f, - 0xeee0839249134791, - 0x32432a4623c652b9, - 0xa8465b47ad3e4374, - 0xf8b45f2412b15e8b, - 0x2417f6f078644ba3, - 0xfb2162fe7fdda511, - 0x4bbbcc279da46dc1, - 0x0173e0bdd024a276, - 0x22208c59a2bca08a, - 0x8fc4906db836f34d, - 0xe4b90d743a6667ea, - 0x7147b5e0705f46ef, - 0x2782cb2a1508b039, - 0xec065ef5f45b1e7d, - 0x21b5b183cfd05b10, - 0xdbe733c060295c77, - 0x9fa73672394c017e, - 0xcf55321186c31c81, - 0xd8720e1a0d45a7ed, - 0x3b8f997a3ddf8958, - 0x3afc79c7edfb2b2e, - 0xe9a4198643ef0ece, - 0x5f09cdf67b4e2d37, - 0x4f6a6be9fa34df04, - 0xb6add47038a123f9, - 0x8d224d0a057eaaa1, - 0xc96248b85c1bf7a8, - 0xe3fd9760309a2eb5, - 0x0b2a6e5ba351820d, - 0xeb42c4e1fea75722, - 0x948d58299a1d8373, - 0x7fcf9cc864bad451, - 0xa55b4fb5d4b72a50, - 0x08bf5381ce3d7997, - 0x46a6d8d5e42d04e5, - 0xd22b80fc7e308796, - 0x57b69e77b57354a0, - 0x3969441d8097d0b4, - 0x3330cafbf3e2f0cf, - 0xe28e77dde0be8cc3, - 0x62b12e259c494f46, - 0xa6ce726fb9dbd1ca, - 0x41e242c1eed14dba, - 0x76032ff47aa30fb0, - }, - { - 0xe6f87e5c5b711fd0, - 0x258377800924fa16, - 0xc849e07e852ea4a8, - 0x5b4686a18f06c16a, - 0x0b32e9a2d77b416e, - 0xabda37a467815c66, - 0xf61796a81a686676, - 0xf5dc0b706391954b, - 0x4862f38db7e64bf1, - 0xff5c629a68bd85c5, - 0xcb827da6fcd75795, - 0x66d36daf69b9f089, - 0x356c9f74483d83b0, - 0x7cbcecb1238c99a1, - 0x36a702ac31c4708d, - 0x9eb6a8d02fbcdfd6, - 0x8b19fa51e5b3ae37, - 0x9ccfb5408a127d0b, - 0xbc0c78b508208f5a, - 0xe533e3842288eced, - 0xcec2c7d377c15fd2, - 0xec7817b6505d0f5e, - 0xb94cc2c08336871d, - 0x8c205db4cb0b04ad, - 0x763c855b28a0892f, - 0x588d1b79f6ff3257, - 0x3fecf69e4311933e, - 0x0fc0d39f803a18c9, - 0xee010a26f5f3ad83, - 0x10efe8f4411979a6, - 0x5dcda10c7de93a10, - 0x4a1bee1d1248e92c, - 0x53bff2db21847339, - 0xb4f50ccfa6a23d09, - 0x5fb4bc9cd84798cd, - 0xe88a2d8b071c56f9, - 0x7f7771695a756a9c, - 0xc5f02e71a0ba1ebc, - 0xa663f9ab4215e672, - 0x2eb19e22de5fbb78, - 0x0db9ce0f2594ba14, - 0x82520e6397664d84, - 0x2f031e6a0208ea98, - 0x5c7f2144a1be6bf0, - 0x7a37cb1cd16362db, - 0x83e08e2b4b311c64, - 0xcf70479bab960e32, - 0x856ba986b9dee71e, - 0xb5478c877af56ce9, - 0xb8fe42885f61d6fd, - 0x1bdd0156966238c8, - 0x622157923ef8a92e, - 0xfc97ff42114476f8, - 0x9d7d350856452ceb, - 0x4c90c9b0e0a71256, - 0x2308502dfbcb016c, - 0x2d7a03faa7a64845, - 0xf46e8b38bfc6c4ab, - 0xbdbef8fdd477deba, - 0x3aac4cebc8079b79, - 0xf09cb105e8879d0c, - 0x27fa6a10ac8a58cb, - 0x8960e7c1401d0cea, - 0x1a6f811e4a356928, - 0x90c4fb0773d196ff, - 0x43501a2f609d0a9f, - 0xf7a516e0c63f3796, - 0x1ce4a6b3b8da9252, - 0x1324752c38e08a9b, - 0xa5a864733bec154f, - 0x2bf124575549b33f, - 0xd766db15440dc5c7, - 0xa7d179e39e42b792, - 0xdadf151a61997fd3, - 0x86a0345ec0271423, - 0x38d5517b6da939a4, - 0x6518f077104003b4, - 0x02791d90a5aea2dd, - 0x88d267899c4a5d0a, - 0x930f66df0a2865c2, - 0x4ee9d4204509b08b, - 0x325538916685292a, - 0x412907bfc533a842, - 0xb27e2b62544dc673, - 0x6c5304456295e007, - 0x5af406e95351908a, - 0x1f2f3b6bc123616f, - 0xc37b09dc5255e5c6, - 0x3967d133b1fe6844, - 0x298839c7f0e711e2, - 0x409b87f71964f9a2, - 0xe938adc3db4b0719, - 0x0c0b4e47f9c3ebf4, - 0x5534d576d36b8843, - 0x4610a05aeb8b02d8, - 0x20c3cdf58232f251, - 0x6de1840dbec2b1e7, - 0xa0e8de06b0fa1d08, - 0x7b854b540d34333b, - 0x42e29a67bcca5b7f, - 0xd8a6088ac437dd0e, - 0xc63bb3a9d943ed81, - 0x21714dbd5e65a3b1, - 0x6761ede7b5eea169, - 0x2431f7c8d573abf6, - 0xd51fc685e1a3671a, - 0x5e063cd40410c92d, - 0x283ab98f2cb04002, - 0x8febc06cb2f2f790, - 0x17d64f116fa1d33c, - 0xe07359f1a99ee4aa, - 0x784ed68c74cdc006, - 0x6e2a19d5c73b42da, - 0x8712b4161c7045c3, - 0x371582e4ed93216d, - 0xace390414939f6fc, - 0x7ec5f12186223b7c, - 0xc0b094042bac16fb, - 0xf9d745379a527ebf, - 0x737c3f2ea3b68168, - 0x33e7b8d9bad278ca, - 0xa9a32a34c22ffebb, - 0xe48163ccfedfbd0d, - 0x8e5940246ea5a670, - 0x51c6ef4b842ad1e4, - 0x22bad065279c508c, - 0xd91488c218608cee, - 0x319ea5491f7cda17, - 0xd394e128134c9c60, - 0x094bf43272d5e3b3, - 0x9bf612a5a4aad791, - 0xccbbda43d26ffd0f, - 0x34de1f3c946ad250, - 0x4f5b5468995ee16b, - 0xdf9faf6fea8f7794, - 0x2648ea5870dd092b, - 0xbfc7e56d71d97c67, - 0xdde6b2ff4f21d549, - 0x3c276b463ae86003, - 0x91767b4faf86c71f, - 0x68a13e7835d4b9a0, - 0xb68c115f030c9fd4, - 0x141dd2c916582001, - 0x983d8f7ddd5324ac, - 0x64aa703fcc175254, - 0xc2c989948e02b426, - 0x3e5e76d69f46c2de, - 0x50746f03587d8004, - 0x45db3d829272f1e5, - 0x60584a029b560bf3, - 0xfbae58a73ffcdc62, - 0xa15a5e4e6cad4ce8, - 0x4ba96e55ce1fb8cc, - 0x08f9747aae82b253, - 0xc102144cf7fb471b, - 0x9f042898f3eb8e36, - 0x068b27adf2effb7a, - 0xedca97fe8c0a5ebe, - 0x778e0513f4f7d8cf, - 0x302c2501c32b8bf7, - 0x8d92ddfc175c554d, - 0xf865c57f46052f5f, - 0xeaf3301ba2b2f424, - 0xaa68b7ecbbd60d86, - 0x998f0f350104754c, - 0x0000000000000000, - 0xf12e314d34d0ccec, - 0x710522be061823b5, - 0xaf280d9930c005c1, - 0x97fd5ce25d693c65, - 0x19a41cc633cc9a15, - 0x95844172f8c79eb8, - 0xdc5432b7937684a9, - 0x9436c13a2490cf58, - 0x802b13f332c8ef59, - 0xc442ae397ced4f5c, - 0xfa1cd8efe3ab8d82, - 0xf2e5ac954d293fd1, - 0x6ad823e8907a1b7d, - 0x4d2249f83cf043b6, - 0x03cb9dd879f9f33d, - 0xde2d2f2736d82674, - 0x2a43a41f891ee2df, - 0x6f98999d1b6c133a, - 0xd4ad46cd3df436fa, - 0xbb35df50269825c0, - 0x964fdcaa813e6d85, - 0xeb41b0537ee5a5c4, - 0x0540ba758b160847, - 0xa41ae43be7bb44af, - 0xe3b8c429d0671797, - 0x819993bbee9fbeb9, - 0xae9a8dd1ec975421, - 0xf3572cdd917e6e31, - 0x6393d7dae2aff8ce, - 0x47a2201237dc5338, - 0xa32343dec903ee35, - 0x79fc56c4a89a91e6, - 0x01b28048dc5751e0, - 0x1296f564e4b7db7b, - 0x75f7188351597a12, - 0xdb6d9552bdce2e33, - 0x1e9dbb231d74308f, - 0x520d7293fdd322d9, - 0xe20a44610c304677, - 0xfeeee2d2b4ead425, - 0xca30fdee20800675, - 0x61eaca4a47015a13, - 0xe74afe1487264e30, - 0x2cc883b27bf119a5, - 0x1664cf59b3f682dc, - 0xa811aa7c1e78af5b, - 0x1d5626fb648dc3b2, - 0xb73e9117df5bce34, - 0xd05f7cf06ab56f5d, - 0xfd257f0acd132718, - 0x574dc8e676c52a9e, - 0x0739a7e52eb8aa9a, - 0x5486553e0f3cd9a3, - 0x56ff48aeaa927b7e, - 0xbe756525ad8e2d87, - 0x7d0e6cf9ffdbc841, - 0x3b1ecca31450ca99, - 0x6913be30e983e840, - 0xad511009956ea71c, - 0xb1b5b6ba2db4354e, - 0x4469bdca4e25a005, - 0x15af5281ca0f71e1, - 0x744598cb8d0e2bf2, - 0x593f9b312aa863b7, - 0xefb38a6e29a4fc63, - 0x6b6aa3a04c2d4a9d, - 0x3d95eb0ee6bf31e3, - 0xa291c3961554bfd5, - 0x18169c8eef9bcbf5, - 0x115d68bc9d4e2846, - 0xba875f18facf7420, - 0xd1edfcb8b6e23ebd, - 0xb00736f2f1e364ae, - 0x84d929ce6589b6fe, - 0x70b7a2f6da4f7255, - 0x0e7253d75c6d4929, - 0x04f23a3d574159a7, - 0x0a8069ea0b2c108e, - 0x49d073c56bb11a11, - 0x8aab7a1939e4ffd7, - 0xcd095a0b0e38acef, - 0xc9fb60365979f548, - 0x92bde697d67f3422, - 0xc78933e10514bc61, - 0xe1c1d9b975c9b54a, - 0xd2266160cf1bcd80, - 0x9a4492ed78fd8671, - 0xb3ccab2a881a9793, - 0x72cebf667fe1d088, - 0xd6d45b5d985a9427, - }, -}; - -__constant u64a sbob_rc64[12][8] = -{ - { - 0xe9daca1eda5b08b1, - 0x1f7c65c0812fcbeb, - 0x16d0452e43766a2f, - 0xfcc485758db84e71, - 0x0169679291e07c4b, - 0x15d360a4082a42a2, - 0x234d74cc36747605, - 0x0745a6f2596580dd, - }, - { - 0x1a2f9da98ab5a36f, - 0xd7b5700f469de34f, - 0x982b230a72eafef3, - 0x3101b5160f5ed561, - 0x5899d6126b17b59a, - 0xcaa70adbc261b55c, - 0x56cdcbd71ba2dd55, - 0xb79bb121700479e6, - }, - { - 0xc72fce2bacdc74f5, - 0x35843d6a28fc390a, - 0x8b1f9c525f5ef106, - 0x7b7b29b11475eaf2, - 0xb19e3590e40fe2d3, - 0x09db6260373ac9c1, - 0x31db7a8643f4b6c2, - 0xb20aba0af5961e99, - }, - { - 0xd26615e8b3df1fef, - 0xdde4715da0e148f9, - 0x7d3c5c337e858e48, - 0x3f355e68ad1c729d, - 0x75d603ed822cd7a9, - 0xbe0352933313b7d8, - 0xf137e893a1ea5334, - 0x2ed1e384bcbe0c22, - }, - { - 0x994747adac6bea4b, - 0x6323a96c0c413f9a, - 0x4a1086161f1c157f, - 0xbdff0f80d7359e35, - 0xa3f53a254717cdbf, - 0x161a2723b700ffdf, - 0xf563eaa97ea2567a, - 0x57fe6c7cfd581760, - }, - { - 0xd9d33a1daeae4fae, - 0xc039307a3bc3a46f, - 0x6ca44251f9c4662d, - 0xc68ef09ab49a7f18, - 0xb4b79a1cb7a6facf, - 0xb6c6bec2661ff20a, - 0x354f903672c571bf, - 0x6e7d64467a4068fa, - }, - { - 0xecc5aaee160ec7f4, - 0x540924bffe86ac51, - 0xc987bfe6c7c69e39, - 0xc9937a19333e47d3, - 0x372c822dc5ab9209, - 0x04054a2883694706, - 0xf34a3ca24c451735, - 0x93d4143a4d568688, - }, - { - 0xa7c9934d425b1f9b, - 0x41416e0c02aae703, - 0x1ede369c71f8b74e, - 0x9ac4db4d3b44b489, - 0x90069b92cb2b89f4, - 0x2fc4a5d12b8dd169, - 0xd9a8515935c2ac36, - 0x1ee702bfd40d7fa4, - }, - { - 0x9b223116545a8f37, - 0xde5f16ecd89a4c94, - 0x244289251b3a7d3a, - 0x84090de0b755d93c, - 0xb1ceb2db0b440a80, - 0x549c07a69a8a2b7b, - 0x602a1fcb92dc380e, - 0xdb5a238351446172, - }, - { - 0x526f0580a6debeab, - 0xf3f3e4b248e52a38, - 0xdb788aff1ce74189, - 0x0361331b8ae1ff1f, - 0x4b3369af0267e79f, - 0xf452763b306c1e7a, - 0xc3b63b15d1fa9836, - 0xed9c4598fbc7b474, - }, - { - 0xfb89c8efd09ecd7b, - 0x94fe5a63cdc60230, - 0x6107abebbb6bfad8, - 0x7966841421800120, - 0xcab948eaef711d8a, - 0x986e477d1dcdbaef, - 0x5dd86fc04a59a2de, - 0x1b2df381cda4ca6b, - }, - { - 0xba3116f167e78e37, - 0x7ab14904b08013d2, - 0x771ddfbc323ca4cd, - 0x9b9f2130d41220f8, - 0x86cc91189def805d, - 0x5228e188aaa41de7, - 0x991bb2d9d517f4fa, - 0x20d71bf14a92bc48, - }, -}; - DECLSPEC void streebog_g (u64x *h, const u64x *m, __local u64 (*s_sbob_sl64)[256]) { u64x k[8]; diff --git a/OpenCL/m11800_a1-pure.cl b/OpenCL/m11800_a1-pure.cl index 96743d14d..6322f02c3 100644 --- a/OpenCL/m11800_a1-pure.cl +++ b/OpenCL/m11800_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m11800_a3-optimized.cl b/OpenCL/m11800_a3-optimized.cl index 0eabb8d53..19d27587d 100644 --- a/OpenCL/m11800_a3-optimized.cl +++ b/OpenCL/m11800_a3-optimized.cl @@ -6,2231 +6,14 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_streebog512.cl" #define INITVAL 0 -#if VECT_SIZE == 1 -#define BOX(S,n,i) (S)[(n)][(i)] -#elif VECT_SIZE == 2 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1]) -#elif VECT_SIZE == 4 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3]) -#elif VECT_SIZE == 8 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7]) -#elif VECT_SIZE == 16 -#define BOX(S,n,i) (u64x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf]) -#endif - -#define SBOG_LPSti64 \ - BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \ - BOX (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff)) - -// constants - -__constant u64a sbob_sl64[8][256] = -{ - { - 0xd031c397ce553fe6, - 0x16ba5b01b006b525, - 0xa89bade6296e70c8, - 0x6a1f525d77d3435b, - 0x6e103570573dfa0b, - 0x660efb2a17fc95ab, - 0x76327a9e97634bf6, - 0x4bad9d6462458bf5, - 0xf1830caedbc3f748, - 0xc5c8f542669131ff, - 0x95044a1cdc48b0cb, - 0x892962df3cf8b866, - 0xb0b9e208e930c135, - 0xa14fb3f0611a767c, - 0x8d2605f21c160136, - 0xd6b71922fecc549e, - 0x37089438a5907d8b, - 0x0b5da38e5803d49c, - 0x5a5bcc9cea6f3cbc, - 0xedae246d3b73ffe5, - 0xd2b87e0fde22edce, - 0x5e54abb1ca8185ec, - 0x1de7f88fe80561b9, - 0xad5e1a870135a08c, - 0x2f2adbd665cecc76, - 0x5780b5a782f58358, - 0x3edc8a2eede47b3f, - 0xc9d95c3506bee70f, - 0x83be111d6c4e05ee, - 0xa603b90959367410, - 0x103c81b4809fde5d, - 0x2c69b6027d0c774a, - 0x399080d7d5c87953, - 0x09d41e16487406b4, - 0xcdd63b1826505e5f, - 0xf99dc2f49b0298e8, - 0x9cd0540a943cb67f, - 0xbca84b7f891f17c5, - 0x723d1db3b78df2a6, - 0x78aa6e71e73b4f2e, - 0x1433e699a071670d, - 0x84f21be454620782, - 0x98df3327b4d20f2f, - 0xf049dce2d3769e5c, - 0xdb6c60199656eb7a, - 0x648746b2078b4783, - 0x32cd23598dcbadcf, - 0x1ea4955bf0c7da85, - 0xe9a143401b9d46b5, - 0xfd92a5d9bbec21b8, - 0xc8138c790e0b8e1b, - 0x2ee00b9a6d7ba562, - 0xf85712b893b7f1fc, - 0xeb28fed80bea949d, - 0x564a65eb8a40ea4c, - 0x6c9988e8474a2823, - 0x4535898b121d8f2d, - 0xabd8c03231accbf4, - 0xba2e91cab9867cbd, - 0x7960be3def8e263a, - 0x0c11a977602fd6f0, - 0xcb50e1ad16c93527, - 0xeae22e94035ffd89, - 0x2866d12f5de2ce1a, - 0xff1b1841ab9bf390, - 0x9f9339de8cfe0d43, - 0x964727c8c48a0bf7, - 0x524502c6aaae531c, - 0x9b9c5ef3ac10b413, - 0x4fa2fa4942ab32a5, - 0x3f165a62e551122b, - 0xc74148da76e6e3d7, - 0x924840e5e464b2a7, - 0xd372ae43d69784da, - 0x233b72a105e11a86, - 0xa48a04914941a638, - 0xb4b68525c9de7865, - 0xddeabaaca6cf8002, - 0x0a9773c250b6bd88, - 0xc284ffbb5ebd3393, - 0x8ba0df472c8f6a4e, - 0x2aef6cb74d951c32, - 0x427983722a318d41, - 0x73f7cdffbf389bb2, - 0x074c0af9382c026c, - 0x8a6a0f0b243a035a, - 0x6fdae53c5f88931f, - 0xc68b98967e538ac3, - 0x44ff59c71aa8e639, - 0xe2fce0ce439e9229, - 0xa20cde2479d8cd40, - 0x19e89fa2c8ebd8e9, - 0xf446bbcff398270c, - 0x43b3533e2284e455, - 0xd82f0dcd8e945046, - 0x51066f12b26ce820, - 0xe73957af6bc5426d, - 0x081ece5a40c16fa0, - 0x3b193d4fc5bfab7b, - 0x7fe66488df174d42, - 0x0e9814ef705804d8, - 0x8137ac857c39d7c6, - 0xb1733244e185a821, - 0x695c3f896f11f867, - 0xf6cf0657e3eff524, - 0x1aabf276d02963d5, - 0x2da3664e75b91e5e, - 0x0289bd981077d228, - 0x90c1fd7df413608f, - 0x3c5537b6fd93a917, - 0xaa12107e3919a2e0, - 0x0686dab530996b78, - 0xdaa6b0559ee3826e, - 0xc34e2ff756085a87, - 0x6d5358a44fff4137, - 0xfc587595b35948ac, - 0x7ca5095cc7d5f67e, - 0xfb147f6c8b754ac0, - 0xbfeb26ab91ddacf9, - 0x6896efc567a49173, - 0xca9a31e11e7c5c33, - 0xbbe44186b13315a9, - 0x0ddb793b689abfe4, - 0x70b4a02ba7fa208e, - 0xe47a3a7b7307f951, - 0x8cecd5be14a36822, - 0xeeed49b923b144d9, - 0x17708b4db8b3dc31, - 0x6088219f2765fed3, - 0xb3fa8fdcf1f27a09, - 0x910b2d31fca6099b, - 0x0f52c4a378ed6dcc, - 0x50ccbf5ebad98134, - 0x6bd582117f662a4f, - 0x94ce9a50d4fdd9df, - 0x2b25bcfb45207526, - 0x67c42b661f49fcbf, - 0x492420fc723259dd, - 0x03436dd418c2bb3c, - 0x1f6e4517f872b391, - 0xa08563bc69af1f68, - 0xd43ea4baeebb86b6, - 0x01cad04c08b56914, - 0xac94cacb0980c998, - 0x54c3d8739a373864, - 0x26fec5c02dbacac2, - 0xdea9d778be0d3b3e, - 0x040f672d20eeb950, - 0xe5b0ea377bb29045, - 0xf30ab136cbb42560, - 0x62019c0737122cfb, - 0xe86b930c13282fa1, - 0xcc1ceb542ee5374b, - 0x538fd28aa21b3a08, - 0x1b61223ad89c0ac1, - 0x36c24474ad25149f, - 0x7a23d3e9f74c9d06, - 0xbe21f6e79968c5ed, - 0xcf5f868036278c77, - 0xf705d61beb5a9c30, - 0x4d2b47d152dce08d, - 0x5f9e7bfdc234ecf8, - 0x247778583dcd18ea, - 0x867ba67c4415d5aa, - 0x4ce1979d5a698999, - 0x0000000000000000, - 0xec64f42133c696f1, - 0xb57c5569c16b1171, - 0xc1c7926f467f88af, - 0x654d96fe0f3e2e97, - 0x15f936d5a8c40e19, - 0xb8a72c52a9f1ae95, - 0xa9517daa21db19dc, - 0x58d27104fa18ee94, - 0x5918a148f2ad8780, - 0x5cdd1629daf657c4, - 0x8274c15164fb6cfa, - 0xd1fb13dbc6e056f2, - 0x7d6fd910cf609f6a, - 0xb63f38bdd9a9aa4d, - 0x3d9fe7faf526c003, - 0x74bbc706871499de, - 0xdf630734b6b8522a, - 0x3ad3ed03cd0ac26f, - 0xfadeaf2083c023d4, - 0xc00d42234ecae1bb, - 0x8538cba85cd76e96, - 0xc402250e6e2458eb, - 0x47bc3413026a5d05, - 0xafd7a71f114272a4, - 0x978df784cc3f62e3, - 0xb96dfc1ea144c781, - 0x21b2cf391596c8ae, - 0x318e4e8d950916f3, - 0xce9556cc3e92e563, - 0x385a509bdd7d1047, - 0x358129a0b5e7afa3, - 0xe6f387e363702b79, - 0xe0755d5653e94001, - 0x7be903a5fff9f412, - 0x12b53c2c90e80c75, - 0x3307f315857ec4db, - 0x8fafb86a0c61d31e, - 0xd9e5dd8186213952, - 0x77f8aad29fd622e2, - 0x25bda814357871fe, - 0x7571174a8fa1f0ca, - 0x137fec60985d6561, - 0x30449ec19dbc7fe7, - 0xa540d4dd41f4cf2c, - 0xdc206ae0ae7ae916, - 0x5b911cd0e2da55a8, - 0xb2305f90f947131d, - 0x344bf9ecbd52c6b7, - 0x5d17c665d2433ed0, - 0x18224feec05eb1fd, - 0x9e59e992844b6457, - 0x9a568ebfa4a5dd07, - 0xa3c60e68716da454, - 0x7e2cb4c4d7a22456, - 0x87b176304ca0bcbe, - 0x413aeea632f3367d, - 0x9915e36bbc67663b, - 0x40f03eea3a465f69, - 0x1c2d28c3e0b008ad, - 0x4e682a054a1e5bb1, - 0x05c5b761285bd044, - 0xe1bf8d1a5b5c2915, - 0xf2c0617ac3014c74, - 0xb7f5e8f1d11cc359, - 0x63cb4c4b3fa745ef, - 0x9d1a84469c89df6b, - 0xe33630824b2bfb3d, - 0xd5f474f6e60eefa2, - 0xf58c6b83fb2d4e18, - 0x4676e45f0adf3411, - 0x20781f751d23a1ba, - 0xbd629b3381aa7ed1, - 0xae1d775319f71bb0, - 0xfed1c80da32e9a84, - 0x5509083f92825170, - 0x29ac01635557a70e, - 0xa7c9694551831d04, - 0x8e65682604d4ba0a, - 0x11f651f8882ab749, - 0xd77dc96ef6793d8a, - 0xef2799f52b042dcd, - 0x48eef0b07a8730c9, - 0x22f1a2ed0d547392, - 0x6142f1d32fd097c7, - 0x4a674d286af0e2e1, - 0x80fd7cc9748cbed2, - 0x717e7067af4f499a, - 0x938290a9ecd1dbb3, - 0x88e3b293344dd172, - 0x2734158c250fa3d6, - }, - { - 0x7e37e62dfc7d40c3, - 0x776f25a4ee939e5b, - 0xe045c850dd8fb5ad, - 0x86ed5ba711ff1952, - 0xe91d0bd9cf616b35, - 0x37e0ab256e408ffb, - 0x9607f6c031025a7a, - 0x0b02f5e116d23c9d, - 0xf3d8486bfb50650c, - 0x621cff27c40875f5, - 0x7d40cb71fa5fd34a, - 0x6daa6616daa29062, - 0x9f5f354923ec84e2, - 0xec847c3dc507c3b3, - 0x025a3668043ce205, - 0xa8bf9e6c4dac0b19, - 0xfa808be2e9bebb94, - 0xb5b99c5277c74fa3, - 0x78d9bc95f0397bcc, - 0xe332e50cdbad2624, - 0xc74fce129332797e, - 0x1729eceb2ea709ab, - 0xc2d6b9f69954d1f8, - 0x5d898cbfbab8551a, - 0x859a76fb17dd8adb, - 0x1be85886362f7fb5, - 0xf6413f8ff136cd8a, - 0xd3110fa5bbb7e35c, - 0x0a2feed514cc4d11, - 0xe83010edcd7f1ab9, - 0xa1e75de55f42d581, - 0xeede4a55c13b21b6, - 0xf2f5535ff94e1480, - 0x0cc1b46d1888761e, - 0xbce15fdb6529913b, - 0x2d25e8975a7181c2, - 0x71817f1ce2d7a554, - 0x2e52c5cb5c53124b, - 0xf9f7a6beef9c281d, - 0x9e722e7d21f2f56e, - 0xce170d9b81dca7e6, - 0x0e9b82051cb4941b, - 0x1e712f623c49d733, - 0x21e45cfa42f9f7dc, - 0xcb8e7a7f8bba0f60, - 0x8e98831a010fb646, - 0x474ccf0d8e895b23, - 0xa99285584fb27a95, - 0x8cc2b57205335443, - 0x42d5b8e984eff3a5, - 0x012d1b34021e718c, - 0x57a6626aae74180b, - 0xff19fc06e3d81312, - 0x35ba9d4d6a7c6dfe, - 0xc9d44c178f86ed65, - 0x506523e6a02e5288, - 0x03772d5c06229389, - 0x8b01f4fe0b691ec0, - 0xf8dabd8aed825991, - 0x4c4e3aec985b67be, - 0xb10df0827fbf96a9, - 0x6a69279ad4f8dae1, - 0xe78689dcd3d5ff2e, - 0x812e1a2b1fa553d1, - 0xfbad90d6eba0ca18, - 0x1ac543b234310e39, - 0x1604f7df2cb97827, - 0xa6241c6951189f02, - 0x753513cceaaf7c5e, - 0x64f2a59fc84c4efa, - 0x247d2b1e489f5f5a, - 0xdb64d718ab474c48, - 0x79f4a7a1f2270a40, - 0x1573da832a9bebae, - 0x3497867968621c72, - 0x514838d2a2302304, - 0xf0af6537fd72f685, - 0x1d06023e3a6b44ba, - 0x678588c3ce6edd73, - 0x66a893f7cc70acff, - 0xd4d24e29b5eda9df, - 0x3856321470ea6a6c, - 0x07c3418c0e5a4a83, - 0x2bcbb22f5635bacd, - 0x04b46cd00878d90a, - 0x06ee5ab80c443b0f, - 0x3b211f4876c8f9e5, - 0x0958c38912eede98, - 0xd14b39cdbf8b0159, - 0x397b292072f41be0, - 0x87c0409313e168de, - 0xad26e98847caa39f, - 0x4e140c849c6785bb, - 0xd5ff551db7f3d853, - 0xa0ca46d15d5ca40d, - 0xcd6020c787fe346f, - 0x84b76dcf15c3fb57, - 0xdefda0fca121e4ce, - 0x4b8d7b6096012d3d, - 0x9ac642ad298a2c64, - 0x0875d8bd10f0af14, - 0xb357c6ea7b8374ac, - 0x4d6321d89a451632, - 0xeda96709c719b23f, - 0xf76c24bbf328bc06, - 0xc662d526912c08f2, - 0x3ce25ec47892b366, - 0xb978283f6f4f39bd, - 0xc08c8f9e9d6833fd, - 0x4f3917b09e79f437, - 0x593de06fb2c08c10, - 0xd6887841b1d14bda, - 0x19b26eee32139db0, - 0xb494876675d93e2f, - 0x825937771987c058, - 0x90e9ac783d466175, - 0xf1827e03ff6c8709, - 0x945dc0a8353eb87f, - 0x4516f9658ab5b926, - 0x3f9573987eb020ef, - 0xb855330b6d514831, - 0x2ae6a91b542bcb41, - 0x6331e413c6160479, - 0x408f8e8180d311a0, - 0xeff35161c325503a, - 0xd06622f9bd9570d5, - 0x8876d9a20d4b8d49, - 0xa5533135573a0c8b, - 0xe168d364df91c421, - 0xf41b09e7f50a2f8f, - 0x12b09b0f24c1a12d, - 0xda49cc2ca9593dc4, - 0x1f5c34563e57a6bf, - 0x54d14f36a8568b82, - 0xaf7cdfe043f6419a, - 0xea6a2685c943f8bc, - 0xe5dcbfb4d7e91d2b, - 0xb27addde799d0520, - 0x6b443caed6e6ab6d, - 0x7bae91c9f61be845, - 0x3eb868ac7cae5163, - 0x11c7b65322e332a4, - 0xd23c1491b9a992d0, - 0x8fb5982e0311c7ca, - 0x70ac6428e0c9d4d8, - 0x895bc2960f55fcc5, - 0x76423e90ec8defd7, - 0x6ff0507ede9e7267, - 0x3dcf45f07a8cc2ea, - 0x4aa06054941f5cb1, - 0x5810fb5bb0defd9c, - 0x5efea1e3bc9ac693, - 0x6edd4b4adc8003eb, - 0x741808f8e8b10dd2, - 0x145ec1b728859a22, - 0x28bc9f7350172944, - 0x270a06424ebdccd3, - 0x972aedf4331c2bf6, - 0x059977e40a66a886, - 0x2550302a4a812ed6, - 0xdd8a8da0a7037747, - 0xc515f87a970e9b7b, - 0x3023eaa9601ac578, - 0xb7e3aa3a73fbada6, - 0x0fb699311eaae597, - 0x0000000000000000, - 0x310ef19d6204b4f4, - 0x229371a644db6455, - 0x0decaf591a960792, - 0x5ca4978bb8a62496, - 0x1c2b190a38753536, - 0x41a295b582cd602c, - 0x3279dcc16426277d, - 0xc1a194aa9f764271, - 0x139d803b26dfd0a1, - 0xae51c4d441e83016, - 0xd813fa44ad65dfc1, - 0xac0bf2bc45d4d213, - 0x23be6a9246c515d9, - 0x49d74d08923dcf38, - 0x9d05032127d066e7, - 0x2f7fdeff5e4d63c7, - 0xa47e2a0155247d07, - 0x99b16ff12fa8bfed, - 0x4661d4398c972aaf, - 0xdfd0bbc8a33f9542, - 0xdca79694a51d06cb, - 0xb020ebb67da1e725, - 0xba0f0563696daa34, - 0xe4f1a480d5f76ca7, - 0xc438e34e9510eaf7, - 0x939e81243b64f2fc, - 0x8defae46072d25cf, - 0x2c08f3a3586ff04e, - 0xd7a56375b3cf3a56, - 0x20c947ce40e78650, - 0x43f8a3dd86f18229, - 0x568b795eac6a6987, - 0x8003011f1dbb225d, - 0xf53612d3f7145e03, - 0x189f75da300dec3c, - 0x9570db9c3720c9f3, - 0xbb221e576b73dbb8, - 0x72f65240e4f536dd, - 0x443be25188abc8aa, - 0xe21ffe38d9b357a8, - 0xfd43ca6ee7e4f117, - 0xcaa3614b89a47eec, - 0xfe34e732e1c6629e, - 0x83742c431b99b1d4, - 0xcf3a16af83c2d66a, - 0xaae5a8044990e91c, - 0x26271d764ca3bd5f, - 0x91c4b74c3f5810f9, - 0x7c6dd045f841a2c6, - 0x7f1afd19fe63314f, - 0xc8f957238d989ce9, - 0xa709075d5306ee8e, - 0x55fc5402aa48fa0e, - 0x48fa563c9023beb4, - 0x65dfbeabca523f76, - 0x6c877d22d8bce1ee, - 0xcc4d3bf385e045e3, - 0xbebb69b36115733e, - 0x10eaad6720fd4328, - 0xb6ceb10e71e5dc2a, - 0xbdcc44ef6737e0b7, - 0x523f158ea412b08d, - 0x989c74c52db6ce61, - 0x9beb59992b945de8, - 0x8a2cefca09776f4c, - 0xa3bd6b8d5b7e3784, - 0xeb473db1cb5d8930, - 0xc3fba2c29b4aa074, - 0x9c28181525ce176b, - 0x683311f2d0c438e4, - 0x5fd3bad7be84b71f, - 0xfc6ed15ae5fa809b, - 0x36cdb0116c5efe77, - 0x29918447520958c8, - 0xa29070b959604608, - 0x53120ebaa60cc101, - 0x3a0c047c74d68869, - 0x691e0ac6d2da4968, - 0x73db4974e6eb4751, - 0x7a838afdf40599c9, - 0x5a4acd33b4e21f99, - 0x6046c94fc03497f0, - 0xe6ab92e8d1cb8ea2, - 0x3354c7f5663856f1, - 0xd93ee170af7bae4d, - 0x616bd27bc22ae67c, - 0x92b39a10397a8370, - 0xabc8b3304b8e9890, - 0xbf967287630b02b2, - 0x5b67d607b6fc6e15, - }, - { - 0x8ab0a96846e06a6d, - 0x43c7e80b4bf0b33a, - 0x08c9b3546b161ee5, - 0x39f1c235eba990be, - 0xc1bef2376606c7b2, - 0x2c209233614569aa, - 0xeb01523b6fc3289a, - 0x946953ab935acedd, - 0x272838f63e13340e, - 0x8b0455eca12ba052, - 0x77a1b2c4978ff8a2, - 0xa55122ca13e54086, - 0x2276135862d3f1cd, - 0xdb8ddfde08b76cfe, - 0x5d1e12c89e4a178a, - 0x0e56816b03969867, - 0xee5f79953303ed59, - 0xafed748bab78d71d, - 0x6d929f2df93e53ee, - 0xf5d8a8f8ba798c2a, - 0xf619b1698e39cf6b, - 0x95ddaf2f749104e2, - 0xec2a9c80e0886427, - 0xce5c8fd8825b95ea, - 0xc4e0d9993ac60271, - 0x4699c3a5173076f9, - 0x3d1b151f50a29f42, - 0x9ed505ea2bc75946, - 0x34665acfdc7f4b98, - 0x61b1fb53292342f7, - 0xc721c0080e864130, - 0x8693cd1696fd7b74, - 0x872731927136b14b, - 0xd3446c8a63a1721b, - 0x669a35e8a6680e4a, - 0xcab658f239509a16, - 0xa4e5de4ef42e8ab9, - 0x37a7435ee83f08d9, - 0x134e6239e26c7f96, - 0x82791a3c2df67488, - 0x3f6ef00a8329163c, - 0x8e5a7e42fdeb6591, - 0x5caaee4c7981ddb5, - 0x19f234785af1e80d, - 0x255ddde3ed98bd70, - 0x50898a32a99cccac, - 0x28ca4519da4e6656, - 0xae59880f4cb31d22, - 0x0d9798fa37d6db26, - 0x32f968f0b4ffcd1a, - 0xa00f09644f258545, - 0xfa3ad5175e24de72, - 0xf46c547c5db24615, - 0x713e80fbff0f7e20, - 0x7843cf2b73d2aafa, - 0xbd17ea36aedf62b4, - 0xfd111bacd16f92cf, - 0x4abaa7dbc72d67e0, - 0xb3416b5dad49fad3, - 0xbca316b24914a88b, - 0x15d150068aecf914, - 0xe27c1debe31efc40, - 0x4fe48c759beda223, - 0x7edcfd141b522c78, - 0x4e5070f17c26681c, - 0xe696cac15815f3bc, - 0x35d2a64b3bb481a7, - 0x800cff29fe7dfdf6, - 0x1ed9fac3d5baa4b0, - 0x6c2663a91ef599d1, - 0x03c1199134404341, - 0xf7ad4ded69f20554, - 0xcd9d9649b61bd6ab, - 0xc8c3bde7eadb1368, - 0xd131899fb02afb65, - 0x1d18e352e1fae7f1, - 0xda39235aef7ca6c1, - 0xa1bbf5e0a8ee4f7a, - 0x91377805cf9a0b1e, - 0x3138716180bf8e5b, - 0xd9f83acbdb3ce580, - 0x0275e515d38b897e, - 0x472d3f21f0fbbcc6, - 0x2d946eb7868ea395, - 0xba3c248d21942e09, - 0xe7223645bfde3983, - 0xff64feb902e41bb1, - 0xc97741630d10d957, - 0xc3cb1722b58d4ecc, - 0xa27aec719cae0c3b, - 0x99fecb51a48c15fb, - 0x1465ac826d27332b, - 0xe1bd047ad75ebf01, - 0x79f733af941960c5, - 0x672ec96c41a3c475, - 0xc27feba6524684f3, - 0x64efd0fd75e38734, - 0xed9e60040743ae18, - 0xfb8e2993b9ef144d, - 0x38453eb10c625a81, - 0x6978480742355c12, - 0x48cf42ce14a6ee9e, - 0x1cac1fd606312dce, - 0x7b82d6ba4792e9bb, - 0x9d141c7b1f871a07, - 0x5616b80dc11c4a2e, - 0xb849c198f21fa777, - 0x7ca91801c8d9a506, - 0xb1348e487ec273ad, - 0x41b20d1e987b3a44, - 0x7460ab55a3cfbbe3, - 0x84e628034576f20a, - 0x1b87d16d897a6173, - 0x0fe27defe45d5258, - 0x83cde6b8ca3dbeb7, - 0x0c23647ed01d1119, - 0x7a362a3ea0592384, - 0xb61f40f3f1893f10, - 0x75d457d1440471dc, - 0x4558da34237035b8, - 0xdca6116587fc2043, - 0x8d9b67d3c9ab26d0, - 0x2b0b5c88ee0e2517, - 0x6fe77a382ab5da90, - 0x269cc472d9d8fe31, - 0x63c41e46faa8cb89, - 0xb7abbc771642f52f, - 0x7d1de4852f126f39, - 0xa8c6ba3024339ba0, - 0x600507d7cee888c8, - 0x8fee82c61a20afae, - 0x57a2448926d78011, - 0xfca5e72836a458f0, - 0x072bcebb8f4b4cbd, - 0x497bbe4af36d24a1, - 0x3cafe99bb769557d, - 0x12fa9ebd05a7b5a9, - 0xe8c04baa5b836bdb, - 0x4273148fac3b7905, - 0x908384812851c121, - 0xe557d3506c55b0fd, - 0x72ff996acb4f3d61, - 0x3eda0c8e64e2dc03, - 0xf0868356e6b949e9, - 0x04ead72abb0b0ffc, - 0x17a4b5135967706a, - 0xe3c8e16f04d5367f, - 0xf84f30028daf570c, - 0x1846c8fcbd3a2232, - 0x5b8120f7f6ca9108, - 0xd46fa231ecea3ea6, - 0x334d947453340725, - 0x58403966c28ad249, - 0xbed6f3a79a9f21f5, - 0x68ccb483a5fe962d, - 0xd085751b57e1315a, - 0xfed0023de52fd18e, - 0x4b0e5b5f20e6addf, - 0x1a332de96eb1ab4c, - 0xa3ce10f57b65c604, - 0x108f7ba8d62c3cd7, - 0xab07a3a11073d8e1, - 0x6b0dad1291bed56c, - 0xf2f366433532c097, - 0x2e557726b2cee0d4, - 0x0000000000000000, - 0xcb02a476de9b5029, - 0xe4e32fd48b9e7ac2, - 0x734b65ee2c84f75e, - 0x6e5386bccd7e10af, - 0x01b4fc84e7cbca3f, - 0xcfe8735c65905fd5, - 0x3613bfda0ff4c2e6, - 0x113b872c31e7f6e8, - 0x2fe18ba255052aeb, - 0xe974b72ebc48a1e4, - 0x0abc5641b89d979b, - 0xb46aa5e62202b66e, - 0x44ec26b0c4bbff87, - 0xa6903b5b27a503c7, - 0x7f680190fc99e647, - 0x97a84a3aa71a8d9c, - 0xdd12ede16037ea7c, - 0xc554251ddd0dc84e, - 0x88c54c7d956be313, - 0x4d91696048662b5d, - 0xb08072cc9909b992, - 0xb5de5962c5c97c51, - 0x81b803ad19b637c9, - 0xb2f597d94a8230ec, - 0x0b08aac55f565da4, - 0xf1327fd2017283d6, - 0xad98919e78f35e63, - 0x6ab9519676751f53, - 0x24e921670a53774f, - 0xb9fd3d1c15d46d48, - 0x92f66194fbda485f, - 0x5a35dc7311015b37, - 0xded3f4705477a93d, - 0xc00a0eb381cd0d8d, - 0xbb88d809c65fe436, - 0x16104997beacba55, - 0x21b70ac95693b28c, - 0x59f4c5e225411876, - 0xd5db5eb50b21f499, - 0x55d7a19cf55c096f, - 0xa97246b4c3f8519f, - 0x8552d487a2bd3835, - 0x54635d181297c350, - 0x23c2efdc85183bf2, - 0x9f61f96ecc0c9379, - 0x534893a39ddc8fed, - 0x5edf0b59aa0a54cb, - 0xac2c6d1a9f38945c, - 0xd7aebba0d8aa7de7, - 0x2abfa00c09c5ef28, - 0xd84cc64f3cf72fbf, - 0x2003f64db15878b3, - 0xa724c7dfc06ec9f8, - 0x069f323f68808682, - 0xcc296acd51d01c94, - 0x055e2bae5cc0c5c3, - 0x6270e2c21d6301b6, - 0x3b842720382219c0, - 0xd2f0900e846ab824, - 0x52fc6f277a1745d2, - 0xc6953c8ce94d8b0f, - 0xe009f8fe3095753e, - 0x655b2c7992284d0b, - 0x984a37d54347dfc4, - 0xeab5aebf8808e2a5, - 0x9a3fd2c090cc56ba, - 0x9ca0e0fff84cd038, - 0x4c2595e4afade162, - 0xdf6708f4b3bc6302, - 0xbf620f237d54ebca, - 0x93429d101c118260, - 0x097d4fd08cddd4da, - 0x8c2f9b572e60ecef, - 0x708a7c7f18c4b41f, - 0x3a30dba4dfe9d3ff, - 0x4006f19a7fb0f07b, - 0x5f6bf7dd4dc19ef4, - 0x1f6d064732716e8f, - 0xf9fbcc866a649d33, - 0x308c8de567744464, - 0x8971b0f972a0292c, - 0xd61a47243f61b7d8, - 0xefeb8511d4c82766, - 0x961cb6be40d147a3, - 0xaab35f25f7b812de, - 0x76154e407044329d, - 0x513d76b64e570693, - 0xf3479ac7d2f90aa8, - 0x9b8b2e4477079c85, - 0x297eb99d3d85ac69, - }, - { - 0x3ef29d249b2c0a19, - 0xe9e16322b6f8622f, - 0x5536994047757f7a, - 0x9f4d56d5a47b0b33, - 0x822567466aa1174c, - 0xb8f5057deb082fb2, - 0xcc48c10bf4475f53, - 0x373088d4275dec3a, - 0x968f4325180aed10, - 0x173d232cf7016151, - 0xae4ed09f946fcc13, - 0xfd4b4741c4539873, - 0x1b5b3f0dd9933765, - 0x2ffcb0967b644052, - 0xe02376d20a89840c, - 0xa3ae3a70329b18d7, - 0x419cbd2335de8526, - 0xfafebf115b7c3199, - 0x0397074f85aa9b0d, - 0xc58ad4fb4836b970, - 0xbec60be3fc4104a8, - 0x1eff36dc4b708772, - 0x131fdc33ed8453b6, - 0x0844e33e341764d3, - 0x0ff11b6eab38cd39, - 0x64351f0a7761b85a, - 0x3b5694f509cfba0e, - 0x30857084b87245d0, - 0x47afb3bd2297ae3c, - 0xf2ba5c2f6f6b554a, - 0x74bdc4761f4f70e1, - 0xcfdfc64471edc45e, - 0xe610784c1dc0af16, - 0x7aca29d63c113f28, - 0x2ded411776a859af, - 0xac5f211e99a3d5ee, - 0xd484f949a87ef33b, - 0x3ce36ca596e013e4, - 0xd120f0983a9d432c, - 0x6bc40464dc597563, - 0x69d5f5e5d1956c9e, - 0x9ae95f043698bb24, - 0xc9ecc8da66a4ef44, - 0xd69508c8a5b2eac6, - 0xc40c2235c0503b80, - 0x38c193ba8c652103, - 0x1ceec75d46bc9e8f, - 0xd331011937515ad1, - 0xd8e2e56886eca50f, - 0xb137108d5779c991, - 0x709f3b6905ca4206, - 0x4feb50831680caef, - 0xec456af3241bd238, - 0x58d673afe181abbe, - 0x242f54e7cad9bf8c, - 0x0211f1810dcc19fd, - 0x90bc4dbb0f43c60a, - 0x9518446a9da0761d, - 0xa1bfcbf13f57012a, - 0x2bde4f8961e172b5, - 0x27b853a84f732481, - 0xb0b1e643df1f4b61, - 0x18cc38425c39ac68, - 0xd2b7f7d7bf37d821, - 0x3103864a3014c720, - 0x14aa246372abfa5c, - 0x6e600db54ebac574, - 0x394765740403a3f3, - 0x09c215f0bc71e623, - 0x2a58b947e987f045, - 0x7b4cdf18b477bdd8, - 0x9709b5eb906c6fe0, - 0x73083c268060d90b, - 0xfedc400e41f9037e, - 0x284948c6e44be9b8, - 0x728ecae808065bfb, - 0x06330e9e17492b1a, - 0x5950856169e7294e, - 0xbae4f4fce6c4364f, - 0xca7bcf95e30e7449, - 0x7d7fd186a33e96c2, - 0x52836110d85ad690, - 0x4dfaa1021b4cd312, - 0x913abb75872544fa, - 0xdd46ecb9140f1518, - 0x3d659a6b1e869114, - 0xc23f2cabd719109a, - 0xd713fe062dd46836, - 0xd0a60656b2fbc1dc, - 0x221c5a79dd909496, - 0xefd26dbca1b14935, - 0x0e77eda0235e4fc9, - 0xcbfd395b6b68f6b9, - 0x0de0eaefa6f4d4c4, - 0x0422ff1f1a8532e7, - 0xf969b85eded6aa94, - 0x7f6e2007aef28f3f, - 0x3ad0623b81a938fe, - 0x6624ee8b7aada1a7, - 0xb682e8ddc856607b, - 0xa78cc56f281e2a30, - 0xc79b257a45faa08d, - 0x5b4174e0642b30b3, - 0x5f638bff7eae0254, - 0x4bc9af9c0c05f808, - 0xce59308af98b46ae, - 0x8fc58da9cc55c388, - 0x803496c7676d0eb1, - 0xf33caae1e70dd7ba, - 0xbb6202326ea2b4bf, - 0xd5020f87201871cb, - 0x9d5ca754a9b712ce, - 0x841669d87de83c56, - 0x8a6184785eb6739f, - 0x420bba6cb0741e2b, - 0xf12d5b60eac1ce47, - 0x76ac35f71283691c, - 0x2c6bb7d9fecedb5f, - 0xfccdb18f4c351a83, - 0x1f79c012c3160582, - 0xf0abadae62a74cb7, - 0xe1a5801c82ef06fc, - 0x67a21845f2cb2357, - 0x5114665f5df04d9d, - 0xbf40fd2d74278658, - 0xa0393d3fb73183da, - 0x05a409d192e3b017, - 0xa9fb28cf0b4065f9, - 0x25a9a22942bf3d7c, - 0xdb75e22703463e02, - 0xb326e10c5ab5d06c, - 0xe7968e8295a62de6, - 0xb973f3b3636ead42, - 0xdf571d3819c30ce5, - 0xee549b7229d7cbc5, - 0x12992afd65e2d146, - 0xf8ef4e9056b02864, - 0xb7041e134030e28b, - 0xc02edd2adad50967, - 0x932b4af48ae95d07, - 0x6fe6fb7bc6dc4784, - 0x239aacb755f61666, - 0x401a4bedbdb807d6, - 0x485ea8d389af6305, - 0xa41bc220adb4b13d, - 0x753b32b89729f211, - 0x997e584bb3322029, - 0x1d683193ceda1c7f, - 0xff5ab6c0c99f818e, - 0x16bbd5e27f67e3a1, - 0xa59d34ee25d233cd, - 0x98f8ae853b54a2d9, - 0x6df70afacb105e79, - 0x795d2e99b9bba425, - 0x8e437b6744334178, - 0x0186f6ce886682f0, - 0xebf092a3bb347bd2, - 0xbcd7fa62f18d1d55, - 0xadd9d7d011c5571e, - 0x0bd3e471b1bdffde, - 0xaa6c2f808eeafef4, - 0x5ee57d31f6c880a4, - 0xf50fa47ff044fca0, - 0x1addc9c351f5b595, - 0xea76646d3352f922, - 0x0000000000000000, - 0x85909f16f58ebea6, - 0x46294573aaf12ccc, - 0x0a5512bf39db7d2e, - 0x78dbd85731dd26d5, - 0x29cfbe086c2d6b48, - 0x218b5d36583a0f9b, - 0x152cd2adfacd78ac, - 0x83a39188e2c795bc, - 0xc3b9da655f7f926a, - 0x9ecba01b2c1d89c3, - 0x07b5f8509f2fa9ea, - 0x7ee8d6c926940dcf, - 0x36b67e1aaf3b6eca, - 0x86079859702425ab, - 0xfb7849dfd31ab369, - 0x4c7c57cc932a51e2, - 0xd96413a60e8a27ff, - 0x263ea566c715a671, - 0x6c71fc344376dc89, - 0x4a4f595284637af8, - 0xdaf314e98b20bcf2, - 0x572768c14ab96687, - 0x1088db7c682ec8bb, - 0x887075f9537a6a62, - 0x2e7a4658f302c2a2, - 0x619116dbe582084d, - 0xa87dde018326e709, - 0xdcc01a779c6997e8, - 0xedc39c3dac7d50c8, - 0xa60a33a1a078a8c0, - 0xc1a82be452b38b97, - 0x3f746bea134a88e9, - 0xa228ccbebafd9a27, - 0xabead94e068c7c04, - 0xf48952b178227e50, - 0x5cf48cb0fb049959, - 0x6017e0156de48abd, - 0x4438b4f2a73d3531, - 0x8c528ae649ff5885, - 0xb515ef924dfcfb76, - 0x0c661c212e925634, - 0xb493195cc59a7986, - 0x9cda519a21d1903e, - 0x32948105b5be5c2d, - 0x194ace8cd45f2e98, - 0x438d4ca238129cdb, - 0x9b6fa9cabefe39d4, - 0x81b26009ef0b8c41, - 0xded1ebf691a58e15, - 0x4e6da64d9ee6481f, - 0x54b06f8ecf13fd8a, - 0x49d85e1d01c9e1f5, - 0xafc826511c094ee3, - 0xf698a33075ee67ad, - 0x5ac7822eec4db243, - 0x8dd47c28c199da75, - 0x89f68337db1ce892, - 0xcdce37c57c21dda3, - 0x530597de503c5460, - 0x6a42f2aa543ff793, - 0x5d727a7e73621ba9, - 0xe232875307459df1, - 0x56a19e0fc2dfe477, - 0xc61dd3b4cd9c227d, - 0xe5877f03986a341b, - 0x949eb2a415c6f4ed, - 0x6206119460289340, - 0x6380e75ae84e11b0, - 0x8be772b6d6d0f16f, - 0x50929091d596cf6d, - 0xe86795ec3e9ee0df, - 0x7cf927482b581432, - 0xc86a3e14eec26db4, - 0x7119cda78dacc0f6, - 0xe40189cd100cb6eb, - 0x92adbc3a028fdff7, - 0xb2a017c2d2d3529c, - 0x200dabf8d05c8d6b, - 0x34a78f9ba2f77737, - 0xe3b4719d8f231f01, - 0x45be423c2f5bb7c1, - 0xf71e55fefd88e55d, - 0x6853032b59f3ee6e, - 0x65b3e9c4ff073aaa, - 0x772ac3399ae5ebec, - 0x87816e97f842a75b, - 0x110e2db2e0484a4b, - 0x331277cb3dd8dedd, - 0xbd510cac79eb9fa5, - 0x352179552a91f5c7, - }, - { - 0x05ba7bc82c9b3220, - 0x31a54665f8b65e4f, - 0xb1b651f77547f4d4, - 0x8bfa0d857ba46682, - 0x85a96c5aa16a98bb, - 0x990faef908eb79c9, - 0xa15e37a247f4a62d, - 0x76857dcd5d27741e, - 0xf8c50b800a1820bc, - 0xbe65dcb201f7a2b4, - 0x666d1b986f9426e7, - 0x4cc921bf53c4e648, - 0x95410a0f93d9ca42, - 0x20cdccaa647ba4ef, - 0x429a4060890a1871, - 0x0c4ea4f69b32b38b, - 0xccda362dde354cd3, - 0x96dc23bc7c5b2fa9, - 0xc309bb68aa851ab3, - 0xd26131a73648e013, - 0x021dc52941fc4db2, - 0xcd5adab7704be48a, - 0xa77965d984ed71e6, - 0x32386fd61734bba4, - 0xe82d6dd538ab7245, - 0x5c2147ea6177b4b1, - 0x5da1ab70cf091ce8, - 0xac907fce72b8bdff, - 0x57c85dfd972278a8, - 0xa4e44c6a6b6f940d, - 0x3851995b4f1fdfe4, - 0x62578ccaed71bc9e, - 0xd9882bb0c01d2c0a, - 0x917b9d5d113c503b, - 0xa2c31e11a87643c6, - 0xe463c923a399c1ce, - 0xf71686c57ea876dc, - 0x87b4a973e096d509, - 0xaf0d567d9d3a5814, - 0xb40c2a3f59dcc6f4, - 0x3602f88495d121dd, - 0xd3e1dd3d9836484a, - 0xf945e71aa46688e5, - 0x7518547eb2a591f5, - 0x9366587450c01d89, - 0x9ea81018658c065b, - 0x4f54080cbc4603a3, - 0x2d0384c65137bf3d, - 0xdc325078ec861e2a, - 0xea30a8fc79573ff7, - 0x214d2030ca050cb6, - 0x65f0322b8016c30c, - 0x69be96dd1b247087, - 0xdb95ee9981e161b8, - 0xd1fc1814d9ca05f8, - 0x820ed2bbcc0de729, - 0x63d76050430f14c7, - 0x3bccb0e8a09d3a0f, - 0x8e40764d573f54a2, - 0x39d175c1e16177bd, - 0x12f5a37c734f1f4b, - 0xab37c12f1fdfc26d, - 0x5648b167395cd0f1, - 0x6c04ed1537bf42a7, - 0xed97161d14304065, - 0x7d6c67daab72b807, - 0xec17fa87ba4ee83c, - 0xdfaf79cb0304fbc1, - 0x733f060571bc463e, - 0x78d61c1287e98a27, - 0xd07cf48e77b4ada1, - 0xb9c262536c90dd26, - 0xe2449b5860801605, - 0x8fc09ad7f941fcfb, - 0xfad8cea94be46d0e, - 0xa343f28b0608eb9f, - 0x9b126bd04917347b, - 0x9a92874ae7699c22, - 0x1b017c42c4e69ee0, - 0x3a4c5c720ee39256, - 0x4b6e9f5e3ea399da, - 0x6ba353f45ad83d35, - 0xe7fee0904c1b2425, - 0x22d009832587e95d, - 0x842980c00f1430e2, - 0xc6b3c0a0861e2893, - 0x087433a419d729f2, - 0x341f3dadd42d6c6f, - 0xee0a3faefbb2a58e, - 0x4aee73c490dd3183, - 0xaab72db5b1a16a34, - 0xa92a04065e238fdf, - 0x7b4b35a1686b6fcc, - 0x6a23bf6ef4a6956c, - 0x191cb96b851ad352, - 0x55d598d4d6de351a, - 0xc9604de5f2ae7ef3, - 0x1ca6c2a3a981e172, - 0xde2f9551ad7a5398, - 0x3025aaff56c8f616, - 0x15521d9d1e2860d9, - 0x506fe31cfa45073a, - 0x189c55f12b647b0b, - 0x0180ec9aae7ea859, - 0x7cec8b40050c105e, - 0x2350e5198bf94104, - 0xef8ad33455cc0dd7, - 0x07a7bee16d677f92, - 0xe5e325b90de76997, - 0x5a061591a26e637a, - 0xb611ef1618208b46, - 0x09f4df3eb7a981ab, - 0x1ebb078ae87dacc0, - 0xb791038cb65e231f, - 0x0fd38d4574b05660, - 0x67edf702c1ea8ebe, - 0xba5f4be0831238cd, - 0xe3c477c2cefebe5c, - 0x0dce486c354c1bd2, - 0x8c5db36416c31910, - 0x26ea9ed1a7627324, - 0x039d29b3ef82e5eb, - 0x9f28fc82cbf2ae02, - 0xa8aae89cf05d2786, - 0x431aacfa2774b028, - 0xcf471f9e31b7a938, - 0x581bd0b8e3922ec8, - 0xbc78199b400bef06, - 0x90fb71c7bf42f862, - 0x1f3beb1046030499, - 0x683e7a47b55ad8de, - 0x988f4263a695d190, - 0xd808c72a6e638453, - 0x0627527bc319d7cb, - 0xebb04466d72997ae, - 0xe67e0c0ae2658c7c, - 0x14d2f107b056c880, - 0x7122c32c30400b8c, - 0x8a7ae11fd5dacedb, - 0xa0dedb38e98a0e74, - 0xad109354dcc615a6, - 0x0be91a17f655cc19, - 0x8ddd5ffeb8bdb149, - 0xbfe53028af890aed, - 0xd65ba6f5b4ad7a6a, - 0x7956f0882997227e, - 0x10e8665532b352f9, - 0x0e5361dfdacefe39, - 0xcec7f3049fc90161, - 0xff62b561677f5f2e, - 0x975ccf26d22587f0, - 0x51ef0f86543baf63, - 0x2f1e41ef10cbf28f, - 0x52722635bbb94a88, - 0xae8dbae73344f04d, - 0x410769d36688fd9a, - 0xb3ab94de34bbb966, - 0x801317928df1aa9b, - 0xa564a0f0c5113c54, - 0xf131d4bebdb1a117, - 0x7f71a2f3ea8ef5b5, - 0x40878549c8f655c3, - 0x7ef14e6944f05dec, - 0xd44663dcf55137d8, - 0xf2acfd0d523344fc, - 0x0000000000000000, - 0x5fbc6e598ef5515a, - 0x16cf342ef1aa8532, - 0xb036bd6ddb395c8d, - 0x13754fe6dd31b712, - 0xbbdfa77a2d6c9094, - 0x89e7c8ac3a582b30, - 0x3c6b0e09cdfa459d, - 0xc4ae0589c7e26521, - 0x49735a777f5fd468, - 0xcafd64561d2c9b18, - 0xda1502032f9fc9e1, - 0x8867243694268369, - 0x3782141e3baf8984, - 0x9cb5d53124704be9, - 0xd7db4a6f1ad3d233, - 0xa6f989432a93d9bf, - 0x9d3539ab8a0ee3b0, - 0x53f2caaf15c7e2d1, - 0x6e19283c76430f15, - 0x3debe2936384edc4, - 0x5e3c82c3208bf903, - 0x33b8834cb94a13fd, - 0x6470deb12e686b55, - 0x359fd1377a53c436, - 0x61caa57902f35975, - 0x043a975282e59a79, - 0xfd7f70482683129c, - 0xc52ee913699ccd78, - 0x28b9ff0e7dac8d1d, - 0x5455744e78a09d43, - 0xcb7d88ccb3523341, - 0x44bd121b4a13cfba, - 0x4d49cd25fdba4e11, - 0x3e76cb208c06082f, - 0x3ff627ba2278a076, - 0xc28957f204fbb2ea, - 0x453dfe81e46d67e3, - 0x94c1e6953da7621b, - 0x2c83685cff491764, - 0xf32c1197fc4deca5, - 0x2b24d6bd922e68f6, - 0xb22b78449ac5113f, - 0x48f3b6edd1217c31, - 0x2e9ead75beb55ad6, - 0x174fd8b45fd42d6b, - 0x4ed4e4961238abfa, - 0x92e6b4eefebeb5d0, - 0x46a0d7320bef8208, - 0x47203ba8a5912a51, - 0x24f75bf8e69e3e96, - 0xf0b1382413cf094e, - 0xfee259fbc901f777, - 0x276a724b091cdb7d, - 0xbdf8f501ee75475f, - 0x599b3c224dec8691, - 0x6d84018f99c1eafe, - 0x7498b8e41cdb39ac, - 0xe0595e71217c5bb7, - 0x2aa43a273c50c0af, - 0xf50b43ec3f543b6e, - 0x838e3e2162734f70, - 0xc09492db4507ff58, - 0x72bfea9fdfc2ee67, - 0x11688acf9ccdfaa0, - 0x1a8190d86a9836b9, - 0x7acbd93bc615c795, - 0xc7332c3a286080ca, - 0x863445e94ee87d50, - 0xf6966a5fd0d6de85, - 0xe9ad814f96d5da1c, - 0x70a22fb69e3ea3d5, - 0x0a69f68d582b6440, - 0xb8428ec9c2ee757f, - 0x604a49e3ac8df12c, - 0x5b86f90b0c10cb23, - 0xe1d9b2eb8f02f3ee, - 0x29391394d3d22544, - 0xc8e0a17f5cd0d6aa, - 0xb58cc6a5f7a26ead, - 0x8193fb08238f02c2, - 0xd5c68f465b2f9f81, - 0xfcff9cd288fdbac5, - 0x77059157f359dc47, - 0x1d262e3907ff492b, - 0xfb582233e59ac557, - 0xddb2bce242f8b673, - 0x2577b76248e096cf, - 0x6f99c4a6d83da74c, - 0xc1147e41eb795701, - 0xf48baf76912a9337, - }, - { - 0x45b268a93acde4cc, - 0xaf7f0be884549d08, - 0x048354b3c1468263, - 0x925435c2c80efed2, - 0xee4e37f27fdffba7, - 0x167a33920c60f14d, - 0xfb123b52ea03e584, - 0x4a0cab53fdbb9007, - 0x9deaf6380f788a19, - 0xcb48ec558f0cb32a, - 0xb59dc4b2d6fef7e0, - 0xdcdbca22f4f3ecb6, - 0x11df5813549a9c40, - 0xe33fdedf568aced3, - 0xa0c1c8124322e9c3, - 0x07a56b8158fa6d0d, - 0x77279579b1e1f3dd, - 0xd9b18b74422ac004, - 0xb8ec2d9fffabc294, - 0xf4acf8a82d75914f, - 0x7bbf69b1ef2b6878, - 0xc4f62faf487ac7e1, - 0x76ce809cc67e5d0c, - 0x6711d88f92e4c14c, - 0x627b99d9243dedfe, - 0x234aa5c3dfb68b51, - 0x909b1f15262dbf6d, - 0x4f66ea054b62bcb5, - 0x1ae2cf5a52aa6ae8, - 0xbea053fbd0ce0148, - 0xed6808c0e66314c9, - 0x43fe16cd15a82710, - 0xcd049231a06970f6, - 0xe7bc8a6c97cc4cb0, - 0x337ce835fcb3b9c0, - 0x65def2587cc780f3, - 0x52214ede4132bb50, - 0x95f15e4390f493df, - 0x870839625dd2e0f1, - 0x41313c1afb8b66af, - 0x91720af051b211bc, - 0x477d427ed4eea573, - 0x2e3b4ceef6e3be25, - 0x82627834eb0bcc43, - 0x9c03e3dd78e724c8, - 0x2877328ad9867df9, - 0x14b51945e243b0f2, - 0x574b0f88f7eb97e2, - 0x88b6fa989aa4943a, - 0x19c4f068cb168586, - 0x50ee6409af11faef, - 0x7df317d5c04eaba4, - 0x7a567c5498b4c6a9, - 0xb6bbfb804f42188e, - 0x3cc22bcf3bc5cd0b, - 0xd04336eaaa397713, - 0xf02fac1bec33132c, - 0x2506dba7f0d3488d, - 0xd7e65d6bf2c31a1e, - 0x5eb9b2161ff820f5, - 0x842e0650c46e0f9f, - 0x716beb1d9e843001, - 0xa933758cab315ed4, - 0x3fe414fda2792265, - 0x27c9f1701ef00932, - 0x73a4c1ca70a771be, - 0x94184ba6e76b3d0e, - 0x40d829ff8c14c87e, - 0x0fbec3fac77674cb, - 0x3616a9634a6a9572, - 0x8f139119c25ef937, - 0xf545ed4d5aea3f9e, - 0xe802499650ba387b, - 0x6437e7bd0b582e22, - 0xe6559f89e053e261, - 0x80ad52e305288dfc, - 0x6dc55a23e34b9935, - 0xde14e0f51ad0ad09, - 0xc6390578a659865e, - 0x96d7617109487cb1, - 0xe2d6cb3a21156002, - 0x01e915e5779faed1, - 0xadb0213f6a77dcb7, - 0x9880b76eb9a1a6ab, - 0x5d9f8d248644cf9b, - 0xfd5e4536c5662658, - 0xf1c6b9fe9bacbdfd, - 0xeacd6341be9979c4, - 0xefa7221708405576, - 0x510771ecd88e543e, - 0xc2ba51cb671f043d, - 0x0ad482ac71af5879, - 0xfe787a045cdac936, - 0xb238af338e049aed, - 0xbd866cc94972ee26, - 0x615da6ebbd810290, - 0x3295fdd08b2c1711, - 0xf834046073bf0aea, - 0xf3099329758ffc42, - 0x1caeb13e7dcfa934, - 0xba2307481188832b, - 0x24efce42874ce65c, - 0x0e57d61fb0e9da1a, - 0xb3d1bad6f99b343c, - 0xc0757b1c893c4582, - 0x2b510db8403a9297, - 0x5c7698c1f1db614a, - 0x3e0d0118d5e68cb4, - 0xd60f488e855cb4cf, - 0xae961e0df3cb33d9, - 0x3a8e55ab14a00ed7, - 0x42170328623789c1, - 0x838b6dd19c946292, - 0x895fef7ded3b3aeb, - 0xcfcbb8e64e4a3149, - 0x064c7e642f65c3dc, - 0x3d2b3e2a4c5a63da, - 0x5bd3f340a9210c47, - 0xb474d157a1615931, - 0xac5934da1de87266, - 0x6ee365117af7765b, - 0xc86ed36716b05c44, - 0x9ba6885c201d49c5, - 0xb905387a88346c45, - 0x131072c4bab9ddff, - 0xbf49461ea751af99, - 0xd52977bc1ce05ba1, - 0xb0f785e46027db52, - 0x546d30ba6e57788c, - 0x305ad707650f56ae, - 0xc987c682612ff295, - 0xa5ab8944f5fbc571, - 0x7ed528e759f244ca, - 0x8ddcbbce2c7db888, - 0xaa154abe328db1ba, - 0x1e619be993ece88b, - 0x09f2bd9ee813b717, - 0x7401aa4b285d1cb3, - 0x21858f143195caee, - 0x48c381841398d1b8, - 0xfcb750d3b2f98889, - 0x39a86a998d1ce1b9, - 0x1f888e0ce473465a, - 0x7899568376978716, - 0x02cf2ad7ee2341bf, - 0x85c713b5b3f1a14e, - 0xff916fe12b4567e7, - 0x7c1a0230b7d10575, - 0x0c98fcc85eca9ba5, - 0xa3e7f720da9e06ad, - 0x6a6031a2bbb1f438, - 0x973e74947ed7d260, - 0x2cf4663918c0ff9a, - 0x5f50a7f368678e24, - 0x34d983b4a449d4cd, - 0x68af1b755592b587, - 0x7f3c3d022e6dea1b, - 0xabfc5f5b45121f6b, - 0x0d71e92d29553574, - 0xdffdf5106d4f03d8, - 0x081ba87b9f8c19c6, - 0xdb7ea1a3ac0981bb, - 0xbbca12ad66172dfa, - 0x79704366010829c7, - 0x179326777bff5f9c, - 0x0000000000000000, - 0xeb2476a4c906d715, - 0x724dd42f0738df6f, - 0xb752ee6538ddb65f, - 0x37ffbc863df53ba3, - 0x8efa84fcb5c157e6, - 0xe9eb5c73272596aa, - 0x1b0bdabf2535c439, - 0x86e12c872a4d4e20, - 0x9969a28bce3e087a, - 0xfafb2eb79d9c4b55, - 0x056a4156b6d92cb2, - 0x5a3ae6a5debea296, - 0x22a3b026a8292580, - 0x53c85b3b36ad1581, - 0xb11e900117b87583, - 0xc51f3a4a3fe56930, - 0xe019e1edcf3621bd, - 0xec811d2591fcba18, - 0x445b7d4c4d524a1d, - 0xa8da6069dcaef005, - 0x58f5cc72309de329, - 0xd4c062596b7ff570, - 0xce22ad0339d59f98, - 0x591cd99747024df8, - 0x8b90c5aa03187b54, - 0xf663d27fc356d0f0, - 0xd8589e9135b56ed5, - 0x35309651d3d67a1c, - 0x12f96721cd26732e, - 0xd28c1c3d441a36ac, - 0x492a946164077f69, - 0x2d1d73dc6f5f514b, - 0x6f0a70f40d68d88a, - 0x60b4b30eca1eac41, - 0xd36509d83385987d, - 0x0b3d97490630f6a8, - 0x9eccc90a96c46577, - 0xa20ee2c5ad01a87c, - 0xe49ab55e0e70a3de, - 0xa4429ca182646ba0, - 0xda97b446db962f6a, - 0xcced87d4d7f6de27, - 0x2ab8185d37a53c46, - 0x9f25dcefe15bcba6, - 0xc19c6ef9fea3eb53, - 0xa764a3931bd884ce, - 0x2fd2590b817c10f4, - 0x56a21a6d80743933, - 0xe573a0bb79ef0d0f, - 0x155c0ca095dc1e23, - 0x6c2c4fc694d437e4, - 0x10364df623053291, - 0xdd32dfc7836c4267, - 0x03263f3299bcef6e, - 0x66f8cd6ae57b6f9d, - 0x8c35ae2b5be21659, - 0x31b3c2e21290f87f, - 0x93bd2027bf915003, - 0x69460e90220d1b56, - 0x299e276fae19d328, - 0x63928c3c53a2432f, - 0x7082fef8e91b9ed0, - 0xbc6f792c3eed40f7, - 0x4c40d537d2de53db, - 0x75e8bfae5fc2b262, - 0x4da9c0d2a541fd0a, - 0x4e8fffe03cfd1264, - 0x2620e495696fa7e3, - 0xe1f0f408b8a98f6c, - 0xd1aa230fdda6d9c2, - 0xc7d0109dd1c6288f, - 0x8a79d04f7487d585, - 0x4694579ba3710ba2, - 0x38417f7cfa834f68, - 0x1d47a4db0a5007e5, - 0x206c9af1460a643f, - 0xa128ddf734bd4712, - 0x8144470672b7232d, - 0xf2e086cc02105293, - 0x182de58dbc892b57, - 0xcaa1f9b0f8931dfb, - 0x6b892447cc2e5ae9, - 0xf9dd11850420a43b, - 0x4be5beb68a243ed6, - 0x5584255f19c8d65d, - 0x3b67404e633fa006, - 0xa68db6766c472a1f, - 0xf78ac79ab4c97e21, - 0xc353442e1080aaec, - 0x9a4f9db95782e714, - }, - { - 0xc811a8058c3f55de, - 0x65f5b43196b50619, - 0xf74f96b1d6706e43, - 0x859d1e8bcb43d336, - 0x5aab8a85ccfa3d84, - 0xf9c7bf99c295fcfd, - 0xa21fd5a1de4b630f, - 0xcdb3ef763b8b456d, - 0x803f59f87cf7c385, - 0xb27c73be5f31913c, - 0x98e3ac6633b04821, - 0xbf61674c26b8f818, - 0x0ffbc995c4c130c8, - 0xaaa0862010761a98, - 0x6057f342210116aa, - 0xf63c760c0654cc35, - 0x2ddb45cc667d9042, - 0xbcf45a964bd40382, - 0x68e8a0c3ef3c6f3d, - 0xa7bd92d269ff73bc, - 0x290ae20201ed2287, - 0xb7de34cde885818f, - 0xd901eea7dd61059b, - 0xd6fa273219a03553, - 0xd56f1ae874cccec9, - 0xea31245c2e83f554, - 0x7034555da07be499, - 0xce26d2ac56e7bef7, - 0xfd161857a5054e38, - 0x6a0e7da4527436d1, - 0x5bd86a381cde9ff2, - 0xcaf7756231770c32, - 0xb09aaed9e279c8d0, - 0x5def1091c60674db, - 0x111046a2515e5045, - 0x23536ce4729802fc, - 0xc50cbcf7f5b63cfa, - 0x73a16887cd171f03, - 0x7d2941afd9f28dbd, - 0x3f5e3eb45a4f3b9d, - 0x84eefe361b677140, - 0x3db8e3d3e7076271, - 0x1a3a28f9f20fd248, - 0x7ebc7c75b49e7627, - 0x74e5f293c7eb565c, - 0x18dcf59e4f478ba4, - 0x0c6ef44fa9adcb52, - 0xc699812d98dac760, - 0x788b06dc6e469d0e, - 0xfc65f8ea7521ec4e, - 0x30a5f7219e8e0b55, - 0x2bec3f65bca57b6b, - 0xddd04969baf1b75e, - 0x99904cdbe394ea57, - 0x14b201d1e6ea40f6, - 0xbbb0c08241284add, - 0x50f20463bf8f1dff, - 0xe8d7f93b93cbacb8, - 0x4d8cb68e477c86e8, - 0xc1dd1b3992268e3f, - 0x7c5aa11209d62fcb, - 0x2f3d98abdb35c9ae, - 0x671369562bfd5ff5, - 0x15c1e16c36cee280, - 0x1d7eb2edf8f39b17, - 0xda94d37db00dfe01, - 0x877bc3ec760b8ada, - 0xcb8495dfe153ae44, - 0x05a24773b7b410b3, - 0x12857b783c32abdf, - 0x8eb770d06812513b, - 0x536739b9d2e3e665, - 0x584d57e271b26468, - 0xd789c78fc9849725, - 0xa935bbfa7d1ae102, - 0x8b1537a3dfa64188, - 0xd0cd5d9bc378de7a, - 0x4ac82c9a4d80cfb7, - 0x42777f1b83bdb620, - 0x72d2883a1d33bd75, - 0x5e7a2d4bab6a8f41, - 0xf4daab6bbb1c95d9, - 0x905cffe7fd8d31b6, - 0x83aa6422119b381f, - 0xc0aefb8442022c49, - 0xa0f908c663033ae3, - 0xa428af0804938826, - 0xade41c341a8a53c7, - 0xae7121ee77e6a85d, - 0xc47f5c4a25929e8c, - 0xb538e9aa55cdd863, - 0x06377aa9dad8eb29, - 0xa18ae87bb3279895, - 0x6edfda6a35e48414, - 0x6b7d9d19825094a7, - 0xd41cfa55a4e86cbf, - 0xe5caedc9ea42c59c, - 0xa36c351c0e6fc179, - 0x5181e4de6fabbf89, - 0xfff0c530184d17d4, - 0x9d41eb1584045892, - 0x1c0d525028d73961, - 0xf178ec180ca8856a, - 0x9a0571018ef811cd, - 0x4091a27c3ef5efcc, - 0x19af15239f6329d2, - 0x347450eff91eb990, - 0xe11b4a078dd27759, - 0xb9561de5fc601331, - 0x912f1f5a2da993c0, - 0x1654dcb65ba2191a, - 0x3e2dde098a6b99eb, - 0x8a66d71e0f82e3fe, - 0x8c51adb7d55a08d7, - 0x4533e50f8941ff7f, - 0x02e6dd67bd4859ec, - 0xe068aaba5df6d52f, - 0xc24826e3ff4a75a5, - 0x6c39070d88acddf8, - 0x6486548c4691a46f, - 0xd1bebd26135c7c0c, - 0xb30f93038f15334a, - 0x82d9849fc1bf9a69, - 0x9c320ba85420fae4, - 0xfa528243aff90767, - 0x9ed4d6cfe968a308, - 0xb825fd582c44b147, - 0x9b7691bc5edcb3bb, - 0xc7ea619048fe6516, - 0x1063a61f817af233, - 0x47d538683409a693, - 0x63c2ce984c6ded30, - 0x2a9fdfd86c81d91d, - 0x7b1e3b06032a6694, - 0x666089ebfbd9fd83, - 0x0a598ee67375207b, - 0x07449a140afc495f, - 0x2ca8a571b6593234, - 0x1f986f8a45bbc2fb, - 0x381aa4a050b372c2, - 0x5423a3add81faf3a, - 0x17273c0b8b86bb6c, - 0xfe83258dc869b5a2, - 0x287902bfd1c980f1, - 0xf5a94bd66b3837af, - 0x88800a79b2caba12, - 0x55504310083b0d4c, - 0xdf36940e07b9eeb2, - 0x04d1a7ce6790b2c5, - 0x612413fff125b4dc, - 0x26f12b97c52c124f, - 0x86082351a62f28ac, - 0xef93632f9937e5e7, - 0x3507b052293a1be6, - 0xe72c30ae570a9c70, - 0xd3586041ae1425e0, - 0xde4574b3d79d4cc4, - 0x92ba228040c5685a, - 0xf00b0ca5dc8c271c, - 0xbe1287f1f69c5a6e, - 0xf39e317fb1e0dc86, - 0x495d114020ec342d, - 0x699b407e3f18cd4b, - 0xdca3a9d46ad51528, - 0x0d1d14f279896924, - 0x0000000000000000, - 0x593eb75fa196c61e, - 0x2e4e78160b116bd8, - 0x6d4ae7b058887f8e, - 0xe65fd013872e3e06, - 0x7a6ddbbbd30ec4e2, - 0xac97fc89caaef1b1, - 0x09ccb33c1e19dbe1, - 0x89f3eac462ee1864, - 0x7770cf49aa87adc6, - 0x56c57eca6557f6d6, - 0x03953dda6d6cfb9a, - 0x36928d884456e07c, - 0x1eeb8f37959f608d, - 0x31d6179c4eaaa923, - 0x6fac3ad7e5c02662, - 0x43049fa653991456, - 0xabd3669dc052b8ee, - 0xaf02c153a7c20a2b, - 0x3ccb036e3723c007, - 0x93c9c23d90e1ca2c, - 0xc33bc65e2f6ed7d3, - 0x4cff56339758249e, - 0xb1e94e64325d6aa6, - 0x37e16d359472420a, - 0x79f8e661be623f78, - 0x5214d90402c74413, - 0x482ef1fdf0c8965b, - 0x13f69bc5ec1609a9, - 0x0e88292814e592be, - 0x4e198b542a107d72, - 0xccc00fcbebafe71b, - 0x1b49c844222b703e, - 0x2564164da840e9d5, - 0x20c6513e1ff4f966, - 0xbac3203f910ce8ab, - 0xf2edd1c261c47ef0, - 0x814cb945acd361f3, - 0x95feb8944a392105, - 0x5c9cf02c1622d6ad, - 0x971865f3f77178e9, - 0xbd87ba2b9bf0a1f4, - 0x444005b259655d09, - 0xed75be48247fbc0b, - 0x7596122e17cff42a, - 0xb44b091785e97a15, - 0x966b854e2755da9f, - 0xeee0839249134791, - 0x32432a4623c652b9, - 0xa8465b47ad3e4374, - 0xf8b45f2412b15e8b, - 0x2417f6f078644ba3, - 0xfb2162fe7fdda511, - 0x4bbbcc279da46dc1, - 0x0173e0bdd024a276, - 0x22208c59a2bca08a, - 0x8fc4906db836f34d, - 0xe4b90d743a6667ea, - 0x7147b5e0705f46ef, - 0x2782cb2a1508b039, - 0xec065ef5f45b1e7d, - 0x21b5b183cfd05b10, - 0xdbe733c060295c77, - 0x9fa73672394c017e, - 0xcf55321186c31c81, - 0xd8720e1a0d45a7ed, - 0x3b8f997a3ddf8958, - 0x3afc79c7edfb2b2e, - 0xe9a4198643ef0ece, - 0x5f09cdf67b4e2d37, - 0x4f6a6be9fa34df04, - 0xb6add47038a123f9, - 0x8d224d0a057eaaa1, - 0xc96248b85c1bf7a8, - 0xe3fd9760309a2eb5, - 0x0b2a6e5ba351820d, - 0xeb42c4e1fea75722, - 0x948d58299a1d8373, - 0x7fcf9cc864bad451, - 0xa55b4fb5d4b72a50, - 0x08bf5381ce3d7997, - 0x46a6d8d5e42d04e5, - 0xd22b80fc7e308796, - 0x57b69e77b57354a0, - 0x3969441d8097d0b4, - 0x3330cafbf3e2f0cf, - 0xe28e77dde0be8cc3, - 0x62b12e259c494f46, - 0xa6ce726fb9dbd1ca, - 0x41e242c1eed14dba, - 0x76032ff47aa30fb0, - }, - { - 0xe6f87e5c5b711fd0, - 0x258377800924fa16, - 0xc849e07e852ea4a8, - 0x5b4686a18f06c16a, - 0x0b32e9a2d77b416e, - 0xabda37a467815c66, - 0xf61796a81a686676, - 0xf5dc0b706391954b, - 0x4862f38db7e64bf1, - 0xff5c629a68bd85c5, - 0xcb827da6fcd75795, - 0x66d36daf69b9f089, - 0x356c9f74483d83b0, - 0x7cbcecb1238c99a1, - 0x36a702ac31c4708d, - 0x9eb6a8d02fbcdfd6, - 0x8b19fa51e5b3ae37, - 0x9ccfb5408a127d0b, - 0xbc0c78b508208f5a, - 0xe533e3842288eced, - 0xcec2c7d377c15fd2, - 0xec7817b6505d0f5e, - 0xb94cc2c08336871d, - 0x8c205db4cb0b04ad, - 0x763c855b28a0892f, - 0x588d1b79f6ff3257, - 0x3fecf69e4311933e, - 0x0fc0d39f803a18c9, - 0xee010a26f5f3ad83, - 0x10efe8f4411979a6, - 0x5dcda10c7de93a10, - 0x4a1bee1d1248e92c, - 0x53bff2db21847339, - 0xb4f50ccfa6a23d09, - 0x5fb4bc9cd84798cd, - 0xe88a2d8b071c56f9, - 0x7f7771695a756a9c, - 0xc5f02e71a0ba1ebc, - 0xa663f9ab4215e672, - 0x2eb19e22de5fbb78, - 0x0db9ce0f2594ba14, - 0x82520e6397664d84, - 0x2f031e6a0208ea98, - 0x5c7f2144a1be6bf0, - 0x7a37cb1cd16362db, - 0x83e08e2b4b311c64, - 0xcf70479bab960e32, - 0x856ba986b9dee71e, - 0xb5478c877af56ce9, - 0xb8fe42885f61d6fd, - 0x1bdd0156966238c8, - 0x622157923ef8a92e, - 0xfc97ff42114476f8, - 0x9d7d350856452ceb, - 0x4c90c9b0e0a71256, - 0x2308502dfbcb016c, - 0x2d7a03faa7a64845, - 0xf46e8b38bfc6c4ab, - 0xbdbef8fdd477deba, - 0x3aac4cebc8079b79, - 0xf09cb105e8879d0c, - 0x27fa6a10ac8a58cb, - 0x8960e7c1401d0cea, - 0x1a6f811e4a356928, - 0x90c4fb0773d196ff, - 0x43501a2f609d0a9f, - 0xf7a516e0c63f3796, - 0x1ce4a6b3b8da9252, - 0x1324752c38e08a9b, - 0xa5a864733bec154f, - 0x2bf124575549b33f, - 0xd766db15440dc5c7, - 0xa7d179e39e42b792, - 0xdadf151a61997fd3, - 0x86a0345ec0271423, - 0x38d5517b6da939a4, - 0x6518f077104003b4, - 0x02791d90a5aea2dd, - 0x88d267899c4a5d0a, - 0x930f66df0a2865c2, - 0x4ee9d4204509b08b, - 0x325538916685292a, - 0x412907bfc533a842, - 0xb27e2b62544dc673, - 0x6c5304456295e007, - 0x5af406e95351908a, - 0x1f2f3b6bc123616f, - 0xc37b09dc5255e5c6, - 0x3967d133b1fe6844, - 0x298839c7f0e711e2, - 0x409b87f71964f9a2, - 0xe938adc3db4b0719, - 0x0c0b4e47f9c3ebf4, - 0x5534d576d36b8843, - 0x4610a05aeb8b02d8, - 0x20c3cdf58232f251, - 0x6de1840dbec2b1e7, - 0xa0e8de06b0fa1d08, - 0x7b854b540d34333b, - 0x42e29a67bcca5b7f, - 0xd8a6088ac437dd0e, - 0xc63bb3a9d943ed81, - 0x21714dbd5e65a3b1, - 0x6761ede7b5eea169, - 0x2431f7c8d573abf6, - 0xd51fc685e1a3671a, - 0x5e063cd40410c92d, - 0x283ab98f2cb04002, - 0x8febc06cb2f2f790, - 0x17d64f116fa1d33c, - 0xe07359f1a99ee4aa, - 0x784ed68c74cdc006, - 0x6e2a19d5c73b42da, - 0x8712b4161c7045c3, - 0x371582e4ed93216d, - 0xace390414939f6fc, - 0x7ec5f12186223b7c, - 0xc0b094042bac16fb, - 0xf9d745379a527ebf, - 0x737c3f2ea3b68168, - 0x33e7b8d9bad278ca, - 0xa9a32a34c22ffebb, - 0xe48163ccfedfbd0d, - 0x8e5940246ea5a670, - 0x51c6ef4b842ad1e4, - 0x22bad065279c508c, - 0xd91488c218608cee, - 0x319ea5491f7cda17, - 0xd394e128134c9c60, - 0x094bf43272d5e3b3, - 0x9bf612a5a4aad791, - 0xccbbda43d26ffd0f, - 0x34de1f3c946ad250, - 0x4f5b5468995ee16b, - 0xdf9faf6fea8f7794, - 0x2648ea5870dd092b, - 0xbfc7e56d71d97c67, - 0xdde6b2ff4f21d549, - 0x3c276b463ae86003, - 0x91767b4faf86c71f, - 0x68a13e7835d4b9a0, - 0xb68c115f030c9fd4, - 0x141dd2c916582001, - 0x983d8f7ddd5324ac, - 0x64aa703fcc175254, - 0xc2c989948e02b426, - 0x3e5e76d69f46c2de, - 0x50746f03587d8004, - 0x45db3d829272f1e5, - 0x60584a029b560bf3, - 0xfbae58a73ffcdc62, - 0xa15a5e4e6cad4ce8, - 0x4ba96e55ce1fb8cc, - 0x08f9747aae82b253, - 0xc102144cf7fb471b, - 0x9f042898f3eb8e36, - 0x068b27adf2effb7a, - 0xedca97fe8c0a5ebe, - 0x778e0513f4f7d8cf, - 0x302c2501c32b8bf7, - 0x8d92ddfc175c554d, - 0xf865c57f46052f5f, - 0xeaf3301ba2b2f424, - 0xaa68b7ecbbd60d86, - 0x998f0f350104754c, - 0x0000000000000000, - 0xf12e314d34d0ccec, - 0x710522be061823b5, - 0xaf280d9930c005c1, - 0x97fd5ce25d693c65, - 0x19a41cc633cc9a15, - 0x95844172f8c79eb8, - 0xdc5432b7937684a9, - 0x9436c13a2490cf58, - 0x802b13f332c8ef59, - 0xc442ae397ced4f5c, - 0xfa1cd8efe3ab8d82, - 0xf2e5ac954d293fd1, - 0x6ad823e8907a1b7d, - 0x4d2249f83cf043b6, - 0x03cb9dd879f9f33d, - 0xde2d2f2736d82674, - 0x2a43a41f891ee2df, - 0x6f98999d1b6c133a, - 0xd4ad46cd3df436fa, - 0xbb35df50269825c0, - 0x964fdcaa813e6d85, - 0xeb41b0537ee5a5c4, - 0x0540ba758b160847, - 0xa41ae43be7bb44af, - 0xe3b8c429d0671797, - 0x819993bbee9fbeb9, - 0xae9a8dd1ec975421, - 0xf3572cdd917e6e31, - 0x6393d7dae2aff8ce, - 0x47a2201237dc5338, - 0xa32343dec903ee35, - 0x79fc56c4a89a91e6, - 0x01b28048dc5751e0, - 0x1296f564e4b7db7b, - 0x75f7188351597a12, - 0xdb6d9552bdce2e33, - 0x1e9dbb231d74308f, - 0x520d7293fdd322d9, - 0xe20a44610c304677, - 0xfeeee2d2b4ead425, - 0xca30fdee20800675, - 0x61eaca4a47015a13, - 0xe74afe1487264e30, - 0x2cc883b27bf119a5, - 0x1664cf59b3f682dc, - 0xa811aa7c1e78af5b, - 0x1d5626fb648dc3b2, - 0xb73e9117df5bce34, - 0xd05f7cf06ab56f5d, - 0xfd257f0acd132718, - 0x574dc8e676c52a9e, - 0x0739a7e52eb8aa9a, - 0x5486553e0f3cd9a3, - 0x56ff48aeaa927b7e, - 0xbe756525ad8e2d87, - 0x7d0e6cf9ffdbc841, - 0x3b1ecca31450ca99, - 0x6913be30e983e840, - 0xad511009956ea71c, - 0xb1b5b6ba2db4354e, - 0x4469bdca4e25a005, - 0x15af5281ca0f71e1, - 0x744598cb8d0e2bf2, - 0x593f9b312aa863b7, - 0xefb38a6e29a4fc63, - 0x6b6aa3a04c2d4a9d, - 0x3d95eb0ee6bf31e3, - 0xa291c3961554bfd5, - 0x18169c8eef9bcbf5, - 0x115d68bc9d4e2846, - 0xba875f18facf7420, - 0xd1edfcb8b6e23ebd, - 0xb00736f2f1e364ae, - 0x84d929ce6589b6fe, - 0x70b7a2f6da4f7255, - 0x0e7253d75c6d4929, - 0x04f23a3d574159a7, - 0x0a8069ea0b2c108e, - 0x49d073c56bb11a11, - 0x8aab7a1939e4ffd7, - 0xcd095a0b0e38acef, - 0xc9fb60365979f548, - 0x92bde697d67f3422, - 0xc78933e10514bc61, - 0xe1c1d9b975c9b54a, - 0xd2266160cf1bcd80, - 0x9a4492ed78fd8671, - 0xb3ccab2a881a9793, - 0x72cebf667fe1d088, - 0xd6d45b5d985a9427, - }, -}; - -__constant u64a sbob_rc64[12][8] = -{ - { - 0xe9daca1eda5b08b1, - 0x1f7c65c0812fcbeb, - 0x16d0452e43766a2f, - 0xfcc485758db84e71, - 0x0169679291e07c4b, - 0x15d360a4082a42a2, - 0x234d74cc36747605, - 0x0745a6f2596580dd, - }, - { - 0x1a2f9da98ab5a36f, - 0xd7b5700f469de34f, - 0x982b230a72eafef3, - 0x3101b5160f5ed561, - 0x5899d6126b17b59a, - 0xcaa70adbc261b55c, - 0x56cdcbd71ba2dd55, - 0xb79bb121700479e6, - }, - { - 0xc72fce2bacdc74f5, - 0x35843d6a28fc390a, - 0x8b1f9c525f5ef106, - 0x7b7b29b11475eaf2, - 0xb19e3590e40fe2d3, - 0x09db6260373ac9c1, - 0x31db7a8643f4b6c2, - 0xb20aba0af5961e99, - }, - { - 0xd26615e8b3df1fef, - 0xdde4715da0e148f9, - 0x7d3c5c337e858e48, - 0x3f355e68ad1c729d, - 0x75d603ed822cd7a9, - 0xbe0352933313b7d8, - 0xf137e893a1ea5334, - 0x2ed1e384bcbe0c22, - }, - { - 0x994747adac6bea4b, - 0x6323a96c0c413f9a, - 0x4a1086161f1c157f, - 0xbdff0f80d7359e35, - 0xa3f53a254717cdbf, - 0x161a2723b700ffdf, - 0xf563eaa97ea2567a, - 0x57fe6c7cfd581760, - }, - { - 0xd9d33a1daeae4fae, - 0xc039307a3bc3a46f, - 0x6ca44251f9c4662d, - 0xc68ef09ab49a7f18, - 0xb4b79a1cb7a6facf, - 0xb6c6bec2661ff20a, - 0x354f903672c571bf, - 0x6e7d64467a4068fa, - }, - { - 0xecc5aaee160ec7f4, - 0x540924bffe86ac51, - 0xc987bfe6c7c69e39, - 0xc9937a19333e47d3, - 0x372c822dc5ab9209, - 0x04054a2883694706, - 0xf34a3ca24c451735, - 0x93d4143a4d568688, - }, - { - 0xa7c9934d425b1f9b, - 0x41416e0c02aae703, - 0x1ede369c71f8b74e, - 0x9ac4db4d3b44b489, - 0x90069b92cb2b89f4, - 0x2fc4a5d12b8dd169, - 0xd9a8515935c2ac36, - 0x1ee702bfd40d7fa4, - }, - { - 0x9b223116545a8f37, - 0xde5f16ecd89a4c94, - 0x244289251b3a7d3a, - 0x84090de0b755d93c, - 0xb1ceb2db0b440a80, - 0x549c07a69a8a2b7b, - 0x602a1fcb92dc380e, - 0xdb5a238351446172, - }, - { - 0x526f0580a6debeab, - 0xf3f3e4b248e52a38, - 0xdb788aff1ce74189, - 0x0361331b8ae1ff1f, - 0x4b3369af0267e79f, - 0xf452763b306c1e7a, - 0xc3b63b15d1fa9836, - 0xed9c4598fbc7b474, - }, - { - 0xfb89c8efd09ecd7b, - 0x94fe5a63cdc60230, - 0x6107abebbb6bfad8, - 0x7966841421800120, - 0xcab948eaef711d8a, - 0x986e477d1dcdbaef, - 0x5dd86fc04a59a2de, - 0x1b2df381cda4ca6b, - }, - { - 0xba3116f167e78e37, - 0x7ab14904b08013d2, - 0x771ddfbc323ca4cd, - 0x9b9f2130d41220f8, - 0x86cc91189def805d, - 0x5228e188aaa41de7, - 0x991bb2d9d517f4fa, - 0x20d71bf14a92bc48, - }, -}; - DECLSPEC void streebog_g (u64x *h, const u64x *m, __local u64 (*s_sbob_sl64)[256]) { u64x k[8]; diff --git a/OpenCL/m11800_a3-pure.cl b/OpenCL/m11800_a3-pure.cl index 92367d3e0..9d5486c2c 100644 --- a/OpenCL/m11800_a3-pure.cl +++ b/OpenCL/m11800_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m11850_a0-pure.cl b/OpenCL/m11850_a0-pure.cl index 962b9de80..6b743f987 100644 --- a/OpenCL/m11850_a0-pure.cl +++ b/OpenCL/m11850_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11850_a1-pure.cl b/OpenCL/m11850_a1-pure.cl index 6d1a3350c..cf1a3d710 100644 --- a/OpenCL/m11850_a1-pure.cl +++ b/OpenCL/m11850_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m11850_a3-pure.cl b/OpenCL/m11850_a3-pure.cl index f07fc6455..4f22e7f4e 100644 --- a/OpenCL/m11850_a3-pure.cl +++ b/OpenCL/m11850_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m11860_a0-pure.cl b/OpenCL/m11860_a0-pure.cl index f1c9d01bc..bba186083 100644 --- a/OpenCL/m11860_a0-pure.cl +++ b/OpenCL/m11860_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m11860_a1-pure.cl b/OpenCL/m11860_a1-pure.cl index 5ece54d57..98d9b289a 100644 --- a/OpenCL/m11860_a1-pure.cl +++ b/OpenCL/m11860_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m11860_a3-pure.cl b/OpenCL/m11860_a3-pure.cl index 8bbb93f5f..1fe825321 100644 --- a/OpenCL/m11860_a3-pure.cl +++ b/OpenCL/m11860_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m11900-pure.cl b/OpenCL/m11900-pure.cl index 7fbe43814..f608c8def 100644 --- a/OpenCL/m11900-pure.cl +++ b/OpenCL/m11900-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m12000-pure.cl b/OpenCL/m12000-pure.cl index e89a9d10e..27a508a07 100644 --- a/OpenCL/m12000-pure.cl +++ b/OpenCL/m12000-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m12200-pure.cl b/OpenCL/m12200-pure.cl index 70578ea08..dd90dc6b2 100644 --- a/OpenCL/m12200-pure.cl +++ b/OpenCL/m12200-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m12300-pure.cl b/OpenCL/m12300-pure.cl index e68e9970e..d35b39432 100644 --- a/OpenCL/m12300-pure.cl +++ b/OpenCL/m12300-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m12400-pure.cl b/OpenCL/m12400-pure.cl index 7f1aa2127..20c00f9f0 100644 --- a/OpenCL/m12400-pure.cl +++ b/OpenCL/m12400-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #define COMPARE_S "inc_comp_single.cl" diff --git a/OpenCL/m12500-pure.cl b/OpenCL/m12500-pure.cl index 1ba2ab6d5..7f57b88b7 100644 --- a/OpenCL/m12500-pure.cl +++ b/OpenCL/m12500-pure.cl @@ -3,11 +3,10 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" +#include "inc_hash_sha1.cl" #include "inc_cipher_aes.cl" #define COMPARE_S "inc_comp_single.cl" @@ -35,7 +34,7 @@ typedef struct rar3_tmp } rar3_tmp_t; -DECLSPEC void sha1_transform (const u32 *w, u32 *digest) +DECLSPEC void sha1_transform_intern (const u32 *w, u32 *digest) { u32 A = digest[0]; u32 B = digest[1]; @@ -266,7 +265,7 @@ __kernel void m12500_loop (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, pbkdf2_sha1_t)) { const u32 j16 = j * 16; - sha1_transform (&largeblock[j16], dgst); + sha1_transform_intern (&largeblock[j16], dgst); } } } @@ -374,7 +373,7 @@ __kernel void m12500_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, pbkdf2_sha1_t)) dgst[3] = tmps[gid].dgst[16][3]; dgst[4] = tmps[gid].dgst[16][4]; - sha1_transform (w_buf, dgst); + sha1_transform_intern (w_buf, dgst); u32 ukey[4]; @@ -475,7 +474,7 @@ __kernel void m12500_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, pbkdf2_sha1_t)) dgst[3] = tmps[gid].dgst[i][3]; dgst[4] = tmps[gid].dgst[i][4]; - sha1_transform (w, dgst); + sha1_transform_intern (w, dgst); PUTCHAR (iv, i, dgst[4] & 0xff); } diff --git a/OpenCL/m12600_a0-optimized.cl b/OpenCL/m12600_a0-optimized.cl index b680ac6d4..3a81c6b44 100644 --- a/OpenCL/m12600_a0-optimized.cl +++ b/OpenCL/m12600_a0-optimized.cl @@ -5,14 +5,14 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" +#include "inc_hash_sha256.cl" #if VECT_SIZE == 1 #define uint_to_hex_upper8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m12600_a0-pure.cl b/OpenCL/m12600_a0-pure.cl index ca8a52938..be40e1180 100644 --- a/OpenCL/m12600_a0-pure.cl +++ b/OpenCL/m12600_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m12600_a1-optimized.cl b/OpenCL/m12600_a1-optimized.cl index 87c281ad8..7dc599e5f 100644 --- a/OpenCL/m12600_a1-optimized.cl +++ b/OpenCL/m12600_a1-optimized.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" +#include "inc_hash_sha256.cl" #if VECT_SIZE == 1 #define uint_to_hex_upper8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m12600_a1-pure.cl b/OpenCL/m12600_a1-pure.cl index a3b6f9d79..31ecf96d5 100644 --- a/OpenCL/m12600_a1-pure.cl +++ b/OpenCL/m12600_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m12600_a3-optimized.cl b/OpenCL/m12600_a3-optimized.cl index 1325a18b4..e2d27500b 100644 --- a/OpenCL/m12600_a3-optimized.cl +++ b/OpenCL/m12600_a3-optimized.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" +#include "inc_hash_sha256.cl" #if VECT_SIZE == 1 #define uint_to_hex_upper8(i) (u32x) (l_bin2asc[(i)]) diff --git a/OpenCL/m12600_a3-pure.cl b/OpenCL/m12600_a3-pure.cl index 48ec293c4..8f564f91d 100644 --- a/OpenCL/m12600_a3-pure.cl +++ b/OpenCL/m12600_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m12700-pure.cl b/OpenCL/m12700-pure.cl index 6c0ebbc11..ef64086c8 100644 --- a/OpenCL/m12700-pure.cl +++ b/OpenCL/m12700-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m12800-pure.cl b/OpenCL/m12800-pure.cl index 737da4093..deb7fdfe5 100644 --- a/OpenCL/m12800-pure.cl +++ b/OpenCL/m12800-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m12900-pure.cl b/OpenCL/m12900-pure.cl index 19eaac2fd..6ebbbbce0 100644 --- a/OpenCL/m12900-pure.cl +++ b/OpenCL/m12900-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13000-pure.cl b/OpenCL/m13000-pure.cl index b9c6fd4bf..e53fef389 100644 --- a/OpenCL/m13000-pure.cl +++ b/OpenCL/m13000-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13100_a0-optimized.cl b/OpenCL/m13100_a0-optimized.cl index 9e42b7ba6..27b7557ff 100644 --- a/OpenCL/m13100_a0-optimized.cl +++ b/OpenCL/m13100_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m13100_a0-pure.cl b/OpenCL/m13100_a0-pure.cl index 88bd97c56..ae27d3d25 100644 --- a/OpenCL/m13100_a0-pure.cl +++ b/OpenCL/m13100_a0-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m13100_a1-optimized.cl b/OpenCL/m13100_a1-optimized.cl index bab4b12f2..8386feea8 100644 --- a/OpenCL/m13100_a1-optimized.cl +++ b/OpenCL/m13100_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m13100_a1-pure.cl b/OpenCL/m13100_a1-pure.cl index 017f98fea..668f0c991 100644 --- a/OpenCL/m13100_a1-pure.cl +++ b/OpenCL/m13100_a1-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md4.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m13100_a3-optimized.cl b/OpenCL/m13100_a3-optimized.cl index 22b6f9214..2fc7b73d1 100644 --- a/OpenCL/m13100_a3-optimized.cl +++ b/OpenCL/m13100_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m13100_a3-pure.cl b/OpenCL/m13100_a3-pure.cl index 738d92dab..b107f858f 100644 --- a/OpenCL/m13100_a3-pure.cl +++ b/OpenCL/m13100_a3-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md4.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m13200-pure.cl b/OpenCL/m13200-pure.cl index d88e36e8b..00d499c2a 100644 --- a/OpenCL/m13200-pure.cl +++ b/OpenCL/m13200-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha1.cl" #include "inc_cipher_aes.cl" diff --git a/OpenCL/m13300_a0-optimized.cl b/OpenCL/m13300_a0-optimized.cl index c12570d31..edb2bd850 100644 --- a/OpenCL/m13300_a0-optimized.cl +++ b/OpenCL/m13300_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m13300_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m13300_a0-pure.cl b/OpenCL/m13300_a0-pure.cl index 6b36fd19c..359e4b06d 100644 --- a/OpenCL/m13300_a0-pure.cl +++ b/OpenCL/m13300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m13300_a1-optimized.cl b/OpenCL/m13300_a1-optimized.cl index d14a4a452..7552dfd7c 100644 --- a/OpenCL/m13300_a1-optimized.cl +++ b/OpenCL/m13300_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m13300_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m13300_a1-pure.cl b/OpenCL/m13300_a1-pure.cl index ede5b5ac9..0d16a1145 100644 --- a/OpenCL/m13300_a1-pure.cl +++ b/OpenCL/m13300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13300_a3-optimized.cl b/OpenCL/m13300_a3-optimized.cl index 025036b59..281bdb4f3 100644 --- a/OpenCL/m13300_a3-optimized.cl +++ b/OpenCL/m13300_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m13300m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m13300_a3-pure.cl b/OpenCL/m13300_a3-pure.cl index 4d1d278a5..3dd31a378 100644 --- a/OpenCL/m13300_a3-pure.cl +++ b/OpenCL/m13300_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13400-pure.cl b/OpenCL/m13400-pure.cl index 8fa9da925..60bc3b341 100644 --- a/OpenCL/m13400-pure.cl +++ b/OpenCL/m13400-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" #include "inc_cipher_aes.cl" diff --git a/OpenCL/m13500_a0-optimized.cl b/OpenCL/m13500_a0-optimized.cl index 20feceb7c..845dac235 100644 --- a/OpenCL/m13500_a0-optimized.cl +++ b/OpenCL/m13500_a0-optimized.cl @@ -6,14 +6,13 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" typedef struct pstoken { diff --git a/OpenCL/m13500_a0-pure.cl b/OpenCL/m13500_a0-pure.cl index 70d11b517..b3ca83e66 100644 --- a/OpenCL/m13500_a0-pure.cl +++ b/OpenCL/m13500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m13500_a1-optimized.cl b/OpenCL/m13500_a1-optimized.cl index f9defa844..e34a62153 100644 --- a/OpenCL/m13500_a1-optimized.cl +++ b/OpenCL/m13500_a1-optimized.cl @@ -6,12 +6,11 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" typedef struct pstoken { diff --git a/OpenCL/m13500_a1-pure.cl b/OpenCL/m13500_a1-pure.cl index 25096e242..00cc63bc4 100644 --- a/OpenCL/m13500_a1-pure.cl +++ b/OpenCL/m13500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13500_a3-optimized.cl b/OpenCL/m13500_a3-optimized.cl index 74f41133c..58bf31caa 100644 --- a/OpenCL/m13500_a3-optimized.cl +++ b/OpenCL/m13500_a3-optimized.cl @@ -6,12 +6,11 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" typedef struct pstoken { diff --git a/OpenCL/m13500_a3-pure.cl b/OpenCL/m13500_a3-pure.cl index 9e594244c..e657f81b1 100644 --- a/OpenCL/m13500_a3-pure.cl +++ b/OpenCL/m13500_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13600-pure.cl b/OpenCL/m13600-pure.cl index eb07e44a1..589914e9c 100644 --- a/OpenCL/m13600-pure.cl +++ b/OpenCL/m13600-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13711-pure.cl b/OpenCL/m13711-pure.cl index 664a9d2a7..447c1b74d 100644 --- a/OpenCL/m13711-pure.cl +++ b/OpenCL/m13711-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m13712-pure.cl b/OpenCL/m13712-pure.cl index 6e0760b3c..b085aebbc 100644 --- a/OpenCL/m13712-pure.cl +++ b/OpenCL/m13712-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m13713-pure.cl b/OpenCL/m13713-pure.cl index 467c0f8cc..470b93d50 100644 --- a/OpenCL/m13713-pure.cl +++ b/OpenCL/m13713-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_ripemd160.cl" diff --git a/OpenCL/m13721-pure.cl b/OpenCL/m13721-pure.cl index 04c371f65..bdb9cc543 100644 --- a/OpenCL/m13721-pure.cl +++ b/OpenCL/m13721-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m13722-pure.cl b/OpenCL/m13722-pure.cl index 559908682..e60ee7d9e 100644 --- a/OpenCL/m13722-pure.cl +++ b/OpenCL/m13722-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m13723-pure.cl b/OpenCL/m13723-pure.cl index 176aa5993..a02e960ce 100644 --- a/OpenCL/m13723-pure.cl +++ b/OpenCL/m13723-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m13731-pure.cl b/OpenCL/m13731-pure.cl index 84affaf5e..300d32bdb 100644 --- a/OpenCL/m13731-pure.cl +++ b/OpenCL/m13731-pure.cl @@ -8,10 +8,8 @@ //#undef LOCAL_MEM_TYPE //#define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m13732-pure.cl b/OpenCL/m13732-pure.cl index 105f062f4..b36847b9d 100644 --- a/OpenCL/m13732-pure.cl +++ b/OpenCL/m13732-pure.cl @@ -8,10 +8,8 @@ //#undef LOCAL_MEM_TYPE //#define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m13733-pure.cl b/OpenCL/m13733-pure.cl index affc31f51..e3d39581c 100644 --- a/OpenCL/m13733-pure.cl +++ b/OpenCL/m13733-pure.cl @@ -8,10 +8,8 @@ //#undef LOCAL_MEM_TYPE //#define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_whirlpool.cl" diff --git a/OpenCL/m13751-pure.cl b/OpenCL/m13751-pure.cl index a5448a248..59d09cae5 100644 --- a/OpenCL/m13751-pure.cl +++ b/OpenCL/m13751-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13752-pure.cl b/OpenCL/m13752-pure.cl index 6996d48c1..41f2fe763 100644 --- a/OpenCL/m13752-pure.cl +++ b/OpenCL/m13752-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13753-pure.cl b/OpenCL/m13753-pure.cl index 5f77f3a56..ec3207221 100644 --- a/OpenCL/m13753-pure.cl +++ b/OpenCL/m13753-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13771-pure.cl b/OpenCL/m13771-pure.cl index bad84d31f..a530de435 100644 --- a/OpenCL/m13771-pure.cl +++ b/OpenCL/m13771-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m13772-pure.cl b/OpenCL/m13772-pure.cl index 8d76b560f..059228038 100644 --- a/OpenCL/m13772-pure.cl +++ b/OpenCL/m13772-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m13773-pure.cl b/OpenCL/m13773-pure.cl index 854c192b3..a2be6b78b 100644 --- a/OpenCL/m13773-pure.cl +++ b/OpenCL/m13773-pure.cl @@ -8,10 +8,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_streebog512.cl" diff --git a/OpenCL/m13800_a0-optimized.cl b/OpenCL/m13800_a0-optimized.cl index d973fcc78..22755bf5e 100644 --- a/OpenCL/m13800_a0-optimized.cl +++ b/OpenCL/m13800_a0-optimized.cl @@ -6,10 +6,8 @@ //not compatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m13800_a0-pure.cl b/OpenCL/m13800_a0-pure.cl index 3b704f036..796d38782 100644 --- a/OpenCL/m13800_a0-pure.cl +++ b/OpenCL/m13800_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m13800_a1-optimized.cl b/OpenCL/m13800_a1-optimized.cl index b4118da9f..81b2e0b5b 100644 --- a/OpenCL/m13800_a1-optimized.cl +++ b/OpenCL/m13800_a1-optimized.cl @@ -6,10 +6,8 @@ //not compatible //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13800_a1-pure.cl b/OpenCL/m13800_a1-pure.cl index 24699c4d6..2afad41dd 100644 --- a/OpenCL/m13800_a1-pure.cl +++ b/OpenCL/m13800_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13800_a3-optimized.cl b/OpenCL/m13800_a3-optimized.cl index 73f0c7223..d06b49365 100644 --- a/OpenCL/m13800_a3-optimized.cl +++ b/OpenCL/m13800_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13800_a3-pure.cl b/OpenCL/m13800_a3-pure.cl index a3b2ccff4..b0d7acf16 100644 --- a/OpenCL/m13800_a3-pure.cl +++ b/OpenCL/m13800_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m13900_a0-optimized.cl b/OpenCL/m13900_a0-optimized.cl index 420c6c4a5..988fa4bbf 100644 --- a/OpenCL/m13900_a0-optimized.cl +++ b/OpenCL/m13900_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m13900_a0-pure.cl b/OpenCL/m13900_a0-pure.cl index 5096ca7c6..f965d810b 100644 --- a/OpenCL/m13900_a0-pure.cl +++ b/OpenCL/m13900_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m13900_a1-optimized.cl b/OpenCL/m13900_a1-optimized.cl index 4e3318efe..4016b1e37 100644 --- a/OpenCL/m13900_a1-optimized.cl +++ b/OpenCL/m13900_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13900_a1-pure.cl b/OpenCL/m13900_a1-pure.cl index 223b9dfa7..31b3de0a1 100644 --- a/OpenCL/m13900_a1-pure.cl +++ b/OpenCL/m13900_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13900_a3-optimized.cl b/OpenCL/m13900_a3-optimized.cl index 3b88389a4..297711529 100644 --- a/OpenCL/m13900_a3-optimized.cl +++ b/OpenCL/m13900_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m13900_a3-pure.cl b/OpenCL/m13900_a3-pure.cl index 8534842b9..7503acfa5 100644 --- a/OpenCL/m13900_a3-pure.cl +++ b/OpenCL/m13900_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14000_a0-pure.cl b/OpenCL/m14000_a0-pure.cl index 79b371a48..1bece0c35 100644 --- a/OpenCL/m14000_a0-pure.cl +++ b/OpenCL/m14000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m14000_a1-pure.cl b/OpenCL/m14000_a1-pure.cl index d7a38d118..88e86f2b6 100644 --- a/OpenCL/m14000_a1-pure.cl +++ b/OpenCL/m14000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m14000_a3-pure.cl b/OpenCL/m14000_a3-pure.cl index 2dbd0b178..eabe397aa 100644 --- a/OpenCL/m14000_a3-pure.cl +++ b/OpenCL/m14000_a3-pure.cl @@ -5,10 +5,8 @@ * : sboxes for others were takes fron JtR, license below */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #define COMPARE_S "inc_comp_single_bs.cl" diff --git a/OpenCL/m14100_a0-pure.cl b/OpenCL/m14100_a0-pure.cl index 5cdc1f425..43ff09855 100644 --- a/OpenCL/m14100_a0-pure.cl +++ b/OpenCL/m14100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m14100_a1-pure.cl b/OpenCL/m14100_a1-pure.cl index 3c3f5070f..569362b8f 100644 --- a/OpenCL/m14100_a1-pure.cl +++ b/OpenCL/m14100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m14100_a3-pure.cl b/OpenCL/m14100_a3-pure.cl index eaeda864d..08dcacab1 100644 --- a/OpenCL/m14100_a3-pure.cl +++ b/OpenCL/m14100_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m14400_a0-optimized.cl b/OpenCL/m14400_a0-optimized.cl index c21770869..bf476e746 100644 --- a/OpenCL/m14400_a0-optimized.cl +++ b/OpenCL/m14400_a0-optimized.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m14400_a0-pure.cl b/OpenCL/m14400_a0-pure.cl index 1449f79df..46d513207 100644 --- a/OpenCL/m14400_a0-pure.cl +++ b/OpenCL/m14400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m14400_a1-optimized.cl b/OpenCL/m14400_a1-optimized.cl index 6b372f043..50ed4d012 100644 --- a/OpenCL/m14400_a1-optimized.cl +++ b/OpenCL/m14400_a1-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14400_a1-pure.cl b/OpenCL/m14400_a1-pure.cl index e9d8f153d..6b00dbc05 100644 --- a/OpenCL/m14400_a1-pure.cl +++ b/OpenCL/m14400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14400_a3-optimized.cl b/OpenCL/m14400_a3-optimized.cl index 95b7b8c7b..91529052d 100644 --- a/OpenCL/m14400_a3-optimized.cl +++ b/OpenCL/m14400_a3-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14400_a3-pure.cl b/OpenCL/m14400_a3-pure.cl index da22b5b24..06517d664 100644 --- a/OpenCL/m14400_a3-pure.cl +++ b/OpenCL/m14400_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14611-pure.cl b/OpenCL/m14611-pure.cl index 44bbbc9eb..0a5a647ae 100644 --- a/OpenCL/m14611-pure.cl +++ b/OpenCL/m14611-pure.cl @@ -5,13 +5,14 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" +#include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_aes.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14612-pure.cl b/OpenCL/m14612-pure.cl index 844077011..cd57a4fce 100644 --- a/OpenCL/m14612-pure.cl +++ b/OpenCL/m14612-pure.cl @@ -5,13 +5,14 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" +#include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_serpent.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14613-pure.cl b/OpenCL/m14613-pure.cl index a7c3aef4d..23e5aff50 100644 --- a/OpenCL/m14613-pure.cl +++ b/OpenCL/m14613-pure.cl @@ -5,13 +5,14 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" +#include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_twofish.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14621-pure.cl b/OpenCL/m14621-pure.cl index d1481b27b..8f4909a71 100644 --- a/OpenCL/m14621-pure.cl +++ b/OpenCL/m14621-pure.cl @@ -5,13 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_aes.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14622-pure.cl b/OpenCL/m14622-pure.cl index 84c647f5a..de363e06a 100644 --- a/OpenCL/m14622-pure.cl +++ b/OpenCL/m14622-pure.cl @@ -5,13 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_serpent.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14623-pure.cl b/OpenCL/m14623-pure.cl index 56a41ae7d..d98c717af 100644 --- a/OpenCL/m14623-pure.cl +++ b/OpenCL/m14623-pure.cl @@ -5,13 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_twofish.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14631-pure.cl b/OpenCL/m14631-pure.cl index 85930ef9f..3fd6b7765 100644 --- a/OpenCL/m14631-pure.cl +++ b/OpenCL/m14631-pure.cl @@ -5,13 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_aes.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14632-pure.cl b/OpenCL/m14632-pure.cl index 8bf3a7b85..aff097e6b 100644 --- a/OpenCL/m14632-pure.cl +++ b/OpenCL/m14632-pure.cl @@ -5,13 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_serpent.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14633-pure.cl b/OpenCL/m14633-pure.cl index 9565908b3..40b872c6c 100644 --- a/OpenCL/m14633-pure.cl +++ b/OpenCL/m14633-pure.cl @@ -5,13 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #include "inc_hash_sha512.cl" +#include "inc_hash_ripemd160.cl" #include "inc_cipher_twofish.cl" #define LUKS_STRIPES 4000 diff --git a/OpenCL/m14641-pure.cl b/OpenCL/m14641-pure.cl index f73db5d59..3f464caac 100644 --- a/OpenCL/m14641-pure.cl +++ b/OpenCL/m14641-pure.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" #include "inc_hash_ripemd160.cl" #include "inc_cipher_aes.cl" diff --git a/OpenCL/m14642-pure.cl b/OpenCL/m14642-pure.cl index dd5536546..c2d5d9d28 100644 --- a/OpenCL/m14642-pure.cl +++ b/OpenCL/m14642-pure.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" #include "inc_hash_ripemd160.cl" #include "inc_cipher_serpent.cl" diff --git a/OpenCL/m14643-pure.cl b/OpenCL/m14643-pure.cl index d9a02c811..98e93c29e 100644 --- a/OpenCL/m14643-pure.cl +++ b/OpenCL/m14643-pure.cl @@ -5,12 +5,12 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" +#include "inc_hash_sha512.cl" #include "inc_hash_ripemd160.cl" #include "inc_cipher_twofish.cl" diff --git a/OpenCL/m14700-pure.cl b/OpenCL/m14700-pure.cl index 0a091346d..5b2476df3 100644 --- a/OpenCL/m14700-pure.cl +++ b/OpenCL/m14700-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14800-pure.cl b/OpenCL/m14800-pure.cl index 7ee7a69b3..90a6b265f 100644 --- a/OpenCL/m14800-pure.cl +++ b/OpenCL/m14800-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m14900_a0-optimized.cl b/OpenCL/m14900_a0-optimized.cl index 134ae6939..cda0cf955 100644 --- a/OpenCL/m14900_a0-optimized.cl +++ b/OpenCL/m14900_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m14900_a1-optimized.cl b/OpenCL/m14900_a1-optimized.cl index eeff580a1..8e49bdb4e 100644 --- a/OpenCL/m14900_a1-optimized.cl +++ b/OpenCL/m14900_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m14900_a3-optimized.cl b/OpenCL/m14900_a3-optimized.cl index c6b565bca..4a397e986 100644 --- a/OpenCL/m14900_a3-optimized.cl +++ b/OpenCL/m14900_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m15000_a0-optimized.cl b/OpenCL/m15000_a0-optimized.cl index c299a438a..75bbe61e5 100644 --- a/OpenCL/m15000_a0-optimized.cl +++ b/OpenCL/m15000_a0-optimized.cl @@ -5,40 +5,15 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -323,7 +298,7 @@ __kernel void m15000_m04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -540,7 +515,7 @@ __kernel void m15000_s04 (KERN_ATTR_RULES ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m15000_a0-pure.cl b/OpenCL/m15000_a0-pure.cl index 6c2c47f31..8903062ff 100644 --- a/OpenCL/m15000_a0-pure.cl +++ b/OpenCL/m15000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m15000_a1-optimized.cl b/OpenCL/m15000_a1-optimized.cl index 636c5ae56..c6860b5f0 100644 --- a/OpenCL/m15000_a1-optimized.cl +++ b/OpenCL/m15000_a1-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -381,7 +356,7 @@ __kernel void m15000_m04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -658,7 +633,7 @@ __kernel void m15000_s04 (KERN_ATTR_BASIC ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m15000_a1-pure.cl b/OpenCL/m15000_a1-pure.cl index fd2ab69d4..a7ecf2e90 100644 --- a/OpenCL/m15000_a1-pure.cl +++ b/OpenCL/m15000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m15000_a3-optimized.cl b/OpenCL/m15000_a3-optimized.cl index 24fc051df..af2727268 100644 --- a/OpenCL/m15000_a3-optimized.cl +++ b/OpenCL/m15000_a3-optimized.cl @@ -5,38 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha512.cl" -__constant u64a k_sha512[80] = -{ - SHA512C00, SHA512C01, SHA512C02, SHA512C03, - SHA512C04, SHA512C05, SHA512C06, SHA512C07, - SHA512C08, SHA512C09, SHA512C0a, SHA512C0b, - SHA512C0c, SHA512C0d, SHA512C0e, SHA512C0f, - SHA512C10, SHA512C11, SHA512C12, SHA512C13, - SHA512C14, SHA512C15, SHA512C16, SHA512C17, - SHA512C18, SHA512C19, SHA512C1a, SHA512C1b, - SHA512C1c, SHA512C1d, SHA512C1e, SHA512C1f, - SHA512C20, SHA512C21, SHA512C22, SHA512C23, - SHA512C24, SHA512C25, SHA512C26, SHA512C27, - SHA512C28, SHA512C29, SHA512C2a, SHA512C2b, - SHA512C2c, SHA512C2d, SHA512C2e, SHA512C2f, - SHA512C30, SHA512C31, SHA512C32, SHA512C33, - SHA512C34, SHA512C35, SHA512C36, SHA512C37, - SHA512C38, SHA512C39, SHA512C3a, SHA512C3b, - SHA512C3c, SHA512C3d, SHA512C3e, SHA512C3f, - SHA512C40, SHA512C41, SHA512C42, SHA512C43, - SHA512C44, SHA512C45, SHA512C46, SHA512C47, - SHA512C48, SHA512C49, SHA512C4a, SHA512C4b, - SHA512C4c, SHA512C4d, SHA512C4e, SHA512C4f, -}; - -DECLSPEC void sha512_transform (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) +DECLSPEC void sha512_transform_intern (const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7, u64x *digest) { u64x w0_t = hl32_to_64 (w0[0], w0[1]); u64x w1_t = hl32_to_64 (w0[2], w0[3]); @@ -285,7 +260,7 @@ DECLSPEC void m15000m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); @@ -458,7 +433,7 @@ DECLSPEC void m15000s (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) digest[6] = SHA512M_G; digest[7] = SHA512M_H; - sha512_transform (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); + sha512_transform_intern (w0_t, w1_t, w2_t, w3_t, w4_t, w5_t, w6_t, w7_t, digest); const u32x r0 = l32_from_64 (digest[7]); const u32x r1 = h32_from_64 (digest[7]); diff --git a/OpenCL/m15000_a3-pure.cl b/OpenCL/m15000_a3-pure.cl index 66d4214a4..0aeed308b 100644 --- a/OpenCL/m15000_a3-pure.cl +++ b/OpenCL/m15000_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m15100-pure.cl b/OpenCL/m15100-pure.cl index f3a439a25..5d7d51433 100644 --- a/OpenCL/m15100-pure.cl +++ b/OpenCL/m15100-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m15300-pure.cl b/OpenCL/m15300-pure.cl index 103c0338d..6e89b6c3c 100644 --- a/OpenCL/m15300-pure.cl +++ b/OpenCL/m15300-pure.cl @@ -11,10 +11,8 @@ #undef LOCAL_MEM_TYPE #define LOCAL_MEM_TYPE LOCAL_MEM_TYPE_GLOBAL -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m15400_a0-optimized.cl b/OpenCL/m15400_a0-optimized.cl index cb018105c..2066e66a9 100644 --- a/OpenCL/m15400_a0-optimized.cl +++ b/OpenCL/m15400_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m15400_a1-optimized.cl b/OpenCL/m15400_a1-optimized.cl index 5ffedf3dd..44dcbb6d4 100644 --- a/OpenCL/m15400_a1-optimized.cl +++ b/OpenCL/m15400_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m15400_a3-optimized.cl b/OpenCL/m15400_a3-optimized.cl index 57e24d579..afc185971 100644 --- a/OpenCL/m15400_a3-optimized.cl +++ b/OpenCL/m15400_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m15500_a0-optimized.cl b/OpenCL/m15500_a0-optimized.cl index 06e28f417..de114b8ab 100644 --- a/OpenCL/m15500_a0-optimized.cl +++ b/OpenCL/m15500_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m15500_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m15500_a0-pure.cl b/OpenCL/m15500_a0-pure.cl index acf72f3be..02b4e4aad 100644 --- a/OpenCL/m15500_a0-pure.cl +++ b/OpenCL/m15500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m15500_a1-optimized.cl b/OpenCL/m15500_a1-optimized.cl index b85ca9468..af78db81b 100644 --- a/OpenCL/m15500_a1-optimized.cl +++ b/OpenCL/m15500_a1-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" __kernel void m15500_m04 (KERN_ATTR_BASIC ()) { diff --git a/OpenCL/m15500_a1-pure.cl b/OpenCL/m15500_a1-pure.cl index 3883493fc..3ac316173 100644 --- a/OpenCL/m15500_a1-pure.cl +++ b/OpenCL/m15500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m15500_a3-optimized.cl b/OpenCL/m15500_a3-optimized.cl index a35b936ef..43e662a78 100644 --- a/OpenCL/m15500_a3-optimized.cl +++ b/OpenCL/m15500_a3-optimized.cl @@ -5,12 +5,11 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha1.cl" DECLSPEC void m15500m (u32 *w, const u32 pw_len, KERN_ATTR_VECTOR ()) { diff --git a/OpenCL/m15500_a3-pure.cl b/OpenCL/m15500_a3-pure.cl index 65e39a16d..9579b00b6 100644 --- a/OpenCL/m15500_a3-pure.cl +++ b/OpenCL/m15500_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m15600-pure.cl b/OpenCL/m15600-pure.cl index 2cb0523b8..10ebe4648 100644 --- a/OpenCL/m15600-pure.cl +++ b/OpenCL/m15600-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m15700-pure.cl b/OpenCL/m15700-pure.cl index a5274733b..de721672f 100644 --- a/OpenCL/m15700-pure.cl +++ b/OpenCL/m15700-pure.cl @@ -3,10 +3,8 @@ * License.....: MIT */ -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m15900-pure.cl b/OpenCL/m15900-pure.cl index c144b2242..14d740883 100644 --- a/OpenCL/m15900-pure.cl +++ b/OpenCL/m15900-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m16000_a0-pure.cl b/OpenCL/m16000_a0-pure.cl index 51e08afb0..ef58ca427 100644 --- a/OpenCL/m16000_a0-pure.cl +++ b/OpenCL/m16000_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16000_a1-pure.cl b/OpenCL/m16000_a1-pure.cl index 31405aa7c..a55869fb5 100644 --- a/OpenCL/m16000_a1-pure.cl +++ b/OpenCL/m16000_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m16000_a3-pure.cl b/OpenCL/m16000_a3-pure.cl index f98e9c40d..9b05699ce 100644 --- a/OpenCL/m16000_a3-pure.cl +++ b/OpenCL/m16000_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m16100_a0-optimized.cl b/OpenCL/m16100_a0-optimized.cl index 4411c8304..da2d7cea8 100644 --- a/OpenCL/m16100_a0-optimized.cl +++ b/OpenCL/m16100_a0-optimized.cl @@ -5,14 +5,13 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" typedef struct tacacs_plus { diff --git a/OpenCL/m16100_a0-pure.cl b/OpenCL/m16100_a0-pure.cl index d7c6c2371..970e2af0c 100644 --- a/OpenCL/m16100_a0-pure.cl +++ b/OpenCL/m16100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16100_a1-optimized.cl b/OpenCL/m16100_a1-optimized.cl index 46c45a392..1b0b1f3d8 100644 --- a/OpenCL/m16100_a1-optimized.cl +++ b/OpenCL/m16100_a1-optimized.cl @@ -5,12 +5,11 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" typedef struct tacacs_plus { diff --git a/OpenCL/m16100_a1-pure.cl b/OpenCL/m16100_a1-pure.cl index 15b4ed1a0..11854711f 100644 --- a/OpenCL/m16100_a1-pure.cl +++ b/OpenCL/m16100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m16100_a3-optimized.cl b/OpenCL/m16100_a3-optimized.cl index fcfedac74..c81249f67 100644 --- a/OpenCL/m16100_a3-optimized.cl +++ b/OpenCL/m16100_a3-optimized.cl @@ -5,12 +5,11 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" typedef struct tacacs_plus { diff --git a/OpenCL/m16100_a3-pure.cl b/OpenCL/m16100_a3-pure.cl index 4e8e7b0a8..68657a878 100644 --- a/OpenCL/m16100_a3-pure.cl +++ b/OpenCL/m16100_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m16200-pure.cl b/OpenCL/m16200-pure.cl index 6039d84aa..c4f77c946 100644 --- a/OpenCL/m16200-pure.cl +++ b/OpenCL/m16200-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m16300-pure.cl b/OpenCL/m16300-pure.cl index c23dc5c64..82a04079e 100644 --- a/OpenCL/m16300-pure.cl +++ b/OpenCL/m16300-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m16400_a0-optimized.cl b/OpenCL/m16400_a0-optimized.cl index ad4c701d1..1ab304fe9 100644 --- a/OpenCL/m16400_a0-optimized.cl +++ b/OpenCL/m16400_a0-optimized.cl @@ -5,14 +5,13 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_md5.cl" __kernel void m16400_m04 (KERN_ATTR_RULES ()) { diff --git a/OpenCL/m16400_a0-pure.cl b/OpenCL/m16400_a0-pure.cl index c22f42a48..1318f0c80 100644 --- a/OpenCL/m16400_a0-pure.cl +++ b/OpenCL/m16400_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16400_a1-optimized.cl b/OpenCL/m16400_a1-optimized.cl index 83b4d2907..39521b883 100644 --- a/OpenCL/m16400_a1-optimized.cl +++ b/OpenCL/m16400_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_simd.cl" diff --git a/OpenCL/m16400_a1-pure.cl b/OpenCL/m16400_a1-pure.cl index 6e929dfc3..5a7e81188 100644 --- a/OpenCL/m16400_a1-pure.cl +++ b/OpenCL/m16400_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m16400_a3-optimized.cl b/OpenCL/m16400_a3-optimized.cl index aaee867da..a0d872f58 100644 --- a/OpenCL/m16400_a3-optimized.cl +++ b/OpenCL/m16400_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m16400_a3-pure.cl b/OpenCL/m16400_a3-pure.cl index a39bf0039..20dfb7a8c 100644 --- a/OpenCL/m16400_a3-pure.cl +++ b/OpenCL/m16400_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m16511_a0-pure.cl b/OpenCL/m16511_a0-pure.cl index bad4b7030..af246f531 100644 --- a/OpenCL/m16511_a0-pure.cl +++ b/OpenCL/m16511_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16511_a1-pure.cl b/OpenCL/m16511_a1-pure.cl index e6df24d78..3354ef3f6 100644 --- a/OpenCL/m16511_a1-pure.cl +++ b/OpenCL/m16511_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m16511_a3-pure.cl b/OpenCL/m16511_a3-pure.cl index 2812273da..2d1546578 100644 --- a/OpenCL/m16511_a3-pure.cl +++ b/OpenCL/m16511_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m16512_a0-pure.cl b/OpenCL/m16512_a0-pure.cl index 4a048297b..141b67993 100644 --- a/OpenCL/m16512_a0-pure.cl +++ b/OpenCL/m16512_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16512_a1-pure.cl b/OpenCL/m16512_a1-pure.cl index 9a3d9baeb..786d1f922 100644 --- a/OpenCL/m16512_a1-pure.cl +++ b/OpenCL/m16512_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha384.cl" diff --git a/OpenCL/m16512_a3-pure.cl b/OpenCL/m16512_a3-pure.cl index 52b453031..2dfdaca85 100644 --- a/OpenCL/m16512_a3-pure.cl +++ b/OpenCL/m16512_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha384.cl" diff --git a/OpenCL/m16513_a0-pure.cl b/OpenCL/m16513_a0-pure.cl index 29490ae05..199110b15 100644 --- a/OpenCL/m16513_a0-pure.cl +++ b/OpenCL/m16513_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16513_a1-pure.cl b/OpenCL/m16513_a1-pure.cl index 09586726e..3027c98e3 100644 --- a/OpenCL/m16513_a1-pure.cl +++ b/OpenCL/m16513_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m16513_a3-pure.cl b/OpenCL/m16513_a3-pure.cl index 590d41568..aa03687f8 100644 --- a/OpenCL/m16513_a3-pure.cl +++ b/OpenCL/m16513_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m16600_a0-optimized.cl b/OpenCL/m16600_a0-optimized.cl index e7754fa40..523bcfc87 100644 --- a/OpenCL/m16600_a0-optimized.cl +++ b/OpenCL/m16600_a0-optimized.cl @@ -5,14 +5,13 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #include "inc_cipher_aes.cl" typedef struct electrum_wallet diff --git a/OpenCL/m16600_a0-pure.cl b/OpenCL/m16600_a0-pure.cl index 65ecd0c35..6fc47615e 100644 --- a/OpenCL/m16600_a0-pure.cl +++ b/OpenCL/m16600_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m16600_a1-optimized.cl b/OpenCL/m16600_a1-optimized.cl index f993b520d..5ea1e7d06 100644 --- a/OpenCL/m16600_a1-optimized.cl +++ b/OpenCL/m16600_a1-optimized.cl @@ -5,12 +5,11 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #include "inc_cipher_aes.cl" typedef struct electrum_wallet diff --git a/OpenCL/m16600_a1-pure.cl b/OpenCL/m16600_a1-pure.cl index b818631f6..2f7207a22 100644 --- a/OpenCL/m16600_a1-pure.cl +++ b/OpenCL/m16600_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m16600_a3-optimized.cl b/OpenCL/m16600_a3-optimized.cl index 96bda402b..52fd599d9 100644 --- a/OpenCL/m16600_a3-optimized.cl +++ b/OpenCL/m16600_a3-optimized.cl @@ -5,12 +5,11 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" +#include "inc_hash_sha256.cl" #include "inc_cipher_aes.cl" typedef struct electrum_wallet diff --git a/OpenCL/m16600_a3-pure.cl b/OpenCL/m16600_a3-pure.cl index 6120c855c..015740810 100644 --- a/OpenCL/m16600_a3-pure.cl +++ b/OpenCL/m16600_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m16800-pure.cl b/OpenCL/m16800-pure.cl index 2415b78f8..f1189cecc 100644 --- a/OpenCL/m16800-pure.cl +++ b/OpenCL/m16800-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m16801-pure.cl b/OpenCL/m16801-pure.cl index e57133fb0..bd1f10932 100644 --- a/OpenCL/m16801-pure.cl +++ b/OpenCL/m16801-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m16900-pure.cl b/OpenCL/m16900-pure.cl index c017757d4..ea1444378 100644 --- a/OpenCL/m16900-pure.cl +++ b/OpenCL/m16900-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m17300_a0-optimized.cl b/OpenCL/m17300_a0-optimized.cl index eb245b351..d7e902edf 100644 --- a/OpenCL/m17300_a0-optimized.cl +++ b/OpenCL/m17300_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17300_a1-optimized.cl b/OpenCL/m17300_a1-optimized.cl index 7b5153c7c..6fcb80f8c 100644 --- a/OpenCL/m17300_a1-optimized.cl +++ b/OpenCL/m17300_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17300_a3-optimized.cl b/OpenCL/m17300_a3-optimized.cl index 0e092b073..fcb9fc080 100644 --- a/OpenCL/m17300_a3-optimized.cl +++ b/OpenCL/m17300_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17400_a0-optimized.cl b/OpenCL/m17400_a0-optimized.cl index d607a0162..e4e3e5d21 100644 --- a/OpenCL/m17400_a0-optimized.cl +++ b/OpenCL/m17400_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17400_a1-optimized.cl b/OpenCL/m17400_a1-optimized.cl index 2822073e4..b0eac5054 100644 --- a/OpenCL/m17400_a1-optimized.cl +++ b/OpenCL/m17400_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17400_a3-optimized.cl b/OpenCL/m17400_a3-optimized.cl index ee7496869..14c76a9e1 100644 --- a/OpenCL/m17400_a3-optimized.cl +++ b/OpenCL/m17400_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17500_a0-optimized.cl b/OpenCL/m17500_a0-optimized.cl index f18971bf6..07662bcf7 100644 --- a/OpenCL/m17500_a0-optimized.cl +++ b/OpenCL/m17500_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17500_a1-optimized.cl b/OpenCL/m17500_a1-optimized.cl index 151a0f306..91cec2946 100644 --- a/OpenCL/m17500_a1-optimized.cl +++ b/OpenCL/m17500_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17500_a3-optimized.cl b/OpenCL/m17500_a3-optimized.cl index b535edaf7..616f174c0 100644 --- a/OpenCL/m17500_a3-optimized.cl +++ b/OpenCL/m17500_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17600_a0-optimized.cl b/OpenCL/m17600_a0-optimized.cl index fdc5d7894..d9139e154 100644 --- a/OpenCL/m17600_a0-optimized.cl +++ b/OpenCL/m17600_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17600_a1-optimized.cl b/OpenCL/m17600_a1-optimized.cl index 210ce24bd..4f366a0eb 100644 --- a/OpenCL/m17600_a1-optimized.cl +++ b/OpenCL/m17600_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17600_a3-optimized.cl b/OpenCL/m17600_a3-optimized.cl index bdea89b86..e063761a7 100644 --- a/OpenCL/m17600_a3-optimized.cl +++ b/OpenCL/m17600_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17700_a0-optimized.cl b/OpenCL/m17700_a0-optimized.cl index 25a1a5e64..12201e58e 100644 --- a/OpenCL/m17700_a0-optimized.cl +++ b/OpenCL/m17700_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17700_a1-optimized.cl b/OpenCL/m17700_a1-optimized.cl index e08393d9f..68e9432c6 100644 --- a/OpenCL/m17700_a1-optimized.cl +++ b/OpenCL/m17700_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17700_a3-optimized.cl b/OpenCL/m17700_a3-optimized.cl index c6aa93721..bfd9cf8bb 100644 --- a/OpenCL/m17700_a3-optimized.cl +++ b/OpenCL/m17700_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17800_a0-optimized.cl b/OpenCL/m17800_a0-optimized.cl index 337b1b473..12c2b5fd6 100644 --- a/OpenCL/m17800_a0-optimized.cl +++ b/OpenCL/m17800_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17800_a1-optimized.cl b/OpenCL/m17800_a1-optimized.cl index 2315e82a7..a227aef15 100644 --- a/OpenCL/m17800_a1-optimized.cl +++ b/OpenCL/m17800_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17800_a3-optimized.cl b/OpenCL/m17800_a3-optimized.cl index 6db8bd114..6343da7ac 100644 --- a/OpenCL/m17800_a3-optimized.cl +++ b/OpenCL/m17800_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17900_a0-optimized.cl b/OpenCL/m17900_a0-optimized.cl index 479583d16..aa0573d9e 100644 --- a/OpenCL/m17900_a0-optimized.cl +++ b/OpenCL/m17900_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m17900_a1-optimized.cl b/OpenCL/m17900_a1-optimized.cl index 978a6661e..a87e3da23 100644 --- a/OpenCL/m17900_a1-optimized.cl +++ b/OpenCL/m17900_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m17900_a3-optimized.cl b/OpenCL/m17900_a3-optimized.cl index e04457c26..7b7d9d5ea 100644 --- a/OpenCL/m17900_a3-optimized.cl +++ b/OpenCL/m17900_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m18000_a0-optimized.cl b/OpenCL/m18000_a0-optimized.cl index 4207b1de6..cc56a2d97 100644 --- a/OpenCL/m18000_a0-optimized.cl +++ b/OpenCL/m18000_a0-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m18000_a1-optimized.cl b/OpenCL/m18000_a1-optimized.cl index 881850d43..8bbd7ab18 100644 --- a/OpenCL/m18000_a1-optimized.cl +++ b/OpenCL/m18000_a1-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m18000_a3-optimized.cl b/OpenCL/m18000_a3-optimized.cl index c7bfec6f7..97932266d 100644 --- a/OpenCL/m18000_a3-optimized.cl +++ b/OpenCL/m18000_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" diff --git a/OpenCL/m18100_a0-pure.cl b/OpenCL/m18100_a0-pure.cl index 4378bc33e..9ebed9879 100644 --- a/OpenCL/m18100_a0-pure.cl +++ b/OpenCL/m18100_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m18100_a1-pure.cl b/OpenCL/m18100_a1-pure.cl index 6aecac20e..cdd0c7a6b 100644 --- a/OpenCL/m18100_a1-pure.cl +++ b/OpenCL/m18100_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m18100_a3-pure.cl b/OpenCL/m18100_a3-pure.cl index 2b0890c42..e5ac128e9 100644 --- a/OpenCL/m18100_a3-pure.cl +++ b/OpenCL/m18100_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m18200_a0-optimized.cl b/OpenCL/m18200_a0-optimized.cl index 19119e97d..7564b8e24 100644 --- a/OpenCL/m18200_a0-optimized.cl +++ b/OpenCL/m18200_a0-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m18200_a0-pure.cl b/OpenCL/m18200_a0-pure.cl index a44e2cbf7..d23831e31 100644 --- a/OpenCL/m18200_a0-pure.cl +++ b/OpenCL/m18200_a0-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m18200_a1-optimized.cl b/OpenCL/m18200_a1-optimized.cl index b52e99b48..4c599bb46 100644 --- a/OpenCL/m18200_a1-optimized.cl +++ b/OpenCL/m18200_a1-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m18200_a1-pure.cl b/OpenCL/m18200_a1-pure.cl index f4c7a6788..ad35ce560 100644 --- a/OpenCL/m18200_a1-pure.cl +++ b/OpenCL/m18200_a1-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md4.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m18200_a3-optimized.cl b/OpenCL/m18200_a3-optimized.cl index 052b10ea6..8607e756f 100644 --- a/OpenCL/m18200_a3-optimized.cl +++ b/OpenCL/m18200_a3-optimized.cl @@ -6,10 +6,8 @@ //too much register pressure //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md4.cl" diff --git a/OpenCL/m18200_a3-pure.cl b/OpenCL/m18200_a3-pure.cl index 9cc85a39c..fa7333f16 100644 --- a/OpenCL/m18200_a3-pure.cl +++ b/OpenCL/m18200_a3-pure.cl @@ -6,10 +6,8 @@ //shared mem too small //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_hash_md4.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m18300-pure.cl b/OpenCL/m18300-pure.cl index cceeb5f70..1502d1f1e 100644 --- a/OpenCL/m18300-pure.cl +++ b/OpenCL/m18300-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m18400-pure.cl b/OpenCL/m18400-pure.cl index 5f1c08ee2..841284af4 100644 --- a/OpenCL/m18400-pure.cl +++ b/OpenCL/m18400-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m18500_a0-pure.cl b/OpenCL/m18500_a0-pure.cl index 147b1507c..1e0035728 100644 --- a/OpenCL/m18500_a0-pure.cl +++ b/OpenCL/m18500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m18500_a1-pure.cl b/OpenCL/m18500_a1-pure.cl index a9f69e0cf..f3321ed95 100644 --- a/OpenCL/m18500_a1-pure.cl +++ b/OpenCL/m18500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m18500_a3-pure.cl b/OpenCL/m18500_a3-pure.cl index c32dfe424..5ae04c661 100644 --- a/OpenCL/m18500_a3-pure.cl +++ b/OpenCL/m18500_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m18600-pure.cl b/OpenCL/m18600-pure.cl index 15693ba80..5638ce2f2 100644 --- a/OpenCL/m18600-pure.cl +++ b/OpenCL/m18600-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m18700_a0-optimized.cl b/OpenCL/m18700_a0-optimized.cl index cbfc9a152..3b16fe3d3 100644 --- a/OpenCL/m18700_a0-optimized.cl +++ b/OpenCL/m18700_a0-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp_optimized.h" #include "inc_rp_optimized.cl" diff --git a/OpenCL/m18700_a0-pure.cl b/OpenCL/m18700_a0-pure.cl index 4feda941d..b07fa951f 100644 --- a/OpenCL/m18700_a0-pure.cl +++ b/OpenCL/m18700_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m18700_a1-optimized.cl b/OpenCL/m18700_a1-optimized.cl index 4e7928d3b..fb73ee6c1 100644 --- a/OpenCL/m18700_a1-optimized.cl +++ b/OpenCL/m18700_a1-optimized.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_simd.cl" diff --git a/OpenCL/m18700_a1-pure.cl b/OpenCL/m18700_a1-pure.cl index ffc403ba5..af2666d40 100644 --- a/OpenCL/m18700_a1-pure.cl +++ b/OpenCL/m18700_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m18700_a3-optimized.cl b/OpenCL/m18700_a3-optimized.cl index 6a1e25035..8c3158ed5 100644 --- a/OpenCL/m18700_a3-optimized.cl +++ b/OpenCL/m18700_a3-optimized.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m18700_a3-pure.cl b/OpenCL/m18700_a3-pure.cl index cd35014cf..8e6a26f61 100644 --- a/OpenCL/m18700_a3-pure.cl +++ b/OpenCL/m18700_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m18800-pure.cl b/OpenCL/m18800-pure.cl index 35a3ac1e8..21bc8853d 100644 --- a/OpenCL/m18800-pure.cl +++ b/OpenCL/m18800-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m18900-pure.cl b/OpenCL/m18900-pure.cl index 426a8a3d3..95a1efaa8 100644 --- a/OpenCL/m18900-pure.cl +++ b/OpenCL/m18900-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m19000-pure.cl b/OpenCL/m19000-pure.cl index 7e96edc63..39a6806d2 100644 --- a/OpenCL/m19000-pure.cl +++ b/OpenCL/m19000-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_md5.cl" diff --git a/OpenCL/m19100-pure.cl b/OpenCL/m19100-pure.cl index cdb4dff85..34cfa82cb 100644 --- a/OpenCL/m19100-pure.cl +++ b/OpenCL/m19100-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha256.cl" diff --git a/OpenCL/m19200-pure.cl b/OpenCL/m19200-pure.cl index 85c03608f..587dd1e6a 100644 --- a/OpenCL/m19200-pure.cl +++ b/OpenCL/m19200-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha512.cl" diff --git a/OpenCL/m19300_a0-pure.cl b/OpenCL/m19300_a0-pure.cl index 92f849f19..bb4f39648 100644 --- a/OpenCL/m19300_a0-pure.cl +++ b/OpenCL/m19300_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m19300_a1-pure.cl b/OpenCL/m19300_a1-pure.cl index 912846ca0..ec41bed2a 100644 --- a/OpenCL/m19300_a1-pure.cl +++ b/OpenCL/m19300_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m19300_a3-pure.cl b/OpenCL/m19300_a3-pure.cl index 254ce88fe..541b30253 100644 --- a/OpenCL/m19300_a3-pure.cl +++ b/OpenCL/m19300_a3-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m19500_a0-pure.cl b/OpenCL/m19500_a0-pure.cl index 51d514be4..158ed27e5 100644 --- a/OpenCL/m19500_a0-pure.cl +++ b/OpenCL/m19500_a0-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_rp.h" #include "inc_rp.cl" diff --git a/OpenCL/m19500_a1-pure.cl b/OpenCL/m19500_a1-pure.cl index b8908ca62..c24a75e0a 100644 --- a/OpenCL/m19500_a1-pure.cl +++ b/OpenCL/m19500_a1-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_scalar.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m19500_a3-pure.cl b/OpenCL/m19500_a3-pure.cl index fb1176b35..991f3c92b 100644 --- a/OpenCL/m19500_a3-pure.cl +++ b/OpenCL/m19500_a3-pure.cl @@ -5,10 +5,8 @@ //#define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m19600-pure.cl b/OpenCL/m19600-pure.cl index c6e323bbc..2a2402db9 100644 --- a/OpenCL/m19600-pure.cl +++ b/OpenCL/m19600-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/m19700-pure.cl b/OpenCL/m19700-pure.cl index 67f9b0096..547273992 100644 --- a/OpenCL/m19700-pure.cl +++ b/OpenCL/m19700-pure.cl @@ -5,10 +5,8 @@ #define NEW_SIMD_CODE -#include "inc_vendor.cl" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "inc_types.cl" +#include "inc_vendor.h" +#include "inc_types.h" #include "inc_common.cl" #include "inc_simd.cl" #include "inc_hash_sha1.cl" diff --git a/OpenCL/markov_be.cl b/OpenCL/markov_be.cl index ce2cb38b0..e959451ce 100644 --- a/OpenCL/markov_be.cl +++ b/OpenCL/markov_be.cl @@ -3,13 +3,12 @@ * License.....: MIT */ -#include "inc_vendor.cl" +#include "inc_vendor.h" #define CHARSIZ 256 -#include "inc_types.cl" +#include "inc_types.h" -DECLSPEC void generate_pw (u32 *pw_buf, __global const cs_t *root_css_buf, __global const cs_t *markov_css_buf, const u32 pw_l_len, const u32 pw_r_len, const u32 mask80, const u32 bits14, const u32 bits15, u64 val); DECLSPEC void generate_pw (u32 *pw_buf, __global const cs_t *root_css_buf, __global const cs_t *markov_css_buf, const u32 pw_l_len, const u32 pw_r_len, const u32 mask80, const u32 bits14, const u32 bits15, u64 val) { __global const cs_t *cs = &root_css_buf[pw_r_len]; diff --git a/OpenCL/markov_le.cl b/OpenCL/markov_le.cl index c59211341..5db422cc8 100644 --- a/OpenCL/markov_le.cl +++ b/OpenCL/markov_le.cl @@ -3,13 +3,12 @@ * License.....: MIT */ -#include "inc_vendor.cl" +#include "inc_vendor.h" #define CHARSIZ 256 -#include "inc_types.cl" +#include "inc_types.h" -DECLSPEC void generate_pw (u32 *pw_buf, __global const cs_t *root_css_buf, __global const cs_t *markov_css_buf, const u32 pw_l_len, const u32 pw_r_len, const u32 mask80, const u32 bits14, const u32 bits15, u64 val); DECLSPEC void generate_pw (u32 *pw_buf, __global const cs_t *root_css_buf, __global const cs_t *markov_css_buf, const u32 pw_l_len, const u32 pw_r_len, const u32 mask80, const u32 bits14, const u32 bits15, u64 val) { __global const cs_t *cs = &root_css_buf[pw_r_len]; diff --git a/include/cpu_aes.h b/include/cpu_aes.h index d03bbc9c4..b0e7b1daf 100644 --- a/include/cpu_aes.h +++ b/include/cpu_aes.h @@ -6,7 +6,6 @@ #ifndef _CPU_AES_H #define _CPU_AES_H -#define AES_KEY aes_ctx void AES_set_encrypt_key (const u8 *key, int keysize, AES_KEY *aes_key); void AES_set_decrypt_key (const u8 *key, int keysize, AES_KEY *aes_key); void AES_encrypt (AES_KEY *aes_key, const u8 *input, u8 *output); diff --git a/include/cpu_des.h b/include/cpu_des.h index 6ad3c4909..a6d7ba615 100644 --- a/include/cpu_des.h +++ b/include/cpu_des.h @@ -6,42 +6,44 @@ #ifndef _CPU_DES_H #define _CPU_DES_H -#define PERM_OP(a,b,tt,n,m) \ -{ \ - tt = a >> n; \ - tt = tt ^ b; \ - tt = tt & m; \ - b = b ^ tt; \ - tt = tt << n; \ - a = a ^ tt; \ +#define PERM_OP(a,b,n,m) \ +{ \ + u32 t; \ + t = a >> n; \ + t = t ^ b; \ + t = t & m; \ + b = b ^ t; \ + t = t << n; \ + a = a ^ t; \ } -#define HPERM_OP(a,tt,n,m) \ -{ \ - tt = a << (16 + n); \ - tt = tt ^ a; \ - tt = tt & m; \ - a = a ^ tt; \ - tt = tt >> (16 + n); \ - a = a ^ tt; \ +#define HPERM_OP(a,n,m) \ +{ \ + u32 t; \ + t = a << (16 + n); \ + t = t ^ a; \ + t = t & m; \ + a = a ^ t; \ + t = t >> (16 + n); \ + a = a ^ t; \ } -#define IP(l,r,tt) \ -{ \ - PERM_OP (r, l, tt, 4, 0x0f0f0f0f); \ - PERM_OP (l, r, tt, 16, 0x0000ffff); \ - PERM_OP (r, l, tt, 2, 0x33333333); \ - PERM_OP (l, r, tt, 8, 0x00ff00ff); \ - PERM_OP (r, l, tt, 1, 0x55555555); \ +#define DES_IP(l,r) \ +{ \ + PERM_OP (r, l, 4, 0x0f0f0f0f); \ + PERM_OP (l, r, 16, 0x0000ffff); \ + PERM_OP (r, l, 2, 0x33333333); \ + PERM_OP (l, r, 8, 0x00ff00ff); \ + PERM_OP (r, l, 1, 0x55555555); \ } -#define FP(l,r,tt) \ -{ \ - PERM_OP (l, r, tt, 1, 0x55555555); \ - PERM_OP (r, l, tt, 8, 0x00ff00ff); \ - PERM_OP (l, r, tt, 2, 0x33333333); \ - PERM_OP (r, l, tt, 16, 0x0000ffff); \ - PERM_OP (l, r, tt, 4, 0x0f0f0f0f); \ +#define DES_FP(l,r) \ +{ \ + PERM_OP (l, r, 1, 0x55555555); \ + PERM_OP (r, l, 8, 0x00ff00ff); \ + PERM_OP (l, r, 2, 0x33333333); \ + PERM_OP (r, l, 16, 0x0000ffff); \ + PERM_OP (l, r, 4, 0x0f0f0f0f); \ } void _des_keysetup (const u32 data[2], u32 Kc[16], u32 Kd[16]); diff --git a/include/types.h b/include/types.h index 16b7e1ee5..69fac18f5 100644 --- a/include/types.h +++ b/include/types.h @@ -2505,3 +2505,656 @@ typedef struct keyboard_layout_mapping int dst_len; } keyboard_layout_mapping_t; + +// hash specific + +typedef aes_ctx AES_KEY; + +typedef enum siphash_constants +{ + SIPHASHM_0=0x736f6d6570736575, + SIPHASHM_1=0x646f72616e646f6d, + SIPHASHM_2=0x6c7967656e657261, + SIPHASHM_3=0x7465646279746573 + +} siphash_constants_t; + +typedef enum bcrypt_constants +{ + BCRYPTM_0=0x4F727068, + BCRYPTM_1=0x65616E42, + BCRYPTM_2=0x65686F6C, + BCRYPTM_3=0x64657253, + BCRYPTM_4=0x63727944, + BCRYPTM_5=0x6F756274u + +} bcrypt_constants_t; + +typedef enum md4_constants +{ + MD4M_A=0x67452301, + MD4M_B=0xefcdab89, + MD4M_C=0x98badcfe, + MD4M_D=0x10325476, + + MD4S00=3, + MD4S01=7, + MD4S02=11, + MD4S03=19, + MD4S10=3, + MD4S11=5, + MD4S12=9, + MD4S13=13, + MD4S20=3, + MD4S21=9, + MD4S22=11, + MD4S23=15, + + MD4C00=0x00000000, + MD4C01=0x5a827999, + MD4C02=0x6ed9eba1u + +} md4_constants_t; + +typedef enum md5_constants +{ + MD5M_A=0x67452301, + MD5M_B=0xefcdab89, + MD5M_C=0x98badcfe, + MD5M_D=0x10325476, + + MD5S00=7, + MD5S01=12, + MD5S02=17, + MD5S03=22, + MD5S10=5, + MD5S11=9, + MD5S12=14, + MD5S13=20, + MD5S20=4, + MD5S21=11, + MD5S22=16, + MD5S23=23, + MD5S30=6, + MD5S31=10, + MD5S32=15, + MD5S33=21, + + MD5C00=0xd76aa478, + MD5C01=0xe8c7b756, + MD5C02=0x242070db, + MD5C03=0xc1bdceee, + MD5C04=0xf57c0faf, + MD5C05=0x4787c62a, + MD5C06=0xa8304613, + MD5C07=0xfd469501, + MD5C08=0x698098d8, + MD5C09=0x8b44f7af, + MD5C0a=0xffff5bb1, + MD5C0b=0x895cd7be, + MD5C0c=0x6b901122, + MD5C0d=0xfd987193, + MD5C0e=0xa679438e, + MD5C0f=0x49b40821, + MD5C10=0xf61e2562, + MD5C11=0xc040b340, + MD5C12=0x265e5a51, + MD5C13=0xe9b6c7aa, + MD5C14=0xd62f105d, + MD5C15=0x02441453, + MD5C16=0xd8a1e681, + MD5C17=0xe7d3fbc8, + MD5C18=0x21e1cde6, + MD5C19=0xc33707d6, + MD5C1a=0xf4d50d87, + MD5C1b=0x455a14ed, + MD5C1c=0xa9e3e905, + MD5C1d=0xfcefa3f8, + MD5C1e=0x676f02d9, + MD5C1f=0x8d2a4c8a, + MD5C20=0xfffa3942, + MD5C21=0x8771f681, + MD5C22=0x6d9d6122, + MD5C23=0xfde5380c, + MD5C24=0xa4beea44, + MD5C25=0x4bdecfa9, + MD5C26=0xf6bb4b60, + MD5C27=0xbebfbc70, + MD5C28=0x289b7ec6, + MD5C29=0xeaa127fa, + MD5C2a=0xd4ef3085, + MD5C2b=0x04881d05, + MD5C2c=0xd9d4d039, + MD5C2d=0xe6db99e5, + MD5C2e=0x1fa27cf8, + MD5C2f=0xc4ac5665, + MD5C30=0xf4292244, + MD5C31=0x432aff97, + MD5C32=0xab9423a7, + MD5C33=0xfc93a039, + MD5C34=0x655b59c3, + MD5C35=0x8f0ccc92, + MD5C36=0xffeff47d, + MD5C37=0x85845dd1, + MD5C38=0x6fa87e4f, + MD5C39=0xfe2ce6e0, + MD5C3a=0xa3014314, + MD5C3b=0x4e0811a1, + MD5C3c=0xf7537e82, + MD5C3d=0xbd3af235, + MD5C3e=0x2ad7d2bb, + MD5C3f=0xeb86d391u + +} md5_constants_t; + +typedef enum sha1_constants +{ + SHA1M_A=0x67452301, + SHA1M_B=0xefcdab89, + SHA1M_C=0x98badcfe, + SHA1M_D=0x10325476, + SHA1M_E=0xc3d2e1f0, + + SHA1C00=0x5a827999, + SHA1C01=0x6ed9eba1, + SHA1C02=0x8f1bbcdc, + SHA1C03=0xca62c1d6u + +} sha1_constants_t; + +typedef enum sha2_32_constants +{ + // SHA-224 Initial Hash Values + SHA224M_A=0xc1059ed8, + SHA224M_B=0x367cd507, + SHA224M_C=0x3070dd17, + SHA224M_D=0xf70e5939, + SHA224M_E=0xffc00b31, + SHA224M_F=0x68581511, + SHA224M_G=0x64f98fa7, + SHA224M_H=0xbefa4fa4, + + // SHA-256 Initial Hash Values + SHA256M_A=0x6a09e667, + SHA256M_B=0xbb67ae85, + SHA256M_C=0x3c6ef372, + SHA256M_D=0xa54ff53a, + SHA256M_E=0x510e527f, + SHA256M_F=0x9b05688c, + SHA256M_G=0x1f83d9ab, + SHA256M_H=0x5be0cd19, + + // SHA-224/256 Constants + SHA256C00=0x428a2f98, + SHA256C01=0x71374491, + SHA256C02=0xb5c0fbcf, + SHA256C03=0xe9b5dba5, + SHA256C04=0x3956c25b, + SHA256C05=0x59f111f1, + SHA256C06=0x923f82a4, + SHA256C07=0xab1c5ed5, + SHA256C08=0xd807aa98, + SHA256C09=0x12835b01, + SHA256C0a=0x243185be, + SHA256C0b=0x550c7dc3, + SHA256C0c=0x72be5d74, + SHA256C0d=0x80deb1fe, + SHA256C0e=0x9bdc06a7, + SHA256C0f=0xc19bf174, + SHA256C10=0xe49b69c1, + SHA256C11=0xefbe4786, + SHA256C12=0x0fc19dc6, + SHA256C13=0x240ca1cc, + SHA256C14=0x2de92c6f, + SHA256C15=0x4a7484aa, + SHA256C16=0x5cb0a9dc, + SHA256C17=0x76f988da, + SHA256C18=0x983e5152, + SHA256C19=0xa831c66d, + SHA256C1a=0xb00327c8, + SHA256C1b=0xbf597fc7, + SHA256C1c=0xc6e00bf3, + SHA256C1d=0xd5a79147, + SHA256C1e=0x06ca6351, + SHA256C1f=0x14292967, + SHA256C20=0x27b70a85, + SHA256C21=0x2e1b2138, + SHA256C22=0x4d2c6dfc, + SHA256C23=0x53380d13, + SHA256C24=0x650a7354, + SHA256C25=0x766a0abb, + SHA256C26=0x81c2c92e, + SHA256C27=0x92722c85, + SHA256C28=0xa2bfe8a1, + SHA256C29=0xa81a664b, + SHA256C2a=0xc24b8b70, + SHA256C2b=0xc76c51a3, + SHA256C2c=0xd192e819, + SHA256C2d=0xd6990624, + SHA256C2e=0xf40e3585, + SHA256C2f=0x106aa070, + SHA256C30=0x19a4c116, + SHA256C31=0x1e376c08, + SHA256C32=0x2748774c, + SHA256C33=0x34b0bcb5, + SHA256C34=0x391c0cb3, + SHA256C35=0x4ed8aa4a, + SHA256C36=0x5b9cca4f, + SHA256C37=0x682e6ff3, + SHA256C38=0x748f82ee, + SHA256C39=0x78a5636f, + SHA256C3a=0x84c87814, + SHA256C3b=0x8cc70208, + SHA256C3c=0x90befffa, + SHA256C3d=0xa4506ceb, + SHA256C3e=0xbef9a3f7, + SHA256C3f=0xc67178f2 + +} sha2_32_constants_t; + +typedef enum sha2_64_constants +{ + // SHA-384 Initial Hash Values + SHA384M_A=0xcbbb9d5dc1059ed8, + SHA384M_B=0x629a292a367cd507, + SHA384M_C=0x9159015a3070dd17, + SHA384M_D=0x152fecd8f70e5939, + SHA384M_E=0x67332667ffc00b31, + SHA384M_F=0x8eb44a8768581511, + SHA384M_G=0xdb0c2e0d64f98fa7, + SHA384M_H=0x47b5481dbefa4fa4, + + // SHA-512 Initial Hash Values + SHA512M_A=0x6a09e667f3bcc908, + SHA512M_B=0xbb67ae8584caa73b, + SHA512M_C=0x3c6ef372fe94f82b, + SHA512M_D=0xa54ff53a5f1d36f1, + SHA512M_E=0x510e527fade682d1, + SHA512M_F=0x9b05688c2b3e6c1f, + SHA512M_G=0x1f83d9abfb41bd6b, + SHA512M_H=0x5be0cd19137e2179, + + // SHA-384/512 Constants + SHA512C00=0x428a2f98d728ae22, + SHA512C01=0x7137449123ef65cd, + SHA512C02=0xb5c0fbcfec4d3b2f, + SHA512C03=0xe9b5dba58189dbbc, + SHA512C04=0x3956c25bf348b538, + SHA512C05=0x59f111f1b605d019, + SHA512C06=0x923f82a4af194f9b, + SHA512C07=0xab1c5ed5da6d8118, + SHA512C08=0xd807aa98a3030242, + SHA512C09=0x12835b0145706fbe, + SHA512C0a=0x243185be4ee4b28c, + SHA512C0b=0x550c7dc3d5ffb4e2, + SHA512C0c=0x72be5d74f27b896f, + SHA512C0d=0x80deb1fe3b1696b1, + SHA512C0e=0x9bdc06a725c71235, + SHA512C0f=0xc19bf174cf692694, + SHA512C10=0xe49b69c19ef14ad2, + SHA512C11=0xefbe4786384f25e3, + SHA512C12=0x0fc19dc68b8cd5b5, + SHA512C13=0x240ca1cc77ac9c65, + SHA512C14=0x2de92c6f592b0275, + SHA512C15=0x4a7484aa6ea6e483, + SHA512C16=0x5cb0a9dcbd41fbd4, + SHA512C17=0x76f988da831153b5, + SHA512C18=0x983e5152ee66dfab, + SHA512C19=0xa831c66d2db43210, + SHA512C1a=0xb00327c898fb213f, + SHA512C1b=0xbf597fc7beef0ee4, + SHA512C1c=0xc6e00bf33da88fc2, + SHA512C1d=0xd5a79147930aa725, + SHA512C1e=0x06ca6351e003826f, + SHA512C1f=0x142929670a0e6e70, + SHA512C20=0x27b70a8546d22ffc, + SHA512C21=0x2e1b21385c26c926, + SHA512C22=0x4d2c6dfc5ac42aed, + SHA512C23=0x53380d139d95b3df, + SHA512C24=0x650a73548baf63de, + SHA512C25=0x766a0abb3c77b2a8, + SHA512C26=0x81c2c92e47edaee6, + SHA512C27=0x92722c851482353b, + SHA512C28=0xa2bfe8a14cf10364, + SHA512C29=0xa81a664bbc423001, + SHA512C2a=0xc24b8b70d0f89791, + SHA512C2b=0xc76c51a30654be30, + SHA512C2c=0xd192e819d6ef5218, + SHA512C2d=0xd69906245565a910, + SHA512C2e=0xf40e35855771202a, + SHA512C2f=0x106aa07032bbd1b8, + SHA512C30=0x19a4c116b8d2d0c8, + SHA512C31=0x1e376c085141ab53, + SHA512C32=0x2748774cdf8eeb99, + SHA512C33=0x34b0bcb5e19b48a8, + SHA512C34=0x391c0cb3c5c95a63, + SHA512C35=0x4ed8aa4ae3418acb, + SHA512C36=0x5b9cca4f7763e373, + SHA512C37=0x682e6ff3d6b2b8a3, + SHA512C38=0x748f82ee5defb2fc, + SHA512C39=0x78a5636f43172f60, + SHA512C3a=0x84c87814a1f0ab72, + SHA512C3b=0x8cc702081a6439ec, + SHA512C3c=0x90befffa23631e28, + SHA512C3d=0xa4506cebde82bde9, + SHA512C3e=0xbef9a3f7b2c67915, + SHA512C3f=0xc67178f2e372532b, + SHA512C40=0xca273eceea26619c, + SHA512C41=0xd186b8c721c0c207, + SHA512C42=0xeada7dd6cde0eb1e, + SHA512C43=0xf57d4f7fee6ed178, + SHA512C44=0x06f067aa72176fba, + SHA512C45=0x0a637dc5a2c898a6, + SHA512C46=0x113f9804bef90dae, + SHA512C47=0x1b710b35131c471b, + SHA512C48=0x28db77f523047d84, + SHA512C49=0x32caab7b40c72493, + SHA512C4a=0x3c9ebe0a15c9bebc, + SHA512C4b=0x431d67c49c100d4c, + SHA512C4c=0x4cc5d4becb3e42b6, + SHA512C4d=0x597f299cfc657e2a, + SHA512C4e=0x5fcb6fab3ad6faec, + SHA512C4f=0x6c44198c4a475817 + +} sha2_64_constants_t; + +typedef enum ripemd160_constants +{ + RIPEMD160M_A=0x67452301, + RIPEMD160M_B=0xefcdab89, + RIPEMD160M_C=0x98badcfe, + RIPEMD160M_D=0x10325476, + RIPEMD160M_E=0xc3d2e1f0, + + RIPEMD160C00=0x00000000, + RIPEMD160C10=0x5a827999, + RIPEMD160C20=0x6ed9eba1, + RIPEMD160C30=0x8f1bbcdc, + RIPEMD160C40=0xa953fd4e, + RIPEMD160C50=0x50a28be6, + RIPEMD160C60=0x5c4dd124, + RIPEMD160C70=0x6d703ef3, + RIPEMD160C80=0x7a6d76e9, + RIPEMD160C90=0x00000000, + + RIPEMD160S00=11, + RIPEMD160S01=14, + RIPEMD160S02=15, + RIPEMD160S03=12, + RIPEMD160S04=5, + RIPEMD160S05=8, + RIPEMD160S06=7, + RIPEMD160S07=9, + RIPEMD160S08=11, + RIPEMD160S09=13, + RIPEMD160S0A=14, + RIPEMD160S0B=15, + RIPEMD160S0C=6, + RIPEMD160S0D=7, + RIPEMD160S0E=9, + RIPEMD160S0F=8, + + RIPEMD160S10=7, + RIPEMD160S11=6, + RIPEMD160S12=8, + RIPEMD160S13=13, + RIPEMD160S14=11, + RIPEMD160S15=9, + RIPEMD160S16=7, + RIPEMD160S17=15, + RIPEMD160S18=7, + RIPEMD160S19=12, + RIPEMD160S1A=15, + RIPEMD160S1B=9, + RIPEMD160S1C=11, + RIPEMD160S1D=7, + RIPEMD160S1E=13, + RIPEMD160S1F=12, + + RIPEMD160S20=11, + RIPEMD160S21=13, + RIPEMD160S22=6, + RIPEMD160S23=7, + RIPEMD160S24=14, + RIPEMD160S25=9, + RIPEMD160S26=13, + RIPEMD160S27=15, + RIPEMD160S28=14, + RIPEMD160S29=8, + RIPEMD160S2A=13, + RIPEMD160S2B=6, + RIPEMD160S2C=5, + RIPEMD160S2D=12, + RIPEMD160S2E=7, + RIPEMD160S2F=5, + + RIPEMD160S30=11, + RIPEMD160S31=12, + RIPEMD160S32=14, + RIPEMD160S33=15, + RIPEMD160S34=14, + RIPEMD160S35=15, + RIPEMD160S36=9, + RIPEMD160S37=8, + RIPEMD160S38=9, + RIPEMD160S39=14, + RIPEMD160S3A=5, + RIPEMD160S3B=6, + RIPEMD160S3C=8, + RIPEMD160S3D=6, + RIPEMD160S3E=5, + RIPEMD160S3F=12, + + RIPEMD160S40=9, + RIPEMD160S41=15, + RIPEMD160S42=5, + RIPEMD160S43=11, + RIPEMD160S44=6, + RIPEMD160S45=8, + RIPEMD160S46=13, + RIPEMD160S47=12, + RIPEMD160S48=5, + RIPEMD160S49=12, + RIPEMD160S4A=13, + RIPEMD160S4B=14, + RIPEMD160S4C=11, + RIPEMD160S4D=8, + RIPEMD160S4E=5, + RIPEMD160S4F=6, + + RIPEMD160S50=8, + RIPEMD160S51=9, + RIPEMD160S52=9, + RIPEMD160S53=11, + RIPEMD160S54=13, + RIPEMD160S55=15, + RIPEMD160S56=15, + RIPEMD160S57=5, + RIPEMD160S58=7, + RIPEMD160S59=7, + RIPEMD160S5A=8, + RIPEMD160S5B=11, + RIPEMD160S5C=14, + RIPEMD160S5D=14, + RIPEMD160S5E=12, + RIPEMD160S5F=6, + + RIPEMD160S60=9, + RIPEMD160S61=13, + RIPEMD160S62=15, + RIPEMD160S63=7, + RIPEMD160S64=12, + RIPEMD160S65=8, + RIPEMD160S66=9, + RIPEMD160S67=11, + RIPEMD160S68=7, + RIPEMD160S69=7, + RIPEMD160S6A=12, + RIPEMD160S6B=7, + RIPEMD160S6C=6, + RIPEMD160S6D=15, + RIPEMD160S6E=13, + RIPEMD160S6F=11, + + RIPEMD160S70=9, + RIPEMD160S71=7, + RIPEMD160S72=15, + RIPEMD160S73=11, + RIPEMD160S74=8, + RIPEMD160S75=6, + RIPEMD160S76=6, + RIPEMD160S77=14, + RIPEMD160S78=12, + RIPEMD160S79=13, + RIPEMD160S7A=5, + RIPEMD160S7B=14, + RIPEMD160S7C=13, + RIPEMD160S7D=13, + RIPEMD160S7E=7, + RIPEMD160S7F=5, + + RIPEMD160S80=15, + RIPEMD160S81=5, + RIPEMD160S82=8, + RIPEMD160S83=11, + RIPEMD160S84=14, + RIPEMD160S85=14, + RIPEMD160S86=6, + RIPEMD160S87=14, + RIPEMD160S88=6, + RIPEMD160S89=9, + RIPEMD160S8A=12, + RIPEMD160S8B=9, + RIPEMD160S8C=12, + RIPEMD160S8D=5, + RIPEMD160S8E=15, + RIPEMD160S8F=8, + + RIPEMD160S90=8, + RIPEMD160S91=5, + RIPEMD160S92=12, + RIPEMD160S93=9, + RIPEMD160S94=12, + RIPEMD160S95=5, + RIPEMD160S96=14, + RIPEMD160S97=6, + RIPEMD160S98=8, + RIPEMD160S99=13, + RIPEMD160S9A=6, + RIPEMD160S9B=5, + RIPEMD160S9C=15, + RIPEMD160S9D=13, + RIPEMD160S9E=11, + RIPEMD160S9F=11u + +} ripemd160_constants_t; + +typedef enum keccak_constants +{ + KECCAK_RNDC_00=0x0000000000000001, + KECCAK_RNDC_01=0x0000000000008082, + KECCAK_RNDC_02=0x000000000000808a, + KECCAK_RNDC_03=0x0000000080008000, + KECCAK_RNDC_04=0x000000000000808b, + KECCAK_RNDC_05=0x0000000080000001, + KECCAK_RNDC_06=0x0000000080008081, + KECCAK_RNDC_07=0x0000000000008009, + KECCAK_RNDC_08=0x000000000000008a, + KECCAK_RNDC_09=0x0000000000000088, + KECCAK_RNDC_10=0x0000000080008009, + KECCAK_RNDC_11=0x000000008000000a, + KECCAK_RNDC_12=0x000000008000808b, + KECCAK_RNDC_13=0x000000000000008b, + KECCAK_RNDC_14=0x0000000000008089, + KECCAK_RNDC_15=0x0000000000008003, + KECCAK_RNDC_16=0x0000000000008002, + KECCAK_RNDC_17=0x0000000000000080, + KECCAK_RNDC_18=0x000000000000800a, + KECCAK_RNDC_19=0x000000008000000a, + KECCAK_RNDC_20=0x0000000080008081, + KECCAK_RNDC_21=0x0000000000008080, + KECCAK_RNDC_22=0x0000000080000001, + KECCAK_RNDC_23=0x0000000080008008, + + KECCAK_PILN_00=10, + KECCAK_PILN_01=7, + KECCAK_PILN_02=11, + KECCAK_PILN_03=17, + KECCAK_PILN_04=18, + KECCAK_PILN_05=3, + KECCAK_PILN_06=5, + KECCAK_PILN_07=16, + KECCAK_PILN_08=8, + KECCAK_PILN_09=21, + KECCAK_PILN_10=24, + KECCAK_PILN_11=4, + KECCAK_PILN_12=15, + KECCAK_PILN_13=23, + KECCAK_PILN_14=19, + KECCAK_PILN_15=13, + KECCAK_PILN_16=12, + KECCAK_PILN_17=2, + KECCAK_PILN_18=20, + KECCAK_PILN_19=14, + KECCAK_PILN_20=22, + KECCAK_PILN_21=9, + KECCAK_PILN_22=6, + KECCAK_PILN_23=1, + + KECCAK_ROTC_00=1, + KECCAK_ROTC_01=3, + KECCAK_ROTC_02=6, + KECCAK_ROTC_03=10, + KECCAK_ROTC_04=15, + KECCAK_ROTC_05=21, + KECCAK_ROTC_06=28, + KECCAK_ROTC_07=36, + KECCAK_ROTC_08=45, + KECCAK_ROTC_09=55, + KECCAK_ROTC_10=2, + KECCAK_ROTC_11=14, + KECCAK_ROTC_12=27, + KECCAK_ROTC_13=41, + KECCAK_ROTC_14=56, + KECCAK_ROTC_15=8, + KECCAK_ROTC_16=25, + KECCAK_ROTC_17=43, + KECCAK_ROTC_18=62, + KECCAK_ROTC_19=18, + KECCAK_ROTC_20=39, + KECCAK_ROTC_21=61, + KECCAK_ROTC_22=20, + KECCAK_ROTC_23=44, + +} keccak_constants_t; + +typedef enum mysql323_constants +{ + MYSQL323_A=0x50305735, + MYSQL323_B=0x12345671u + +} mysql323_constants_t; + +typedef enum fortigate_constants +{ + FORTIGATE_A=0x2eba88a3, + FORTIGATE_B=0x4ab04c42, + FORTIGATE_C=0xc1307953, + FORTIGATE_D=0x3fcc0731, + FORTIGATE_E=0x299032a1, + FORTIGATE_F=0x705b81a9 + +} fortigate_constants_t; + +typedef enum blake2b_constants +{ + BLAKE2B_IV_00=0x6a09e667f3bcc908, + BLAKE2B_IV_01=0xbb67ae8584caa73b, + BLAKE2B_IV_02=0x3c6ef372fe94f82b, + BLAKE2B_IV_03=0xa54ff53a5f1d36f1, + BLAKE2B_IV_04=0x510e527fade682d1, + BLAKE2B_IV_05=0x9b05688c2b3e6c1f, + BLAKE2B_IV_06=0x1f83d9abfb41bd6b, + BLAKE2B_IV_07=0x5be0cd19137e2179 + +} blake2b_constants_t; diff --git a/src/Makefile b/src/Makefile index d0865ffce..d556992d5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -195,7 +195,7 @@ endif endif endif -CFLAGS += -pipe -std=gnu99 -Iinclude/ -IOpenCL/ +CFLAGS += -pipe -std=gnu99 -Iinclude/ # LZMA CFLAGS += -I$(DEPS_LZMA_PATH) diff --git a/src/cpu_aes.c b/src/cpu_aes.c index 8ede6e3c8..618d6f832 100644 --- a/src/cpu_aes.c +++ b/src/cpu_aes.c @@ -3,14 +3,9 @@ * License.....: MIT */ -#define IS_GENERIC - #include "common.h" #include "types.h" #include "bitops.h" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "cpu_aes.h" static const u32 te0[256] = { diff --git a/src/cpu_crc32.c b/src/cpu_crc32.c index d059cd2f7..2f5450640 100644 --- a/src/cpu_crc32.c +++ b/src/cpu_crc32.c @@ -6,9 +6,7 @@ #include "common.h" #include "types.h" #include "memory.h" -#include "event.h" #include "shared.h" -#include "cpu_crc32.h" static const u32 crc32tab[256] = { diff --git a/src/cpu_des.c b/src/cpu_des.c index f9b555e73..149e3a8a5 100644 --- a/src/cpu_des.c +++ b/src/cpu_des.c @@ -3,13 +3,9 @@ * License.....: MIT */ -#define IS_GENERIC - #include "common.h" #include "types.h" #include "bitops.h" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" #include "cpu_des.h" #define BOX(v,i,S) (S)[(i)][(v)] @@ -331,14 +327,12 @@ void _des_keysetup (const u32 data[2], u32 Kc[16], u32 Kd[16]) u32 c = data[0]; u32 d = data[1]; - u32 tt; - - PERM_OP (d, c, tt, 4, 0x0f0f0f0f); - HPERM_OP (c, tt, 2, 0xcccc0000); - HPERM_OP (d, tt, 2, 0xcccc0000); - PERM_OP (d, c, tt, 1, 0x55555555); - PERM_OP (c, d, tt, 8, 0x00ff00ff); - PERM_OP (d, c, tt, 1, 0x55555555); + PERM_OP (d, c, 4, 0x0f0f0f0f); + HPERM_OP (c, 2, 0xcccc0000); + HPERM_OP (d, 2, 0xcccc0000); + PERM_OP (d, c, 1, 0x55555555); + PERM_OP (c, d, 8, 0x00ff00ff); + PERM_OP (d, c, 1, 0x55555555); d = ((d & 0x000000ff) << 16) | ((d & 0x0000ff00) << 0) @@ -389,9 +383,7 @@ void _des_encrypt (u32 data[2], const u32 Kc[16], const u32 Kd[16]) u32 r = data[0]; u32 l = data[1]; - u32 tt; - - IP (r, l, tt); + DES_IP (r, l); r = rotl32 (r, 3u); l = rotl32 (l, 3u); @@ -412,6 +404,8 @@ void _des_encrypt (u32 data[2], const u32 Kc[16], const u32 Kd[16]) | BOX (((t >> 18) & 0x3f), 5, c_SPtrans) | BOX (((t >> 26) & 0x3f), 7, c_SPtrans); + u32 tt; + tt = l; l = r; r = tt; @@ -420,7 +414,7 @@ void _des_encrypt (u32 data[2], const u32 Kc[16], const u32 Kd[16]) l = rotl32 (l, 29u); r = rotl32 (r, 29u); - FP (r, l, tt); + DES_FP (r, l); data[0] = l; data[1] = r; diff --git a/src/cpu_md4.c b/src/cpu_md4.c index 77a79ef1a..ffce77fce 100644 --- a/src/cpu_md4.c +++ b/src/cpu_md4.c @@ -3,14 +3,35 @@ * License.....: MIT */ -#define IS_GENERIC - #include "common.h" #include "types.h" #include "bitops.h" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "cpu_md4.h" + +#define MD4_F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) +#define MD4_G(x,y,z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define MD4_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD4_Fo(x,y,z) (MD4_F((x), (y), (z))) +#define MD4_Go(x,y,z) (MD4_G((x), (y), (z))) + +#define MD4_STEP_S(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3_S (a, x, f (b, c, d)); \ + a = rotl32_S (a, s); \ +} + +#define MD4_STEP(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3 (a, x, f (b, c, d)); \ + a = rotl32 (a, s); \ +} + +#define MD4_STEP0(f,a,b,c,d,K,s) \ +{ \ + a = hc_add3 (a, K, f (b, c, d)); \ + a = rotl32 (a, s); \ +} void md4_64 (const u32 block[16], u32 digest[4]) { diff --git a/src/cpu_md5.c b/src/cpu_md5.c index 189ff9e2d..778306b52 100644 --- a/src/cpu_md5.c +++ b/src/cpu_md5.c @@ -3,14 +3,46 @@ * License.....: MIT */ -#define IS_GENERIC - #include "common.h" #include "types.h" #include "bitops.h" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "cpu_md5.h" + +#define MD5_F_S(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MD5_G_S(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define MD5_H_S(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_I_S(x,y,z) ((y) ^ ((x) | ~(z))) + +#define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) +#define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) +#define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) +#define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) + +#define MD5_STEP_S(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3_S (a, x, f (b, c, d)); \ + a = rotl32_S (a, s); \ + a += b; \ +} + +#define MD5_STEP(f,a,b,c,d,x,K,s) \ +{ \ + a += K; \ + a = hc_add3 (a, x, f (b, c, d)); \ + a = rotl32 (a, s); \ + a += b; \ +} + +#define MD5_STEP0(f,a,b,c,d,K,s) \ +{ \ + a = hc_add3 (a, K, f (b, c, d)); \ + a = rotl32 (a, s); \ + a += b; \ +} void md5_64 (const u32 block[16], u32 digest[4]) { diff --git a/src/cpu_sha1.c b/src/cpu_sha1.c index 3d924983a..d167f5750 100644 --- a/src/cpu_sha1.c +++ b/src/cpu_sha1.c @@ -3,14 +3,38 @@ * License.....: MIT */ -#define IS_GENERIC - #include "common.h" #include "types.h" #include "bitops.h" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "cpu_sha1.h" + +#define SHA1_F0(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA1_F1(x,y,z) ((x) ^ (y) ^ (z)) +#define SHA1_F2(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA1_F0o(x,y,z) (SHA1_F0 ((x), (y), (z))) +#define SHA1_F2o(x,y,z) (SHA1_F2 ((x), (y), (z))) + +#define SHA1_STEP_S(f,a,b,c,d,e,x) \ +{ \ + e += K; \ + e = hc_add3_S (e, x, f (b, c, d)); \ + e += rotl32_S (a, 5u); \ + b = rotl32_S (b, 30u); \ +} + +#define SHA1_STEP(f,a,b,c,d,e,x) \ +{ \ + e += K; \ + e = hc_add3 (e, x, f (b, c, d)); \ + e += rotl32 (a, 5u); \ + b = rotl32 (b, 30u); \ +} + +#define SHA1_STEPX(f,a,b,c,d,e,x) \ +{ \ + e = hc_add3 (e, x, f (b, c, d)); \ + e += rotl32 (a, 5u); \ + b = rotl32 (b, 30u); \ +} void sha1_64 (const u32 block[16], u32 digest[5]) { diff --git a/src/cpu_sha256.c b/src/cpu_sha256.c index e9404f9cb..f00588d67 100644 --- a/src/cpu_sha256.c +++ b/src/cpu_sha256.c @@ -3,14 +3,46 @@ * License.....: MIT */ -#define IS_GENERIC - #include "common.h" #include "types.h" #include "bitops.h" -#include "inc_hash_constants.h" -#include "inc_hash_functions.cl" -#include "cpu_sha256.h" + +#define SHIFT_RIGHT_32(x,n) ((x) >> (n)) + +#define SHA256_S0_S(x) (rotl32_S ((x), 25u) ^ rotl32_S ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) +#define SHA256_S1_S(x) (rotl32_S ((x), 15u) ^ rotl32_S ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) +#define SHA256_S2_S(x) (rotl32_S ((x), 30u) ^ rotl32_S ((x), 19u) ^ rotl32_S ((x), 10u)) +#define SHA256_S3_S(x) (rotl32_S ((x), 26u) ^ rotl32_S ((x), 21u) ^ rotl32_S ((x), 7u)) + +#define SHA256_S0(x) (rotl32 ((x), 25u) ^ rotl32 ((x), 14u) ^ SHIFT_RIGHT_32 ((x), 3u)) +#define SHA256_S1(x) (rotl32 ((x), 15u) ^ rotl32 ((x), 13u) ^ SHIFT_RIGHT_32 ((x), 10u)) +#define SHA256_S2(x) (rotl32 ((x), 30u) ^ rotl32 ((x), 19u) ^ rotl32 ((x), 10u)) +#define SHA256_S3(x) (rotl32 ((x), 26u) ^ rotl32 ((x), 21u) ^ rotl32 ((x), 7u)) + +#define SHA256_F0(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y)))) +#define SHA256_F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define SHA256_F0o(x,y,z) (SHA256_F0 ((x), (y), (z))) +#define SHA256_F1o(x,y,z) (SHA256_F1 ((x), (y), (z))) + +#define SHA256_STEP_S(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h = hc_add3_S (h, K, x); \ + h = hc_add3_S (h, SHA256_S3_S (e), F1 (e,f,g)); \ + d += h; \ + h = hc_add3_S (h, SHA256_S2_S (a), F0 (a,b,c)); \ +} + +#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w) + +#define SHA256_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \ +{ \ + h = hc_add3 (h, K, x); \ + h = hc_add3 (h, SHA256_S3 (e), F1 (e,f,g)); \ + d += h; \ + h = hc_add3 (h, SHA256_S2 (a), F0 (a,b,c)); \ +} + +#define SHA256_EXPAND(x,y,z,w) (SHA256_S1 (x) + y + SHA256_S0 (z) + w) void sha256_64 (const u32 block[16], u32 digest[8]) { diff --git a/src/modules/module_00000.c b/src/modules/module_00000.c index 6904d9fcb..58abe6b40 100644 --- a/src/modules/module_00000.c +++ b/src/modules/module_00000.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00010.c b/src/modules/module_00010.c index 0dc4be522..682d6b4d1 100644 --- a/src/modules/module_00010.c +++ b/src/modules/module_00010.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00011.c b/src/modules/module_00011.c index 661abb700..504ef603c 100644 --- a/src/modules/module_00011.c +++ b/src/modules/module_00011.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00012.c b/src/modules/module_00012.c index 2babed8d7..ed2e6eff2 100644 --- a/src/modules/module_00012.c +++ b/src/modules/module_00012.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00020.c b/src/modules/module_00020.c index 4dd72a7d7..4c6f61499 100644 --- a/src/modules/module_00020.c +++ b/src/modules/module_00020.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00021.c b/src/modules/module_00021.c index 751c68755..453dca28b 100644 --- a/src/modules/module_00021.c +++ b/src/modules/module_00021.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00022.c b/src/modules/module_00022.c index 3df8fb62b..92a463218 100644 --- a/src/modules/module_00022.c +++ b/src/modules/module_00022.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00023.c b/src/modules/module_00023.c index 61e2d8e02..2c08fd990 100644 --- a/src/modules/module_00023.c +++ b/src/modules/module_00023.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00030.c b/src/modules/module_00030.c index 55d208311..c73a10322 100644 --- a/src/modules/module_00030.c +++ b/src/modules/module_00030.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00040.c b/src/modules/module_00040.c index d6a5a9595..edadcc23c 100644 --- a/src/modules/module_00040.c +++ b/src/modules/module_00040.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00050.c b/src/modules/module_00050.c index 52cee4c6f..1d40ca48e 100644 --- a/src/modules/module_00050.c +++ b/src/modules/module_00050.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00060.c b/src/modules/module_00060.c index 4e233a484..d14e0ec9d 100644 --- a/src/modules/module_00060.c +++ b/src/modules/module_00060.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00100.c b/src/modules/module_00100.c index ba4e4fe48..c9cb012b9 100644 --- a/src/modules/module_00100.c +++ b/src/modules/module_00100.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00101.c b/src/modules/module_00101.c index 63a485621..04ebdcd65 100644 --- a/src/modules/module_00101.c +++ b/src/modules/module_00101.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00110.c b/src/modules/module_00110.c index 11414d537..885a684c0 100644 --- a/src/modules/module_00110.c +++ b/src/modules/module_00110.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00111.c b/src/modules/module_00111.c index e8a24da12..4e7d376a9 100644 --- a/src/modules/module_00111.c +++ b/src/modules/module_00111.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00112.c b/src/modules/module_00112.c index df0a0926c..a5fcabe4e 100644 --- a/src/modules/module_00112.c +++ b/src/modules/module_00112.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00120.c b/src/modules/module_00120.c index a289f48e2..47f58cba3 100644 --- a/src/modules/module_00120.c +++ b/src/modules/module_00120.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00121.c b/src/modules/module_00121.c index 3090dd75e..bafacb201 100644 --- a/src/modules/module_00121.c +++ b/src/modules/module_00121.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00122.c b/src/modules/module_00122.c index f260949cd..7dbfbdbc7 100644 --- a/src/modules/module_00122.c +++ b/src/modules/module_00122.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00124.c b/src/modules/module_00124.c index bc4ba7dc5..47d5e991a 100644 --- a/src/modules/module_00124.c +++ b/src/modules/module_00124.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00125.c b/src/modules/module_00125.c index 52bc1ec8b..4ac9b4e9e 100644 --- a/src/modules/module_00125.c +++ b/src/modules/module_00125.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00130.c b/src/modules/module_00130.c index ea6cc5cbb..f4e47340a 100644 --- a/src/modules/module_00130.c +++ b/src/modules/module_00130.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00131.c b/src/modules/module_00131.c index 4df0dee34..3d99dfb1f 100644 --- a/src/modules/module_00131.c +++ b/src/modules/module_00131.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00132.c b/src/modules/module_00132.c index d5faa37f5..a955108db 100644 --- a/src/modules/module_00132.c +++ b/src/modules/module_00132.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00133.c b/src/modules/module_00133.c index 12f6970bc..5c7f40a89 100644 --- a/src/modules/module_00133.c +++ b/src/modules/module_00133.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00140.c b/src/modules/module_00140.c index 6202d63a4..c0b9e307f 100644 --- a/src/modules/module_00140.c +++ b/src/modules/module_00140.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00141.c b/src/modules/module_00141.c index 4866e76d6..1e7876df1 100644 --- a/src/modules/module_00141.c +++ b/src/modules/module_00141.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00150.c b/src/modules/module_00150.c index 989091b1a..bb7ed1042 100644 --- a/src/modules/module_00150.c +++ b/src/modules/module_00150.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00160.c b/src/modules/module_00160.c index 7eb9dee15..eb46f460f 100644 --- a/src/modules/module_00160.c +++ b/src/modules/module_00160.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00200.c b/src/modules/module_00200.c index 24b82ee70..1c0954c71 100644 --- a/src/modules/module_00200.c +++ b/src/modules/module_00200.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_00300.c b/src/modules/module_00300.c index 15fcfc63c..f076acb76 100644 --- a/src/modules/module_00300.c +++ b/src/modules/module_00300.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_00600.c b/src/modules/module_00600.c index d2fa9332c..74d055d01 100644 --- a/src/modules/module_00600.c +++ b/src/modules/module_00600.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 1; diff --git a/src/modules/module_00900.c b/src/modules/module_00900.c index 726410a38..3ceda6e22 100644 --- a/src/modules/module_00900.c +++ b/src/modules/module_00900.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_01000.c b/src/modules/module_01000.c index 21faecfbb..079aca7d7 100644 --- a/src/modules/module_01000.c +++ b/src/modules/module_01000.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_01100.c b/src/modules/module_01100.c index a7750b444..7bd869d63 100644 --- a/src/modules/module_01100.c +++ b/src/modules/module_01100.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_01300.c b/src/modules/module_01300.c index ccb354726..f4b8e5ab8 100644 --- a/src/modules/module_01300.c +++ b/src/modules/module_01300.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01400.c b/src/modules/module_01400.c index e7fa3379b..376149b10 100644 --- a/src/modules/module_01400.c +++ b/src/modules/module_01400.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01410.c b/src/modules/module_01410.c index 57904058e..4d1333b4b 100644 --- a/src/modules/module_01410.c +++ b/src/modules/module_01410.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01411.c b/src/modules/module_01411.c index 33a616ccf..0b31c7e5e 100644 --- a/src/modules/module_01411.c +++ b/src/modules/module_01411.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01420.c b/src/modules/module_01420.c index 1f879f6cc..a9a449409 100644 --- a/src/modules/module_01420.c +++ b/src/modules/module_01420.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01421.c b/src/modules/module_01421.c index 00d8acc8b..fb5eb35d3 100644 --- a/src/modules/module_01421.c +++ b/src/modules/module_01421.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01430.c b/src/modules/module_01430.c index 91fd4542f..8d8f75a8b 100644 --- a/src/modules/module_01430.c +++ b/src/modules/module_01430.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01440.c b/src/modules/module_01440.c index b2317ea6f..ce0a7d5d4 100644 --- a/src/modules/module_01440.c +++ b/src/modules/module_01440.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01441.c b/src/modules/module_01441.c index c1502a7bb..8ecb789e4 100644 --- a/src/modules/module_01441.c +++ b/src/modules/module_01441.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01450.c b/src/modules/module_01450.c index 775cf29c5..023fcafab 100644 --- a/src/modules/module_01450.c +++ b/src/modules/module_01450.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01460.c b/src/modules/module_01460.c index 0ab038d80..f774ca0cb 100644 --- a/src/modules/module_01460.c +++ b/src/modules/module_01460.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_01500.c b/src/modules/module_01500.c index 619a3dc96..431484b3a 100644 --- a/src/modules/module_01500.c +++ b/src/modules/module_01500.c @@ -154,9 +154,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE digest[2] = 0; digest[3] = 0; - u32 tt; - - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); return (PARSER_OK); } @@ -175,9 +173,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[2] = 0; tmp[3] = 0; - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); u8 ptr_plain[20] = { 0 }; diff --git a/src/modules/module_01700.c b/src/modules/module_01700.c index 8f7e90a6f..34496aab6 100644 --- a/src/modules/module_01700.c +++ b/src/modules/module_01700.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01710.c b/src/modules/module_01710.c index b93120ee0..46482041c 100644 --- a/src/modules/module_01710.c +++ b/src/modules/module_01710.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01711.c b/src/modules/module_01711.c index 72856cc7c..0baa4c81d 100644 --- a/src/modules/module_01711.c +++ b/src/modules/module_01711.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01720.c b/src/modules/module_01720.c index cef0b215b..0e5fff1eb 100644 --- a/src/modules/module_01720.c +++ b/src/modules/module_01720.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01722.c b/src/modules/module_01722.c index 8e250af7a..d96132240 100644 --- a/src/modules/module_01722.c +++ b/src/modules/module_01722.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01730.c b/src/modules/module_01730.c index e15e525fc..27535a7c5 100644 --- a/src/modules/module_01730.c +++ b/src/modules/module_01730.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01731.c b/src/modules/module_01731.c index 33dd5a60c..e068f967e 100644 --- a/src/modules/module_01731.c +++ b/src/modules/module_01731.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01740.c b/src/modules/module_01740.c index c6031110a..ea5a8b6f4 100644 --- a/src/modules/module_01740.c +++ b/src/modules/module_01740.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01750.c b/src/modules/module_01750.c index 4e292afa9..927ff7358 100644 --- a/src/modules/module_01750.c +++ b/src/modules/module_01750.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_01760.c b/src/modules/module_01760.c index d59699e72..9dceef3ff 100644 --- a/src/modules/module_01760.c +++ b/src/modules/module_01760.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_02400.c b/src/modules/module_02400.c index ae878363f..397b21ad4 100644 --- a/src/modules/module_02400.c +++ b/src/modules/module_02400.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_02410.c b/src/modules/module_02410.c index a31c14a5d..245bb13cb 100644 --- a/src/modules/module_02410.c +++ b/src/modules/module_02410.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_02600.c b/src/modules/module_02600.c index c04d3e748..2467a9eaf 100644 --- a/src/modules/module_02600.c +++ b/src/modules/module_02600.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_02611.c b/src/modules/module_02611.c index 940d118be..7613a76ae 100644 --- a/src/modules/module_02611.c +++ b/src/modules/module_02611.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_02612.c b/src/modules/module_02612.c index 6fc8b6d8b..9befe762f 100644 --- a/src/modules/module_02612.c +++ b/src/modules/module_02612.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_02711.c b/src/modules/module_02711.c index 91a97c75f..0231ce069 100644 --- a/src/modules/module_02711.c +++ b/src/modules/module_02711.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_02811.c b/src/modules/module_02811.c index a61602cfd..b7f41172f 100644 --- a/src/modules/module_02811.c +++ b/src/modules/module_02811.c @@ -10,7 +10,6 @@ #include "convert.h" #include "shared.h" #include "cpu_md5.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_03000.c b/src/modules/module_03000.c index 34c30f611..58aca59c7 100644 --- a/src/modules/module_03000.c +++ b/src/modules/module_03000.c @@ -130,9 +130,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE digest[2] = 0; digest[3] = 0; - u32 tt; - - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); return (PARSER_OK); } @@ -151,9 +149,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[2] = 0; tmp[3] = 0; - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); u8 *out_buf = (u8 *) line_buf; diff --git a/src/modules/module_03710.c b/src/modules/module_03710.c index 700a76d2a..adb909b13 100644 --- a/src/modules/module_03710.c +++ b/src/modules/module_03710.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_03711.c b/src/modules/module_03711.c index af1d10a2e..edab53eff 100644 --- a/src/modules/module_03711.c +++ b/src/modules/module_03711.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_03800.c b/src/modules/module_03800.c index dd516085a..5f3a4667e 100644 --- a/src/modules/module_03800.c +++ b/src/modules/module_03800.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_03910.c b/src/modules/module_03910.c index 8cd4c5dda..4c2dba812 100644 --- a/src/modules/module_03910.c +++ b/src/modules/module_03910.c @@ -10,7 +10,6 @@ #include "convert.h" #include "shared.h" #include "cpu_md5.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_04010.c b/src/modules/module_04010.c index ccda8c561..7e6908c95 100644 --- a/src/modules/module_04010.c +++ b/src/modules/module_04010.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_04110.c b/src/modules/module_04110.c index c7df4d0bd..7e3925571 100644 --- a/src/modules/module_04110.c +++ b/src/modules/module_04110.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_04300.c b/src/modules/module_04300.c index 92fc91874..41b0331fc 100644 --- a/src/modules/module_04300.c +++ b/src/modules/module_04300.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_04400.c b/src/modules/module_04400.c index 8ed2b9ea1..2227eae37 100644 --- a/src/modules/module_04400.c +++ b/src/modules/module_04400.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_04500.c b/src/modules/module_04500.c index ae810c59a..4778b82cb 100644 --- a/src/modules/module_04500.c +++ b/src/modules/module_04500.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_04520.c b/src/modules/module_04520.c index 46ae39d5a..3c603e525 100644 --- a/src/modules/module_04520.c +++ b/src/modules/module_04520.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_04521.c b/src/modules/module_04521.c index 2ae4f67cc..862b9c50c 100644 --- a/src/modules/module_04521.c +++ b/src/modules/module_04521.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_04522.c b/src/modules/module_04522.c index 665a92c98..e5d23a015 100644 --- a/src/modules/module_04522.c +++ b/src/modules/module_04522.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_04700.c b/src/modules/module_04700.c index 42d3aa00a..2c777762f 100644 --- a/src/modules/module_04700.c +++ b/src/modules/module_04700.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_04800.c b/src/modules/module_04800.c index 4ec242265..aadb38ccf 100644 --- a/src/modules/module_04800.c +++ b/src/modules/module_04800.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_04900.c b/src/modules/module_04900.c index 0aec1829f..ee85dcdce 100644 --- a/src/modules/module_04900.c +++ b/src/modules/module_04900.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_05500.c b/src/modules/module_05500.c index 2c83903c3..4d359cc48 100644 --- a/src/modules/module_05500.c +++ b/src/modules/module_05500.c @@ -11,7 +11,6 @@ #include "shared.h" #include "cpu_des.h" #include "cpu_md5.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; @@ -287,17 +286,15 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE /* precompute netntlmv1 exploit stop */ - u32 tt; - - IP (digest[0], digest[1], tt); - IP (digest[2], digest[3], tt); + DES_IP (digest[0], digest[1]); + DES_IP (digest[2], digest[3]); digest[0] = rotr32 (digest[0], 29); digest[1] = rotr32 (digest[1], 29); digest[2] = rotr32 (digest[2], 29); digest[3] = rotr32 (digest[3], 29); - IP (salt->salt_buf[0], salt->salt_buf[1], tt); + DES_IP (salt->salt_buf[0], salt->salt_buf[1]); salt->salt_buf[0] = rotl32 (salt->salt_buf[0], 3); salt->salt_buf[1] = rotl32 (salt->salt_buf[1], 3); @@ -321,15 +318,13 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[2] = digest[2]; tmp[3] = digest[3]; - u32 tt; - tmp[0] = rotl32 (tmp[0], 29); tmp[1] = rotl32 (tmp[1], 29); tmp[2] = rotl32 (tmp[2], 29); tmp[3] = rotl32 (tmp[3], 29); - FP (tmp[1], tmp[0], tt); - FP (tmp[3], tmp[2], tt); + DES_FP (tmp[1], tmp[0]); + DES_FP (tmp[3], tmp[2]); u8 *out_buf = (u8 *) line_buf; diff --git a/src/modules/module_05700.c b/src/modules/module_05700.c index 4e69f52e3..496710358 100644 --- a/src/modules/module_05700.c +++ b/src/modules/module_05700.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_07000.c b/src/modules/module_07000.c index b4a1b8d1a..acdc2a338 100644 --- a/src/modules/module_07000.c +++ b/src/modules/module_07000.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_08100.c b/src/modules/module_08100.c index 2abfae4d2..77f160a5c 100644 --- a/src/modules/module_08100.c +++ b/src/modules/module_08100.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_08500.c b/src/modules/module_08500.c index 4f0c4d1e3..87d912b40 100644 --- a/src/modules/module_08500.c +++ b/src/modules/module_08500.c @@ -127,9 +127,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE salt_buf_pc_ptr[i] = 0x40; } - u32 tt; - - IP (salt->salt_buf_pc[0], salt->salt_buf_pc[1], tt); + DES_IP (salt->salt_buf_pc[0], salt->salt_buf_pc[1]); salt->salt_buf_pc[0] = rotl32 (salt->salt_buf_pc[0], 3u); salt->salt_buf_pc[1] = rotl32 (salt->salt_buf_pc[1], 3u); @@ -141,7 +139,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE digest[0] = hex_to_u32 (hash_pos + 0); digest[1] = hex_to_u32 (hash_pos + 8); - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); digest[0] = rotr32 (digest[0], 29); digest[1] = rotr32 (digest[1], 29); @@ -160,9 +158,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[0] = rotl32 (digest[0], 29); tmp[1] = rotl32 (digest[1], 29); - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); char tmp_salt[SALT_MAX * 2]; diff --git a/src/modules/module_10600.c b/src/modules/module_10600.c index ecb158aa4..48e84dcc1 100644 --- a/src/modules/module_10600.c +++ b/src/modules/module_10600.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_10800.c b/src/modules/module_10800.c index 63996a47c..c0654dae2 100644 --- a/src/modules/module_10800.c +++ b/src/modules/module_10800.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 6; diff --git a/src/modules/module_11100.c b/src/modules/module_11100.c index 294f805a1..96ebaf328 100644 --- a/src/modules/module_11100.c +++ b/src/modules/module_11100.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_12400.c b/src/modules/module_12400.c index b30914f51..301a8f3c4 100644 --- a/src/modules/module_12400.c +++ b/src/modules/module_12400.c @@ -132,9 +132,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE memcpy (digest, tmp_buf, 8); - u32 tt; - - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); digest[0] = rotr32 (digest[0], 31); digest[1] = rotr32 (digest[1], 31); @@ -175,9 +173,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[0] = rotl32 (digest[0], 31); tmp[1] = rotl32 (digest[1], 31); - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); char ptr_plain[12]; diff --git a/src/modules/module_12600.c b/src/modules/module_12600.c index 0c8daf525..e8194c48f 100644 --- a/src/modules/module_12600.c +++ b/src/modules/module_12600.c @@ -10,7 +10,6 @@ #include "convert.h" #include "shared.h" #include "cpu_sha256.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_13500.c b/src/modules/module_13500.c index 09c0067ae..ea3586e07 100644 --- a/src/modules/module_13500.c +++ b/src/modules/module_13500.c @@ -10,7 +10,6 @@ #include "convert.h" #include "shared.h" #include "cpu_sha1.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_14000.c b/src/modules/module_14000.c index 283678225..5fd30c4ba 100644 --- a/src/modules/module_14000.c +++ b/src/modules/module_14000.c @@ -144,9 +144,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE salt->salt_buf_pc[0] = salt->salt_buf[0]; salt->salt_buf_pc[1] = salt->salt_buf[1]; - u32 tt; - - IP (salt->salt_buf_pc[0], salt->salt_buf_pc[1], tt); + DES_IP (salt->salt_buf_pc[0], salt->salt_buf_pc[1]); // hash @@ -157,7 +155,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE digest[2] = 0; digest[3] = 0; - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); return (PARSER_OK); } @@ -176,9 +174,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[2] = 0; tmp[3] = 0; - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); u8 *out_buf = (u8 *) line_buf; diff --git a/src/modules/module_14100.c b/src/modules/module_14100.c index b5badf358..d157df2ad 100644 --- a/src/modules/module_14100.c +++ b/src/modules/module_14100.c @@ -155,9 +155,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE salt->salt_buf_pc[0] = salt->salt_buf[0]; salt->salt_buf_pc[1] = salt->salt_buf[1]; - u32 tt; - - IP (salt->salt_buf_pc[0], salt->salt_buf_pc[1], tt); + DES_IP (salt->salt_buf_pc[0], salt->salt_buf_pc[1]); // hash @@ -168,7 +166,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE digest[2] = 0; digest[3] = 0; - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); return (PARSER_OK); } @@ -187,9 +185,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[2] = 0; tmp[3] = 0; - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); u8 *out_buf = (u8 *) line_buf; diff --git a/src/modules/module_15000.c b/src/modules/module_15000.c index a82cb5a82..c0ddf5505 100644 --- a/src/modules/module_15000.c +++ b/src/modules/module_15000.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 14; diff --git a/src/modules/module_16000.c b/src/modules/module_16000.c index 9daae8469..1c70ee561 100644 --- a/src/modules/module_16000.c +++ b/src/modules/module_16000.c @@ -82,9 +82,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE memcpy (digest, tmp_buf, 8); - u32 tt; - - IP (digest[0], digest[1], tt); + DES_IP (digest[0], digest[1]); digest[2] = 0; digest[3] = 0; @@ -101,9 +99,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE tmp[0] = digest[0]; tmp[1] = digest[1]; - u32 tt; - - FP (tmp[1], tmp[0], tt); + DES_FP (tmp[1], tmp[0]); char ptr_plain[32]; diff --git a/src/modules/module_16400.c b/src/modules/module_16400.c index a64a6e0a5..d939ed3df 100644 --- a/src/modules/module_16400.c +++ b/src/modules/module_16400.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_18500.c b/src/modules/module_18500.c index 6b408793d..fe991bd56 100644 --- a/src/modules/module_18500.c +++ b/src/modules/module_18500.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_18700.c b/src/modules/module_18700.c index 5ee7e5122..9d5857752 100644 --- a/src/modules/module_18700.c +++ b/src/modules/module_18700.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/modules/module_19300.c b/src/modules/module_19300.c index ef007aae4..62efc8ad4 100644 --- a/src/modules/module_19300.c +++ b/src/modules/module_19300.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_19500.c b/src/modules/module_19500.c index b9b6e3e21..a76ae10da 100644 --- a/src/modules/module_19500.c +++ b/src/modules/module_19500.c @@ -9,7 +9,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 3; diff --git a/src/modules/module_99999.c b/src/modules/module_99999.c index 9f745d540..afdcf69b8 100644 --- a/src/modules/module_99999.c +++ b/src/modules/module_99999.c @@ -11,7 +11,6 @@ #include "convert.h" #include "shared.h" #include "cpu_md4.h" -#include "inc_hash_constants.h" static const u32 ATTACK_EXEC = ATTACK_EXEC_INSIDE_KERNEL; static const u32 DGST_POS0 = 0; diff --git a/src/shared.c b/src/shared.c index f58549dee..37c762ec8 100644 --- a/src/shared.c +++ b/src/shared.c @@ -8,7 +8,6 @@ #include "bitops.h" #include "convert.h" #include "shared.h" -#include "inc_hash_constants.h" #include "cpu_des.h" #if defined (__CYGWIN__) diff --git a/src/user_options.c b/src/user_options.c index 6ec74d28a..87d7fe061 100644 --- a/src/user_options.c +++ b/src/user_options.c @@ -2641,9 +2641,7 @@ int user_options_check_files (hashcat_ctx_t *hashcat_ctx) // this test needs to be done manually because of macOS opencl runtime // if there's a problem with permission, its not reporting back and erroring out silently - #define files_cnt 16 - - const char *files_names[files_cnt] = + const char *files_names[] = { "inc_cipher_aes.cl", "inc_cipher_serpent.cl", @@ -2653,17 +2651,16 @@ int user_options_check_files (hashcat_ctx_t *hashcat_ctx) "inc_comp_multi.cl", "inc_comp_single_bs.cl", "inc_comp_single.cl", - "inc_hash_constants.h", - "inc_hash_functions.cl", "inc_rp_optimized.cl", "inc_rp_optimized.h", "inc_simd.cl", "inc_scalar.cl", - "inc_types.cl", - "inc_vendor.cl", + "inc_types.h", + "inc_vendor.h", + NULL }; - for (int i = 0; i < files_cnt; i++) + for (int i = 0; files_names[i] != NULL; i++) { if (hc_path_read (files_names[i]) == false) {