sleeping_kangaroo12 0.0.1 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (296) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +27 -0
  3. data/README.md +48 -53
  4. data/ext/Rakefile +12 -37
  5. data/ext/binding/sleeping_kangaroo12.c +1 -16
  6. data/ext/{xkcp → k12}/Makefile +0 -0
  7. data/ext/k12/Makefile.build +118 -0
  8. data/ext/k12/README.markdown +86 -0
  9. data/ext/k12/lib/ARMv8Asha3/KeccakP-1600-ARMv8Asha3.S +623 -0
  10. data/ext/k12/lib/ARMv8Asha3/KeccakP-1600-SnP.h +65 -0
  11. data/ext/k12/lib/ARMv8Asha3/KeccakP-1600-opt64.c +227 -0
  12. data/ext/{xkcp/lib/low/KeccakP-1600/compact → k12/lib/Inplace32BI}/KeccakP-1600-SnP.h +4 -9
  13. data/ext/{xkcp/lib/low/KeccakP-1600/plain-32bits-inplace → k12/lib/Inplace32BI}/KeccakP-1600-inplace32BI.c +65 -160
  14. data/ext/k12/lib/KangarooTwelve.c +332 -0
  15. data/ext/{xkcp/lib/high/KangarooTwelve → k12/lib}/KangarooTwelve.h +53 -16
  16. data/ext/{xkcp/lib/low/KeccakP-1600/AVX2 → k12/lib/Optimized64}/KeccakP-1600-AVX2.s +122 -558
  17. data/ext/k12/lib/Optimized64/KeccakP-1600-AVX512-plainC.c +241 -0
  18. data/ext/k12/lib/Optimized64/KeccakP-1600-AVX512.s +551 -0
  19. data/ext/k12/lib/Optimized64/KeccakP-1600-SnP.h +74 -0
  20. data/ext/{xkcp/lib/low/KeccakP-1600/common/KeccakP-1600-64.macros → k12/lib/Optimized64/KeccakP-1600-opt64.c} +447 -169
  21. data/ext/k12/lib/Optimized64/KeccakP-1600-runtimeDispatch.c +406 -0
  22. data/ext/k12/lib/Optimized64/KeccakP-1600-timesN-AVX2.c +419 -0
  23. data/ext/k12/lib/Optimized64/KeccakP-1600-timesN-AVX512.c +458 -0
  24. data/ext/k12/lib/Optimized64/KeccakP-1600-timesN-SSSE3.c +438 -0
  25. data/ext/{xkcp/lib/low/KeccakP-1600/plain-64bits → k12/lib/Plain64}/KeccakP-1600-SnP.h +14 -20
  26. data/ext/{xkcp/lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.h → k12/lib/Plain64/KeccakP-1600-plain64.c} +9 -8
  27. data/ext/{xkcp/lib/common → k12/lib}/align.h +3 -2
  28. data/ext/{xkcp/lib/common → k12/lib}/brg_endian.h +0 -0
  29. data/ext/{xkcp → k12}/support/Build/ExpandProducts.xsl +0 -0
  30. data/ext/{xkcp → k12}/support/Build/ToGlobalMakefile.xsl +0 -0
  31. data/ext/{xkcp → k12}/support/Build/ToOneTarget.xsl +0 -0
  32. data/ext/{xkcp → k12}/support/Build/ToTargetConfigFile.xsl +0 -0
  33. data/ext/{xkcp → k12}/support/Build/ToTargetMakefile.xsl +10 -16
  34. data/ext/{xkcp → k12}/support/Build/ToVCXProj.xsl +0 -0
  35. data/lib/sleeping_kangaroo12/binding.rb +2 -1
  36. data/lib/sleeping_kangaroo12/build/loader.rb +1 -0
  37. data/lib/sleeping_kangaroo12/build/platform.rb +1 -0
  38. data/lib/sleeping_kangaroo12/digest.rb +38 -4
  39. data/lib/sleeping_kangaroo12/version.rb +1 -1
  40. metadata +48 -288
  41. data/ext/config/xkcp.build +0 -17
  42. data/ext/xkcp/LICENSE +0 -1
  43. data/ext/xkcp/Makefile.build +0 -200
  44. data/ext/xkcp/README.markdown +0 -296
  45. data/ext/xkcp/lib/HighLevel.build +0 -143
  46. data/ext/xkcp/lib/LowLevel.build +0 -757
  47. data/ext/xkcp/lib/high/KangarooTwelve/KangarooTwelve.c +0 -301
  48. data/ext/xkcp/lib/high/Keccak/FIPS202/KeccakHash.c +0 -81
  49. data/ext/xkcp/lib/high/Keccak/FIPS202/KeccakHash.h +0 -125
  50. data/ext/xkcp/lib/high/Keccak/FIPS202/SimpleFIPS202.c +0 -48
  51. data/ext/xkcp/lib/high/Keccak/FIPS202/SimpleFIPS202.h +0 -79
  52. data/ext/xkcp/lib/high/Keccak/KeccakDuplex.c +0 -81
  53. data/ext/xkcp/lib/high/Keccak/KeccakDuplex.h +0 -73
  54. data/ext/xkcp/lib/high/Keccak/KeccakDuplex.inc +0 -195
  55. data/ext/xkcp/lib/high/Keccak/KeccakSponge.c +0 -111
  56. data/ext/xkcp/lib/high/Keccak/KeccakSponge.h +0 -76
  57. data/ext/xkcp/lib/high/Keccak/KeccakSponge.inc +0 -314
  58. data/ext/xkcp/lib/high/Keccak/PRG/KeccakPRG.c +0 -61
  59. data/ext/xkcp/lib/high/Keccak/PRG/KeccakPRG.h +0 -67
  60. data/ext/xkcp/lib/high/Keccak/PRG/KeccakPRG.inc +0 -128
  61. data/ext/xkcp/lib/high/Keccak/SP800-185/SP800-185.c +0 -93
  62. data/ext/xkcp/lib/high/Keccak/SP800-185/SP800-185.h +0 -599
  63. data/ext/xkcp/lib/high/Keccak/SP800-185/SP800-185.inc +0 -573
  64. data/ext/xkcp/lib/high/Ketje/Ketjev2.c +0 -87
  65. data/ext/xkcp/lib/high/Ketje/Ketjev2.h +0 -88
  66. data/ext/xkcp/lib/high/Ketje/Ketjev2.inc +0 -274
  67. data/ext/xkcp/lib/high/Keyak/Keyakv2.c +0 -132
  68. data/ext/xkcp/lib/high/Keyak/Keyakv2.h +0 -217
  69. data/ext/xkcp/lib/high/Keyak/Keyakv2.inc +0 -81
  70. data/ext/xkcp/lib/high/Keyak/Motorist.inc +0 -953
  71. data/ext/xkcp/lib/high/Kravatte/Kravatte.c +0 -533
  72. data/ext/xkcp/lib/high/Kravatte/Kravatte.h +0 -115
  73. data/ext/xkcp/lib/high/Kravatte/KravatteModes.c +0 -557
  74. data/ext/xkcp/lib/high/Kravatte/KravatteModes.h +0 -247
  75. data/ext/xkcp/lib/high/Xoodyak/Cyclist.h +0 -66
  76. data/ext/xkcp/lib/high/Xoodyak/Cyclist.inc +0 -336
  77. data/ext/xkcp/lib/high/Xoodyak/Xoodyak-parameters.h +0 -26
  78. data/ext/xkcp/lib/high/Xoodyak/Xoodyak.c +0 -55
  79. data/ext/xkcp/lib/high/Xoodyak/Xoodyak.h +0 -35
  80. data/ext/xkcp/lib/high/Xoofff/Xoofff.c +0 -634
  81. data/ext/xkcp/lib/high/Xoofff/Xoofff.h +0 -147
  82. data/ext/xkcp/lib/high/Xoofff/XoofffModes.c +0 -483
  83. data/ext/xkcp/lib/high/Xoofff/XoofffModes.h +0 -241
  84. data/ext/xkcp/lib/high/common/Phases.h +0 -25
  85. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-SnP.h +0 -41
  86. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv6m-le-armcc.s +0 -1666
  87. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv6m-le-gcc.s +0 -1655
  88. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7a-le-armcc.s +0 -1268
  89. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7a-le-gcc.s +0 -1264
  90. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7m-le-armcc.s +0 -1178
  91. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-inplace-32bi-armv7m-le-gcc.s +0 -1175
  92. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u1-32bi-armv6m-le-armcc.s +0 -1338
  93. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u1-32bi-armv6m-le-gcc.s +0 -1336
  94. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u2-32bi-armv6m-le-armcc.s +0 -1343
  95. data/ext/xkcp/lib/low/KeccakP-1600/ARM/KeccakP-1600-u2-32bi-armv6m-le-gcc.s +0 -1339
  96. data/ext/xkcp/lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-SnP.h +0 -42
  97. data/ext/xkcp/lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-armv7a-le-neon-armcc.s +0 -823
  98. data/ext/xkcp/lib/low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-armv7a-le-neon-gcc.s +0 -831
  99. data/ext/xkcp/lib/low/KeccakP-1600/ARMv8A/KeccakP-1600-SnP.h +0 -31
  100. data/ext/xkcp/lib/low/KeccakP-1600/ARMv8A/KeccakP-1600-armv8a-neon.s +0 -540
  101. data/ext/xkcp/lib/low/KeccakP-1600/AVR8/KeccakP-1600-SnP.h +0 -42
  102. data/ext/xkcp/lib/low/KeccakP-1600/AVR8/KeccakP-1600-avr8-compact.s +0 -733
  103. data/ext/xkcp/lib/low/KeccakP-1600/AVR8/KeccakP-1600-avr8-fast.s +0 -1121
  104. data/ext/xkcp/lib/low/KeccakP-1600/AVX2/KeccakP-1600-SnP.h +0 -52
  105. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/KeccakP-1600-AVX512.c +0 -623
  106. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/KeccakP-1600-SnP.h +0 -47
  107. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/u12/KeccakP-1600-AVX512-config.h +0 -6
  108. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/u6/KeccakP-1600-AVX512-config.h +0 -6
  109. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/C/ua/KeccakP-1600-AVX512-config.h +0 -6
  110. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/KeccakP-1600-AVX512.s +0 -1031
  111. data/ext/xkcp/lib/low/KeccakP-1600/AVX512/KeccakP-1600-SnP.h +0 -53
  112. data/ext/xkcp/lib/low/KeccakP-1600/XOP/KeccakP-1600-SnP.h +0 -44
  113. data/ext/xkcp/lib/low/KeccakP-1600/XOP/KeccakP-1600-XOP.c +0 -476
  114. data/ext/xkcp/lib/low/KeccakP-1600/XOP/u6/KeccakP-1600-XOP-config.h +0 -6
  115. data/ext/xkcp/lib/low/KeccakP-1600/XOP/ua/KeccakP-1600-XOP-config.h +0 -6
  116. data/ext/xkcp/lib/low/KeccakP-1600/common/KeccakP-1600-unrolling.macros +0 -305
  117. data/ext/xkcp/lib/low/KeccakP-1600/compact/KeccakP-1600-compact64.c +0 -420
  118. data/ext/xkcp/lib/low/KeccakP-1600/plain-32bits-inplace/KeccakP-1600-SnP.h +0 -43
  119. data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/KeccakP-1600-opt64.c +0 -565
  120. data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/lcu6/KeccakP-1600-opt64-config.h +0 -7
  121. data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/lcua/KeccakP-1600-opt64-config.h +0 -7
  122. data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/lcua-shld/KeccakP-1600-opt64-config.h +0 -8
  123. data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/u6/KeccakP-1600-opt64-config.h +0 -6
  124. data/ext/xkcp/lib/low/KeccakP-1600/plain-64bits/ua/KeccakP-1600-opt64-config.h +0 -6
  125. data/ext/xkcp/lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-SnP.h +0 -44
  126. data/ext/xkcp/lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-reference.h +0 -23
  127. data/ext/xkcp/lib/low/KeccakP-1600/ref-32bits/KeccakP-1600-reference32BI.c +0 -625
  128. data/ext/xkcp/lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-SnP.h +0 -44
  129. data/ext/xkcp/lib/low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.c +0 -440
  130. data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-SnP.h +0 -42
  131. data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-gas.s +0 -1196
  132. data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-gas_Apple.s +0 -1124
  133. data/ext/xkcp/lib/low/KeccakP-1600/x86-64/KeccakP-1600-x86-64-shld-gas.s +0 -1196
  134. data/ext/xkcp/lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-inplace-pl2-armv7a-neon-le-armcc.s +0 -1392
  135. data/ext/xkcp/lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-inplace-pl2-armv7a-neon-le-gcc.s +0 -1394
  136. data/ext/xkcp/lib/low/KeccakP-1600-times2/ARMv7A-NEON/KeccakP-1600-times2-SnP.h +0 -42
  137. data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/AVX512u12/SIMD512-2-config.h +0 -7
  138. data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/AVX512u4/SIMD512-2-config.h +0 -7
  139. data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/AVX512ufull/SIMD512-2-config.h +0 -7
  140. data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/KeccakP-1600-times2-SIMD512.c +0 -850
  141. data/ext/xkcp/lib/low/KeccakP-1600-times2/AVX512/KeccakP-1600-times2-SnP.h +0 -51
  142. data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/KeccakP-1600-times2-SIMD128.c +0 -957
  143. data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/KeccakP-1600-times2-SnP.h +0 -49
  144. data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/SSSE3-u2/SIMD128-config.h +0 -8
  145. data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/SSSE3-ua/SIMD128-config.h +0 -8
  146. data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/XOP-u2/SIMD128-config.h +0 -9
  147. data/ext/xkcp/lib/low/KeccakP-1600-times2/SIMD128/XOP-ua/SIMD128-config.h +0 -9
  148. data/ext/xkcp/lib/low/KeccakP-1600-times2/fallback-on1/KeccakP-1600-times2-SnP.h +0 -45
  149. data/ext/xkcp/lib/low/KeccakP-1600-times2/fallback-on1/KeccakP-1600-times2-on1.c +0 -37
  150. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/KeccakP-1600-times4-SIMD256.c +0 -1321
  151. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/KeccakP-1600-times4-SnP.h +0 -55
  152. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/u12/SIMD256-config.h +0 -7
  153. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/u6/SIMD256-config.h +0 -7
  154. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX2/ua/SIMD256-config.h +0 -7
  155. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/AVX512u12/SIMD512-4-config.h +0 -7
  156. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/AVX512u4/SIMD512-4-config.h +0 -7
  157. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/AVX512ufull/SIMD512-4-config.h +0 -7
  158. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/KeccakP-1600-times4-SIMD512.c +0 -881
  159. data/ext/xkcp/lib/low/KeccakP-1600-times4/AVX512/KeccakP-1600-times4-SnP.h +0 -51
  160. data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on1/KeccakP-1600-times4-SnP.h +0 -45
  161. data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on1/KeccakP-1600-times4-on1.c +0 -37
  162. data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on2/KeccakP-1600-times4-SnP.h +0 -45
  163. data/ext/xkcp/lib/low/KeccakP-1600-times4/fallback-on2/KeccakP-1600-times4-on2.c +0 -38
  164. data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/KeccakP-1600-times8-SIMD512.c +0 -1615
  165. data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/KeccakP-1600-times8-SnP.h +0 -57
  166. data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/u12/SIMD512-config.h +0 -7
  167. data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/u4/SIMD512-config.h +0 -7
  168. data/ext/xkcp/lib/low/KeccakP-1600-times8/AVX512/ua/SIMD512-config.h +0 -7
  169. data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on1/KeccakP-1600-times8-SnP.h +0 -45
  170. data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on1/KeccakP-1600-times8-on1.c +0 -37
  171. data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on2/KeccakP-1600-times8-SnP.h +0 -45
  172. data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on2/KeccakP-1600-times8-on2.c +0 -38
  173. data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on4/KeccakP-1600-times8-SnP.h +0 -45
  174. data/ext/xkcp/lib/low/KeccakP-1600-times8/fallback-on4/KeccakP-1600-times8-on4.c +0 -38
  175. data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-SnP.h +0 -41
  176. data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv6m-le-armcc.s +0 -442
  177. data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv6m-le-gcc.s +0 -446
  178. data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv7m-le-armcc.s +0 -419
  179. data/ext/xkcp/lib/low/KeccakP-200/ARM/KeccakP-200-armv7m-le-gcc.s +0 -427
  180. data/ext/xkcp/lib/low/KeccakP-200/AVR8/KeccakP-200-SnP.h +0 -41
  181. data/ext/xkcp/lib/low/KeccakP-200/AVR8/KeccakP-200-avr8-fast.s +0 -647
  182. data/ext/xkcp/lib/low/KeccakP-200/compact/KeccakP-200-SnP.h +0 -39
  183. data/ext/xkcp/lib/low/KeccakP-200/compact/KeccakP-200-compact.c +0 -190
  184. data/ext/xkcp/lib/low/KeccakP-200/ref/KeccakP-200-SnP.h +0 -43
  185. data/ext/xkcp/lib/low/KeccakP-200/ref/KeccakP-200-reference.c +0 -412
  186. data/ext/xkcp/lib/low/KeccakP-200/ref/KeccakP-200-reference.h +0 -23
  187. data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-SnP.h +0 -41
  188. data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv6m-le-armcc.s +0 -454
  189. data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv6m-le-gcc.s +0 -458
  190. data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv7m-le-armcc.s +0 -455
  191. data/ext/xkcp/lib/low/KeccakP-400/ARM/KeccakP-400-armv7m-le-gcc.s +0 -458
  192. data/ext/xkcp/lib/low/KeccakP-400/AVR8/KeccakP-400-SnP.h +0 -41
  193. data/ext/xkcp/lib/low/KeccakP-400/AVR8/KeccakP-400-avr8-fast.s +0 -728
  194. data/ext/xkcp/lib/low/KeccakP-400/ref/KeccakP-400-SnP.h +0 -43
  195. data/ext/xkcp/lib/low/KeccakP-400/ref/KeccakP-400-reference.c +0 -414
  196. data/ext/xkcp/lib/low/KeccakP-400/ref/KeccakP-400-reference.h +0 -23
  197. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-SnP.h +0 -42
  198. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u1-armv6m-le-armcc.s +0 -527
  199. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u1-armv6m-le-gcc.s +0 -533
  200. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv6m-le-armcc.s +0 -528
  201. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv6m-le-gcc.s +0 -534
  202. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7a-le-armcc.s +0 -521
  203. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7a-le-gcc.s +0 -527
  204. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7m-le-armcc.s +0 -517
  205. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-u2-armv7m-le-gcc.s +0 -523
  206. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-uf-armv7m-le-armcc.s +0 -550
  207. data/ext/xkcp/lib/low/KeccakP-800/ARM/KeccakP-800-uf-armv7m-le-gcc.s +0 -556
  208. data/ext/xkcp/lib/low/KeccakP-800/ARMv8A/KeccakP-800-SnP.h +0 -32
  209. data/ext/xkcp/lib/low/KeccakP-800/ARMv8A/KeccakP-800-armv8a-neon.s +0 -432
  210. data/ext/xkcp/lib/low/KeccakP-800/AVR8/KeccakP-800-SnP.h +0 -42
  211. data/ext/xkcp/lib/low/KeccakP-800/AVR8/KeccakP-800-avr8-fast.s +0 -929
  212. data/ext/xkcp/lib/low/KeccakP-800/compact/KeccakP-800-SnP.h +0 -40
  213. data/ext/xkcp/lib/low/KeccakP-800/compact/KeccakP-800-compact.c +0 -244
  214. data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-SnP.h +0 -46
  215. data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-opt32-bis.macros +0 -184
  216. data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-opt32.c +0 -454
  217. data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-opt32.macros +0 -459
  218. data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-unrolling-bis.macros +0 -83
  219. data/ext/xkcp/lib/low/KeccakP-800/plain/KeccakP-800-unrolling.macros +0 -88
  220. data/ext/xkcp/lib/low/KeccakP-800/plain/lcu2/KeccakP-800-opt32-config.h +0 -7
  221. data/ext/xkcp/lib/low/KeccakP-800/plain/lcua/KeccakP-800-opt32-config.h +0 -7
  222. data/ext/xkcp/lib/low/KeccakP-800/plain/u2/KeccakP-800-opt32-config.h +0 -7
  223. data/ext/xkcp/lib/low/KeccakP-800/plain/ua/KeccakP-800-opt32-config.h +0 -7
  224. data/ext/xkcp/lib/low/KeccakP-800/ref/KeccakP-800-SnP.h +0 -44
  225. data/ext/xkcp/lib/low/KeccakP-800/ref/KeccakP-800-reference.c +0 -437
  226. data/ext/xkcp/lib/low/KeccakP-800/ref/KeccakP-800-reference.h +0 -23
  227. data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/Ket.h +0 -57
  228. data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeJr-armv7m-le-armcc.s +0 -475
  229. data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeJr-armv7m-le-gcc.s +0 -480
  230. data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeSr-armv7m-le-armcc.s +0 -590
  231. data/ext/xkcp/lib/low/Ketje/OptimizedAsmARM/KetjeSr-armv7m-le-gcc.s +0 -590
  232. data/ext/xkcp/lib/low/Ketje/OptimizedLE/Ket.c +0 -126
  233. data/ext/xkcp/lib/low/Ketje/OptimizedLE/Ket.h +0 -68
  234. data/ext/xkcp/lib/low/Ketje/OptimizedLE/Ket.inc +0 -174
  235. data/ext/xkcp/lib/low/Ketje/SnP-compliant/Ket.c +0 -80
  236. data/ext/xkcp/lib/low/Ketje/SnP-compliant/Ket.h +0 -68
  237. data/ext/xkcp/lib/low/Ketje/SnP-compliant/Ket.inc +0 -142
  238. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-SnP.h +0 -55
  239. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-u1-armv6m-le-armcc.s +0 -1086
  240. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-u1-armv6m-le-gcc.s +0 -1092
  241. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv6-le-armcc.s +0 -721
  242. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv6-le-gcc.s +0 -726
  243. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv7m-le-armcc.s +0 -723
  244. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodoo-uf-armv7m-le-gcc.s +0 -729
  245. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-u1-armv6m-le-armcc.s +0 -1164
  246. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-u1-armv6m-le-gcc.s +0 -1165
  247. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv6-le-armcc.s +0 -562
  248. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv6-le-gcc.s +0 -563
  249. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv7m-le-armcc.s +0 -563
  250. data/ext/xkcp/lib/low/Xoodoo/ARM/Xoodyak-uf-armv7m-le-gcc.s +0 -565
  251. data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-SnP.h +0 -55
  252. data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-uf-armv7a-neon-le-armcc.s +0 -476
  253. data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodoo-uf-armv7a-neon-le-gcc.s +0 -485
  254. data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodyak-uf-armv7a-neon-le-armcc.s +0 -362
  255. data/ext/xkcp/lib/low/Xoodoo/ARMv7A-NEON/Xoodyak-uf-armv7a-neon-le-gcc.s +0 -367
  256. data/ext/xkcp/lib/low/Xoodoo/AVR8/Xoodoo-SnP.h +0 -43
  257. data/ext/xkcp/lib/low/Xoodoo/AVR8/Xoodoo-avr8-u1.s +0 -1341
  258. data/ext/xkcp/lib/low/Xoodoo/AVX512/Xoodoo-SIMD512.c +0 -581
  259. data/ext/xkcp/lib/low/Xoodoo/AVX512/Xoodoo-SnP.h +0 -58
  260. data/ext/xkcp/lib/low/Xoodoo/AVX512/Xoodyak-full-block-SIMD512.c +0 -332
  261. data/ext/xkcp/lib/low/Xoodoo/SSE2/Xoodoo-SIMD128.c +0 -329
  262. data/ext/xkcp/lib/low/Xoodoo/SSE2/Xoodoo-SnP.h +0 -53
  263. data/ext/xkcp/lib/low/Xoodoo/SSE2/Xoodyak-full-block-SIMD128.c +0 -355
  264. data/ext/xkcp/lib/low/Xoodoo/Xoodoo.h +0 -79
  265. data/ext/xkcp/lib/low/Xoodoo/plain/Xoodoo-SnP.h +0 -56
  266. data/ext/xkcp/lib/low/Xoodoo/plain/Xoodoo-optimized.c +0 -399
  267. data/ext/xkcp/lib/low/Xoodoo/plain/Xoodyak-full-blocks.c +0 -127
  268. data/ext/xkcp/lib/low/Xoodoo/ref/Xoodoo-SnP.h +0 -43
  269. data/ext/xkcp/lib/low/Xoodoo/ref/Xoodoo-reference.c +0 -253
  270. data/ext/xkcp/lib/low/Xoodoo-times16/AVX512/Xoodoo-times16-SIMD512.c +0 -1044
  271. data/ext/xkcp/lib/low/Xoodoo-times16/AVX512/Xoodoo-times16-SnP.h +0 -49
  272. data/ext/xkcp/lib/low/Xoodoo-times16/fallback-on1/Xoodoo-times16-SnP.h +0 -45
  273. data/ext/xkcp/lib/low/Xoodoo-times16/fallback-on1/Xoodoo-times16-on1.c +0 -37
  274. data/ext/xkcp/lib/low/Xoodoo-times4/ARMv7A-NEON/Xoodoo-times4-ARMv7A.s +0 -1587
  275. data/ext/xkcp/lib/low/Xoodoo-times4/ARMv7A-NEON/Xoodoo-times4-SnP.h +0 -48
  276. data/ext/xkcp/lib/low/Xoodoo-times4/AVX512/Xoodoo-times4-SIMD512.c +0 -1202
  277. data/ext/xkcp/lib/low/Xoodoo-times4/AVX512/Xoodoo-times4-SnP.h +0 -48
  278. data/ext/xkcp/lib/low/Xoodoo-times4/SSSE3/Xoodoo-times4-SIMD128.c +0 -484
  279. data/ext/xkcp/lib/low/Xoodoo-times4/SSSE3/Xoodoo-times4-SnP.h +0 -44
  280. data/ext/xkcp/lib/low/Xoodoo-times4/fallback-on1/Xoodoo-times4-SnP.h +0 -45
  281. data/ext/xkcp/lib/low/Xoodoo-times4/fallback-on1/Xoodoo-times4-on1.c +0 -37
  282. data/ext/xkcp/lib/low/Xoodoo-times8/AVX2/Xoodoo-times8-SIMD256.c +0 -939
  283. data/ext/xkcp/lib/low/Xoodoo-times8/AVX2/Xoodoo-times8-SnP.h +0 -49
  284. data/ext/xkcp/lib/low/Xoodoo-times8/AVX512/Xoodoo-times8-SIMD512.c +0 -1216
  285. data/ext/xkcp/lib/low/Xoodoo-times8/AVX512/Xoodoo-times8-SnP.h +0 -48
  286. data/ext/xkcp/lib/low/Xoodoo-times8/fallback-on1/Xoodoo-times8-SnP.h +0 -45
  287. data/ext/xkcp/lib/low/Xoodoo-times8/fallback-on1/Xoodoo-times8-on1.c +0 -37
  288. data/ext/xkcp/lib/low/common/PlSnP-Fallback.inc +0 -290
  289. data/ext/xkcp/lib/low/common/SnP-Relaned.h +0 -141
  290. data/ext/xkcp/support/Kernel-PMU/Kernel-pmu.md +0 -133
  291. data/ext/xkcp/support/Kernel-PMU/Makefile +0 -8
  292. data/ext/xkcp/support/Kernel-PMU/enable_arm_pmu.c +0 -129
  293. data/ext/xkcp/support/Kernel-PMU/load-module +0 -1
  294. data/ext/xkcp/util/KeccakSum/KeccakSum.c +0 -394
  295. data/ext/xkcp/util/KeccakSum/base64.c +0 -86
  296. data/ext/xkcp/util/KeccakSum/base64.h +0 -12
@@ -1,757 +0,0 @@
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>