digest-kangarootwelve 0.0.2 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (307) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +71 -37
  3. data/Rakefile +7 -9
  4. data/digest-kangarootwelve.gemspec +323 -14
  5. data/ext/digest/kangarootwelve/ext.c +228 -177
  6. data/ext/digest/kangarootwelve/extconf.rb +15 -1
  7. data/ext/digest/kangarootwelve/keccak/armv6m/KangarooTwelve.link.c +1 -0
  8. data/ext/digest/kangarootwelve/keccak/armv6m/KeccakDuplexWidth1600.link.c +1 -0
  9. data/ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-SnP.h +36 -0
  10. data/ext/digest/kangarootwelve/{KeccakP-1600-times2-SnP.h → keccak/armv6m/KeccakP-1600-times2-SnP.h} +10 -10
  11. data/ext/digest/kangarootwelve/{KeccakP-1600-times2-on1.c → keccak/armv6m/KeccakP-1600-times2-on1.c} +13 -7
  12. data/ext/digest/kangarootwelve/{KeccakP-1600-times4-SnP.h → keccak/armv6m/KeccakP-1600-times4-SnP.h} +10 -10
  13. data/ext/digest/kangarootwelve/{KeccakP-1600-times4-on1.c → keccak/armv6m/KeccakP-1600-times4-on1.c} +13 -7
  14. data/ext/digest/kangarootwelve/{KeccakP-1600-times8-SnP.h → keccak/armv6m/KeccakP-1600-times8-SnP.h} +10 -10
  15. data/ext/digest/kangarootwelve/{KeccakP-1600-times8-on1.c → keccak/armv6m/KeccakP-1600-times8-on1.c} +13 -7
  16. data/ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-u2-32bi-armv6m-le-gcc.s +1334 -0
  17. data/ext/digest/kangarootwelve/keccak/armv6m/KeccakSpongeWidth1600.link.c +1 -0
  18. data/ext/digest/kangarootwelve/{PlSnP-Fallback.inc → keccak/armv6m/PlSnP-Fallback.inc} +11 -7
  19. data/ext/digest/kangarootwelve/keccak/armv6m/ext.link.c +1 -0
  20. data/ext/digest/kangarootwelve/keccak/armv7a/KangarooTwelve.link.c +1 -0
  21. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakDuplexWidth1600.link.c +1 -0
  22. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-SnP.h +37 -0
  23. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-armv7a-le-neon-gcc.s +826 -0
  24. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-inplace-pl2-armv7a-neon-le-gcc.s +1245 -0
  25. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times2-SnP.h +38 -0
  26. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times4-SnP.h +45 -0
  27. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times4-on2.c +38 -0
  28. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times8-SnP.h +45 -0
  29. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times8-on2.c +38 -0
  30. data/ext/digest/kangarootwelve/keccak/armv7a/KeccakSpongeWidth1600.link.c +1 -0
  31. data/ext/digest/kangarootwelve/keccak/armv7a/PlSnP-Fallback.inc +287 -0
  32. data/ext/digest/kangarootwelve/keccak/armv7a/ext.link.c +1 -0
  33. data/ext/digest/kangarootwelve/keccak/armv7m/KangarooTwelve.link.c +1 -0
  34. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakDuplexWidth1600.link.c +1 -0
  35. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-SnP.h +36 -0
  36. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-inplace-32bi-armv7m-le-gcc.s +1170 -0
  37. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times2-SnP.h +45 -0
  38. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times2-on1.c +37 -0
  39. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times4-SnP.h +45 -0
  40. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times4-on1.c +37 -0
  41. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times8-SnP.h +45 -0
  42. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times8-on1.c +37 -0
  43. data/ext/digest/kangarootwelve/keccak/armv7m/KeccakSpongeWidth1600.link.c +1 -0
  44. data/ext/digest/kangarootwelve/keccak/armv7m/PlSnP-Fallback.inc +287 -0
  45. data/ext/digest/kangarootwelve/keccak/armv7m/ext.link.c +1 -0
  46. data/ext/digest/kangarootwelve/keccak/armv8a/KangarooTwelve.link.c +1 -0
  47. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakDuplexWidth1600.link.c +1 -0
  48. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-SnP.h +28 -0
  49. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-armv8a-neon.s +537 -0
  50. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times2-SnP.h +45 -0
  51. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times2-on1.c +37 -0
  52. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times4-SnP.h +45 -0
  53. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times4-on1.c +37 -0
  54. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times8-SnP.h +45 -0
  55. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times8-on1.c +37 -0
  56. data/ext/digest/kangarootwelve/keccak/armv8a/KeccakSpongeWidth1600.link.c +1 -0
  57. data/ext/digest/kangarootwelve/keccak/armv8a/PlSnP-Fallback.inc +287 -0
  58. data/ext/digest/kangarootwelve/keccak/armv8a/ext.link.c +1 -0
  59. data/ext/digest/kangarootwelve/keccak/asmx86-64/KangarooTwelve.link.c +1 -0
  60. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakDuplexWidth1600.link.c +1 -0
  61. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-SnP.h +37 -0
  62. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times2-SnP.h +45 -0
  63. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times2-on1.c +37 -0
  64. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times4-SnP.h +45 -0
  65. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times4-on1.c +37 -0
  66. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times8-SnP.h +45 -0
  67. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times8-on1.c +37 -0
  68. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-x86-64-gas.s +1190 -0
  69. data/ext/digest/kangarootwelve/keccak/asmx86-64/KeccakSpongeWidth1600.link.c +1 -0
  70. data/ext/digest/kangarootwelve/keccak/asmx86-64/PlSnP-Fallback.inc +287 -0
  71. data/ext/digest/kangarootwelve/keccak/asmx86-64/ext.link.c +1 -0
  72. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KangarooTwelve.link.c +1 -0
  73. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakDuplexWidth1600.link.c +1 -0
  74. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-SnP.h +37 -0
  75. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times2-SnP.h +45 -0
  76. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times2-on1.c +37 -0
  77. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times4-SnP.h +45 -0
  78. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times4-on1.c +37 -0
  79. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times8-SnP.h +45 -0
  80. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times8-on1.c +37 -0
  81. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-x86-64-shld-gas.s +1190 -0
  82. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakSpongeWidth1600.link.c +1 -0
  83. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/PlSnP-Fallback.inc +287 -0
  84. data/ext/digest/kangarootwelve/keccak/asmx86-64shld/ext.link.c +1 -0
  85. data/ext/digest/kangarootwelve/keccak/avr8/KangarooTwelve.link.c +1 -0
  86. data/ext/digest/kangarootwelve/keccak/avr8/KeccakDuplexWidth1600.link.c +1 -0
  87. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-SnP.h +37 -0
  88. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-avr8-fast.s +1116 -0
  89. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times2-SnP.h +45 -0
  90. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times2-on1.c +37 -0
  91. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times4-SnP.h +45 -0
  92. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times4-on1.c +37 -0
  93. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times8-SnP.h +45 -0
  94. data/ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times8-on1.c +37 -0
  95. data/ext/digest/kangarootwelve/keccak/avr8/KeccakSpongeWidth1600.link.c +1 -0
  96. data/ext/digest/kangarootwelve/keccak/avr8/PlSnP-Fallback.inc +287 -0
  97. data/ext/digest/kangarootwelve/keccak/avr8/ext.link.c +1 -0
  98. data/ext/digest/kangarootwelve/keccak/bulldozer/KangarooTwelve.link.c +1 -0
  99. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakDuplexWidth1600.link.c +1 -0
  100. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-SnP.h +39 -0
  101. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-XOP-config.h +6 -0
  102. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-XOP.c +473 -0
  103. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times2-SIMD128.c +954 -0
  104. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times2-SnP.h +47 -0
  105. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times4-SnP.h +45 -0
  106. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times4-on2.c +38 -0
  107. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times8-SnP.h +45 -0
  108. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times8-on2.c +38 -0
  109. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-unrolling.macros +302 -0
  110. data/ext/digest/kangarootwelve/keccak/bulldozer/KeccakSpongeWidth1600.link.c +1 -0
  111. data/ext/digest/kangarootwelve/keccak/bulldozer/PlSnP-Fallback.inc +287 -0
  112. data/ext/digest/kangarootwelve/keccak/bulldozer/SIMD128-config.h +9 -0
  113. data/ext/digest/kangarootwelve/{SnP-Relaned.h → keccak/bulldozer/SnP-Relaned.h} +13 -7
  114. data/ext/digest/kangarootwelve/keccak/bulldozer/ext.link.c +1 -0
  115. data/ext/digest/kangarootwelve/{KangarooTwelve.c → keccak/common/KangarooTwelve.c} +6 -10
  116. data/ext/digest/kangarootwelve/{KangarooTwelve.h → keccak/common/KangarooTwelve.h} +3 -7
  117. data/ext/digest/kangarootwelve/keccak/common/KeccakDuplex-common.h +37 -0
  118. data/ext/digest/kangarootwelve/keccak/common/KeccakDuplex.inc +192 -0
  119. data/ext/digest/kangarootwelve/keccak/common/KeccakDuplexWidth1600.c +34 -0
  120. data/ext/digest/kangarootwelve/keccak/common/KeccakDuplexWidth1600.h +25 -0
  121. data/ext/digest/kangarootwelve/{KeccakSponge-common.h → keccak/common/KeccakSponge-common.h} +5 -7
  122. data/ext/digest/kangarootwelve/{KeccakSponge.inc → keccak/common/KeccakSponge.inc} +6 -8
  123. data/ext/digest/kangarootwelve/{KeccakSpongeWidth1600.c → keccak/common/KeccakSpongeWidth1600.c} +6 -8
  124. data/ext/digest/kangarootwelve/{KeccakSpongeWidth1600.h → keccak/common/KeccakSpongeWidth1600.h} +5 -7
  125. data/ext/digest/kangarootwelve/{Phases.h → keccak/common/Phases.h} +3 -7
  126. data/ext/digest/kangarootwelve/{align.h → keccak/common/align.h} +5 -7
  127. data/ext/digest/kangarootwelve/{brg_endian.h → keccak/common/brg_endian.h} +0 -0
  128. data/ext/digest/kangarootwelve/keccak/compact/KangarooTwelve.link.c +1 -0
  129. data/ext/digest/kangarootwelve/keccak/compact/KeccakDuplexWidth1600.link.c +1 -0
  130. data/ext/digest/kangarootwelve/{KeccakP-1600-SnP.h → keccak/compact/KeccakP-1600-SnP.h} +7 -10
  131. data/ext/digest/kangarootwelve/{KeccakP-1600-compact64.c → keccak/compact/KeccakP-1600-compact64.c} +11 -7
  132. data/ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times2-SnP.h +45 -0
  133. data/ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times2-on1.c +37 -0
  134. data/ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times4-SnP.h +45 -0
  135. data/ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times4-on1.c +37 -0
  136. data/ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times8-SnP.h +45 -0
  137. data/ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times8-on1.c +37 -0
  138. data/ext/digest/kangarootwelve/keccak/compact/KeccakSpongeWidth1600.link.c +1 -0
  139. data/ext/digest/kangarootwelve/keccak/compact/PlSnP-Fallback.inc +287 -0
  140. data/ext/digest/kangarootwelve/keccak/compact/SnP-Relaned.h +140 -0
  141. data/ext/digest/kangarootwelve/keccak/compact/ext.link.c +1 -0
  142. data/ext/digest/kangarootwelve/keccak/generic32/KangarooTwelve.link.c +1 -0
  143. data/ext/digest/kangarootwelve/keccak/generic32/KeccakDuplexWidth1600.link.c +1 -0
  144. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-SnP.h +38 -0
  145. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-inplace32BI.c +1162 -0
  146. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times2-SnP.h +45 -0
  147. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times2-on1.c +37 -0
  148. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times4-SnP.h +45 -0
  149. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times4-on1.c +37 -0
  150. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times8-SnP.h +45 -0
  151. data/ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times8-on1.c +37 -0
  152. data/ext/digest/kangarootwelve/keccak/generic32/KeccakSpongeWidth1600.link.c +1 -0
  153. data/ext/digest/kangarootwelve/keccak/generic32/PlSnP-Fallback.inc +287 -0
  154. data/ext/digest/kangarootwelve/keccak/generic32/SnP-Relaned.h +140 -0
  155. data/ext/digest/kangarootwelve/keccak/generic32/ext.link.c +1 -0
  156. data/ext/digest/kangarootwelve/keccak/generic32lc/KangarooTwelve.link.c +1 -0
  157. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakDuplexWidth1600.link.c +1 -0
  158. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-SnP.h +38 -0
  159. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-inplace32BI.c +1162 -0
  160. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times2-SnP.h +45 -0
  161. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times2-on1.c +37 -0
  162. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times4-SnP.h +45 -0
  163. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times4-on1.c +37 -0
  164. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times8-SnP.h +45 -0
  165. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times8-on1.c +37 -0
  166. data/ext/digest/kangarootwelve/keccak/generic32lc/KeccakSpongeWidth1600.link.c +1 -0
  167. data/ext/digest/kangarootwelve/keccak/generic32lc/PlSnP-Fallback.inc +287 -0
  168. data/ext/digest/kangarootwelve/keccak/generic32lc/SnP-Relaned.h +140 -0
  169. data/ext/digest/kangarootwelve/keccak/generic32lc/ext.link.c +1 -0
  170. data/ext/digest/kangarootwelve/keccak/generic64/KangarooTwelve.link.c +1 -0
  171. data/ext/digest/kangarootwelve/keccak/generic64/KeccakDuplexWidth1600.link.c +1 -0
  172. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-64.macros +2195 -0
  173. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-SnP.h +49 -0
  174. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-opt64-config.h +6 -0
  175. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-opt64.c +541 -0
  176. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times2-SnP.h +45 -0
  177. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times2-on1.c +37 -0
  178. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times4-SnP.h +45 -0
  179. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times4-on1.c +37 -0
  180. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times8-SnP.h +45 -0
  181. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times8-on1.c +37 -0
  182. data/ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-unrolling.macros +302 -0
  183. data/ext/digest/kangarootwelve/keccak/generic64/KeccakSpongeWidth1600.link.c +1 -0
  184. data/ext/digest/kangarootwelve/keccak/generic64/PlSnP-Fallback.inc +287 -0
  185. data/ext/digest/kangarootwelve/keccak/generic64/SnP-Relaned.h +140 -0
  186. data/ext/digest/kangarootwelve/keccak/generic64/ext.link.c +1 -0
  187. data/ext/digest/kangarootwelve/keccak/generic64lc/KangarooTwelve.link.c +1 -0
  188. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakDuplexWidth1600.link.c +1 -0
  189. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-64.macros +2195 -0
  190. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-SnP.h +49 -0
  191. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-opt64-config.h +7 -0
  192. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-opt64.c +541 -0
  193. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times2-SnP.h +45 -0
  194. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times2-on1.c +37 -0
  195. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times4-SnP.h +45 -0
  196. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times4-on1.c +37 -0
  197. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times8-SnP.h +45 -0
  198. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times8-on1.c +37 -0
  199. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-unrolling.macros +302 -0
  200. data/ext/digest/kangarootwelve/keccak/generic64lc/KeccakSpongeWidth1600.link.c +1 -0
  201. data/ext/digest/kangarootwelve/keccak/generic64lc/PlSnP-Fallback.inc +287 -0
  202. data/ext/digest/kangarootwelve/keccak/generic64lc/SnP-Relaned.h +140 -0
  203. data/ext/digest/kangarootwelve/keccak/generic64lc/ext.link.c +1 -0
  204. data/ext/digest/kangarootwelve/keccak/haswell/KangarooTwelve.link.c +1 -0
  205. data/ext/digest/kangarootwelve/keccak/haswell/KeccakDuplexWidth1600.link.c +1 -0
  206. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-AVX2.s +993 -0
  207. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-SnP.h +41 -0
  208. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times2-SIMD128.c +954 -0
  209. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times2-SnP.h +47 -0
  210. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times4-SIMD256.c +1303 -0
  211. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times4-SnP.h +53 -0
  212. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times8-SnP.h +45 -0
  213. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times8-on4.c +38 -0
  214. data/ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-unrolling.macros +302 -0
  215. data/ext/digest/kangarootwelve/keccak/haswell/KeccakSpongeWidth1600.link.c +1 -0
  216. data/ext/digest/kangarootwelve/keccak/haswell/PlSnP-Fallback.inc +287 -0
  217. data/ext/digest/kangarootwelve/keccak/haswell/SIMD128-config.h +8 -0
  218. data/ext/digest/kangarootwelve/keccak/haswell/SIMD256-config.h +7 -0
  219. data/ext/digest/kangarootwelve/keccak/haswell/ext.link.c +1 -0
  220. data/ext/digest/kangarootwelve/keccak/nehalem/KangarooTwelve.link.c +1 -0
  221. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakDuplexWidth1600.link.c +1 -0
  222. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-64.macros +2195 -0
  223. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-SnP.h +49 -0
  224. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-opt64-config.h +7 -0
  225. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-opt64.c +541 -0
  226. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times2-SIMD128.c +954 -0
  227. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times2-SnP.h +47 -0
  228. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times4-SnP.h +45 -0
  229. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times4-on2.c +38 -0
  230. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times8-SnP.h +45 -0
  231. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times8-on2.c +38 -0
  232. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-unrolling.macros +302 -0
  233. data/ext/digest/kangarootwelve/keccak/nehalem/KeccakSpongeWidth1600.link.c +1 -0
  234. data/ext/digest/kangarootwelve/keccak/nehalem/PlSnP-Fallback.inc +287 -0
  235. data/ext/digest/kangarootwelve/keccak/nehalem/SIMD128-config.h +8 -0
  236. data/ext/digest/kangarootwelve/keccak/nehalem/SnP-Relaned.h +140 -0
  237. data/ext/digest/kangarootwelve/keccak/nehalem/ext.link.c +1 -0
  238. data/ext/digest/kangarootwelve/keccak/reference/KangarooTwelve.link.c +1 -0
  239. data/ext/digest/kangarootwelve/keccak/reference/KeccakDuplexWidth1600.link.c +1 -0
  240. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-SnP.h +41 -0
  241. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-reference.c +424 -0
  242. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-reference.h +20 -0
  243. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times2-SnP.h +45 -0
  244. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times2-on1.c +37 -0
  245. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times4-SnP.h +45 -0
  246. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times4-on1.c +37 -0
  247. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times8-SnP.h +45 -0
  248. data/ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times8-on1.c +37 -0
  249. data/ext/digest/kangarootwelve/keccak/reference/KeccakSpongeWidth1600.link.c +1 -0
  250. data/ext/digest/kangarootwelve/keccak/reference/PlSnP-Fallback.inc +287 -0
  251. data/ext/digest/kangarootwelve/keccak/reference/displayIntermediateValues.c +176 -0
  252. data/ext/digest/kangarootwelve/keccak/reference/displayIntermediateValues.h +29 -0
  253. data/ext/digest/kangarootwelve/keccak/reference/ext.link.c +1 -0
  254. data/ext/digest/kangarootwelve/keccak/reference32bits/KangarooTwelve.link.c +1 -0
  255. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakDuplexWidth1600.link.c +1 -0
  256. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-SnP.h +41 -0
  257. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-reference.h +20 -0
  258. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-reference32BI.c +612 -0
  259. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times2-SnP.h +45 -0
  260. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times2-on1.c +37 -0
  261. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times4-SnP.h +45 -0
  262. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times4-on1.c +37 -0
  263. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times8-SnP.h +45 -0
  264. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times8-on1.c +37 -0
  265. data/ext/digest/kangarootwelve/keccak/reference32bits/KeccakSpongeWidth1600.link.c +1 -0
  266. data/ext/digest/kangarootwelve/keccak/reference32bits/PlSnP-Fallback.inc +287 -0
  267. data/ext/digest/kangarootwelve/keccak/reference32bits/displayIntermediateValues.c +176 -0
  268. data/ext/digest/kangarootwelve/keccak/reference32bits/displayIntermediateValues.h +29 -0
  269. data/ext/digest/kangarootwelve/keccak/reference32bits/ext.link.c +1 -0
  270. data/ext/digest/kangarootwelve/keccak/sandybridge/KangarooTwelve.link.c +1 -0
  271. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakDuplexWidth1600.link.c +1 -0
  272. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-64.macros +2195 -0
  273. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-SnP.h +49 -0
  274. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-opt64-config.h +8 -0
  275. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-opt64.c +541 -0
  276. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times2-SIMD128.c +954 -0
  277. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times2-SnP.h +47 -0
  278. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times4-SnP.h +45 -0
  279. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times4-on2.c +38 -0
  280. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times8-SnP.h +45 -0
  281. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times8-on2.c +38 -0
  282. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-unrolling.macros +302 -0
  283. data/ext/digest/kangarootwelve/keccak/sandybridge/KeccakSpongeWidth1600.link.c +1 -0
  284. data/ext/digest/kangarootwelve/keccak/sandybridge/PlSnP-Fallback.inc +287 -0
  285. data/ext/digest/kangarootwelve/keccak/sandybridge/SIMD128-config.h +8 -0
  286. data/ext/digest/kangarootwelve/keccak/sandybridge/SnP-Relaned.h +140 -0
  287. data/ext/digest/kangarootwelve/keccak/sandybridge/ext.link.c +1 -0
  288. data/ext/digest/kangarootwelve/keccak/skylakex/KangarooTwelve.link.c +1 -0
  289. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakDuplexWidth1600.link.c +1 -0
  290. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-AVX512-config.h +6 -0
  291. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-AVX512.c +621 -0
  292. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-SnP.h +42 -0
  293. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times2-SIMD512.c +852 -0
  294. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times2-SnP.h +49 -0
  295. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times4-SIMD512.c +883 -0
  296. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times4-SnP.h +49 -0
  297. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times8-SIMD512.c +1473 -0
  298. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times8-SnP.h +53 -0
  299. data/ext/digest/kangarootwelve/keccak/skylakex/KeccakSpongeWidth1600.link.c +1 -0
  300. data/ext/digest/kangarootwelve/keccak/skylakex/SIMD512-2-config.h +7 -0
  301. data/ext/digest/kangarootwelve/keccak/skylakex/SIMD512-4-config.h +7 -0
  302. data/ext/digest/kangarootwelve/keccak/skylakex/SIMD512-config.h +7 -0
  303. data/ext/digest/kangarootwelve/keccak/skylakex/ext.link.c +1 -0
  304. data/ext/digest/kangarootwelve/utils.h +101 -0
  305. data/lib/digest/kangarootwelve/version.rb +2 -2
  306. data/test/test.rb +68 -31
  307. metadata +305 -27
@@ -0,0 +1,53 @@
1
+ /*
2
+ Implementation by Ronny Van Keer, hereby denoted as "the implementer".
3
+
4
+ For more information, feedback or questions, please refer to our website:
5
+ https://keccak.team/
6
+
7
+ To the extent possible under law, the implementer has waived all copyright
8
+ and related or neighboring rights to the source code in this file.
9
+ http://creativecommons.org/publicdomain/zero/1.0/
10
+
11
+ ---
12
+
13
+ Please refer to PlSnP-documentation.h for more details.
14
+ */
15
+
16
+ #ifndef _KeccakP_1600_times8_SnP_h_
17
+ #define _KeccakP_1600_times8_SnP_h_
18
+
19
+ #include "SIMD512-config.h"
20
+
21
+ #define KeccakP1600times8_implementation "512-bit SIMD implementation (" KeccakP1600times8_implementation_config ")"
22
+ #define KeccakP1600times8_statesSizeInBytes 1600
23
+ #define KeccakP1600times8_statesAlignment 64
24
+ #define KeccakF1600times8_FastLoop_supported
25
+ #define KeccakP1600times8_12rounds_FastLoop_supported
26
+ #define KeccakF1600times8_FastKravatte_supported
27
+
28
+ #include <stddef.h>
29
+ #include <stdint.h>
30
+
31
+ #define KeccakP1600times8_StaticInitialize()
32
+ void KeccakP1600times8_InitializeAll(void *states);
33
+ #define KeccakP1600times8_AddByte(states, instanceIndex, byte, offset) \
34
+ ((unsigned char*)(states))[(instanceIndex)*8 + ((offset)/8)*8*8 + (offset)%8] ^= (byte)
35
+ void KeccakP1600times8_AddBytes(void *states, unsigned int instanceIndex, const unsigned char *data, unsigned int offset, unsigned int length);
36
+ void KeccakP1600times8_AddLanesAll(void *states, const unsigned char *data, unsigned int laneCount, unsigned int laneOffset);
37
+ void KeccakP1600times8_OverwriteBytes(void *states, unsigned int instanceIndex, const unsigned char *data, unsigned int offset, unsigned int length);
38
+ void KeccakP1600times8_OverwriteLanesAll(void *states, const unsigned char *data, unsigned int laneCount, unsigned int laneOffset);
39
+ void KeccakP1600times8_OverwriteWithZeroes(void *states, unsigned int instanceIndex, unsigned int byteCount);
40
+ void KeccakP1600times8_PermuteAll_4rounds(void *states);
41
+ void KeccakP1600times8_PermuteAll_6rounds(void *states);
42
+ void KeccakP1600times8_PermuteAll_12rounds(void *states);
43
+ void KeccakP1600times8_PermuteAll_24rounds(void *states);
44
+ void KeccakP1600times8_ExtractBytes(const void *states, unsigned int instanceIndex, unsigned char *data, unsigned int offset, unsigned int length);
45
+ void KeccakP1600times8_ExtractLanesAll(const void *states, unsigned char *data, unsigned int laneCount, unsigned int laneOffset);
46
+ void KeccakP1600times8_ExtractAndAddBytes(const void *states, unsigned int instanceIndex, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
47
+ void KeccakP1600times8_ExtractAndAddLanesAll(const void *states, const unsigned char *input, unsigned char *output, unsigned int laneCount, unsigned int laneOffset);
48
+ size_t KeccakF1600times8_FastLoop_Absorb(void *states, unsigned int laneCount, unsigned int laneOffsetParallel, unsigned int laneOffsetSerial, const unsigned char *data, size_t dataByteLen);
49
+ size_t KeccakP1600times8_12rounds_FastLoop_Absorb(void *states, unsigned int laneCount, unsigned int laneOffsetParallel, unsigned int laneOffsetSerial, const unsigned char *data, size_t dataByteLen);
50
+ size_t KeccakP1600times8_KravatteCompress(uint64_t *xAccu, uint64_t *kRoll, const unsigned char *input, size_t inputByteLen);
51
+ size_t KeccakP1600times8_KravatteExpand(uint64_t *yAccu, const uint64_t *kRoll, unsigned char *output, size_t outputByteLen);
52
+
53
+ #endif
@@ -0,0 +1 @@
1
+ #include "../common/KeccakSpongeWidth1600.c"
@@ -0,0 +1,7 @@
1
+ /*
2
+ This file defines some parameters of the implementation in the parent directory.
3
+ */
4
+
5
+ #define KeccakP1600times2_implementation_config "AVX512, 12 rounds unrolled"
6
+ #define KeccakP1600times2_unrolling 12
7
+ #define KeccakP1600times2_useAVX512
@@ -0,0 +1,7 @@
1
+ /*
2
+ This file defines some parameters of the implementation in the parent directory.
3
+ */
4
+
5
+ #define KeccakP1600times4_implementation_config "AVX512, 12 rounds unrolled"
6
+ #define KeccakP1600times4_unrolling 12
7
+ #define KeccakP1600times4_useAVX512
@@ -0,0 +1,7 @@
1
+ /*
2
+ This file defines some parameters of the implementation in the parent directory.
3
+ */
4
+
5
+ #define KeccakP1600times8_implementation_config "AVX512, 12 rounds unrolled"
6
+ #define KeccakP1600times8_unrolling 12
7
+ #define KeccakP1600times8_useAVX512
@@ -0,0 +1 @@
1
+ #include "../../ext.c"
@@ -0,0 +1,101 @@
1
+ /*
2
+ * These works are licensed under the Creative Commons Attribution-ShareAlike
3
+ * 3.0 Unported License. To view a copy of this license, visit
4
+ * http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
5
+ * Commons, PO Box 1866, Mountain View, CA 94042, USA.
6
+ */
7
+
8
+ #ifndef UTILS_H
9
+ #define UTILS_H
10
+
11
+ /*
12
+ * A simplified hex encoder based on Yannuth's answer in StackOverflow
13
+ * (https://stackoverflow.com/a/17147874/445221).
14
+ *
15
+ * Length of `dest[]` is implied to be twice of `len`.
16
+ */
17
+ static void hex_encode_str_implied(const unsigned char *src, size_t len, unsigned char *dest)
18
+ {
19
+ static const unsigned char table[] = "0123456789abcdef";
20
+
21
+ for (; len > 0; --len) {
22
+ unsigned char c = *src++;
23
+ *dest++ = table[c >> 4];
24
+ *dest++ = table[c & 0x0f];
25
+ }
26
+ }
27
+
28
+ /*
29
+ * Decodes hex string.
30
+ *
31
+ * Length of `dest[]` is implied to be calculated with calc_hex_decoded_str_length.
32
+ *
33
+ * Returns nonzero is successful.
34
+ */
35
+ static int hex_decode_str_implied(const unsigned char *src, size_t len, unsigned char *dest)
36
+ {
37
+ unsigned char low, high;
38
+
39
+ if (len % 2) {
40
+ low = *src++;
41
+
42
+ if (low >= '0' && low <= '9') {
43
+ low -= '0';
44
+ } else if (low >= 'A' && low <= 'F') {
45
+ low -= 'A' - 10;
46
+ } else if (low >= 'a' && low <= 'f') {
47
+ low -= 'a' - 10;
48
+ } else {
49
+ return 0;
50
+ }
51
+
52
+ *dest++ = low;
53
+ --len;
54
+ }
55
+
56
+ for (; len > 0; len -= 2) {
57
+ high = *src++;
58
+
59
+ if (high >= '0' && high <= '9') {
60
+ high -= '0';
61
+ } else if (high >= 'A' && high <= 'F') {
62
+ high -= 'A' - 10;
63
+ } else if (high >= 'a' && high <= 'f') {
64
+ high -= 'a' - 10;
65
+ } else {
66
+ return 0;
67
+ }
68
+
69
+ low = *src++;
70
+
71
+ if (low >= '0' && low <= '9') {
72
+ low -= '0';
73
+ } else if (low >= 'A' && low <= 'F') {
74
+ low -= 'A' - 10;
75
+ } else if (low >= 'a' && low <= 'f') {
76
+ low -= 'a' - 10;
77
+ } else {
78
+ return 0;
79
+ }
80
+
81
+ *dest++ = high << 4 | low;
82
+ }
83
+
84
+ return -1;
85
+ }
86
+
87
+ /*
88
+ * Calculates length of string that would store decoded hex.
89
+ */
90
+ static size_t calc_hex_decoded_str_length(size_t hex_encoded_length)
91
+ {
92
+ if (hex_encoded_length == 0)
93
+ return 0;
94
+
95
+ if (hex_encoded_length % 2)
96
+ ++hex_encoded_length;
97
+
98
+ return hex_encoded_length / 2;
99
+ }
100
+
101
+ #endif
@@ -1,5 +1,5 @@
1
1
  module Digest
2
- class KangarooTwelve
3
- VERSION = "0.0.2"
2
+ module KangarooTwelve
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
data/test/test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'minitest/autorun'
2
- require 'yaml'
3
2
 
4
3
  TEST_DIR = File.dirname(__FILE__)
5
4
  require File.join(TEST_DIR, %w{ .. lib digest kangarootwelve })
@@ -17,59 +16,97 @@ def get_repeated_0xff(length)
17
16
  [str].cycle(cycles).to_a.join[0...length]
18
17
  end
19
18
 
19
+ def hex_encode(str)
20
+ str.unpack('H*').pop
21
+ end
22
+
20
23
  describe Digest::KangarooTwelve do
21
24
  it "produces implementation classes" do
22
- Digest::KangarooTwelve[32].superclass.must_equal Digest::KangarooTwelve::Impl
23
- Digest::KangarooTwelve[32].digest_length.must_equal 32
24
- Digest::KangarooTwelve[32].must_equal Digest::KangarooTwelve_32
25
- Digest::KangarooTwelve.implement(digest_length: 64).superclass.must_equal Digest::KangarooTwelve::Impl
26
- Digest::KangarooTwelve.implement(digest_length: 64).digest_length.must_equal 64
27
- Digest::KangarooTwelve.implement(digest_length: 64).must_equal Digest::KangarooTwelve_64
25
+ _(Digest::KangarooTwelve[32].superclass).must_equal Digest::KangarooTwelve::Impl
26
+ _(Digest::KangarooTwelve[32].digest_length).must_equal 32
27
+ _(Digest::KangarooTwelve[32]).must_equal Digest::KangarooTwelve_32
28
+ _(Digest::KangarooTwelve.implement(digest_length: 64).superclass).must_equal Digest::KangarooTwelve::Impl
29
+ _(Digest::KangarooTwelve.implement(digest_length: 64).digest_length).must_equal 64
30
+ _(Digest::KangarooTwelve.implement(digest_length: 64)).must_equal Digest::KangarooTwelve_64
28
31
  end
29
32
 
30
33
  it "produces a default implemention with a digest length of 64" do
31
- Digest::KangarooTwelve.implement.must_equal Digest::KangarooTwelve_64
32
- Digest::KangarooTwelve_64.digest_length.must_equal 64
34
+ _(Digest::KangarooTwelve.implement).must_equal Digest::KangarooTwelve_64
35
+ _(Digest::KangarooTwelve_64.digest_length).must_equal 64
33
36
  end
34
37
 
35
38
  it "produces instances that are consistent with produced implementation classes" do
36
- Digest::KangarooTwelve[32].new.class.must_equal Digest::KangarooTwelve_32
37
- Digest::KangarooTwelve.implement(digest_length: 48).must_equal Digest::KangarooTwelve_48
39
+ _(Digest::KangarooTwelve[32].new.class).must_equal Digest::KangarooTwelve_32
40
+ _(Digest::KangarooTwelve.implement(digest_length: 48)).must_equal Digest::KangarooTwelve_48
38
41
  end
39
42
 
40
43
  it "produces classes with equal digest length as its instances" do
41
- Digest::KangarooTwelve[32].new.digest_length.must_equal Digest::KangarooTwelve_32.digest_length
42
- Digest::KangarooTwelve.implement(digest_length: 48).new.digest_length.must_equal Digest::KangarooTwelve_48.digest_length
44
+ _(Digest::KangarooTwelve[32].new.digest_length).must_equal Digest::KangarooTwelve_32.digest_length
45
+ _(Digest::KangarooTwelve.implement(digest_length: 48).new.digest_length).must_equal Digest::KangarooTwelve_48.digest_length
43
46
  end
44
47
 
45
- it "produces a hash" do
46
- Digest::KangarooTwelve.default.new.digest("")
48
+ it "produces hashes" do
49
+ _(Digest::KangarooTwelve.default.digest("").class).must_equal String
50
+ _(Digest::KangarooTwelve.default.hexdigest("").class).must_equal String
51
+ _(Digest::KangarooTwelve.default.new.digest("").class).must_equal String
52
+ _(Digest::KangarooTwelve.default.new.hexdigest("").class).must_equal String
53
+ end
54
+
55
+ it "produces similar output with its digest and hexdigest methods" do
56
+ digest_a = Digest::KangarooTwelve[32].digest("abcd")
57
+ _(digest_a.class).must_equal String
58
+ digest_b = Digest::KangarooTwelve[32].new.digest("abcd")
59
+ _(digest_b.class).must_equal String
60
+ _(digest_a).must_equal digest_b
61
+ hex_digest_a = Digest::KangarooTwelve[32].hexdigest("abcd")
62
+ _(hex_digest_a.class).must_equal String
63
+ hex_digest_b = Digest::KangarooTwelve[32].new.hexdigest("abcd")
64
+ _(hex_digest_b.class).must_equal String
65
+ _(hex_digest_a).must_equal hex_digest_b
66
+ _(hex_digest_a).must_equal hex_encode(digest_a)
47
67
  end
48
68
 
49
69
  it "works with customization strings" do
50
- Digest::KangarooTwelve.implement(customization: "abc").new.digest("")
70
+ Digest::KangarooTwelve.implement(customization: "abcd").new.digest("")
51
71
  end
52
72
 
53
73
  it "produces implementations with small and long option names" do
54
- a = Digest::KangarooTwelve.implement(n: "KangarooTwelveTestA", d: 48, b: 512, c: "abc")
55
- b = Digest::KangarooTwelve.implement(name: "KangarooTwelveTestB", digest_length: 48, block_length: 512, customization: "abc")
56
- a.name.must_equal "Digest::KangarooTwelveTestA"
57
- b.name.must_equal "Digest::KangarooTwelveTestB"
58
- a.digest_length.must_equal 48
59
- a.digest_length.must_equal b.digest_length
60
- a.block_length.must_equal 512
61
- a.block_length.must_equal b.block_length
62
- a.customization.must_equal "abc"
63
- a.customization.must_equal b.customization
74
+ a = Digest::KangarooTwelve.implement(n: "KangarooTwelveTestA", d: 48, c: "abcd")
75
+ b = Digest::KangarooTwelve.implement(name: "KangarooTwelveTestB", digest_length: 48, customization: "abcd")
76
+ c = Digest::KangarooTwelve.implement(name: "KangarooTwelveTestC", digest_length: 48, customization_hex: "61626364")
77
+ d = Digest::KangarooTwelve.implement(name: "KangarooTwelveTestD", digest_length: 48, ch: "61626364")
78
+ _(a.name).must_equal "Digest::KangarooTwelveTestA"
79
+ _(b.name).must_equal "Digest::KangarooTwelveTestB"
80
+ _(a.digest_length).must_equal 48
81
+ _(b.digest_length).must_equal a.digest_length
82
+ _(a.customization).must_equal "abcd"
83
+ _(b.customization).must_equal a.customization
84
+ _(c.customization).must_equal a.customization
85
+ _(d.customization).must_equal a.customization
86
+ end
87
+
88
+ it "has a customization method that returns nil when customization string is undefined" do
89
+ _(Digest::KangarooTwelve.implement.customization).must_be_nil
90
+ end
91
+
92
+ it "has a customization_hex method that returns hex of customization string, or nil" do
93
+ _(Digest::KangarooTwelve.implement(c: "abcd").customization_hex).must_equal "61626364"
94
+ _(Digest::KangarooTwelve.implement.customization_hex).must_be_nil
95
+ end
96
+
97
+ it "has a declared block length of 8192 bytes" do
98
+ _(Digest::KangarooTwelve::BLOCK_LENGTH).must_equal 8192
99
+ _(Digest::KangarooTwelve.default.block_length).must_equal 8192
100
+ _(Digest::KangarooTwelve.default.new.block_length).must_equal 8192
64
101
  end
65
102
 
66
103
  it "produces valid hashes" do
67
104
  # KangarooTwelve(M=empty, C=empty, 32 bytes):
68
- Digest::KangarooTwelve[32].new.hexdigest("").must_equal "1ac2d450fc3b4205d19da7bfca1b37513c0803577ac7167f06fe2ce1f0ef39e5"
105
+ _(Digest::KangarooTwelve[32].new.hexdigest("")).must_equal "1ac2d450fc3b4205d19da7bfca1b37513c0803577ac7167f06fe2ce1f0ef39e5"
69
106
  # KangarooTwelve(M=empty, C=empty, 64 bytes):
70
- Digest::KangarooTwelve[64].new.hexdigest("").must_equal "1ac2d450fc3b4205d19da7bfca1b37513c0803577ac7167f06fe2ce1f0ef39e54269c056b8c82e48276038b6d292966cc07a3d4645272e31ff38508139eb0a71"
107
+ _(Digest::KangarooTwelve[64].new.hexdigest("")).must_equal "1ac2d450fc3b4205d19da7bfca1b37513c0803577ac7167f06fe2ce1f0ef39e54269c056b8c82e48276038b6d292966cc07a3d4645272e31ff38508139eb0a71"
71
108
  # KangarooTwelve(M=empty, C=empty, 10032 bytes), last 32 bytes:
72
- Digest::KangarooTwelve[10032].new.hexdigest("")[-64..-1].must_equal "e8dc563642f7228c84684c898405d3a834799158c079b12880277a1d28e2ff6d"
109
+ _(Digest::KangarooTwelve[10032].new.hexdigest("")[-64..-1]).must_equal "e8dc563642f7228c84684c898405d3a834799158c079b12880277a1d28e2ff6d"
73
110
 
74
111
  # KangarooTwelve(M=pattern 0x00 to 0xFA for 17^i bytes, C=empty, 32 bytes):
75
112
  [
@@ -82,7 +119,7 @@ describe Digest::KangarooTwelve do
82
119
  [6, "3c390782a8a4e89fa6367f72feaaf13255c8d95878481d3cd8ce85f58e880af8"]
83
120
  ].each do |i, hash|
84
121
  m = get_repeated_0x00_to_0xfa(17 ** i)
85
- Digest::KangarooTwelve[32].new.hexdigest(m).must_equal hash
122
+ _(Digest::KangarooTwelve[32].new.hexdigest(m)).must_equal hash
86
123
  end
87
124
  end
88
125
 
@@ -96,7 +133,7 @@ describe Digest::KangarooTwelve do
96
133
  ].each do |i, j, hash|
97
134
  m = get_repeated_0xff(i)
98
135
  c = get_repeated_0x00_to_0xfa(41 ** j)
99
- Digest::KangarooTwelve.implement(digest_length: 32, customization: c).new.hexdigest(m).must_equal hash
136
+ _(Digest::KangarooTwelve.implement(digest_length: 32, customization: c).new.hexdigest(m)).must_equal hash
100
137
  end
101
138
  end
102
139
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digest-kangarootwelve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - konsolebox
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-12 00:00:00.000000000 Z
11
+ date: 2021-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.8'
55
- description: An implementation of KangarooTwelve for Ruby that works on top of Digest::Base.
55
+ description: A KangarooTwelve library that works on top of Digest::Base.
56
56
  email:
57
57
  - konsolebox@gmail.com
58
58
  executables: []
@@ -65,34 +65,313 @@ files:
65
65
  - README.md
66
66
  - Rakefile
67
67
  - digest-kangarootwelve.gemspec
68
- - ext/digest/kangarootwelve/KangarooTwelve.c
69
- - ext/digest/kangarootwelve/KangarooTwelve.h
70
- - ext/digest/kangarootwelve/KeccakP-1600-SnP.h
71
- - ext/digest/kangarootwelve/KeccakP-1600-compact64.c
72
- - ext/digest/kangarootwelve/KeccakP-1600-times2-SnP.h
73
- - ext/digest/kangarootwelve/KeccakP-1600-times2-on1.c
74
- - ext/digest/kangarootwelve/KeccakP-1600-times4-SnP.h
75
- - ext/digest/kangarootwelve/KeccakP-1600-times4-on1.c
76
- - ext/digest/kangarootwelve/KeccakP-1600-times8-SnP.h
77
- - ext/digest/kangarootwelve/KeccakP-1600-times8-on1.c
78
- - ext/digest/kangarootwelve/KeccakSponge-common.h
79
- - ext/digest/kangarootwelve/KeccakSponge.inc
80
- - ext/digest/kangarootwelve/KeccakSpongeWidth1600.c
81
- - ext/digest/kangarootwelve/KeccakSpongeWidth1600.h
82
- - ext/digest/kangarootwelve/Phases.h
83
- - ext/digest/kangarootwelve/PlSnP-Fallback.inc
84
- - ext/digest/kangarootwelve/SnP-Relaned.h
85
- - ext/digest/kangarootwelve/align.h
86
- - ext/digest/kangarootwelve/brg_endian.h
87
68
  - ext/digest/kangarootwelve/ext.c
88
69
  - ext/digest/kangarootwelve/extconf.rb
70
+ - ext/digest/kangarootwelve/keccak/armv6m/KangarooTwelve.link.c
71
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakDuplexWidth1600.link.c
72
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-SnP.h
73
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-times2-SnP.h
74
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-times2-on1.c
75
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-times4-SnP.h
76
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-times4-on1.c
77
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-times8-SnP.h
78
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-times8-on1.c
79
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakP-1600-u2-32bi-armv6m-le-gcc.s
80
+ - ext/digest/kangarootwelve/keccak/armv6m/KeccakSpongeWidth1600.link.c
81
+ - ext/digest/kangarootwelve/keccak/armv6m/PlSnP-Fallback.inc
82
+ - ext/digest/kangarootwelve/keccak/armv6m/ext.link.c
83
+ - ext/digest/kangarootwelve/keccak/armv7a/KangarooTwelve.link.c
84
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakDuplexWidth1600.link.c
85
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-SnP.h
86
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-armv7a-le-neon-gcc.s
87
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-inplace-pl2-armv7a-neon-le-gcc.s
88
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times2-SnP.h
89
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times4-SnP.h
90
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times4-on2.c
91
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times8-SnP.h
92
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakP-1600-times8-on2.c
93
+ - ext/digest/kangarootwelve/keccak/armv7a/KeccakSpongeWidth1600.link.c
94
+ - ext/digest/kangarootwelve/keccak/armv7a/PlSnP-Fallback.inc
95
+ - ext/digest/kangarootwelve/keccak/armv7a/ext.link.c
96
+ - ext/digest/kangarootwelve/keccak/armv7m/KangarooTwelve.link.c
97
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakDuplexWidth1600.link.c
98
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-SnP.h
99
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-inplace-32bi-armv7m-le-gcc.s
100
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times2-SnP.h
101
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times2-on1.c
102
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times4-SnP.h
103
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times4-on1.c
104
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times8-SnP.h
105
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakP-1600-times8-on1.c
106
+ - ext/digest/kangarootwelve/keccak/armv7m/KeccakSpongeWidth1600.link.c
107
+ - ext/digest/kangarootwelve/keccak/armv7m/PlSnP-Fallback.inc
108
+ - ext/digest/kangarootwelve/keccak/armv7m/ext.link.c
109
+ - ext/digest/kangarootwelve/keccak/armv8a/KangarooTwelve.link.c
110
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakDuplexWidth1600.link.c
111
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-SnP.h
112
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-armv8a-neon.s
113
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times2-SnP.h
114
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times2-on1.c
115
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times4-SnP.h
116
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times4-on1.c
117
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times8-SnP.h
118
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakP-1600-times8-on1.c
119
+ - ext/digest/kangarootwelve/keccak/armv8a/KeccakSpongeWidth1600.link.c
120
+ - ext/digest/kangarootwelve/keccak/armv8a/PlSnP-Fallback.inc
121
+ - ext/digest/kangarootwelve/keccak/armv8a/ext.link.c
122
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KangarooTwelve.link.c
123
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakDuplexWidth1600.link.c
124
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-SnP.h
125
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times2-SnP.h
126
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times2-on1.c
127
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times4-SnP.h
128
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times4-on1.c
129
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times8-SnP.h
130
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-times8-on1.c
131
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakP-1600-x86-64-gas.s
132
+ - ext/digest/kangarootwelve/keccak/asmx86-64/KeccakSpongeWidth1600.link.c
133
+ - ext/digest/kangarootwelve/keccak/asmx86-64/PlSnP-Fallback.inc
134
+ - ext/digest/kangarootwelve/keccak/asmx86-64/ext.link.c
135
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KangarooTwelve.link.c
136
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakDuplexWidth1600.link.c
137
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-SnP.h
138
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times2-SnP.h
139
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times2-on1.c
140
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times4-SnP.h
141
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times4-on1.c
142
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times8-SnP.h
143
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-times8-on1.c
144
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakP-1600-x86-64-shld-gas.s
145
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/KeccakSpongeWidth1600.link.c
146
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/PlSnP-Fallback.inc
147
+ - ext/digest/kangarootwelve/keccak/asmx86-64shld/ext.link.c
148
+ - ext/digest/kangarootwelve/keccak/avr8/KangarooTwelve.link.c
149
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakDuplexWidth1600.link.c
150
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-SnP.h
151
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-avr8-fast.s
152
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times2-SnP.h
153
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times2-on1.c
154
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times4-SnP.h
155
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times4-on1.c
156
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times8-SnP.h
157
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakP-1600-times8-on1.c
158
+ - ext/digest/kangarootwelve/keccak/avr8/KeccakSpongeWidth1600.link.c
159
+ - ext/digest/kangarootwelve/keccak/avr8/PlSnP-Fallback.inc
160
+ - ext/digest/kangarootwelve/keccak/avr8/ext.link.c
161
+ - ext/digest/kangarootwelve/keccak/bulldozer/KangarooTwelve.link.c
162
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakDuplexWidth1600.link.c
163
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-SnP.h
164
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-XOP-config.h
165
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-XOP.c
166
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times2-SIMD128.c
167
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times2-SnP.h
168
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times4-SnP.h
169
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times4-on2.c
170
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times8-SnP.h
171
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-times8-on2.c
172
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakP-1600-unrolling.macros
173
+ - ext/digest/kangarootwelve/keccak/bulldozer/KeccakSpongeWidth1600.link.c
174
+ - ext/digest/kangarootwelve/keccak/bulldozer/PlSnP-Fallback.inc
175
+ - ext/digest/kangarootwelve/keccak/bulldozer/SIMD128-config.h
176
+ - ext/digest/kangarootwelve/keccak/bulldozer/SnP-Relaned.h
177
+ - ext/digest/kangarootwelve/keccak/bulldozer/ext.link.c
178
+ - ext/digest/kangarootwelve/keccak/common/KangarooTwelve.c
179
+ - ext/digest/kangarootwelve/keccak/common/KangarooTwelve.h
180
+ - ext/digest/kangarootwelve/keccak/common/KeccakDuplex-common.h
181
+ - ext/digest/kangarootwelve/keccak/common/KeccakDuplex.inc
182
+ - ext/digest/kangarootwelve/keccak/common/KeccakDuplexWidth1600.c
183
+ - ext/digest/kangarootwelve/keccak/common/KeccakDuplexWidth1600.h
184
+ - ext/digest/kangarootwelve/keccak/common/KeccakSponge-common.h
185
+ - ext/digest/kangarootwelve/keccak/common/KeccakSponge.inc
186
+ - ext/digest/kangarootwelve/keccak/common/KeccakSpongeWidth1600.c
187
+ - ext/digest/kangarootwelve/keccak/common/KeccakSpongeWidth1600.h
188
+ - ext/digest/kangarootwelve/keccak/common/Phases.h
189
+ - ext/digest/kangarootwelve/keccak/common/align.h
190
+ - ext/digest/kangarootwelve/keccak/common/brg_endian.h
191
+ - ext/digest/kangarootwelve/keccak/compact/KangarooTwelve.link.c
192
+ - ext/digest/kangarootwelve/keccak/compact/KeccakDuplexWidth1600.link.c
193
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-SnP.h
194
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-compact64.c
195
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times2-SnP.h
196
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times2-on1.c
197
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times4-SnP.h
198
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times4-on1.c
199
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times8-SnP.h
200
+ - ext/digest/kangarootwelve/keccak/compact/KeccakP-1600-times8-on1.c
201
+ - ext/digest/kangarootwelve/keccak/compact/KeccakSpongeWidth1600.link.c
202
+ - ext/digest/kangarootwelve/keccak/compact/PlSnP-Fallback.inc
203
+ - ext/digest/kangarootwelve/keccak/compact/SnP-Relaned.h
204
+ - ext/digest/kangarootwelve/keccak/compact/ext.link.c
205
+ - ext/digest/kangarootwelve/keccak/generic32/KangarooTwelve.link.c
206
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakDuplexWidth1600.link.c
207
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-SnP.h
208
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-inplace32BI.c
209
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times2-SnP.h
210
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times2-on1.c
211
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times4-SnP.h
212
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times4-on1.c
213
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times8-SnP.h
214
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakP-1600-times8-on1.c
215
+ - ext/digest/kangarootwelve/keccak/generic32/KeccakSpongeWidth1600.link.c
216
+ - ext/digest/kangarootwelve/keccak/generic32/PlSnP-Fallback.inc
217
+ - ext/digest/kangarootwelve/keccak/generic32/SnP-Relaned.h
218
+ - ext/digest/kangarootwelve/keccak/generic32/ext.link.c
219
+ - ext/digest/kangarootwelve/keccak/generic32lc/KangarooTwelve.link.c
220
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakDuplexWidth1600.link.c
221
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-SnP.h
222
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-inplace32BI.c
223
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times2-SnP.h
224
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times2-on1.c
225
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times4-SnP.h
226
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times4-on1.c
227
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times8-SnP.h
228
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakP-1600-times8-on1.c
229
+ - ext/digest/kangarootwelve/keccak/generic32lc/KeccakSpongeWidth1600.link.c
230
+ - ext/digest/kangarootwelve/keccak/generic32lc/PlSnP-Fallback.inc
231
+ - ext/digest/kangarootwelve/keccak/generic32lc/SnP-Relaned.h
232
+ - ext/digest/kangarootwelve/keccak/generic32lc/ext.link.c
233
+ - ext/digest/kangarootwelve/keccak/generic64/KangarooTwelve.link.c
234
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakDuplexWidth1600.link.c
235
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-64.macros
236
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-SnP.h
237
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-opt64-config.h
238
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-opt64.c
239
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times2-SnP.h
240
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times2-on1.c
241
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times4-SnP.h
242
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times4-on1.c
243
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times8-SnP.h
244
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-times8-on1.c
245
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakP-1600-unrolling.macros
246
+ - ext/digest/kangarootwelve/keccak/generic64/KeccakSpongeWidth1600.link.c
247
+ - ext/digest/kangarootwelve/keccak/generic64/PlSnP-Fallback.inc
248
+ - ext/digest/kangarootwelve/keccak/generic64/SnP-Relaned.h
249
+ - ext/digest/kangarootwelve/keccak/generic64/ext.link.c
250
+ - ext/digest/kangarootwelve/keccak/generic64lc/KangarooTwelve.link.c
251
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakDuplexWidth1600.link.c
252
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-64.macros
253
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-SnP.h
254
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-opt64-config.h
255
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-opt64.c
256
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times2-SnP.h
257
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times2-on1.c
258
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times4-SnP.h
259
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times4-on1.c
260
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times8-SnP.h
261
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-times8-on1.c
262
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakP-1600-unrolling.macros
263
+ - ext/digest/kangarootwelve/keccak/generic64lc/KeccakSpongeWidth1600.link.c
264
+ - ext/digest/kangarootwelve/keccak/generic64lc/PlSnP-Fallback.inc
265
+ - ext/digest/kangarootwelve/keccak/generic64lc/SnP-Relaned.h
266
+ - ext/digest/kangarootwelve/keccak/generic64lc/ext.link.c
267
+ - ext/digest/kangarootwelve/keccak/haswell/KangarooTwelve.link.c
268
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakDuplexWidth1600.link.c
269
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-AVX2.s
270
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-SnP.h
271
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times2-SIMD128.c
272
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times2-SnP.h
273
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times4-SIMD256.c
274
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times4-SnP.h
275
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times8-SnP.h
276
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-times8-on4.c
277
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakP-1600-unrolling.macros
278
+ - ext/digest/kangarootwelve/keccak/haswell/KeccakSpongeWidth1600.link.c
279
+ - ext/digest/kangarootwelve/keccak/haswell/PlSnP-Fallback.inc
280
+ - ext/digest/kangarootwelve/keccak/haswell/SIMD128-config.h
281
+ - ext/digest/kangarootwelve/keccak/haswell/SIMD256-config.h
282
+ - ext/digest/kangarootwelve/keccak/haswell/ext.link.c
283
+ - ext/digest/kangarootwelve/keccak/nehalem/KangarooTwelve.link.c
284
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakDuplexWidth1600.link.c
285
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-64.macros
286
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-SnP.h
287
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-opt64-config.h
288
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-opt64.c
289
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times2-SIMD128.c
290
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times2-SnP.h
291
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times4-SnP.h
292
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times4-on2.c
293
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times8-SnP.h
294
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-times8-on2.c
295
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakP-1600-unrolling.macros
296
+ - ext/digest/kangarootwelve/keccak/nehalem/KeccakSpongeWidth1600.link.c
297
+ - ext/digest/kangarootwelve/keccak/nehalem/PlSnP-Fallback.inc
298
+ - ext/digest/kangarootwelve/keccak/nehalem/SIMD128-config.h
299
+ - ext/digest/kangarootwelve/keccak/nehalem/SnP-Relaned.h
300
+ - ext/digest/kangarootwelve/keccak/nehalem/ext.link.c
301
+ - ext/digest/kangarootwelve/keccak/reference/KangarooTwelve.link.c
302
+ - ext/digest/kangarootwelve/keccak/reference/KeccakDuplexWidth1600.link.c
303
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-SnP.h
304
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-reference.c
305
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-reference.h
306
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times2-SnP.h
307
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times2-on1.c
308
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times4-SnP.h
309
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times4-on1.c
310
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times8-SnP.h
311
+ - ext/digest/kangarootwelve/keccak/reference/KeccakP-1600-times8-on1.c
312
+ - ext/digest/kangarootwelve/keccak/reference/KeccakSpongeWidth1600.link.c
313
+ - ext/digest/kangarootwelve/keccak/reference/PlSnP-Fallback.inc
314
+ - ext/digest/kangarootwelve/keccak/reference/displayIntermediateValues.c
315
+ - ext/digest/kangarootwelve/keccak/reference/displayIntermediateValues.h
316
+ - ext/digest/kangarootwelve/keccak/reference/ext.link.c
317
+ - ext/digest/kangarootwelve/keccak/reference32bits/KangarooTwelve.link.c
318
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakDuplexWidth1600.link.c
319
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-SnP.h
320
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-reference.h
321
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-reference32BI.c
322
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times2-SnP.h
323
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times2-on1.c
324
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times4-SnP.h
325
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times4-on1.c
326
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times8-SnP.h
327
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakP-1600-times8-on1.c
328
+ - ext/digest/kangarootwelve/keccak/reference32bits/KeccakSpongeWidth1600.link.c
329
+ - ext/digest/kangarootwelve/keccak/reference32bits/PlSnP-Fallback.inc
330
+ - ext/digest/kangarootwelve/keccak/reference32bits/displayIntermediateValues.c
331
+ - ext/digest/kangarootwelve/keccak/reference32bits/displayIntermediateValues.h
332
+ - ext/digest/kangarootwelve/keccak/reference32bits/ext.link.c
333
+ - ext/digest/kangarootwelve/keccak/sandybridge/KangarooTwelve.link.c
334
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakDuplexWidth1600.link.c
335
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-64.macros
336
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-SnP.h
337
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-opt64-config.h
338
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-opt64.c
339
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times2-SIMD128.c
340
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times2-SnP.h
341
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times4-SnP.h
342
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times4-on2.c
343
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times8-SnP.h
344
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-times8-on2.c
345
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakP-1600-unrolling.macros
346
+ - ext/digest/kangarootwelve/keccak/sandybridge/KeccakSpongeWidth1600.link.c
347
+ - ext/digest/kangarootwelve/keccak/sandybridge/PlSnP-Fallback.inc
348
+ - ext/digest/kangarootwelve/keccak/sandybridge/SIMD128-config.h
349
+ - ext/digest/kangarootwelve/keccak/sandybridge/SnP-Relaned.h
350
+ - ext/digest/kangarootwelve/keccak/sandybridge/ext.link.c
351
+ - ext/digest/kangarootwelve/keccak/skylakex/KangarooTwelve.link.c
352
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakDuplexWidth1600.link.c
353
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-AVX512-config.h
354
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-AVX512.c
355
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-SnP.h
356
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times2-SIMD512.c
357
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times2-SnP.h
358
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times4-SIMD512.c
359
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times4-SnP.h
360
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times8-SIMD512.c
361
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakP-1600-times8-SnP.h
362
+ - ext/digest/kangarootwelve/keccak/skylakex/KeccakSpongeWidth1600.link.c
363
+ - ext/digest/kangarootwelve/keccak/skylakex/SIMD512-2-config.h
364
+ - ext/digest/kangarootwelve/keccak/skylakex/SIMD512-4-config.h
365
+ - ext/digest/kangarootwelve/keccak/skylakex/SIMD512-config.h
366
+ - ext/digest/kangarootwelve/keccak/skylakex/ext.link.c
367
+ - ext/digest/kangarootwelve/utils.h
89
368
  - lib/digest/kangarootwelve/version.rb
90
369
  - test/test.rb
91
370
  homepage: https://github.com/konsolebox/digest-kangarootwelve-ruby
92
371
  licenses:
93
372
  - MIT
94
373
  metadata: {}
95
- post_install_message:
374
+ post_install_message:
96
375
  rdoc_options: []
97
376
  require_paths:
98
377
  - lib
@@ -107,9 +386,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
386
  - !ruby/object:Gem::Version
108
387
  version: '0'
109
388
  requirements: []
110
- rubyforge_project:
111
- rubygems_version: 2.6.8
112
- signing_key:
389
+ rubygems_version: 3.2.14
390
+ signing_key:
113
391
  specification_version: 4
114
392
  summary: KangarooTwelve for Ruby
115
393
  test_files: