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,200 +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
- <build all="all" xmlns:xi="http://www.w3.org/2001/XInclude">
16
-
17
- <xi:include href="lib/HighLevel.build"/>
18
- <xi:include href="lib/LowLevel.build"/>
19
- <xi:include href="tests/SUPERCOP/SUPERCOP.build"/>
20
- <xi:include href="tests/NIST_LWC/NIST_LWC.build"/>
21
- <xi:include href="doc/HOWTO-customize.build"/>
22
-
23
- <!-- For the name of the targets, please see the end of this file. -->
24
-
25
- <fragment name="common">
26
- <h>lib/common/align.h</h>
27
- <h>lib/common/brg_endian.h</h>
28
- </fragment>
29
-
30
- <!-- *** Utilities *** -->
31
-
32
- <!-- The unit tests -->
33
- <fragment name="UT" inherits="common">
34
- <c>tests/UnitTests/main.c</c>
35
- <c>tests/UnitTests/UT.c</c>
36
- <h>tests/UnitTests/UT.h</h>
37
- <c>tests/UnitTests/testPermutations.c</c>
38
- <h>tests/UnitTests/testPermutations.h</h>
39
- <inc>tests/UnitTests/testSnP.inc</inc>
40
- <inc>tests/UnitTests/testPlSnP.inc</inc>
41
- <c>tests/UnitTests/testSponge.c</c>
42
- <inc>tests/UnitTests/testSponge.inc</inc>
43
- <h>tests/UnitTests/testSponge.h</h>
44
- <c>tests/UnitTests/testDuplex.c</c>
45
- <inc>tests/UnitTests/testDuplex.inc</inc>
46
- <h>tests/UnitTests/testDuplex.h</h>
47
- <c>tests/UnitTests/testMotorist.c</c>
48
- <inc>tests/UnitTests/testMotorist.inc</inc>
49
- <h>tests/UnitTests/testMotorist.h</h>
50
- <c>tests/UnitTests/testKeyakv2.c</c>
51
- <inc>tests/UnitTests/testKeyakv2.inc</inc>
52
- <h>tests/UnitTests/testKeyakv2.h</h>
53
- <c>tests/UnitTests/testKetjev2.c</c>
54
- <h>tests/UnitTests/testKetjev2.h</h>
55
- <inc>tests/UnitTests/testKetjev2.inc</inc>
56
- <c>tests/UnitTests/genKAT.c</c>
57
- <h>tests/UnitTests/genKAT.h</h>
58
- <c>tests/UnitTests/testPRG.c</c>
59
- <inc>tests/UnitTests/testPRG.inc</inc>
60
- <h>tests/UnitTests/testPRG.h</h>
61
- <c>tests/UnitTests/testKangarooTwelve.c</c>
62
- <h>tests/UnitTests/testKangarooTwelve.h</h>
63
- <c>tests/UnitTests/testKravatte.c</c>
64
- <h>tests/UnitTests/testKravatte.h</h>
65
- <c>tests/UnitTests/testKravatteModes.c</c>
66
- <h>tests/UnitTests/testKravatteModes.h</h>
67
- <c>tests/UnitTests/testSP800-185.c</c>
68
- <h>tests/UnitTests/testSP800-185.h</h>
69
- <c>tests/UnitTests/testXoofff.c</c>
70
- <h>tests/UnitTests/testXoofff.h</h>
71
- <c>tests/UnitTests/testXoofffModes.c</c>
72
- <h>tests/UnitTests/testXoofffModes.h</h>
73
- <c>tests/UnitTests/testXoodyak.c</c>
74
- <h>tests/UnitTests/testXoodyak.h</h>
75
- </fragment>
76
-
77
- <fragment name="UnitTests" inherits="All UT"/>
78
-
79
-
80
- <!-- The benchmarking tool -->
81
-
82
- <fragment name="BM" inherits="common">
83
- <c>tests/Benchmarks/main.c</c>
84
- <c>tests/Benchmarks/testPerformance.c</c>
85
- <c>tests/Benchmarks/timing.c</c>
86
- <h>tests/Benchmarks/timing.h</h>
87
- <h>tests/Benchmarks/testPerformance.h</h>
88
- <inc>tests/Benchmarks/timingSnP.inc</inc>
89
- <inc>tests/Benchmarks/timingPlSnP.inc</inc>
90
- <inc>tests/Benchmarks/timingSponge.inc</inc>
91
- <inc>tests/Benchmarks/timingKeyak.inc</inc>
92
- <c>tests/Benchmarks/testXooPerformance.c</c>
93
- <h>tests/Benchmarks/testXooPerformance.h</h>
94
- <inc>tests/Benchmarks/timingXooSnP.inc</inc>
95
- <inc>tests/Benchmarks/timingXooPlSnP.inc</inc>
96
- <gcc>-lm</gcc>
97
- </fragment>
98
-
99
- <fragment name="Benchmarks" inherits="All BM"/>
100
-
101
- <!-- To compute a hash of a file -->
102
- <fragment name="KeccakSum" inherits="FIPS202 SP800-185 KangarooTwelve">
103
- <c>util/KeccakSum/KeccakSum.c</c>
104
- <c>util/KeccakSum/base64.c</c>
105
- <h>util/KeccakSum/base64.h</h>
106
- </fragment>
107
-
108
- <!-- To make a library -->
109
- <fragment name="libXKCP.a" inherits="All"/>
110
- <fragment name="libXKCP.so" inherits="All"/>
111
-
112
- <!-- *** CAESAR-related targets *** -->
113
-
114
- <fragment name="crypto_aead_test">
115
- <h>tests/SUPERCOP/test_crypto_aead.h</h>
116
- <c>tests/SUPERCOP/test_crypto_aead.c</c>
117
- </fragment>
118
-
119
- <!-- *** Targets *** -->
120
-
121
- <fragment name="serial-fallbacks" inherits="K1600x2-on1 K1600x4-on1 K1600x8-on1 Xoodoox4-on1 Xoodoox8-on1 Xoodoox16-on1"/>
122
-
123
- <!-- Reference implementations -->
124
- <fragment name="reference" inherits="K200-ref K400-ref K800-ref K1600-ref-64bits serial-fallbacks Ket-SnP Xoodoo-ref">
125
- <c>tests/UnitTests/displayIntermediateValues.c</c>
126
- <h>tests/UnitTests/displayIntermediateValues.h</h>
127
- <define>KeccakReference</define>
128
- <gcc>-O</gcc>
129
- </fragment>
130
-
131
- <!-- Reference implementations dedicated to 32-bit platforms
132
- (i.e., featuring bit interleaving for Keccak-p[1600]) -->
133
- <fragment name="reference32bits" inherits="K200-ref K400-ref K800-ref K1600-ref-32bits serial-fallbacks Ket-SnP Xoodoo-ref">
134
- <c>tests/UnitTests/displayIntermediateValues.c</c>
135
- <h>tests/UnitTests/displayIntermediateValues.h</h>
136
- <define>KeccakReference</define>
137
- <define>KeccakReference32BI</define>
138
- <gcc>-O</gcc>
139
- </fragment>
140
-
141
- <!-- Compact implementations -->
142
- <fragment name="compact" inherits="K200-compact K400-ref K800-compact K1600-compact serial-fallbacks Ket-SnP Xoodoo-plain-ua"/>
143
-
144
- <!-- Generically optimized 32-bit implementations -->
145
- <fragment name="generic32" inherits="K200-ref K400-ref K800-plain-u2 K1600-plain-32bits-inplace serial-fallbacks Ket-SnP Xoodoo-plain-ua"/>
146
- <!-- Generically optimized 32-bit implementations, featuring lane complementing -->
147
- <fragment name="generic32lc" inherits="K200-ref K400-ref K800-plain-lcu2 K1600-plain-32bits-inplace serial-fallbacks Ket-SnP Xoodoo-plain-ua"/>
148
-
149
- <!-- Generically optimized 64-bit implementations -->
150
- <fragment name="generic64" inherits="K200-ref K400-ref K800-plain-ua K1600-plain-64bits-ua serial-fallbacks Ket-SnP Xoodoo-plain-ua"/>
151
- <!-- Generically optimized 64-bit implementations, featuring lane complementing -->
152
- <fragment name="generic64lc" inherits="K200-ref K400-ref K800-plain-lcua K1600-plain-64bits-lcua serial-fallbacks Ket-SnP Xoodoo-plain-ua"/>
153
-
154
- <!-- Implementations selected for the processors that support the SSSE3 instruction set -->
155
- <fragment name="SSSE3" inherits="K200-ref K400-ref K800-plain-lcua K1600-plain-64bits-lcua K1600x2-SSSE3-u2 K1600x4-on2 K1600x8-on2 Ket-SnP Xoodoo-SSE2 Xoodoox4-SSSE3 Xoodoox8-on1 Xoodoox16-on1"/>
156
-
157
- <!-- Implementations selected for processors that support the AVX instruction set (e.g., Sandy Bridge microarchitectures) -->
158
- <fragment name="AVX" inherits="K200-ref K400-ref K800-plain-lcua K1600-plain-64bits-lcua-shld K1600x2-SSSE3-ua K1600x4-on2 K1600x8-on2 Ket-SnP Xoodoo-SSE2 Xoodoox4-SSSE3 Xoodoox8-on1 Xoodoox16-on1">
159
- <msvc>/arch:AVX</msvc>
160
- </fragment>
161
- <!-- Implementations selected for processors that support the XOP instruction set (e.g., Bulldozer microarchitecture) -->
162
- <fragment name="XOP" inherits="K200-ref K400-ref K800-plain-lcua K1600-XOP-ua K1600x2-XOP-ua K1600x4-on2 K1600x8-on2 Ket-SnP Xoodoo-SSE2 Xoodoox4-SSSE3 Xoodoox8-on1 Xoodoox16-on1"/>
163
- <!-- Implementations selected for processors that support the AVX2 instruction set (e.g., Haswell and Skylake microarchitectures) -->
164
- <fragment name="AVX2" inherits="K200-ref K400-ref K800-plain-ua K1600-AVX2 K1600x2-SSSE3-u2 K1600x4-AVX2-u12 K1600x8-on4 Ket-SnP Xoodoo-SSE2 Xoodoox4-SSSE3 Xoodoox8-AVX2 Xoodoox16-on1"/>
165
- <!-- Same, but without the assembly file (for MS Visual Studio) -->
166
- <fragment name="AVX2noAsm" inherits="K200-ref K400-ref K800-plain-ua K1600-plain-64bits-ua K1600x2-SSSE3-u2 K1600x4-AVX2-u12 K1600x8-on4 Ket-SnP Xoodoo-SSE2 Xoodoox4-SSSE3 Xoodoox8-AVX2 Xoodoox16-on1">
167
- <msvc>/arch:AVX2</msvc>
168
- </fragment>
169
-
170
- <!-- Implementations selected for the processors that support the AVX-512 instruction set (e.g., SkylakeX microarchitecture) -->
171
- <fragment name="AVX512" inherits="K200-ref K400-ref K800-plain-ua K1600-AVX512 K1600x2-AVX512-u12 K1600x4-AVX512-u12 K1600x8-AVX512-u12 Ket-SnP Xoodoo-AVX512 Xoodoox4-AVX512 Xoodoox8-AVX512 Xoodoox16-AVX512"/>
172
- <!-- Same, but without the assembly file (for MS Visual Studio) -->
173
- <fragment name="AVX512noAsm" inherits="K200-ref K400-ref K800-plain-ua K1600-AVX512-C K1600x2-AVX512-u12 K1600x4-AVX512-u12 K1600x8-AVX512-u12 Ket-SnP Xoodoo-AVX512 Xoodoox4-AVX512 Xoodoox8-AVX512 Xoodoox16-AVX512">
174
- <msvc>/arch:AVX512</msvc>
175
- </fragment>
176
-
177
- <!-- Implementations selected for ARMv6 -->
178
- <fragment name="ARMv6" inherits="K200-ARMv6M K400-ARMv6M K800-ARMv6M-u2 K1600-ARMv6M-u2 serial-fallbacks Ket-SnP Xoodoo-ARMv6"/>
179
- <!-- Implementations selected for ARMv6M -->
180
- <fragment name="ARMv6M" inherits="K200-ARMv6M K400-ARMv6M K800-ARMv6M-u2 K1600-ARMv6M-u2 serial-fallbacks Ket-SnP Xoodoo-ARMv6M"/>
181
- <!-- Implementations selected for ARMv7M -->
182
- <fragment name="ARMv7M" inherits="K200-ARMv7M K400-ARMv7M K800-ARMv7M-u2 K1600-ARMv7M-inplace serial-fallbacks Ket-ARMv7M Xoodoo-ARMv7M"/>
183
- <!-- Implementations selected for ARMv7A -->
184
- <fragment name="ARMv7A" inherits="K200-ref K400-ref K800-ARMv7A-u2 K1600-ARMv7A-NEON K1600x2-ARMv7A-NEON K1600x4-on2 K1600x8-on2 Ket-optimizedLE Xoodoo-ARMv7A-NEON Xoodoox4-ARMv7A-NEON Xoodoox8-on1 Xoodoox16-on1"/>
185
-
186
- <!-- Implementations selected for ARMv8A -->
187
- <fragment name="ARMv8A" inherits="K200-ref K400-ref K800-plain-ua K1600-plain-64bits-ua serial-fallbacks Ket-optimizedLE Xoodoo-plain-ua"/>
188
-
189
- <!-- Implementations selected for 8-bit AVR -->
190
- <fragment name="AVR8" inherits="K200-AVR8 K400-AVR8 K800-AVR8 K1600-AVR8 serial-fallbacks Ket-SnP Xoodoo-AVR8"/>
191
-
192
- <!-- Target names are of the form x/y where x is taken from the first set and y from the second set. -->
193
- <group all="XKCP">
194
- <product delimiter="/">
195
- <factor set="reference reference32bits compact generic32 generic32lc generic64 generic64lc SSSE3 AVX XOP AVX2 AVX2noAsm AVX512 AVX512noAsm ARMv6 ARMv6M ARMv7M ARMv7A ARMv8A AVR8"/>
196
- <factor set="UnitTests Benchmarks KeccakSum libXKCP.a libXKCP.so libXKCP.dylib"/>
197
- </product>
198
- </group>
199
-
200
- </build>
@@ -1,296 +0,0 @@
1
- [![Build Status](http://img.shields.io/travis/XKCP/XKCP.svg)](https://travis-ci.org/XKCP/XKCP)
2
-
3
- <img src="doc/logo/XKCP-Anna-banner.svg" width="60%" />
4
-
5
- # What is the XKCP?
6
-
7
- The **eXtended Keccak Code Package** (or the **Xoodoo and Keccak Code Package**, in both cases abbreviated as **XKCP**) is a repository that gathers different free and open-source implementations of the cryptographic schemes defined by the Keccak team.
8
- This includes the [Keccak sponge function family](https://keccak.team/keccak.html)
9
- and closely related variants, such as
10
-
11
- * the SHAKE extendable-output functions and SHA-3 hash functions from [FIPS 202][fips202_standard],
12
- * the cSHAKE, KMAC, ParallelHash and TupleHash functions from [NIST SP 800-185][sp800_185_standard],
13
- * the [Ketje][caesar_ketje] and [Keyak][caesar_keyak] authenticated encryption schemes,
14
- * the fast [KangarooTwelve][k12] extendable-output function,
15
- * the [Kravatte](https://keccak.team/kravatte.html) pseudo-random function and its modes,
16
-
17
- as well as the [Xoodoo](https://keccak.team/xoodoo.html) permutation and
18
-
19
- * the [Xoofff](https://keccak.team/xoofff.html) pseudo-random function and its modes (experimental),
20
- * the [Xoodyak](https://keccak.team/xoodyak.html) scheme (submission to the NIST lightweight crypto standardization process).
21
-
22
- The code in this repository can be built as a library called libXKCP.
23
-
24
-
25
-
26
- # What is libXKCP?
27
-
28
- **libXKCP** is a library that contains all the Keccak and Xoodoo-based cryptographic schemes mentioned above.
29
-
30
- To build it, the quick answer is to launch:
31
-
32
- ```
33
- make <target>/libXKCP.so
34
- ```
35
-
36
- where `<target>` is to be replaced with the actual target (e.g., `ARMv6M` or `AVX512`), and where `.so` can be replaced with `.a` for a static library or with `.dylib` for a dynamic library on macOS.
37
- More details, and in particular the list of targets, can be found in the section on how to build the XKCP below.
38
-
39
-
40
-
41
- # More precisely, what does the XKCP contain?
42
-
43
- First, the services available in this package are divided into high-level and low-level services. In a nutshell, the low level corresponds to Keccak-_f_[1600] and basic state manipulation, while the high level contains the constructions and the modes for, e.g., sponge functions, hashing or authenticated encryption. For more details, please see the section "_How is the code organized?_" below.
44
-
45
- Second, these high-level and low-level services can be compiled as the libXKCP library.
46
-
47
- Then, the XKCP also contains some utilities for testing, benchmarking and illustration purposes.
48
-
49
- Finally, the repository contains some standalone implementations.
50
-
51
-
52
- ## High-level services
53
-
54
- When used as a library or directly from the sources, the XKCP offers the high-level services documented in the following header files:
55
-
56
- * [`SimpleFIPS202`](lib/high/Keccak/FIPS202/SimpleFIPS202.h), the six approved FIPS 202 instances (SHAKE128, SHAKE256 and the SHA-3 hash functions) through simple functions.
57
- * [`KeccakHash`](lib/high/Keccak/FIPS202/KeccakHash.h), the six approved FIPS 202 instances, as well as any Keccak instance based on Keccak-_f_[1600]. This more advanced interface proposes a message queue (init-update-final) and supports bit-level inputs if needed.
58
- * [`SP800-185`](lib/high/Keccak/SP800-185/SP800-185.h), the functions (cSHAKE, KMAC, ParallelHash and TupleHash) in the official NIST SP 800-185 standard.
59
- * [`KeccakSponge`](doc/KeccakSponge-documentation.h), all Keccak sponge functions, with or without a message queue.
60
- * [`KeccakDuplex`](doc/KeccakDuplex-documentation.h), all Keccak duplex objects.
61
- * [`KeccakPRG`](doc/KeccakPRG-documentation.h), a pseudo-random number generator based on Keccak duplex objects.
62
- * [`Keyak`](doc/Keyak-documentation.h), the authenticated encryption schemes River, Lake, Sea, Ocean and Lunar Keyak.
63
- * [`Ketje`](doc/Ketje-documentation.h), the lightweight authenticated encryption schemes Ketje Jr, Ketje Sr, Ketje Minor and Ketje Major.
64
- * [`KangarooTwelve`](lib/high/KangarooTwelve/KangarooTwelve.h), the fast hashing mode based on Keccak-_p_[1600, 12] and Sakura coding.
65
- * [`Kravatte`](lib/high/Kravatte/Kravatte.h) and [`KravatteModes`](lib/high/Kravatte/KravatteModes.h), the pseudo-random function Kravatte, as well as the modes on top of it (SANE, SANSE, WBC and WBC-AE).
66
- * [`Xoofff`](lib/high/Xoofff/Xoofff.h) and [`XoofffModes`](lib/high/Xoofff/XoofffModes.h), the pseudo-random function Xoofff, as well as the modes on top of it (SANE, SANSE, WBC and WBC-AE).
67
- * [`Xoodyak`](doc/Xoodyak-documentation.h), the lightweight cryptographic scheme Xoodyak that can be used for hashing, encryption, MAC computation and authenticated encryption.
68
-
69
-
70
- ## Low-level services
71
-
72
- The low-level services implement the different permutations Keccak-_f_[200 to 1600] and Keccak-_p_[200 to 1600]. Note that these two permutation families are closely related. In Keccak-_p_ the number of rounds is a parameter while in Keccak-_f_ it is fixed. As Keccak-_f_ are just instances of Keccak-_p_, we focus on the latter here.
73
-
74
- The low-level services provide an opaque representation of the state together with functions to add data into and extract data from the state. Together with the permutations themselves, the low-level services implement what we call the **state and permutation** interface (abbreviated **SnP**). For parallelized implementation, we similarly use the **parallel** state and permutation interface or **PlSnP**.
75
-
76
- * In [`lib/low/`](lib/low/), one can find implementations of the following permutations for different platforms.
77
- + [`lib/low/KeccakP-200/`](lib/low/KeccakP-200/) for Keccak-_p_[200].
78
- + [`lib/low/KeccakP-400/`](lib/low/KeccakP-400/), for Keccak-_p_[400].
79
- + [`lib/low/KeccakP-800/`](lib/low/KeccakP-800/), for Keccak-_p_[800].
80
- + [`lib/low/KeccakP-1600/`](lib/low/KeccakP-1600/), for Keccak-_p_[1600]. This is the one used in the six approved FIPS 202 instances.
81
- + [`lib/low/Xoodoo/`](lib/low/Xoodoo/), for Xoodoo.
82
-
83
- * In addition, one can find the implementation of parallelized permutations. There are both implementations based on SIMD instructions and "fallback" implementations relying on a parallelized with a lower degree implementation or on a serial one.
84
-
85
- In both cases, the hierarchy first selects a permutation (or a permutation and a degree of parallelism) and then a given implementation. E.g., one finds in [`lib/low/KeccakP-1600-times4/`](lib/low/KeccakP-1600-times4/) the implementations of 4 parallel instances of Keccak-_p_[1600] and in [`lib/low/KeccakP-1600-times4/AVX2/`](lib/low/KeccakP-1600-times4/AVX2/) a 256-bit SIMD implementation for AVX2.
86
-
87
- The documentation of the low-level services can be found in [`SnP-documentation.h`](doc/SnP-documentation.h) and [`PlSnP-documentation.h`](doc/PlSnP-documentation.h).
88
-
89
-
90
- ## Utilities
91
-
92
- The package contains:
93
-
94
- * The **libXKCP** library;
95
- * [**Self-tests**](tests/UnitTests/main.c) that ensure that the implementation is working properly;
96
- * [**A benchmarking tool**](tests/Benchmarks/main.c) to measure the timing of the various schemes;
97
- * [**KeccakSum**](util/KeccakSum/KeccakSum.c) that computes a hash of the file (or multiple files) given in parameter.
98
-
99
- Note that, to run the benchmarks on ARM processors, you may need to include the Kernel-PMU module, see [`Kernel-pmu.md`](support/Kernel-PMU/Kernel-pmu.md) for more details.
100
-
101
-
102
- ## Standalone implementations
103
-
104
- The XKCP also provides some standalone implementations, including:
105
-
106
- * a very [compact](https://keccak.team/2015/tweetfips202.html) C code of the FIPS 202 (SHA-3) standard in [`Standalone/CompactFIPS202/C/`](Standalone/CompactFIPS202/C/);
107
- * a compact implementation in Python in [`Standalone/CompactFIPS202/Python/`](Standalone/CompactFIPS202/Python/);
108
- * the reference code of KangarooTwelve in Python in [`Standalone/KangarooTwelve/Python/`](Standalone/KangarooTwelve/Python/).
109
-
110
-
111
-
112
- # Under which license is the XKCP distributed?
113
-
114
- Most of the source and header files in the XKCP are released to the **public domain** and associated to the [CC0](http://creativecommons.org/publicdomain/zero/1.0/) deed. The exceptions are the following:
115
-
116
- * [`lib/common/brg_endian.h`](lib/common/brg_endian.h) is copyrighted by Brian Gladman and comes with a BSD 3-clause license;
117
- * [`tests/UnitTests/genKAT.c`](tests/UnitTests/genKAT.c) is based on [SHA-3 contest's code by Larry Bassham, NIST](http://csrc.nist.gov/groups/ST/hash/sha-3/documents/KAT1.zip), which he licensed under a BSD 3-clause license;
118
- * [`tests/UnitTests/timing.h`](tests/UnitTests/timing.h) is adapted from Google Benchmark and is licensed under the Apache License, Version 2.0;
119
- * [`KeccakP-1600-AVX2.s`](lib/low/KeccakP-1600/AVX2/KeccakP-1600-AVX2.s) is licensed under the [CRYPTOGAMS license](http://www.openssl.org/~appro/cryptogams/) (BSD-like);
120
- * [`support/Kernel-PMU/enable_arm_pmu.c`](support/Kernel-PMU/enable_arm_pmu.c) is licensed under the GNU General Public License by Bruno Pairault.
121
-
122
-
123
-
124
-
125
- # How can I build the XKCP?
126
-
127
- To build on Linux or macOS, the following tools are needed:
128
-
129
- * *GCC* or *clang*
130
- * *GNU make*
131
- * *xsltproc*
132
-
133
- The different targets are defined in [`Makefile.build`](Makefile.build). This file is expanded into a regular makefile using *xsltproc*. To use it, simply type, e.g.,
134
-
135
- ```
136
- make generic64/UnitTests
137
- ```
138
-
139
- or
140
-
141
- ```
142
- make AVX512/Benchmarks
143
- ```
144
-
145
- to build UnitTests using plain 64-bit code or to build the Benchmarks tool with AVX-512 code. The name before the slash indicates the target, i.e., the platform or instruction set used, while the part after the slash is the executable or library to build. As another example, the static (resp. dynamic) library is built by typing `make ARMv7M/libXKCP.a` (resp. `.so`) or similarly with `ARMv7M` replaced with the appropriate platform or instruction set name. An alternate C compiler can be specified via the `CC` environment variable.
146
-
147
- At the time of this writing, the possible target names before the slash are:
148
-
149
- * `compact`: plain C compact implementations;
150
- * `generic32`: plain C implementation, generically optimized for 32-bit platforms;
151
- * `generic32lc`: same as `generic32` but featuring the lane complementing technique for platforms without a "and not" instruction;
152
- * `generic64`: plain C implementation, generically optimized for 64-bit platforms;
153
- * `generic64lc`: same as `generic64` but featuring the lane complementing technique for platforms without a "and not" instruction;
154
- * `SSSE3`: implementations selected for the processors that support the SSSE3 instruction set;
155
- * `AVX`: implementations selected for processors that support the AVX instruction set (e.g., Sandy Bridge microarchitectures);
156
- * `XOP`: implementations selected for processors that support the XOP instruction set (e.g., Bulldozer microarchitecture);
157
- * `AVX2`: implementations selected for processors that support the AVX2 instruction set (e.g., Haswell and Skylake microarchitectures);
158
- * `AVX512`: implementations selected for the processors that support the AVX-512 instruction set (e.g., SkylakeX microarchitecture);
159
- * `ARMv6`: implementations selected for processors with the ARMv6 architecture;
160
- * `ARMv6M`: implementations selected for processors with the ARMv6-M architecture;
161
- * `ARMv7M`: implementations selected for processors with the ARMv7-M architecture;
162
- * `ARMv7A`: implementations selected for processors with the ARMv7-A architecture;
163
- * `ARMv8A`: implementations selected for processors with the ARMv8-A architecture;
164
- * `AVR8`: implementations selected for processors with the 8-bit AVR architecture.
165
-
166
- Instead of building an executable with *GCC*, one can choose to select the files needed and make a package. For this, simply append `.pack` to the target name, e.g.,
167
-
168
- ```
169
- make generic64/UnitTests.pack
170
- ```
171
-
172
- This creates a `.tar.gz` archive with all the necessary files to build the given target.
173
-
174
- The list of targets can be found at the end of [`Makefile.build`](Makefile.build) or by running `make` without parameters.
175
-
176
-
177
- ## Microsoft Visual Studio support
178
-
179
- The XKCP can be compiled with Microsoft Visual Studio (MSVC). The XKCP build system offers support for the creation of project files. To get a project file for a given target, simply append `.vcxproj` to the target name, e.g.,
180
-
181
- ```
182
- make AVX512noAsm/KeccakSum.vcxproj
183
- ```
184
-
185
- As of today, please note the current limitations:
186
-
187
- - The assembly code, as used in some targets, follows the GCC syntax and at this point cannot be used directly with MSVC. Note that the `AVX2noAsm` and `AVX512noAsm` targets provide alternatives to `AVX2` and `AVX512`, respectively, without assembly implementations.
188
- - There is no support yet to build a dynamic library like `libXKCP.dll`. However, we are not far: `make <target>/libXKCP.so.vcxproj` gives you a project that compiles correctly (but does not link).
189
-
190
-
191
- # How do I build/extract just the part I need?
192
-
193
- If you wish to make a custom target that integrates the cryptographic functions you need and nothing else, or if you just wish to get the source files to integrate them in another project, you can do this by following the steps described in [`doc/HOWTO-customize.build`](doc/HOWTO-customize.build). Some examples illustrate the process.
194
-
195
-
196
-
197
- # How is the code organized?
198
-
199
- The code is organized as illustrated in the following figure:
200
-
201
- <p align="center">
202
- <img src="doc/figures/Layers.svg" width="80%" />
203
- </p>
204
-
205
- At the top, the high-level cryptographic services are implemented in plain C, without any specific optimizations. At the bottom, the low-level services implement the permutations and the state input/output functions, which can be optimized for a given platform. The interface between the two layers is called **SnP**.
206
-
207
- The idea is to have a single, portable, code base for the high level and the possibility to dedicate the low level to certain platforms for best performance.
208
-
209
- The modes and constructions can be found in [`lib/high/`](lib/high/), while the permutations are stored in [`lib/low/`](lib/low/).
210
-
211
- The situation is similar for parallelized services, as illustrated on the following figure. The interface is adapated to the parallelism and is called **PlSnP**, with the implementations in [`lib/low/`](lib/low/).
212
-
213
- <p align="center">
214
- <img src="doc/figures/ParallelLayers.svg" width="80%" />
215
- </p>
216
-
217
- *Disclaimer*: the above figures aim at illustrative purposes only, as not all modes, constructions or permutations are currently implemented in the XKCP or represented on the figures.
218
-
219
-
220
-
221
- # How fast is the code in the XKCP?
222
-
223
- Whenever possible, we try to integerate the fastest available open-source code into the repository.
224
- Should you find better implementations, do not hesitate to inform us.
225
-
226
- Benchmarks using the XKCP and comparisons with other functions can be found on [this page](https://keccak.team/sw_performance.html).
227
-
228
-
229
-
230
- # Where can I find more information?
231
-
232
- About the XKCP, we gave some presentations on its motivation and structure, e.g.,
233
-
234
- * at [FOSDEM in February 2017][FOSDEM2017] ([slides][slidesAtFOSDEM2017]),
235
- * at [SPEED-B in October 2016][SPEEDB] ([slides][slidesAtSPEEDB]) ([paper][paperAtSPEEDB]),
236
- * at the [SHA-3 Workshop in Santa Barbara in August 2014][SHA3workshop2014] ([slides][KCPslides]).
237
-
238
- The XKCP follows an improved version of the structure proposed in the note ["A software interface for Keccak"][keccakinterface].
239
-
240
- More information on the cryptographic aspects can be found:
241
-
242
- * on Keccak at [`keccak.team`](https://keccak.team/keccak.html)
243
- * on the FIPS 202 standard at [`csrc.nist.gov`](http://csrc.nist.gov/groups/ST/hash/sha-3/fips202_standard_2015.html)
244
- * on the NIST SP 800-185 standard at [`keccak.team`](https://keccak.team/2016/sp_800_185.html)
245
- * on Ketje at [`keccak.team`](https://keccak.team/ketje.html)
246
- * on Keyak at [`keccak.team`](https://keccak.team/keyak.html)
247
- * on KangarooTwelve at [`keccak.team`](https://keccak.team/kangarootwelve.html)
248
- * on cryptographic sponge functions at [`keccak.team`](https://keccak.team/sponge_duplex.html)
249
- * on Kravatte at [`keccak.team`](https://keccak.team/kravatte.html)
250
- * on Xoodoo, Xoofff and Xoodyak at [`eprint.iacr.org`](https://eprint.iacr.org/2018/767)
251
- * on the Farfalle construction at [`keccak.team`](https://keccak.team/farfalle.html)
252
-
253
-
254
-
255
- # How can I contribute?
256
-
257
- We welcome contributions in various forms, e.g., general feedback, bug reports, improvements and optimized implementations on your favorite platforms. The best is to do this through GitHub. Alternatively, you can send us a mail at `all` _-at-_ `keccak` _-dot-_ `team`.
258
-
259
-
260
-
261
- # Acknowledgments
262
-
263
- We wish to thank all the contributors, and in particular:
264
-
265
- - Andre C. de Moraes for ARMv8-A assembly code
266
- - Andy Polyakov and Ronny Van Keer for the AVX2 and AVX-512 assembly implementations of Keccak-_p_[1600]
267
- - Anna Guinet for the hummingbird logo design
268
- - Brian Gladman's `brg_endian.h`
269
- - Bruno Pairault for testing and benchmarking on ARM platforms
270
- - Conno Boel for the NEON implementations of Xoodoo
271
- - D.J. Bernstein, Peter Schwabe and Gilles Van Assche for the tweetable FIPS 202 implementation `TweetableFIPS202.c`
272
- - Hussama Ismail for setting up the continuous integration with Travis
273
- - Kent Ross for various improvements in [XKCP/K12](https://github.com/XKCP/K12) imported here
274
- - Larry Bassham, NIST for the original `genKAT.c` developed during the SHA-3 contest
275
- - Stéphane Léon for helping support macOS
276
-
277
-
278
- ***
279
-
280
- The Keccak and Xoodoo designers: Guido Bertoni, Joan Daemen, Seth Hoffert,
281
- Michaël Peeters, Gilles Van Assche, and Ronny Van Keer.
282
-
283
- [keccakinterface]: https://keccak.team/files/NoteSoftwareInterface.pdf
284
- [SHA3workshop2014]: http://csrc.nist.gov/groups/ST/hash/sha-3/Aug2014/index.html
285
- [KCPslides]: http://csrc.nist.gov/groups/ST/hash/sha-3/Aug2014/documents/vanassche_keccak_code.pdf
286
- [FOSDEM2017]: https://fosdem.org/2017/schedule/event/keccak/
287
- [slidesAtFOSDEM2017]: https://fosdem.org/2017/schedule/event/keccak/attachments/slides/1692/export/events/attachments/keccak/slides/1692/KeccakAtFOSDEM2017.pdf
288
- [fips202_standard]: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf "FIPS 202 standard"
289
- [sp800_185_standard]: https://doi.org/10.6028/NIST.SP.800-185 "NIST SP 800-185 standard"
290
- [caesar_ketje]: https://keccak.team/ketje.html
291
- [caesar_keyak]: https://keccak.team/keyak.html
292
- [k12]: https://keccak.team/kangarootwelve.html
293
- [SPEEDB]: http://ccccspeed.win.tue.nl/
294
- [paperAtSPEEDB]: http://ccccspeed.win.tue.nl/papers/KeccakSoftware.pdf
295
- [slidesAtSPEEDB]: http://ccccspeed.win.tue.nl/presentations/KeccakSoftware-slides.pdf
296
- [XoodooCookbook]: https://eprint.iacr.org/2018/767
@@ -1,143 +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 cryptographic functions (a.k.a. high-level services above the SnP or PlSnP interface).
19
-
20
- * KeccakSponge: the Keccak sponge function on top of the supported Keccak-f permutations.
21
- * FIPS202: all the functions approved in the FIPS 202 standard, i.e., the extendable output functions (SHAKE{128, 256}) and hash functions (SHA3-{224, 256, 384, 512}). This includes also the Keccak hash functions without suffix (e.g., such as Keccak[r=1088, c=512] as used in Ethereum).
22
- * SP800-185: all the functions defined in the NIST SP 800-185 standard, i.e., cSHAKE, TupleHash, KMAC and ParallelHash.
23
- * KeccakDuplex: the Keccak duplex object on top of the supported Keccak-f permutations.
24
- * KeccakPRG: a pseudo-random bit generator based on Keccak.
25
- * Ketje: Ketje Jr, Ketje Sr, Ketje Minor and Ketje Major, depending on the supported permutations.
26
- * Keyak: River Keyak, Lake Keyak, Sea Keyak, Ocean Keyak and Lunar Keyak, depending on the supported permutations.
27
- * KangarooTwelve: the KangarooTwelve extendable output function.
28
- * Kravatte: the Kravatte pseudo-random function and its modes (Kravatte-SANE, -SANSE, -WBC and -WBC-AE).
29
-
30
- * Xoofff: the Xoofff pseudo-random function and its modes (Xoofff-SANE, Xoofff-SANSE, Xoofff-WBC and Xoofff-WBC-AE).
31
- * Xoodyak: the lightweight cryptographic scheme Xoodyak that can be used for hashing, encryption, MAC computation and authenticated encryption.
32
- -->
33
-
34
- <!-- *** High-level services *** -->
35
-
36
- <!-- Keccak sponge functions -->
37
-
38
- <fragment name="KeccakSponge" inherits="common">
39
- <config>XKCP_has_Sponge_Keccak</config>
40
- <h>lib/high/Keccak/KeccakSponge.h</h>
41
- <inc>lib/high/Keccak/KeccakSponge.inc</inc>
42
- <c>lib/high/Keccak/KeccakSponge.c</c>
43
- </fragment>
44
-
45
- <!-- NIST standards -->
46
-
47
- <fragment name="FIPS202" inherits="KeccakSponge">
48
- <config>XKCP_has_FIPS202</config>
49
- <c>lib/high/Keccak/FIPS202/SimpleFIPS202.c</c>
50
- <h>lib/high/Keccak/FIPS202/SimpleFIPS202.h</h>
51
- <c>lib/high/Keccak/FIPS202/KeccakHash.c</c>
52
- <h>lib/high/Keccak/FIPS202/KeccakHash.h</h>
53
- </fragment>
54
-
55
- <fragment name="SP800-185" inherits="KeccakSponge">
56
- <config>XKCP_has_SP800_185</config>
57
- <c>lib/high/Keccak/SP800-185/SP800-185.c</c>
58
- <inc>lib/high/Keccak/SP800-185/SP800-185.inc</inc>
59
- <h>lib/high/Keccak/SP800-185/SP800-185.h</h>
60
- <h>lib/high/common/Phases.h</h>
61
- </fragment>
62
-
63
- <!-- Keccak duplex objects -->
64
-
65
- <fragment name="KeccakDuplex" inherits="common">
66
- <config>XKCP_has_Duplex_Keccak</config>
67
- <h>lib/high/Keccak/KeccakDuplex.h</h>
68
- <inc>lib/high/Keccak/KeccakDuplex.inc</inc>
69
- <c>lib/high/Keccak/KeccakDuplex.c</c>
70
- </fragment>
71
-
72
- <!-- Pseudo-random bit generation -->
73
-
74
- <fragment name="KeccakPRG" inherits="common KeccakDuplex">
75
- <config>XKCP_has_PRG_Keccak</config>
76
- <h>lib/high/Keccak/PRG/KeccakPRG.h</h>
77
- <inc>lib/high/Keccak/PRG/KeccakPRG.inc</inc>
78
- <c>lib/high/Keccak/PRG/KeccakPRG.c</c>
79
- </fragment>
80
-
81
- <!-- Ketje -->
82
-
83
- <fragment name="Ketje" inherits="common">
84
- <config>XKCP_has_Ketje</config>
85
- <h>lib/high/Ketje/Ketjev2.h</h>
86
- <inc>lib/high/Ketje/Ketjev2.inc</inc>
87
- <c>lib/high/Ketje/Ketjev2.c</c>
88
- </fragment>
89
-
90
- <!-- Keyak -->
91
-
92
- <fragment name="Keyak" inherits="common">
93
- <config>XKCP_has_Keyak</config>
94
- <inc>lib/high/Keyak/Motorist.inc</inc>
95
- <h>lib/high/Keyak/Keyakv2.h</h>
96
- <inc>lib/high/Keyak/Keyakv2.inc</inc>
97
- <c>lib/high/Keyak/Keyakv2.c</c>
98
- </fragment>
99
-
100
- <!-- KangarooTwelve -->
101
-
102
- <fragment name="KangarooTwelve" inherits="KeccakSponge">
103
- <config>XKCP_has_KangarooTwelve</config>
104
- <c>lib/high/KangarooTwelve/KangarooTwelve.c</c>
105
- <h>lib/high/KangarooTwelve/KangarooTwelve.h</h>
106
- <h>lib/high/common/Phases.h</h>
107
- </fragment>
108
-
109
- <!-- Kravatte and modes on top of it -->
110
-
111
- <fragment name="Kravatte" inherits="common">
112
- <config>XKCP_has_Kravatte</config>
113
- <c>lib/high/Kravatte/Kravatte.c</c>
114
- <h>lib/high/Kravatte/Kravatte.h</h>
115
- <c>lib/high/Kravatte/KravatteModes.c</c>
116
- <h>lib/high/Kravatte/KravatteModes.h</h>
117
- </fragment>
118
-
119
- <!-- Xoofff and modes on top of it -->
120
-
121
- <fragment name="Xoofff" inherits="common">
122
- <config>XKCP_has_Xoofff</config>
123
- <c>lib/high/Xoofff/Xoofff.c</c>
124
- <h>lib/high/Xoofff/Xoofff.h</h>
125
- <c>lib/high/Xoofff/XoofffModes.c</c>
126
- <h>lib/high/Xoofff/XoofffModes.h</h>
127
- </fragment>
128
-
129
- <!-- Xoodyak -->
130
-
131
- <fragment name="Xoodyak" inherits="common">
132
- <config>XKCP_has_Xoodyak</config>
133
- <c>lib/high/Xoodyak/Xoodyak.c</c>
134
- <h>lib/high/Xoodyak/Xoodyak.h</h>
135
- <h>lib/high/Xoodyak/Cyclist.h</h>
136
- <inc>lib/high/Xoodyak/Cyclist.inc</inc>
137
- </fragment>
138
-
139
- <!--- All high-level services -->
140
-
141
- <fragment name="All" inherits="common Ketje Keyak KeccakSponge KeccakDuplex KeccakPRG FIPS202 SP800-185 KangarooTwelve Kravatte Xoofff Xoodyak"/>
142
-
143
- </group>