sleeping_kangaroo12 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +127 -0
- data/ext/Rakefile +73 -0
- data/ext/binding/sleeping_kangaroo12.c +39 -0
- data/ext/config/xkcp.build +17 -0
- data/ext/xkcp/LICENSE +1 -0
- data/ext/xkcp/Makefile +15 -0
- data/ext/xkcp/Makefile.build +200 -0
- data/ext/xkcp/README.markdown +296 -0
- data/ext/xkcp/lib/HighLevel.build +143 -0
- data/ext/xkcp/lib/LowLevel.build +757 -0
- data/ext/xkcp/lib/common/align.h +33 -0
- data/ext/xkcp/lib/common/brg_endian.h +143 -0
- data/ext/xkcp/lib/high/KangarooTwelve/KangarooTwelve.c +301 -0
- data/ext/xkcp/lib/high/KangarooTwelve/KangarooTwelve.h +97 -0
- data/ext/xkcp/lib/high/Keccak/FIPS202/KeccakHash.c +81 -0
- data/ext/xkcp/lib/high/Keccak/FIPS202/KeccakHash.h +125 -0
- data/ext/xkcp/lib/high/Keccak/FIPS202/SimpleFIPS202.c +48 -0
- data/ext/xkcp/lib/high/Keccak/FIPS202/SimpleFIPS202.h +79 -0
- data/ext/xkcp/lib/high/Keccak/KeccakDuplex.c +81 -0
- data/ext/xkcp/lib/high/Keccak/KeccakDuplex.h +73 -0
- data/ext/xkcp/lib/high/Keccak/KeccakDuplex.inc +195 -0
- data/ext/xkcp/lib/high/Keccak/KeccakSponge.c +111 -0
- data/ext/xkcp/lib/high/Keccak/KeccakSponge.h +76 -0
- data/ext/xkcp/lib/high/Keccak/KeccakSponge.inc +314 -0
- data/ext/xkcp/lib/high/Keccak/PRG/KeccakPRG.c +61 -0
- data/ext/xkcp/lib/high/Keccak/PRG/KeccakPRG.h +67 -0
- data/ext/xkcp/lib/high/Keccak/PRG/KeccakPRG.inc +128 -0
- data/ext/xkcp/lib/high/Keccak/SP800-185/SP800-185.c +93 -0
- data/ext/xkcp/lib/high/Keccak/SP800-185/SP800-185.h +599 -0
- data/ext/xkcp/lib/high/Keccak/SP800-185/SP800-185.inc +573 -0
- data/ext/xkcp/lib/high/Ketje/Ketjev2.c +87 -0
- data/ext/xkcp/lib/high/Ketje/Ketjev2.h +88 -0
- data/ext/xkcp/lib/high/Ketje/Ketjev2.inc +274 -0
- data/ext/xkcp/lib/high/Keyak/Keyakv2.c +132 -0
- data/ext/xkcp/lib/high/Keyak/Keyakv2.h +217 -0
- data/ext/xkcp/lib/high/Keyak/Keyakv2.inc +81 -0
- data/ext/xkcp/lib/high/Keyak/Motorist.inc +953 -0
- data/ext/xkcp/lib/high/Kravatte/Kravatte.c +533 -0
- data/ext/xkcp/lib/high/Kravatte/Kravatte.h +115 -0
- data/ext/xkcp/lib/high/Kravatte/KravatteModes.c +557 -0
- data/ext/xkcp/lib/high/Kravatte/KravatteModes.h +247 -0
- data/ext/xkcp/lib/high/Xoodyak/Cyclist.h +66 -0
- data/ext/xkcp/lib/high/Xoodyak/Cyclist.inc +336 -0
- data/ext/xkcp/lib/high/Xoodyak/Xoodyak-parameters.h +26 -0
- data/ext/xkcp/lib/high/Xoodyak/Xoodyak.c +55 -0
- data/ext/xkcp/lib/high/Xoodyak/Xoodyak.h +35 -0
- data/ext/xkcp/lib/high/Xoofff/Xoofff.c +634 -0
- data/ext/xkcp/lib/high/Xoofff/Xoofff.h +147 -0
- data/ext/xkcp/lib/high/Xoofff/XoofffModes.c +483 -0
- data/ext/xkcp/lib/high/Xoofff/XoofffModes.h +241 -0
- data/ext/xkcp/lib/high/common/Phases.h +25 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-SnP.h +41 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv6m-le-armcc.s +1666 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv6m-le-gcc.s +1655 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7a-le-armcc.s +1268 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7a-le-gcc.s +1264 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7m-le-armcc.s +1178 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7m-le-gcc.s +1175 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u1-32bi-armv6m-le-armcc.s +1338 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u1-32bi-armv6m-le-gcc.s +1336 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u2-32bi-armv6m-le-armcc.s +1343 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u2-32bi-armv6m-le-gcc.s +1339 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-SnP.h +42 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-armv7a-le-neon-armcc.s +823 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-armv7a-le-neon-gcc.s +831 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARMv8A/KeccakP-1600-SnP.h +31 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ARMv8A/KeccakP-1600-armv8a-neon.s +540 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVR8/KeccakP-1600-SnP.h +42 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVR8/KeccakP-1600-avr8-compact.s +733 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVR8/KeccakP-1600-avr8-fast.s +1121 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX2/KeccakP-1600-AVX2.s +1100 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX2/KeccakP-1600-SnP.h +52 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/KeccakP-1600-AVX512.c +623 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/KeccakP-1600-SnP.h +47 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/u12/KeccakP-1600-AVX512-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/u6/KeccakP-1600-AVX512-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/ua/KeccakP-1600-AVX512-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/KeccakP-1600-AVX512.s +1031 -0
- data/ext/xkcp/lib/low/KeccakP-1600/AVX512/KeccakP-1600-SnP.h +53 -0
- data/ext/xkcp/lib/low/KeccakP-1600/XOP/KeccakP-1600-SnP.h +44 -0
- data/ext/xkcp/lib/low/KeccakP-1600/XOP/KeccakP-1600-XOP.c +476 -0
- data/ext/xkcp/lib/low/KeccakP-1600/XOP/u6/KeccakP-1600-XOP-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/XOP/ua/KeccakP-1600-XOP-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/common/KeccakP-1600-64.macros +748 -0
- data/ext/xkcp/lib/low/KeccakP-1600/common/KeccakP-1600-unrolling.macros +305 -0
- data/ext/xkcp/lib/low/KeccakP-1600/compact/KeccakP-1600-SnP.h +40 -0
- data/ext/xkcp/lib/low/KeccakP-1600/compact/KeccakP-1600-compact64.c +420 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-32bits-inplace/KeccakP-1600-SnP.h +43 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-32bits-inplace/KeccakP-1600-inplace32BI.c +1163 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/KeccakP-1600-SnP.h +54 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/KeccakP-1600-opt64.c +565 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/lcu6/KeccakP-1600-opt64-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/lcua/KeccakP-1600-opt64-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/lcua-shld/KeccakP-1600-opt64-config.h +8 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/u6/KeccakP-1600-opt64-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/ua/KeccakP-1600-opt64-config.h +6 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-SnP.h +44 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-reference.h +23 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-reference32BI.c +625 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-SnP.h +44 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.c +440 -0
- data/ext/xkcp/lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.h +23 -0
- data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-SnP.h +42 -0
- data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-gas.s +1196 -0
- data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-gas_Apple.s +1124 -0
- data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-shld-gas.s +1196 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-inplace-pl2-armv7a-neon-le-armcc.s +1392 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-inplace-pl2-armv7a-neon-le-gcc.s +1394 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-times2-SnP.h +42 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/AVX512u12/SIMD512-2-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/AVX512u4/SIMD512-2-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/AVX512ufull/SIMD512-2-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/KeccakP-1600-times2-SIMD512.c +850 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/KeccakP-1600-times2-SnP.h +51 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/KeccakP-1600-times2-SIMD128.c +957 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/KeccakP-1600-times2-SnP.h +49 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/SSSE3-u2/SIMD128-config.h +8 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/SSSE3-ua/SIMD128-config.h +8 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/XOP-u2/SIMD128-config.h +9 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/XOP-ua/SIMD128-config.h +9 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/fallback-on1/KeccakP-1600-times2-SnP.h +45 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times2/fallback-on1/KeccakP-1600-times2-on1.c +37 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/KeccakP-1600-times4-SIMD256.c +1321 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/KeccakP-1600-times4-SnP.h +55 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/u12/SIMD256-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/u6/SIMD256-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/ua/SIMD256-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/AVX512u12/SIMD512-4-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/AVX512u4/SIMD512-4-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/AVX512ufull/SIMD512-4-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/KeccakP-1600-times4-SIMD512.c +881 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/KeccakP-1600-times4-SnP.h +51 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on1/KeccakP-1600-times4-SnP.h +45 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on1/KeccakP-1600-times4-on1.c +37 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on2/KeccakP-1600-times4-SnP.h +45 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on2/KeccakP-1600-times4-on2.c +38 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/KeccakP-1600-times8-SIMD512.c +1615 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/KeccakP-1600-times8-SnP.h +57 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/u12/SIMD512-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/u4/SIMD512-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/ua/SIMD512-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on1/KeccakP-1600-times8-SnP.h +45 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on1/KeccakP-1600-times8-on1.c +37 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on2/KeccakP-1600-times8-SnP.h +45 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on2/KeccakP-1600-times8-on2.c +38 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on4/KeccakP-1600-times8-SnP.h +45 -0
- data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on4/KeccakP-1600-times8-on4.c +38 -0
- data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-SnP.h +41 -0
- data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv6m-le-armcc.s +442 -0
- data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv6m-le-gcc.s +446 -0
- data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv7m-le-armcc.s +419 -0
- data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv7m-le-gcc.s +427 -0
- data/ext/xkcp/lib/low/KeccakP-200/AVR8/KeccakP-200-SnP.h +41 -0
- data/ext/xkcp/lib/low/KeccakP-200/AVR8/KeccakP-200-avr8-fast.s +647 -0
- data/ext/xkcp/lib/low/KeccakP-200/compact/KeccakP-200-SnP.h +39 -0
- data/ext/xkcp/lib/low/KeccakP-200/compact/KeccakP-200-compact.c +190 -0
- data/ext/xkcp/lib/low/KeccakP-200/ref/KeccakP-200-SnP.h +43 -0
- data/ext/xkcp/lib/low/KeccakP-200/ref/KeccakP-200-reference.c +412 -0
- data/ext/xkcp/lib/low/KeccakP-200/ref/KeccakP-200-reference.h +23 -0
- data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-SnP.h +41 -0
- data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv6m-le-armcc.s +454 -0
- data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv6m-le-gcc.s +458 -0
- data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv7m-le-armcc.s +455 -0
- data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv7m-le-gcc.s +458 -0
- data/ext/xkcp/lib/low/KeccakP-400/AVR8/KeccakP-400-SnP.h +41 -0
- data/ext/xkcp/lib/low/KeccakP-400/AVR8/KeccakP-400-avr8-fast.s +728 -0
- data/ext/xkcp/lib/low/KeccakP-400/ref/KeccakP-400-SnP.h +43 -0
- data/ext/xkcp/lib/low/KeccakP-400/ref/KeccakP-400-reference.c +414 -0
- data/ext/xkcp/lib/low/KeccakP-400/ref/KeccakP-400-reference.h +23 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-SnP.h +42 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u1-armv6m-le-armcc.s +527 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u1-armv6m-le-gcc.s +533 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv6m-le-armcc.s +528 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv6m-le-gcc.s +534 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7a-le-armcc.s +521 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7a-le-gcc.s +527 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7m-le-armcc.s +517 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7m-le-gcc.s +523 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-uf-armv7m-le-armcc.s +550 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-uf-armv7m-le-gcc.s +556 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARMv8A/KeccakP-800-SnP.h +32 -0
- data/ext/xkcp/lib/low/KeccakP-800/ARMv8A/KeccakP-800-armv8a-neon.s +432 -0
- data/ext/xkcp/lib/low/KeccakP-800/AVR8/KeccakP-800-SnP.h +42 -0
- data/ext/xkcp/lib/low/KeccakP-800/AVR8/KeccakP-800-avr8-fast.s +929 -0
- data/ext/xkcp/lib/low/KeccakP-800/compact/KeccakP-800-SnP.h +40 -0
- data/ext/xkcp/lib/low/KeccakP-800/compact/KeccakP-800-compact.c +244 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-SnP.h +46 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-opt32-bis.macros +184 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-opt32.c +454 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-opt32.macros +459 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-unrolling-bis.macros +83 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-unrolling.macros +88 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/lcu2/KeccakP-800-opt32-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/lcua/KeccakP-800-opt32-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/u2/KeccakP-800-opt32-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-800/plain/ua/KeccakP-800-opt32-config.h +7 -0
- data/ext/xkcp/lib/low/KeccakP-800/ref/KeccakP-800-SnP.h +44 -0
- data/ext/xkcp/lib/low/KeccakP-800/ref/KeccakP-800-reference.c +437 -0
- data/ext/xkcp/lib/low/KeccakP-800/ref/KeccakP-800-reference.h +23 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/Ket.h +57 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeJr-armv7m-le-armcc.s +475 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeJr-armv7m-le-gcc.s +480 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeSr-armv7m-le-armcc.s +590 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeSr-armv7m-le-gcc.s +590 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedLE/Ket.c +126 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedLE/Ket.h +68 -0
- data/ext/xkcp/lib/low/Ketje/OptimizedLE/Ket.inc +174 -0
- data/ext/xkcp/lib/low/Ketje/SnP-compliant/Ket.c +80 -0
- data/ext/xkcp/lib/low/Ketje/SnP-compliant/Ket.h +68 -0
- data/ext/xkcp/lib/low/Ketje/SnP-compliant/Ket.inc +142 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-SnP.h +55 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-u1-armv6m-le-armcc.s +1086 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-u1-armv6m-le-gcc.s +1092 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv6-le-armcc.s +721 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv6-le-gcc.s +726 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv7m-le-armcc.s +723 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv7m-le-gcc.s +729 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-u1-armv6m-le-armcc.s +1164 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-u1-armv6m-le-gcc.s +1165 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv6-le-armcc.s +562 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv6-le-gcc.s +563 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv7m-le-armcc.s +563 -0
- data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv7m-le-gcc.s +565 -0
- data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-SnP.h +55 -0
- data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-uf-armv7a-neon-le-armcc.s +476 -0
- data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-uf-armv7a-neon-le-gcc.s +485 -0
- data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodyak-uf-armv7a-neon-le-armcc.s +362 -0
- data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodyak-uf-armv7a-neon-le-gcc.s +367 -0
- data/ext/xkcp/lib/low/Xoodoo/AVR8/Xoodoo-SnP.h +43 -0
- data/ext/xkcp/lib/low/Xoodoo/AVR8/Xoodoo-avr8-u1.s +1341 -0
- data/ext/xkcp/lib/low/Xoodoo/AVX512/Xoodoo-SIMD512.c +581 -0
- data/ext/xkcp/lib/low/Xoodoo/AVX512/Xoodoo-SnP.h +58 -0
- data/ext/xkcp/lib/low/Xoodoo/AVX512/Xoodyak-full-block-SIMD512.c +332 -0
- data/ext/xkcp/lib/low/Xoodoo/SSE2/Xoodoo-SIMD128.c +329 -0
- data/ext/xkcp/lib/low/Xoodoo/SSE2/Xoodoo-SnP.h +53 -0
- data/ext/xkcp/lib/low/Xoodoo/SSE2/Xoodyak-full-block-SIMD128.c +355 -0
- data/ext/xkcp/lib/low/Xoodoo/Xoodoo.h +79 -0
- data/ext/xkcp/lib/low/Xoodoo/plain/Xoodoo-SnP.h +56 -0
- data/ext/xkcp/lib/low/Xoodoo/plain/Xoodoo-optimized.c +399 -0
- data/ext/xkcp/lib/low/Xoodoo/plain/Xoodyak-full-blocks.c +127 -0
- data/ext/xkcp/lib/low/Xoodoo/ref/Xoodoo-SnP.h +43 -0
- data/ext/xkcp/lib/low/Xoodoo/ref/Xoodoo-reference.c +253 -0
- data/ext/xkcp/lib/low/Xoodoo-times16/AVX512/Xoodoo-times16-SIMD512.c +1044 -0
- data/ext/xkcp/lib/low/Xoodoo-times16/AVX512/Xoodoo-times16-SnP.h +49 -0
- data/ext/xkcp/lib/low/Xoodoo-times16/fallback-on1/Xoodoo-times16-SnP.h +45 -0
- data/ext/xkcp/lib/low/Xoodoo-times16/fallback-on1/Xoodoo-times16-on1.c +37 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/ARMv7A-NEON/Xoodoo-times4-ARMv7A.s +1587 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/ARMv7A-NEON/Xoodoo-times4-SnP.h +48 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/AVX512/Xoodoo-times4-SIMD512.c +1202 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/AVX512/Xoodoo-times4-SnP.h +48 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/SSSE3/Xoodoo-times4-SIMD128.c +484 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/SSSE3/Xoodoo-times4-SnP.h +44 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/fallback-on1/Xoodoo-times4-SnP.h +45 -0
- data/ext/xkcp/lib/low/Xoodoo-times4/fallback-on1/Xoodoo-times4-on1.c +37 -0
- data/ext/xkcp/lib/low/Xoodoo-times8/AVX2/Xoodoo-times8-SIMD256.c +939 -0
- data/ext/xkcp/lib/low/Xoodoo-times8/AVX2/Xoodoo-times8-SnP.h +49 -0
- data/ext/xkcp/lib/low/Xoodoo-times8/AVX512/Xoodoo-times8-SIMD512.c +1216 -0
- data/ext/xkcp/lib/low/Xoodoo-times8/AVX512/Xoodoo-times8-SnP.h +48 -0
- data/ext/xkcp/lib/low/Xoodoo-times8/fallback-on1/Xoodoo-times8-SnP.h +45 -0
- data/ext/xkcp/lib/low/Xoodoo-times8/fallback-on1/Xoodoo-times8-on1.c +37 -0
- data/ext/xkcp/lib/low/common/PlSnP-Fallback.inc +290 -0
- data/ext/xkcp/lib/low/common/SnP-Relaned.h +141 -0
- data/ext/xkcp/support/Build/ExpandProducts.xsl +79 -0
- data/ext/xkcp/support/Build/ToGlobalMakefile.xsl +206 -0
- data/ext/xkcp/support/Build/ToOneTarget.xsl +89 -0
- data/ext/xkcp/support/Build/ToTargetConfigFile.xsl +37 -0
- data/ext/xkcp/support/Build/ToTargetMakefile.xsl +298 -0
- data/ext/xkcp/support/Build/ToVCXProj.xsl +198 -0
- data/ext/xkcp/support/Kernel-PMU/Kernel-pmu.md +133 -0
- data/ext/xkcp/support/Kernel-PMU/Makefile +8 -0
- data/ext/xkcp/support/Kernel-PMU/enable_arm_pmu.c +129 -0
- data/ext/xkcp/support/Kernel-PMU/load-module +1 -0
- data/ext/xkcp/util/KeccakSum/KeccakSum.c +394 -0
- data/ext/xkcp/util/KeccakSum/base64.c +86 -0
- data/ext/xkcp/util/KeccakSum/base64.h +12 -0
- data/lib/sleeping_kangaroo12/binding.rb +15 -0
- data/lib/sleeping_kangaroo12/build/loader.rb +40 -0
- data/lib/sleeping_kangaroo12/build/platform.rb +37 -0
- data/lib/sleeping_kangaroo12/build.rb +4 -0
- data/lib/sleeping_kangaroo12/digest.rb +103 -0
- data/lib/sleeping_kangaroo12/version.rb +5 -0
- data/lib/sleeping_kangaroo12.rb +7 -0
- metadata +372 -0
|
@@ -0,0 +1,757 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!--
|
|
3
|
+
The eXtended Keccak Code Package (XKCP)
|
|
4
|
+
https://github.com/XKCP/XKCP
|
|
5
|
+
|
|
6
|
+
Implementation by Gilles Van Assche and Ronny Van Keer, hereby denoted as "the implementer".
|
|
7
|
+
|
|
8
|
+
For more information, feedback or questions, please refer to the Keccak Team website:
|
|
9
|
+
https://keccak.team/
|
|
10
|
+
|
|
11
|
+
To the extent possible under law, the implementer has waived all copyright
|
|
12
|
+
and related or neighboring rights to the source code in this file.
|
|
13
|
+
http://creativecommons.org/publicdomain/zero/1.0/
|
|
14
|
+
-->
|
|
15
|
+
<group>
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
The fragments below allow to select the desired implementation of the permutations (a.k.a. low-level services below the SnP or PlSnP interface).
|
|
19
|
+
|
|
20
|
+
# For Keccak-p[200]:
|
|
21
|
+
|
|
22
|
+
* K200-ref: the unoptimized reference implementation
|
|
23
|
+
* K200-compact: an implementation aimed at minimizing code and memory sizes
|
|
24
|
+
* K200-ARMv6M: an assembly-optimized implementation for ARMv6M
|
|
25
|
+
* K200-ARMv7M: an assembly-optimized implementation for ARMv7M
|
|
26
|
+
* K200-AVR8: an assembly-optimized implementation for AVR8
|
|
27
|
+
|
|
28
|
+
# For Keccak-p[400]:
|
|
29
|
+
|
|
30
|
+
* K400-ref: the unoptimized reference implementation
|
|
31
|
+
* K400-ARMv6M: an assembly-optimized implementation for ARMv6M
|
|
32
|
+
* K400-ARMv7M: an assembly-optimized implementation for ARMv7M
|
|
33
|
+
* K400-AVR8: an assembly-optimized implementation for AVR8
|
|
34
|
+
|
|
35
|
+
# For Keccak-p[800]:
|
|
36
|
+
|
|
37
|
+
* K800-ref: the unoptimized reference implementation
|
|
38
|
+
* K800-compact: an implementation aimed at minimizing code and memory sizes
|
|
39
|
+
* K800-plain-u2: an optimized implementation for 32-bit platforms in plain C with 2 rounds unrolled
|
|
40
|
+
* K800-plain-ua: same as K800-plain-u2 but with all rounds unrolled
|
|
41
|
+
* K800-plain-lcu2: same as K800-plain-u2 but using the lane complementing technique, which is useful for platforms that do not have a "and not" instruction
|
|
42
|
+
* K800-plain-lcua: same as K800-plain-lcu2 but with all rounds unrolled
|
|
43
|
+
* K800-ARMv6M-u1: an assembly-optimized implementation for ARMv6M (no round unrolling)
|
|
44
|
+
* K800-ARMv6M-u2: same as K800-ARMv6M-u1 but with 2 rounds unrolled
|
|
45
|
+
* K800-ARMv7M-u2: an assembly-optimized implementation for ARMv7M with 2 rounds unrolled
|
|
46
|
+
* K800-ARMv7M-ua: same as K800-ARMv7M-u2 but with all rounds unrolled
|
|
47
|
+
* K800-ARMv7A-u2: an assembly-optimized implementation for ARMv7A with 2 rounds unrolled
|
|
48
|
+
* K800-ARMv8A: an assembly-optimized implementation for ARMv8A [obsolete: a plain C implementation is much faster]
|
|
49
|
+
* K800-AVR8: an assembly-optimized implementation for AVR8
|
|
50
|
+
|
|
51
|
+
# For Keccak-p[1600]:
|
|
52
|
+
|
|
53
|
+
* K1600-ref-64bits: the unoptimized reference implementation
|
|
54
|
+
* K1600-ref-32bits: an unoptimized reference implementation using only 32-bit operations with the bit interleaving technique
|
|
55
|
+
* K1600-compact: an implementation aimed at minimizing code and memory sizes
|
|
56
|
+
* K1600-AVR8-compact: same as K1600-compact, but specifically for AVR8
|
|
57
|
+
* K1600-plain-32bits-inplace: a generically optimized implementation for 32-bit platforms in plain C, aimed at minimizing the memory size by performing the permutation in-place
|
|
58
|
+
* K1600-ARMv6M-inplace: same as K1600-plain-32bits-inplace, but specifically for ARMv6M
|
|
59
|
+
* K1600-ARMv7M-inplace: same as K1600-plain-32bits-inplace, but specifically for ARMv7M
|
|
60
|
+
* K1600-ARMv7A-inplace: same as K1600-plain-32bits-inplace, but specifically for ARMv7A
|
|
61
|
+
* K1600-plain-64bits-u6: a generically optimized implementation for 64-bit platforms in plain C, with 6 rounds unrolled
|
|
62
|
+
* K1600-plain-64bits-ua: same as K1600-plain-64bits-u6 but with all rounds unrolled
|
|
63
|
+
* K1600-plain-64bits-lcu6: same as K1600-plain-64bits-u6 but using the lane complementing technique, which is useful for platforms that do not have a "and not" instruction
|
|
64
|
+
* K1600-plain-64bits-lcua: same as K1600-plain-64bits-lcu6 but with all rounds unrolled
|
|
65
|
+
* K1600-plain-64bits-lcua-shld: same as K1600-plain-64bits-lcua but with the rotation implementation with the 'shld' instruction, as it is faster on some platforms (e.g., SandyBridge)
|
|
66
|
+
* K1600-x86-64: an assembly-optimized implementation for x86_64 [obsolete: a plain C implementation is often faster]
|
|
67
|
+
* K1600-x86-64-shld: same as K1600-x86-64, but with the 'shld' instruction [obsolete: a plain C implementation is often faster]
|
|
68
|
+
* K1600-x86-64-Apple: same as K1600-x86-64, but with a syntax that works better on some Apple platforms [obsolete: a plain C implementation is often faster]
|
|
69
|
+
* K1600-AVX2: an optimized implementation taking advantage of the AVX2 instruction set
|
|
70
|
+
* K1600-AVX512: an optimized implementation taking advantage of the AVX-512 instruction set (in assembler)
|
|
71
|
+
* K1600-AVX512-C: an optimized implementation taking advantage of the AVX-512 instruction set (in C) [obsolete: K1600-AVX512 is faster]
|
|
72
|
+
* K1600-XOP-u6: an optimized implementation taking advantage of the XOP instruction set, with 6 rounds unrolled
|
|
73
|
+
* K1600-XOP-ua: same as K1600-XOP-u6, but with all rounds unrolled
|
|
74
|
+
* K1600-ARMv6M-u1: an assembly-optimized implementation for ARMv6M (no round unrolling)
|
|
75
|
+
* K1600-ARMv6M-u2: same as K1600-ARMv6M-u1 but with 2 rounds unrolled
|
|
76
|
+
* K1600-ARMv7A-NEON: an assembly-optimized implementation for ARMv7A
|
|
77
|
+
* K1600-ARMv8A: an assembly-optimized implementation for ARMv8A [obsolete: a plain C implementation is much faster]
|
|
78
|
+
* K1600-AVR8: an assembly-optimized implementation for AVR8
|
|
79
|
+
|
|
80
|
+
# For Keccak-p[1600]×2:
|
|
81
|
+
|
|
82
|
+
* K1600x2-on1: a stub that calls Keccak-p[1600] twice (requires an implementation of Keccak-p[1600])
|
|
83
|
+
* K1600x2-SSSE3-u2: an implementation taking advantage of the SSSE3 instruction set, with two rounds unrolled
|
|
84
|
+
* K1600x2-SSSE3-ua: same K1600x2-SSSE3-u2, but with all rounds unrolled
|
|
85
|
+
* K1600x2-XOP-u2: an implementation taking advantage of the XOP instruction set, with two rounds unrolled
|
|
86
|
+
* K1600x2-XOP-ua: same K1600x2-XOP-u2, but with all rounds unrolled
|
|
87
|
+
* K1600x2-AVX512-u4: an implementation taking advantage of the AVX-512 instruction set, with 4 rounds unrolled
|
|
88
|
+
* K1600x2-AVX512-u12: same as K1600x2-AVX512-u4, but with 12 rounds unrolled
|
|
89
|
+
* K1600x2-AVX512-ua: same as K1600x2-AVX512-u4, but with all rounds unrolled
|
|
90
|
+
* K1600x2-ARMv7A-NEON: an assembly-optimized implementation for ARMv7A using NEON
|
|
91
|
+
|
|
92
|
+
# For Keccak-p[1600]×4:
|
|
93
|
+
|
|
94
|
+
* K1600x4-on1: a stub that calls Keccak-p[1600] four times (requires an implementation of Keccak-p[1600])
|
|
95
|
+
* K1600x4-on2: a stub that calls Keccak-p[1600]×2 twice (requires an implementation of Keccak-p[1600]×2)
|
|
96
|
+
* K1600x4-AVX2-u6: an implementation taking advantage of the AVX2 instruction set, with 6 rounds unrolled
|
|
97
|
+
* K1600x4-AVX2-u12: same as K1600x4-AVX2-u6, but with 12 rounds unrolled
|
|
98
|
+
* K1600x4-AVX2-ua: same as K1600x4-AVX2-u6, but with all rounds unrolled
|
|
99
|
+
* K1600x4-AVX512-u4: an implementation taking advantage of the AVX-512 instruction set, with 4 rounds unrolled
|
|
100
|
+
* K1600x4-AVX512-u12: same as K1600x4-AVX512-u4, but with 12 rounds unrolled
|
|
101
|
+
* K1600x4-AVX512-ua: same as K1600x4-AVX512-u4, but with all rounds unrolled
|
|
102
|
+
|
|
103
|
+
# For Keccak-p[1600]×8:
|
|
104
|
+
|
|
105
|
+
* K1600x8-on1: a stub that calls Keccak-p[1600] eight times (requires an implementation of Keccak-p[1600])
|
|
106
|
+
* K1600x8-on2: a stub that calls Keccak-p[1600]×2 four times (requires an implementation of Keccak-p[1600]×2)
|
|
107
|
+
* K1600x8-on4: a stub that calls Keccak-p[1600]×4 twice (requires an implementation of Keccak-p[1600]×4)
|
|
108
|
+
* K1600x8-AVX512-u4: an implementation taking advantage of the AVX-512 instruction set, with 4 rounds unrolled
|
|
109
|
+
* K1600x8-AVX512-u12: same as K1600x8-AVX512-u4, but with 12 rounds unrolled
|
|
110
|
+
* K1600x8-AVX512-ua: same as K1600x8-AVX512-u4, but with all rounds unrolled
|
|
111
|
+
|
|
112
|
+
# For Xoodoo:
|
|
113
|
+
|
|
114
|
+
* Xoodoo-ref: the unoptimized reference implementation
|
|
115
|
+
* Xoodoo-plain-ua: an optimized implementation for 32-bit platforms in plain C with all rounds unrolled
|
|
116
|
+
* Xoodoo-ARMv6: an assembly-optimized implementation for the ARMv6 architecture (e.g., ARM11)
|
|
117
|
+
* Xoodoo-ARMv6M: an assembly-optimized implementation for ARMv6M, one round unrolled
|
|
118
|
+
* Xoodoo-ARMv7M: an assembly-optimized implementation for ARMv7M, fully unrolled
|
|
119
|
+
* Xoodoo-ARMv7A-NEON: an assembly-optimized implementation for ARMv7A using NEON, fully unrolled
|
|
120
|
+
* Xoodoo-AVR8: an assembly-optimized implementation for AVR8
|
|
121
|
+
* Xoodoo-SSE2: an optimized implementation taking advantage of the SSE2 instruction set
|
|
122
|
+
* Xoodoo-AVX512: an optimized implementation taking advantage of the AVX-512 instruction set
|
|
123
|
+
|
|
124
|
+
# For Xoodoo×4:
|
|
125
|
+
|
|
126
|
+
* Xoodoox4-on1: a stub that calls Xoodoo four times (requires an implementation of Xoodoo)
|
|
127
|
+
* Xoodoox4-SSSE3: an implementation taking advantage of the SSSE3 instruction set
|
|
128
|
+
* Xoodoox4-AVX512: an implementation taking advantage of the AVX-512 instruction set
|
|
129
|
+
* Xoodoox4-ARMv7A-NEON: an assembly-optimized implementation for ARMv7A using NEON
|
|
130
|
+
|
|
131
|
+
# For Xoodoo×8:
|
|
132
|
+
|
|
133
|
+
* Xoodoox8-on1: a stub that calls Xoodoo eight times (requires an implementation of Xoodoo)
|
|
134
|
+
* Xoodoox8-AVX2: an implementation taking advantage of the AVX2 instruction set, fully unrolled
|
|
135
|
+
* Xoodoox8-AVX512: an implementation taking advantage of the AVX-512 instruction set, fully unrolled
|
|
136
|
+
|
|
137
|
+
# For Xoodoo×16:
|
|
138
|
+
|
|
139
|
+
* Xoodoox16-on1: a stub that calls Xoodoo sixteen times (requires an implementation of Xoodoo)
|
|
140
|
+
* Xoodoox16-AVX512: an implementation taking advantage of the AVX-512 instruction set, fully unrolled
|
|
141
|
+
|
|
142
|
+
-->
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
<!-- *** Low-level services *** -->
|
|
146
|
+
|
|
147
|
+
<fragment name="optimized">
|
|
148
|
+
<h>lib/common/brg_endian.h</h>
|
|
149
|
+
<gcc>-fomit-frame-pointer</gcc>
|
|
150
|
+
<gcc>-O2</gcc>
|
|
151
|
+
<gcc>-g0</gcc>
|
|
152
|
+
<gcc>-march=native</gcc>
|
|
153
|
+
<gcc>-mtune=native</gcc>
|
|
154
|
+
</fragment>
|
|
155
|
+
|
|
156
|
+
<!-- Keccak-p[200] -->
|
|
157
|
+
|
|
158
|
+
<fragment name="K200">
|
|
159
|
+
<config>XKCP_has_KeccakP200</config>
|
|
160
|
+
</fragment>
|
|
161
|
+
|
|
162
|
+
<fragment name="K200-ref" inherits="common K200">
|
|
163
|
+
<c>lib/low/KeccakP-200/ref/KeccakP-200-reference.c</c>
|
|
164
|
+
<h>lib/low/KeccakP-200/ref/KeccakP-200-reference.h</h>
|
|
165
|
+
<h>lib/low/KeccakP-200/ref/KeccakP-200-SnP.h</h>
|
|
166
|
+
</fragment>
|
|
167
|
+
|
|
168
|
+
<fragment name="K200-compact" inherits="common optimized K200">
|
|
169
|
+
<c>lib/low/KeccakP-200/compact/KeccakP-200-compact.c</c>
|
|
170
|
+
<h>lib/low/KeccakP-200/compact/KeccakP-200-SnP.h</h>
|
|
171
|
+
</fragment>
|
|
172
|
+
|
|
173
|
+
<fragment name="K200-ARMv6M" inherits="common optimized K200">
|
|
174
|
+
<s>lib/low/KeccakP-200/ARM/KeccakP-200-armv6m-le-gcc.s</s>
|
|
175
|
+
<h>lib/low/KeccakP-200/ARM/KeccakP-200-SnP.h</h>
|
|
176
|
+
</fragment>
|
|
177
|
+
|
|
178
|
+
<fragment name="K200-ARMv7M" inherits="common optimized K200">
|
|
179
|
+
<c>lib/low/KeccakP-200/ARM/KeccakP-200-armv7m-le-gcc.s</c>
|
|
180
|
+
<h>lib/low/KeccakP-200/ARM/KeccakP-200-SnP.h</h>
|
|
181
|
+
</fragment>
|
|
182
|
+
|
|
183
|
+
<fragment name="K200-AVR8" inherits="common optimized K200">
|
|
184
|
+
<s>lib/low/KeccakP-200/AVR8/KeccakP-200-avr8-fast.s</s>
|
|
185
|
+
<h>lib/low/KeccakP-200/AVR8/KeccakP-200-SnP.h</h>
|
|
186
|
+
</fragment>
|
|
187
|
+
|
|
188
|
+
<!-- Keccak-p[400] -->
|
|
189
|
+
|
|
190
|
+
<fragment name="K400">
|
|
191
|
+
<config>XKCP_has_KeccakP400</config>
|
|
192
|
+
</fragment>
|
|
193
|
+
|
|
194
|
+
<fragment name="K400-ref" inherits="common K400">
|
|
195
|
+
<c>lib/low/KeccakP-400/ref/KeccakP-400-reference.c</c>
|
|
196
|
+
<h>lib/low/KeccakP-400/ref/KeccakP-400-reference.h</h>
|
|
197
|
+
<h>lib/low/KeccakP-400/ref/KeccakP-400-SnP.h</h>
|
|
198
|
+
</fragment>
|
|
199
|
+
|
|
200
|
+
<fragment name="K400-ARMv6M" inherits="common optimized K400">
|
|
201
|
+
<s>lib/low/KeccakP-400/ARM/KeccakP-400-armv6m-le-gcc.s</s>
|
|
202
|
+
<h>lib/low/KeccakP-400/ARM/KeccakP-400-SnP.h</h>
|
|
203
|
+
</fragment>
|
|
204
|
+
|
|
205
|
+
<fragment name="K400-ARMv7M" inherits="common optimized K400">
|
|
206
|
+
<s>lib/low/KeccakP-400/ARM/KeccakP-400-armv7m-le-gcc.s</s>
|
|
207
|
+
<h>lib/low/KeccakP-400/ARM/KeccakP-400-SnP.h</h>
|
|
208
|
+
</fragment>
|
|
209
|
+
|
|
210
|
+
<fragment name="K400-AVR8" inherits="common optimized K400">
|
|
211
|
+
<s>lib/low/KeccakP-400/AVR8/KeccakP-400-avr8-fast.s</s>
|
|
212
|
+
<h>lib/low/KeccakP-400/AVR8/KeccakP-400-SnP.h</h>
|
|
213
|
+
</fragment>
|
|
214
|
+
|
|
215
|
+
<!-- Keccak-p[800] -->
|
|
216
|
+
|
|
217
|
+
<fragment name="K800">
|
|
218
|
+
<config>XKCP_has_KeccakP800</config>
|
|
219
|
+
</fragment>
|
|
220
|
+
|
|
221
|
+
<fragment name="K800-ref" inherits="common K800">
|
|
222
|
+
<c>lib/low/KeccakP-800/ref/KeccakP-800-reference.c</c>
|
|
223
|
+
<h>lib/low/KeccakP-800/ref/KeccakP-800-reference.h</h>
|
|
224
|
+
<h>lib/low/KeccakP-800/ref/KeccakP-800-SnP.h</h>
|
|
225
|
+
</fragment>
|
|
226
|
+
|
|
227
|
+
<fragment name="K800-compact" inherits="common optimized K800">
|
|
228
|
+
<c>lib/low/KeccakP-800/compact/KeccakP-800-compact.c</c>
|
|
229
|
+
<h>lib/low/KeccakP-800/compact/KeccakP-800-SnP.h</h>
|
|
230
|
+
</fragment>
|
|
231
|
+
|
|
232
|
+
<fragment name="K800-plain" inherits="K800 optimized">
|
|
233
|
+
<h>lib/low/KeccakP-800/plain/KeccakP-800-SnP.h</h>
|
|
234
|
+
<inc>lib/low/KeccakP-800/plain/KeccakP-800-opt32-bis.macros</inc>
|
|
235
|
+
<c>lib/low/KeccakP-800/plain/KeccakP-800-opt32.c</c>
|
|
236
|
+
<inc>lib/low/KeccakP-800/plain/KeccakP-800-opt32.macros</inc>
|
|
237
|
+
<inc>lib/low/KeccakP-800/plain/KeccakP-800-unrolling-bis.macros</inc>
|
|
238
|
+
<inc>lib/low/KeccakP-800/plain/KeccakP-800-unrolling.macros</inc>
|
|
239
|
+
</fragment>
|
|
240
|
+
|
|
241
|
+
<fragment name="K800-plain-u2" inherits="K800-plain">
|
|
242
|
+
<h>lib/low/KeccakP-800/plain/u2/KeccakP-800-opt32-config.h</h>
|
|
243
|
+
</fragment>
|
|
244
|
+
|
|
245
|
+
<fragment name="K800-plain-ua" inherits="K800-plain">
|
|
246
|
+
<h>lib/low/KeccakP-800/plain/ua/KeccakP-800-opt32-config.h</h>
|
|
247
|
+
</fragment>
|
|
248
|
+
|
|
249
|
+
<fragment name="K800-plain-lcu2" inherits="K800-plain">
|
|
250
|
+
<h>lib/low/KeccakP-800/plain/lcu2/KeccakP-800-opt32-config.h</h>
|
|
251
|
+
</fragment>
|
|
252
|
+
|
|
253
|
+
<fragment name="K800-plain-lcua" inherits="K800-plain">
|
|
254
|
+
<h>lib/low/KeccakP-800/plain/lcua/KeccakP-800-opt32-config.h</h>
|
|
255
|
+
</fragment>
|
|
256
|
+
|
|
257
|
+
<fragment name="K800-ARM" inherits="common optimized K800">
|
|
258
|
+
<h>lib/low/KeccakP-800/ARM/KeccakP-800-SnP.h</h>
|
|
259
|
+
</fragment>
|
|
260
|
+
|
|
261
|
+
<fragment name="K800-ARMv6M-u1" inherits="K800-ARM">
|
|
262
|
+
<s>lib/low/KeccakP-800/ARM/KeccakP-800-u1-armv6m-le-gcc.s</s>
|
|
263
|
+
</fragment>
|
|
264
|
+
|
|
265
|
+
<fragment name="K800-ARMv6M-u2" inherits="K800-ARM">
|
|
266
|
+
<s>lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv6m-le-gcc.s</s>
|
|
267
|
+
</fragment>
|
|
268
|
+
|
|
269
|
+
<fragment name="K800-ARMv7M-u2" inherits="K800-ARM">
|
|
270
|
+
<s>lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7m-le-gcc.s</s>
|
|
271
|
+
</fragment>
|
|
272
|
+
|
|
273
|
+
<fragment name="K800-ARMv7M-ua" inherits="K800-ARM">
|
|
274
|
+
<s>lib/low/KeccakP-800/ARM/KeccakP-800-uf-armv7m-le-gcc.s</s>
|
|
275
|
+
</fragment>
|
|
276
|
+
|
|
277
|
+
<fragment name="K800-ARMv7A-u2" inherits="K800-ARM">
|
|
278
|
+
<s>lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7a-le-gcc.s</s>
|
|
279
|
+
</fragment>
|
|
280
|
+
|
|
281
|
+
<fragment name="K800-ARMv8A" inherits="common optimized K800">
|
|
282
|
+
<s>lib/low/KeccakP-800/ARMv8A/KeccakP-800-armv8a-neon.s</s>
|
|
283
|
+
<h>lib/low/KeccakP-800/ARMv8A/KeccakP-800-SnP.h</h>
|
|
284
|
+
</fragment>
|
|
285
|
+
|
|
286
|
+
<fragment name="K800-AVR8" inherits="common optimized K800">
|
|
287
|
+
<s>lib/low/KeccakP-800/AVR8/KeccakP-800-avr8-fast.s</s>
|
|
288
|
+
<h>lib/low/KeccakP-800/AVR8/KeccakP-800-SnP.h</h>
|
|
289
|
+
</fragment>
|
|
290
|
+
|
|
291
|
+
<!-- Keccak-p[1600] -->
|
|
292
|
+
|
|
293
|
+
<fragment name="K1600">
|
|
294
|
+
<config>XKCP_has_KeccakP1600</config>
|
|
295
|
+
</fragment>
|
|
296
|
+
|
|
297
|
+
<fragment name="K1600-ref-64bits" inherits="common K1600">
|
|
298
|
+
<c>lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.c</c>
|
|
299
|
+
<h>lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.h</h>
|
|
300
|
+
<h>lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-SnP.h</h>
|
|
301
|
+
</fragment>
|
|
302
|
+
|
|
303
|
+
<fragment name="K1600-ref-32bits" inherits="common K1600">
|
|
304
|
+
<c>lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-reference32BI.c</c>
|
|
305
|
+
<h>lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-reference.h</h>
|
|
306
|
+
<h>lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-SnP.h</h>
|
|
307
|
+
</fragment>
|
|
308
|
+
|
|
309
|
+
<fragment name="K1600-compact" inherits="common optimized K1600">
|
|
310
|
+
<c>lib/low/KeccakP-1600/compact/KeccakP-1600-compact64.c</c>
|
|
311
|
+
<h>lib/low/KeccakP-1600/compact/KeccakP-1600-SnP.h</h>
|
|
312
|
+
<h>lib/low/common/SnP-Relaned.h</h>
|
|
313
|
+
</fragment>
|
|
314
|
+
|
|
315
|
+
<fragment name="K1600-AVR8-compact" inherits="common optimized K1600">
|
|
316
|
+
<s>lib/low/KeccakP-1600/AVR8/KeccakP-1600-avr8-compact.s</s>
|
|
317
|
+
<h>lib/low/KeccakP-1600/AVR8/KeccakP-1600-SnP.h</h>
|
|
318
|
+
</fragment>
|
|
319
|
+
|
|
320
|
+
<fragment name="K1600-plain-32bits-inplace" inherits="K1600 optimized">
|
|
321
|
+
<c>lib/low/KeccakP-1600/plain-32bits-inplace/KeccakP-1600-inplace32BI.c</c>
|
|
322
|
+
<h>lib/low/KeccakP-1600/plain-32bits-inplace/KeccakP-1600-SnP.h</h>
|
|
323
|
+
<h>lib/low/common/SnP-Relaned.h</h>
|
|
324
|
+
</fragment>
|
|
325
|
+
|
|
326
|
+
<fragment name="K1600-ARM-inplace" inherits="K1600 optimized">
|
|
327
|
+
<h>lib/low/KeccakP-1600/ARM/KeccakP-1600-SnP.h</h>
|
|
328
|
+
</fragment>
|
|
329
|
+
|
|
330
|
+
<fragment name="K1600-ARMv6M-inplace" inherits="K1600-ARM-inplace">
|
|
331
|
+
<s>lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv6m-le-gcc.s</s>
|
|
332
|
+
</fragment>
|
|
333
|
+
|
|
334
|
+
<fragment name="K1600-ARMv7M-inplace" inherits="K1600-ARM-inplace">
|
|
335
|
+
<s>lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7m-le-gcc.s</s>
|
|
336
|
+
</fragment>
|
|
337
|
+
|
|
338
|
+
<fragment name="K1600-ARMv7A-inplace" inherits="K1600-ARM-inplace">
|
|
339
|
+
<s>lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7a-le-gcc.s</s>
|
|
340
|
+
</fragment>
|
|
341
|
+
|
|
342
|
+
<fragment name="K1600-plain-64bits" inherits="K1600 optimized">
|
|
343
|
+
<c>lib/low/KeccakP-1600/plain-64bits/KeccakP-1600-opt64.c</c>
|
|
344
|
+
<inc>lib/low/KeccakP-1600/common/KeccakP-1600-unrolling.macros</inc>
|
|
345
|
+
<inc>lib/low/KeccakP-1600/common/KeccakP-1600-64.macros</inc>
|
|
346
|
+
<h>lib/low/KeccakP-1600/plain-64bits/KeccakP-1600-SnP.h</h>
|
|
347
|
+
<h>lib/low/common/SnP-Relaned.h</h>
|
|
348
|
+
</fragment>
|
|
349
|
+
|
|
350
|
+
<fragment name="K1600-plain-64bits-u6" inherits="K1600-plain-64bits">
|
|
351
|
+
<h>lib/low/KeccakP-1600/plain-64bits/u6/KeccakP-1600-opt64-config.h</h>
|
|
352
|
+
</fragment>
|
|
353
|
+
|
|
354
|
+
<fragment name="K1600-plain-64bits-ua" inherits="K1600-plain-64bits">
|
|
355
|
+
<h>lib/low/KeccakP-1600/plain-64bits/ua/KeccakP-1600-opt64-config.h</h>
|
|
356
|
+
</fragment>
|
|
357
|
+
|
|
358
|
+
<fragment name="K1600-plain-64bits-lcu6" inherits="K1600-plain-64bits">
|
|
359
|
+
<h>lib/low/KeccakP-1600/plain-64bits/lcu6/KeccakP-1600-opt64-config.h</h>
|
|
360
|
+
</fragment>
|
|
361
|
+
|
|
362
|
+
<fragment name="K1600-plain-64bits-lcua" inherits="K1600-plain-64bits">
|
|
363
|
+
<h>lib/low/KeccakP-1600/plain-64bits/lcua/KeccakP-1600-opt64-config.h</h>
|
|
364
|
+
</fragment>
|
|
365
|
+
|
|
366
|
+
<fragment name="K1600-plain-64bits-lcua-shld" inherits="K1600-plain-64bits">
|
|
367
|
+
<h>lib/low/KeccakP-1600/plain-64bits/lcua-shld/KeccakP-1600-opt64-config.h</h>
|
|
368
|
+
</fragment>
|
|
369
|
+
|
|
370
|
+
<fragment name="K1600-x86-64" inherits="K1600 optimized">
|
|
371
|
+
<s>lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-gas.s</s>
|
|
372
|
+
<h>lib/low/KeccakP-1600/x86-64/KeccakP-1600-SnP.h</h>
|
|
373
|
+
</fragment>
|
|
374
|
+
|
|
375
|
+
<fragment name="K1600-x86-64-shld" inherits="K1600 optimized">
|
|
376
|
+
<s>lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-shld-gas.s</s>
|
|
377
|
+
<h>lib/low/KeccakP-1600/x86-64/KeccakP-1600-SnP.h</h>
|
|
378
|
+
</fragment>
|
|
379
|
+
|
|
380
|
+
<fragment name="K1600-x86-64-Apple" inherits="K1600 optimized">
|
|
381
|
+
<s>lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-gas_Apple.s</s>
|
|
382
|
+
<h>lib/low/KeccakP-1600/x86-64/KeccakP-1600-SnP.h</h>
|
|
383
|
+
</fragment>
|
|
384
|
+
|
|
385
|
+
<fragment name="K1600-AVX2" inherits="K1600 optimized">
|
|
386
|
+
<s>lib/low/KeccakP-1600/AVX2/KeccakP-1600-AVX2.s</s>
|
|
387
|
+
<h>lib/low/KeccakP-1600/AVX2/KeccakP-1600-SnP.h</h>
|
|
388
|
+
</fragment>
|
|
389
|
+
|
|
390
|
+
<fragment name="K1600-AVX512-C" inherits="K1600 optimized">
|
|
391
|
+
<c>lib/low/KeccakP-1600/AVX512/C/KeccakP-1600-AVX512.c</c>
|
|
392
|
+
<h>lib/low/KeccakP-1600/AVX512/C/u12/KeccakP-1600-AVX512-config.h</h>
|
|
393
|
+
<h>lib/low/KeccakP-1600/AVX512/C/KeccakP-1600-SnP.h</h>
|
|
394
|
+
</fragment>
|
|
395
|
+
|
|
396
|
+
<fragment name="K1600-AVX512" inherits="K1600 optimized">
|
|
397
|
+
<s>lib/low/KeccakP-1600/AVX512/KeccakP-1600-AVX512.s</s>
|
|
398
|
+
<h>lib/low/KeccakP-1600/AVX512/KeccakP-1600-SnP.h</h>
|
|
399
|
+
</fragment>
|
|
400
|
+
|
|
401
|
+
<fragment name="K1600-XOP" inherits="K1600 optimized">
|
|
402
|
+
<c>lib/low/KeccakP-1600/XOP/KeccakP-1600-XOP.c</c>
|
|
403
|
+
<h>lib/low/KeccakP-1600/XOP/KeccakP-1600-SnP.h</h>
|
|
404
|
+
<inc>lib/low/KeccakP-1600/common/KeccakP-1600-unrolling.macros</inc>
|
|
405
|
+
<h>lib/low/common/SnP-Relaned.h</h>
|
|
406
|
+
</fragment>
|
|
407
|
+
|
|
408
|
+
<fragment name="K1600-XOP-u6" inherits="K1600-XOP">
|
|
409
|
+
<h>lib/low/KeccakP-1600/XOP/u6/KeccakP-1600-XOP-config.h</h>
|
|
410
|
+
</fragment>
|
|
411
|
+
|
|
412
|
+
<fragment name="K1600-XOP-ua" inherits="K1600-XOP">
|
|
413
|
+
<h>lib/low/KeccakP-1600/XOP/ua/KeccakP-1600-XOP-config.h</h>
|
|
414
|
+
</fragment>
|
|
415
|
+
|
|
416
|
+
<fragment name="K1600-ARMv6M" inherits="K1600 optimized">
|
|
417
|
+
<h>lib/low/KeccakP-1600/ARM/KeccakP-1600-SnP.h</h>
|
|
418
|
+
</fragment>
|
|
419
|
+
|
|
420
|
+
<fragment name="K1600-ARMv6M-u1" inherits="K1600-ARMv6M">
|
|
421
|
+
<s>lib/low/KeccakP-1600/ARM/KeccakP-1600-u1-32bi-armv6m-le-gcc.s</s>
|
|
422
|
+
</fragment>
|
|
423
|
+
|
|
424
|
+
<fragment name="K1600-ARMv6M-u2" inherits="K1600-ARMv6M">
|
|
425
|
+
<s>lib/low/KeccakP-1600/ARM/KeccakP-1600-u2-32bi-armv6m-le-gcc.s</s>
|
|
426
|
+
</fragment>
|
|
427
|
+
|
|
428
|
+
<fragment name="K1600-ARMv7A-NEON" inherits="K1600 optimized">
|
|
429
|
+
<gcc>-mfpu=neon</gcc>
|
|
430
|
+
<gas>-mfpu=neon</gas>
|
|
431
|
+
<s>lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-armv7a-le-neon-gcc.s</s>
|
|
432
|
+
<h>lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-SnP.h</h>
|
|
433
|
+
</fragment>
|
|
434
|
+
|
|
435
|
+
<fragment name="K1600-ARMv8A" inherits="K1600 optimized">
|
|
436
|
+
<s>lib/low/KeccakP-1600/ARMv8A/KeccakP-1600-armv8a-neon.s</s>
|
|
437
|
+
<h>lib/low/KeccakP-1600/ARMv8A/KeccakP-1600-SnP.h</h>
|
|
438
|
+
</fragment>
|
|
439
|
+
|
|
440
|
+
<fragment name="K1600-AVR8" inherits="common optimized K1600">
|
|
441
|
+
<s>lib/low/KeccakP-1600/AVR8/KeccakP-1600-avr8-fast.s</s>
|
|
442
|
+
<h>lib/low/KeccakP-1600/AVR8/KeccakP-1600-SnP.h</h>
|
|
443
|
+
</fragment>
|
|
444
|
+
|
|
445
|
+
<!-- Keccak-p[1600]×2 -->
|
|
446
|
+
|
|
447
|
+
<fragment name="K1600x2">
|
|
448
|
+
<config>XKCP_has_KeccakP1600times2</config>
|
|
449
|
+
</fragment>
|
|
450
|
+
|
|
451
|
+
<fragment name="K1600x2-on1" inherits="K1600x2">
|
|
452
|
+
<c>lib/low/KeccakP-1600-times2/fallback-on1/KeccakP-1600-times2-on1.c</c>
|
|
453
|
+
<h>lib/low/KeccakP-1600-times2/fallback-on1/KeccakP-1600-times2-SnP.h</h>
|
|
454
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
455
|
+
</fragment>
|
|
456
|
+
|
|
457
|
+
<fragment name="K1600x2-SIMD128" inherits="optimized K1600x2">
|
|
458
|
+
<c>lib/low/KeccakP-1600-times2/SIMD128/KeccakP-1600-times2-SIMD128.c</c>
|
|
459
|
+
<h>lib/low/KeccakP-1600-times2/SIMD128/KeccakP-1600-times2-SnP.h</h>
|
|
460
|
+
<inc>lib/low/KeccakP-1600/common/KeccakP-1600-unrolling.macros</inc>
|
|
461
|
+
</fragment>
|
|
462
|
+
|
|
463
|
+
<fragment name="K1600x2-SSSE3-u2" inherits="K1600x2-SIMD128">
|
|
464
|
+
<h>lib/low/KeccakP-1600-times2/SIMD128/SSSE3-u2/SIMD128-config.h</h>
|
|
465
|
+
</fragment>
|
|
466
|
+
|
|
467
|
+
<fragment name="K1600x2-SSSE3-ua" inherits="K1600x2-SIMD128">
|
|
468
|
+
<h>lib/low/KeccakP-1600-times2/SIMD128/SSSE3-ua/SIMD128-config.h</h>
|
|
469
|
+
</fragment>
|
|
470
|
+
|
|
471
|
+
<fragment name="K1600x2-XOP-u2" inherits="K1600x2-SIMD128">
|
|
472
|
+
<h>lib/low/KeccakP-1600-times2/SIMD128/XOP-u2/SIMD128-config.h</h>
|
|
473
|
+
</fragment>
|
|
474
|
+
|
|
475
|
+
<fragment name="K1600x2-XOP-ua" inherits="K1600x2-SIMD128">
|
|
476
|
+
<h>lib/low/KeccakP-1600-times2/SIMD128/XOP-ua/SIMD128-config.h</h>
|
|
477
|
+
</fragment>
|
|
478
|
+
|
|
479
|
+
<fragment name="K1600x2-AVX512" inherits="optimized K1600x2">
|
|
480
|
+
<c>lib/low/KeccakP-1600-times2/AVX512/KeccakP-1600-times2-SIMD512.c</c>
|
|
481
|
+
<h>lib/low/KeccakP-1600-times2/AVX512/KeccakP-1600-times2-SnP.h</h>
|
|
482
|
+
</fragment>
|
|
483
|
+
|
|
484
|
+
<fragment name="K1600x2-AVX512-u4" inherits="K1600x2-AVX512">
|
|
485
|
+
<h>lib/low/KeccakP-1600-times2/AVX512/AVX512u4/SIMD512-2-config.h</h>
|
|
486
|
+
</fragment>
|
|
487
|
+
|
|
488
|
+
<fragment name="K1600x2-AVX512-u12" inherits="K1600x2-AVX512">
|
|
489
|
+
<h>lib/low/KeccakP-1600-times2/AVX512/AVX512u12/SIMD512-2-config.h</h>
|
|
490
|
+
</fragment>
|
|
491
|
+
|
|
492
|
+
<fragment name="K1600x2-AVX512-ua" inherits="K1600x2-AVX512">
|
|
493
|
+
<h>lib/low/KeccakP-1600-times2/AVX512/AVX512ufull/SIMD512-2-config.h</h>
|
|
494
|
+
</fragment>
|
|
495
|
+
|
|
496
|
+
<fragment name="K1600x2-ARMv7A-NEON" inherits="K1600x2">
|
|
497
|
+
<gcc>-mfpu=neon</gcc>
|
|
498
|
+
<gas>-mfpu=neon</gas>
|
|
499
|
+
<s>lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-inplace-pl2-armv7a-neon-le-gcc.s</s>
|
|
500
|
+
<h>lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-times2-SnP.h</h>
|
|
501
|
+
</fragment>
|
|
502
|
+
|
|
503
|
+
<!-- Keccak-p[1600]×4 -->
|
|
504
|
+
|
|
505
|
+
<fragment name="K1600x4">
|
|
506
|
+
<config>XKCP_has_KeccakP1600times4</config>
|
|
507
|
+
</fragment>
|
|
508
|
+
|
|
509
|
+
<fragment name="K1600x4-on1" inherits="K1600x4">
|
|
510
|
+
<c>lib/low/KeccakP-1600-times4/fallback-on1/KeccakP-1600-times4-on1.c</c>
|
|
511
|
+
<h>lib/low/KeccakP-1600-times4/fallback-on1/KeccakP-1600-times4-SnP.h</h>
|
|
512
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
513
|
+
</fragment>
|
|
514
|
+
|
|
515
|
+
<fragment name="K1600x4-on2" inherits="K1600x4">
|
|
516
|
+
<c>lib/low/KeccakP-1600-times4/fallback-on2/KeccakP-1600-times4-on2.c</c>
|
|
517
|
+
<h>lib/low/KeccakP-1600-times4/fallback-on2/KeccakP-1600-times4-SnP.h</h>
|
|
518
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
519
|
+
</fragment>
|
|
520
|
+
|
|
521
|
+
<fragment name="K1600x4-AVX2" inherits="optimized K1600x4">
|
|
522
|
+
<c>lib/low/KeccakP-1600-times4/AVX2/KeccakP-1600-times4-SIMD256.c</c>
|
|
523
|
+
<h>lib/low/KeccakP-1600-times4/AVX2/KeccakP-1600-times4-SnP.h</h>
|
|
524
|
+
<inc>lib/low/KeccakP-1600/common/KeccakP-1600-unrolling.macros</inc>
|
|
525
|
+
</fragment>
|
|
526
|
+
|
|
527
|
+
<fragment name="K1600x4-AVX2-u6" inherits="K1600x4-AVX2">
|
|
528
|
+
<h>lib/low/KeccakP-1600-times4/AVX2/u6/SIMD256-config.h</h>
|
|
529
|
+
</fragment>
|
|
530
|
+
|
|
531
|
+
<fragment name="K1600x4-AVX2-u12" inherits="K1600x4-AVX2">
|
|
532
|
+
<h>lib/low/KeccakP-1600-times4/AVX2/u12/SIMD256-config.h</h>
|
|
533
|
+
</fragment>
|
|
534
|
+
|
|
535
|
+
<fragment name="K1600x4-AVX2-ua" inherits="K1600x4-AVX2">
|
|
536
|
+
<h>lib/low/KeccakP-1600-times4/AVX2/ua/SIMD256-config.h</h>
|
|
537
|
+
</fragment>
|
|
538
|
+
|
|
539
|
+
<fragment name="K1600x4-AVX512" inherits="optimized K1600x4">
|
|
540
|
+
<c>lib/low/KeccakP-1600-times4/AVX512/KeccakP-1600-times4-SIMD512.c</c>
|
|
541
|
+
<h>lib/low/KeccakP-1600-times4/AVX512/KeccakP-1600-times4-SnP.h</h>
|
|
542
|
+
</fragment>
|
|
543
|
+
|
|
544
|
+
<fragment name="K1600x4-AVX512-u4" inherits="K1600x4-AVX512">
|
|
545
|
+
<h>lib/low/KeccakP-1600-times4/AVX512/AVX512u4/SIMD512-4-config.h</h>
|
|
546
|
+
</fragment>
|
|
547
|
+
|
|
548
|
+
<fragment name="K1600x4-AVX512-u12" inherits="K1600x4-AVX512">
|
|
549
|
+
<h>lib/low/KeccakP-1600-times4/AVX512/AVX512u12/SIMD512-4-config.h</h>
|
|
550
|
+
</fragment>
|
|
551
|
+
|
|
552
|
+
<fragment name="K1600x4-AVX512-ua" inherits="K1600x4-AVX512">
|
|
553
|
+
<h>lib/low/KeccakP-1600-times4/AVX512/AVX512ufull/SIMD512-4-config.h</h>
|
|
554
|
+
</fragment>
|
|
555
|
+
|
|
556
|
+
<!-- Keccak-p[1600]×8 -->
|
|
557
|
+
|
|
558
|
+
<fragment name="K1600x8">
|
|
559
|
+
<config>XKCP_has_KeccakP1600times8</config>
|
|
560
|
+
</fragment>
|
|
561
|
+
|
|
562
|
+
<fragment name="K1600x8-on1" inherits="K1600x8">
|
|
563
|
+
<c>lib/low/KeccakP-1600-times8/fallback-on1/KeccakP-1600-times8-on1.c</c>
|
|
564
|
+
<h>lib/low/KeccakP-1600-times8/fallback-on1/KeccakP-1600-times8-SnP.h</h>
|
|
565
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
566
|
+
</fragment>
|
|
567
|
+
|
|
568
|
+
<fragment name="K1600x8-on2" inherits="K1600x8">
|
|
569
|
+
<c>lib/low/KeccakP-1600-times8/fallback-on2/KeccakP-1600-times8-on2.c</c>
|
|
570
|
+
<h>lib/low/KeccakP-1600-times8/fallback-on2/KeccakP-1600-times8-SnP.h</h>
|
|
571
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
572
|
+
</fragment>
|
|
573
|
+
|
|
574
|
+
<fragment name="K1600x8-on4" inherits="K1600x8">
|
|
575
|
+
<c>lib/low/KeccakP-1600-times8/fallback-on4/KeccakP-1600-times8-on4.c</c>
|
|
576
|
+
<h>lib/low/KeccakP-1600-times8/fallback-on4/KeccakP-1600-times8-SnP.h</h>
|
|
577
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
578
|
+
</fragment>
|
|
579
|
+
|
|
580
|
+
<fragment name="K1600x8-AVX512" inherits="optimized K1600x8">
|
|
581
|
+
<c>lib/low/KeccakP-1600-times8/AVX512/KeccakP-1600-times8-SIMD512.c</c>
|
|
582
|
+
<h>lib/low/KeccakP-1600-times8/AVX512/KeccakP-1600-times8-SnP.h</h>
|
|
583
|
+
</fragment>
|
|
584
|
+
|
|
585
|
+
<fragment name="K1600x8-AVX512-u4" inherits="K1600x8-AVX512">
|
|
586
|
+
<h>lib/low/KeccakP-1600-times8/AVX512/u4/SIMD512-config.h</h>
|
|
587
|
+
</fragment>
|
|
588
|
+
|
|
589
|
+
<fragment name="K1600x8-AVX512-u12" inherits="K1600x8-AVX512">
|
|
590
|
+
<h>lib/low/KeccakP-1600-times8/AVX512/u12/SIMD512-config.h</h>
|
|
591
|
+
</fragment>
|
|
592
|
+
|
|
593
|
+
<fragment name="K1600x8-AVX512-ua" inherits="K1600x8-AVX512">
|
|
594
|
+
<h>lib/low/KeccakP-1600-times8/AVX512/ua/SIMD512-config.h</h>
|
|
595
|
+
</fragment>
|
|
596
|
+
|
|
597
|
+
<!-- ++++++++++++++++++++++++ Xoodoo +++++++++++++++++++++ -->
|
|
598
|
+
|
|
599
|
+
<fragment name="Xoodoo">
|
|
600
|
+
<config>XKCP_has_Xoodoo</config>
|
|
601
|
+
<h>lib/low/Xoodoo/Xoodoo.h</h>
|
|
602
|
+
<h>lib/high/Xoodyak/Xoodyak-parameters.h</h>
|
|
603
|
+
</fragment>
|
|
604
|
+
|
|
605
|
+
<fragment name="Xoodoo-ref" inherits="common Xoodoo">
|
|
606
|
+
<c>lib/low/Xoodoo/ref/Xoodoo-reference.c</c>
|
|
607
|
+
<h>lib/low/Xoodoo/ref/Xoodoo-SnP.h</h>
|
|
608
|
+
</fragment>
|
|
609
|
+
|
|
610
|
+
<fragment name="Xoodoo-plain-ua" inherits="common optimized Xoodoo">
|
|
611
|
+
<c>lib/low/Xoodoo/plain/Xoodoo-optimized.c</c>
|
|
612
|
+
<c>lib/low/Xoodoo/plain/Xoodyak-full-blocks.c</c>
|
|
613
|
+
<h>lib/low/Xoodoo/plain/Xoodoo-SnP.h</h>
|
|
614
|
+
</fragment>
|
|
615
|
+
|
|
616
|
+
<fragment name="Xoodoo-ARMv6" inherits="common optimized Xoodoo">
|
|
617
|
+
<s>lib/low/Xoodoo/ARM/Xoodoo-uf-armv6-le-gcc.s</s>
|
|
618
|
+
<s>lib/low/Xoodoo/ARM/Xoodyak-uf-armv6-le-gcc.s</s>
|
|
619
|
+
<h>lib/low/Xoodoo/ARM/Xoodoo-SnP.h</h>
|
|
620
|
+
</fragment>
|
|
621
|
+
|
|
622
|
+
<fragment name="Xoodoo-ARMv6M" inherits="common optimized Xoodoo">
|
|
623
|
+
<s>lib/low/Xoodoo/ARM/Xoodoo-u1-armv6m-le-gcc.s</s>
|
|
624
|
+
<s>lib/low/Xoodoo/ARM/Xoodyak-u1-armv6m-le-gcc.s</s>
|
|
625
|
+
<h>lib/low/Xoodoo/ARM/Xoodoo-SnP.h</h>
|
|
626
|
+
</fragment>
|
|
627
|
+
|
|
628
|
+
<fragment name="Xoodoo-ARMv7M" inherits="common optimized Xoodoo">
|
|
629
|
+
<s>lib/low/Xoodoo/ARM/Xoodoo-uf-armv7m-le-gcc.s</s>
|
|
630
|
+
<s>lib/low/Xoodoo/ARM/Xoodyak-uf-armv7m-le-gcc.s</s>
|
|
631
|
+
<h>lib/low/Xoodoo/ARM/Xoodoo-SnP.h</h>
|
|
632
|
+
</fragment>
|
|
633
|
+
|
|
634
|
+
<fragment name="Xoodoo-ARMv7A-NEON" inherits="common optimized Xoodoo">
|
|
635
|
+
<gcc>-mfpu=neon</gcc>
|
|
636
|
+
<gas>-mfpu=neon</gas>
|
|
637
|
+
<s>lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-uf-armv7a-neon-le-gcc.s</s>
|
|
638
|
+
<s>lib/low/Xoodoo/ARMv7A-NEON/Xoodyak-uf-armv7a-neon-le-gcc.s</s>
|
|
639
|
+
<h>lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-SnP.h</h>
|
|
640
|
+
</fragment>
|
|
641
|
+
|
|
642
|
+
<fragment name="Xoodoo-AVR8" inherits="common optimized Xoodoo">
|
|
643
|
+
<s>lib/low/Xoodoo/AVR8/Xoodoo-avr8-u1.s</s>
|
|
644
|
+
<h>lib/low/Xoodoo/AVR8/Xoodoo-SnP.h</h>
|
|
645
|
+
</fragment>
|
|
646
|
+
|
|
647
|
+
<fragment name="Xoodoo-SSE2" inherits="common optimized Xoodoo">
|
|
648
|
+
<c>lib/low/Xoodoo/SSE2/Xoodoo-SIMD128.c</c>
|
|
649
|
+
<h>lib/low/Xoodoo/SSE2/Xoodoo-SnP.h</h>
|
|
650
|
+
<c>lib/low/Xoodoo/SSE2/Xoodyak-full-block-SIMD128.c</c>
|
|
651
|
+
</fragment>
|
|
652
|
+
|
|
653
|
+
<fragment name="Xoodoo-AVX512" inherits="common optimized Xoodoo">
|
|
654
|
+
<c>lib/low/Xoodoo/AVX512/Xoodoo-SIMD512.c</c>
|
|
655
|
+
<h>lib/low/Xoodoo/AVX512/Xoodoo-SnP.h</h>
|
|
656
|
+
<c>lib/low/Xoodoo/AVX512/Xoodyak-full-block-SIMD512.c</c>
|
|
657
|
+
</fragment>
|
|
658
|
+
|
|
659
|
+
<!-- Xoodoo×4 -->
|
|
660
|
+
|
|
661
|
+
<fragment name="Xoodoox4">
|
|
662
|
+
<config>XKCP_has_Xoodootimes4</config>
|
|
663
|
+
</fragment>
|
|
664
|
+
|
|
665
|
+
<fragment name="Xoodoox4-on1" inherits="common optimized Xoodoox4">
|
|
666
|
+
<c>lib/low/Xoodoo-times4/fallback-on1/Xoodoo-times4-on1.c</c>
|
|
667
|
+
<h>lib/low/Xoodoo-times4/fallback-on1/Xoodoo-times4-SnP.h</h>
|
|
668
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
669
|
+
</fragment>
|
|
670
|
+
|
|
671
|
+
<fragment name="Xoodoox4-SSSE3" inherits="common optimized Xoodoox4">
|
|
672
|
+
<c>lib/low/Xoodoo-times4/SSSE3/Xoodoo-times4-SIMD128.c</c>
|
|
673
|
+
<h>lib/low/Xoodoo-times4/SSSE3/Xoodoo-times4-SnP.h</h>
|
|
674
|
+
</fragment>
|
|
675
|
+
|
|
676
|
+
<fragment name="Xoodoox4-AVX512" inherits="common optimized Xoodoox4">
|
|
677
|
+
<c>lib/low/Xoodoo-times4/AVX512/Xoodoo-times4-SIMD512.c</c>
|
|
678
|
+
<h>lib/low/Xoodoo-times4/AVX512/Xoodoo-times4-SnP.h</h>
|
|
679
|
+
</fragment>
|
|
680
|
+
|
|
681
|
+
<fragment name="Xoodoox4-ARMv7A-NEON" inherits="common optimized Xoodoox4">
|
|
682
|
+
<gcc>-mfpu=neon</gcc>
|
|
683
|
+
<gas>-mfpu=neon</gas>
|
|
684
|
+
<s>lib/low/Xoodoo-times4/ARMv7A-NEON/Xoodoo-times4-ARMv7A.s</s>
|
|
685
|
+
<h>lib/low/Xoodoo-times4/ARMv7A-NEON/Xoodoo-times4-SnP.h</h>
|
|
686
|
+
</fragment>
|
|
687
|
+
|
|
688
|
+
<!-- Xoodoo×8 -->
|
|
689
|
+
|
|
690
|
+
<fragment name="Xoodoox8">
|
|
691
|
+
<config>XKCP_has_Xoodootimes8</config>
|
|
692
|
+
</fragment>
|
|
693
|
+
|
|
694
|
+
<fragment name="Xoodoox8-on1" inherits="common optimized Xoodoox8">
|
|
695
|
+
<c>lib/low/Xoodoo-times8/fallback-on1/Xoodoo-times8-on1.c</c>
|
|
696
|
+
<h>lib/low/Xoodoo-times8/fallback-on1/Xoodoo-times8-SnP.h</h>
|
|
697
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
698
|
+
</fragment>
|
|
699
|
+
|
|
700
|
+
<fragment name="Xoodoox8-AVX2" inherits="common optimized Xoodoox8">
|
|
701
|
+
<c>lib/low/Xoodoo-times8/AVX2/Xoodoo-times8-SIMD256.c</c>
|
|
702
|
+
<h>lib/low/Xoodoo-times8/AVX2/Xoodoo-times8-SnP.h</h>
|
|
703
|
+
</fragment>
|
|
704
|
+
|
|
705
|
+
<fragment name="Xoodoox8-AVX512" inherits="common optimized Xoodoox8">
|
|
706
|
+
<c>lib/low/Xoodoo-times8/AVX512/Xoodoo-times8-SIMD512.c</c>
|
|
707
|
+
<h>lib/low/Xoodoo-times8/AVX512/Xoodoo-times8-SnP.h</h>
|
|
708
|
+
</fragment>
|
|
709
|
+
|
|
710
|
+
<!-- Xoodoo×16 -->
|
|
711
|
+
|
|
712
|
+
<fragment name="Xoodoox16">
|
|
713
|
+
<config>XKCP_has_Xoodootimes16</config>
|
|
714
|
+
</fragment>
|
|
715
|
+
|
|
716
|
+
<fragment name="Xoodoox16-on1" inherits="common optimized Xoodoox16">
|
|
717
|
+
<c>lib/low/Xoodoo-times16/fallback-on1/Xoodoo-times16-on1.c</c>
|
|
718
|
+
<h>lib/low/Xoodoo-times16/fallback-on1/Xoodoo-times16-SnP.h</h>
|
|
719
|
+
<inc>lib/low/common/PlSnP-Fallback.inc</inc>
|
|
720
|
+
</fragment>
|
|
721
|
+
|
|
722
|
+
<fragment name="Xoodoox16-AVX512" inherits="common optimized Xoodoox16">
|
|
723
|
+
<c>lib/low/Xoodoo-times16/AVX512/Xoodoo-times16-SIMD512.c</c>
|
|
724
|
+
<h>lib/low/Xoodoo-times16/AVX512/Xoodoo-times16-SnP.h</h>
|
|
725
|
+
</fragment>
|
|
726
|
+
|
|
727
|
+
<!--
|
|
728
|
+
For Ketje, one of the following fragments is required:
|
|
729
|
+
* Ket-SnP: to glue the Ketje implementation to an implementation of the permutation with SnP (default choice)
|
|
730
|
+
* Ket-ARMv7M: same as Ket{Jr, Sr, Mn, Mj}-SnP, but with specific optimizations for ARMv7M
|
|
731
|
+
* Ket-optimizedLE: same as Ket{Jr, Sr, Mn, Mj}-SnP, but with specific optimizations for platforms that are little-endian and such that the state representation is pure
|
|
732
|
+
-->
|
|
733
|
+
|
|
734
|
+
<!-- "Ket", the layer between SnP and Ketje services -->
|
|
735
|
+
|
|
736
|
+
<!-- TODO Some day, it would be good to blend Ket-SnP and Ket-optimizedLE, and automate the selection based on the reprensentation of the state and the endianness of the platform. -->
|
|
737
|
+
|
|
738
|
+
<fragment name="Ket-SnP">
|
|
739
|
+
<inc>lib/low/Ketje/SnP-compliant/Ket.inc</inc>
|
|
740
|
+
<h>lib/low/Ketje/SnP-compliant/Ket.h</h>
|
|
741
|
+
<c>lib/low/Ketje/SnP-compliant/Ket.c</c>
|
|
742
|
+
</fragment>
|
|
743
|
+
|
|
744
|
+
<fragment name="Ket-optimizedLE">
|
|
745
|
+
<inc>lib/low/Ketje/OptimizedLE/Ket.inc</inc>
|
|
746
|
+
<h>lib/low/Ketje/OptimizedLE/Ket.h</h>
|
|
747
|
+
<c>lib/low/Ketje/OptimizedLE/Ket.c</c>
|
|
748
|
+
</fragment>
|
|
749
|
+
|
|
750
|
+
<fragment name="Ket-ARMv7M">
|
|
751
|
+
<h>lib/low/Ketje/OptimizedAsmARM/Ket.h</h>
|
|
752
|
+
<s>lib/low/Ketje/OptimizedAsmARM/KetjeJr-armv7m-le-gcc.s</s>
|
|
753
|
+
<s>lib/low/Ketje/OptimizedAsmARM/KetjeSr-armv7m-le-gcc.s</s>
|
|
754
|
+
<!-- TODO: <fragment name="Ket-ARMv7M" inherits="KetJr-ARMv7M KetSr-ARMv7M KetMn-optimizedLE KetMj-SnP"/> -->
|
|
755
|
+
</fragment>
|
|
756
|
+
|
|
757
|
+
</group>
|