@leocuvee/wrkzcoin-multi-hashing 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/.travis.yml +5 -0
  2. package/LICENSE +674 -0
  3. package/README.md +87 -0
  4. package/appveyor.yml +12 -0
  5. package/argon2/.gitattributes +10 -0
  6. package/argon2/.travis.yml +25 -0
  7. package/argon2/Argon2.sln +160 -0
  8. package/argon2/CHANGELOG.md +32 -0
  9. package/argon2/CMakeLists.txt +87 -0
  10. package/argon2/LICENSE +314 -0
  11. package/argon2/Makefile +196 -0
  12. package/argon2/README.md +297 -0
  13. package/argon2/appveyor.yml +40 -0
  14. package/argon2/argon2-specs.pdf +0 -0
  15. package/argon2/export.sh +7 -0
  16. package/argon2/include/argon2.h +427 -0
  17. package/argon2/latex/CMakeLists.txt +34 -0
  18. package/argon2/latex/IEEEtran.cls +6347 -0
  19. package/argon2/latex/Makefile +18 -0
  20. package/argon2/latex/argon2-specs.tex +920 -0
  21. package/argon2/latex/pics/argon2-par.pdf +0 -0
  22. package/argon2/latex/pics/compression.pdf +0 -0
  23. package/argon2/latex/pics/generic.pdf +0 -0
  24. package/argon2/latex/pics/power-distribution.jpg +0 -0
  25. package/argon2/latex/tradeoff.bib +822 -0
  26. package/argon2/libargon2.pc +16 -0
  27. package/argon2/man/CMakeLists.txt +8 -0
  28. package/argon2/man/argon2.1 +57 -0
  29. package/argon2/meson.build +16 -0
  30. package/argon2/meson_options.txt +1 -0
  31. package/argon2/src/CMakeLists.txt +147 -0
  32. package/argon2/src/argon2.c +452 -0
  33. package/argon2/src/argon2.pc.in +11 -0
  34. package/argon2/src/blake2/blake2-impl.h +156 -0
  35. package/argon2/src/blake2/blake2.h +89 -0
  36. package/argon2/src/blake2/blake2b.c +390 -0
  37. package/argon2/src/blake2/blamka-round-opt.h +471 -0
  38. package/argon2/src/blake2/blamka-round-ref.h +56 -0
  39. package/argon2/src/core.c +634 -0
  40. package/argon2/src/core.h +228 -0
  41. package/argon2/src/encoding.c +467 -0
  42. package/argon2/src/encoding.h +57 -0
  43. package/argon2/src/genkat.h +51 -0
  44. package/argon2/src/meson.build +68 -0
  45. package/argon2/src/opt.c +283 -0
  46. package/argon2/src/optimization/CMakeLists.txt +10 -0
  47. package/argon2/src/ref.c +194 -0
  48. package/argon2/src/thread.c +57 -0
  49. package/argon2/src/thread.h +67 -0
  50. package/argon2/tests/CMakeLists.txt +43 -0
  51. package/argon2/tests/bench.c +111 -0
  52. package/argon2/tests/genkat.c +207 -0
  53. package/argon2/tests/kats/argon2d +12304 -0
  54. package/argon2/tests/kats/argon2d.shasum +1 -0
  55. package/argon2/tests/kats/argon2d_v16 +12304 -0
  56. package/argon2/tests/kats/argon2d_v16.shasum +1 -0
  57. package/argon2/tests/kats/argon2i +12304 -0
  58. package/argon2/tests/kats/argon2i.shasum +1 -0
  59. package/argon2/tests/kats/argon2i_v16 +12304 -0
  60. package/argon2/tests/kats/argon2i_v16.shasum +1 -0
  61. package/argon2/tests/kats/argon2id +12304 -0
  62. package/argon2/tests/kats/argon2id.shasum +1 -0
  63. package/argon2/tests/kats/argon2id_v16 +12304 -0
  64. package/argon2/tests/kats/argon2id_v16.shasum +1 -0
  65. package/argon2/tests/kats/check-sums.ps1 +48 -0
  66. package/argon2/tests/kats/check-sums.sh +16 -0
  67. package/argon2/tests/kats/test.ps1 +132 -0
  68. package/argon2/tests/kats/test.sh +117 -0
  69. package/argon2/tests/meson.build +34 -0
  70. package/argon2/tests/test.c +289 -0
  71. package/argon2/tool/CMakeLists.txt +7 -0
  72. package/argon2/tool/main.c +339 -0
  73. package/argon2/tool/meson.build +8 -0
  74. package/argon2/vs2015/Argon2Opt/Argon2Opt.vcxproj +226 -0
  75. package/argon2/vs2015/Argon2Opt/Argon2Opt.vcxproj.filters +69 -0
  76. package/argon2/vs2015/Argon2OptBench/Argon2OptBench.vcxproj +226 -0
  77. package/argon2/vs2015/Argon2OptBench/Argon2OptBench.vcxproj.filters +69 -0
  78. package/argon2/vs2015/Argon2OptDll/Argon2OptDll.vcxproj +225 -0
  79. package/argon2/vs2015/Argon2OptDll/Argon2OptDll.vcxproj.filters +66 -0
  80. package/argon2/vs2015/Argon2OptGenKAT/Argon2OptGenKAT.vcxproj +239 -0
  81. package/argon2/vs2015/Argon2OptGenKAT/Argon2OptGenKAT.vcxproj.filters +72 -0
  82. package/argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj +227 -0
  83. package/argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj.filters +69 -0
  84. package/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj +226 -0
  85. package/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj.filters +69 -0
  86. package/argon2/vs2015/Argon2RefBench/Argon2RefBench.vcxproj +226 -0
  87. package/argon2/vs2015/Argon2RefBench/Argon2RefBench.vcxproj.filters +69 -0
  88. package/argon2/vs2015/Argon2RefDll/Argon2RefDll.vcxproj +225 -0
  89. package/argon2/vs2015/Argon2RefDll/Argon2RefDll.vcxproj.filters +66 -0
  90. package/argon2/vs2015/Argon2RefGenKAT/Argon2RefGenKAT.vcxproj +227 -0
  91. package/argon2/vs2015/Argon2RefGenKAT/Argon2RefGenKAT.vcxproj.filters +72 -0
  92. package/argon2/vs2015/Argon2RefTestCI/Argon2RefTestCI.vcxproj +226 -0
  93. package/argon2/vs2015/Argon2RefTestCI/Argon2RefTestCI.vcxproj.filters +69 -0
  94. package/bcrypt.c +566 -0
  95. package/bcrypt.h +14 -0
  96. package/binding.gyp +93 -0
  97. package/blake.c +17 -0
  98. package/blake.h +16 -0
  99. package/boolberry.cc +11 -0
  100. package/boolberry.h +6 -0
  101. package/build/Makefile +354 -0
  102. package/build/Release/.deps/Release/multihashing.node.d +1 -0
  103. package/build/Release/.deps/Release/obj.target/multihashing/argon2/src/argon2.o.d +8 -0
  104. package/build/Release/.deps/Release/obj.target/multihashing/argon2/src/blake2/blake2b.o.d +8 -0
  105. package/build/Release/.deps/Release/obj.target/multihashing/argon2/src/core.o.d +10 -0
  106. package/build/Release/.deps/Release/obj.target/multihashing/argon2/src/encoding.o.d +8 -0
  107. package/build/Release/.deps/Release/obj.target/multihashing/argon2/src/ref.o.d +14 -0
  108. package/build/Release/.deps/Release/obj.target/multihashing/argon2/src/thread.o.d +5 -0
  109. package/build/Release/.deps/Release/obj.target/multihashing/bcrypt.o.d +4 -0
  110. package/build/Release/.deps/Release/obj.target/multihashing/blake.o.d +7 -0
  111. package/build/Release/.deps/Release/obj.target/multihashing/boolberry.o.d +12 -0
  112. package/build/Release/.deps/Release/obj.target/multihashing/c11.o.d +20 -0
  113. package/build/Release/.deps/Release/obj.target/multihashing/crypto/aesb.o.d +3 -0
  114. package/build/Release/.deps/Release/obj.target/multihashing/crypto/c_blake256.o.d +5 -0
  115. package/build/Release/.deps/Release/obj.target/multihashing/crypto/c_groestl.o.d +10 -0
  116. package/build/Release/.deps/Release/obj.target/multihashing/crypto/c_jh.o.d +9 -0
  117. package/build/Release/.deps/Release/obj.target/multihashing/crypto/c_keccak.o.d +7 -0
  118. package/build/Release/.deps/Release/obj.target/multihashing/crypto/c_skein.o.d +10 -0
  119. package/build/Release/.deps/Release/obj.target/multihashing/crypto/hash.o.d +7 -0
  120. package/build/Release/.deps/Release/obj.target/multihashing/crypto/oaes_lib.o.d +6 -0
  121. package/build/Release/.deps/Release/obj.target/multihashing/crypto/wild_keccak.o.d +8 -0
  122. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight.o.d +18 -0
  123. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_dark.o.d +18 -0
  124. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_dark_lite.o.d +18 -0
  125. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_fast.o.d +18 -0
  126. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_lite.o.d +18 -0
  127. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_soft_shell.o.d +18 -0
  128. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_turtle.o.d +18 -0
  129. package/build/Release/.deps/Release/obj.target/multihashing/cryptonight_turtle_lite.o.d +18 -0
  130. package/build/Release/.deps/Release/obj.target/multihashing/fresh.o.d +10 -0
  131. package/build/Release/.deps/Release/obj.target/multihashing/fugue.o.d +7 -0
  132. package/build/Release/.deps/Release/obj.target/multihashing/groestl.o.d +8 -0
  133. package/build/Release/.deps/Release/obj.target/multihashing/hefty1.o.d +12 -0
  134. package/build/Release/.deps/Release/obj.target/multihashing/keccak.o.d +8 -0
  135. package/build/Release/.deps/Release/obj.target/multihashing/multihashing.o.d +155 -0
  136. package/build/Release/.deps/Release/obj.target/multihashing/nist5.o.d +12 -0
  137. package/build/Release/.deps/Release/obj.target/multihashing/quark.o.d +14 -0
  138. package/build/Release/.deps/Release/obj.target/multihashing/qubit.o.d +12 -0
  139. package/build/Release/.deps/Release/obj.target/multihashing/scryptjane.o.d +30 -0
  140. package/build/Release/.deps/Release/obj.target/multihashing/scryptn.o.d +6 -0
  141. package/build/Release/.deps/Release/obj.target/multihashing/sha1.o.d +24 -0
  142. package/build/Release/.deps/Release/obj.target/multihashing/sha3/aes_helper.o.d +5 -0
  143. package/build/Release/.deps/Release/obj.target/multihashing/sha3/hamsi.o.d +7 -0
  144. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_blake.o.d +6 -0
  145. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_bmw.o.d +6 -0
  146. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_cubehash.o.d +6 -0
  147. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_echo.o.d +7 -0
  148. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_fugue.o.d +6 -0
  149. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_groestl.o.d +6 -0
  150. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_hefty1.o.d +5 -0
  151. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_jh.o.d +6 -0
  152. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_keccak.o.d +6 -0
  153. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_luffa.o.d +6 -0
  154. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_shabal.o.d +6 -0
  155. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_shavite.o.d +7 -0
  156. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_simd.o.d +6 -0
  157. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_skein.o.d +6 -0
  158. package/build/Release/.deps/Release/obj.target/multihashing/sha3/sph_whirlpool.o.d +8 -0
  159. package/build/Release/.deps/Release/obj.target/multihashing/shavite3.o.d +7 -0
  160. package/build/Release/.deps/Release/obj.target/multihashing/skein.o.d +8 -0
  161. package/build/Release/.deps/Release/obj.target/multihashing/x11.o.d +20 -0
  162. package/build/Release/.deps/Release/obj.target/multihashing/x13.o.d +23 -0
  163. package/build/Release/.deps/Release/obj.target/multihashing/x15.o.d +26 -0
  164. package/build/Release/.deps/Release/obj.target/multihashing.node.d +1 -0
  165. package/build/Release/multihashing.node +0 -0
  166. package/build/binding.Makefile +6 -0
  167. package/build/multihashing.target.mk +255 -0
  168. package/c11.c +85 -0
  169. package/c11.h +17 -0
  170. package/crypto/aesb.c +177 -0
  171. package/crypto/c_blake256.c +326 -0
  172. package/crypto/c_blake256.h +43 -0
  173. package/crypto/c_groestl.c +360 -0
  174. package/crypto/c_groestl.h +56 -0
  175. package/crypto/c_jh.c +367 -0
  176. package/crypto/c_jh.h +20 -0
  177. package/crypto/c_keccak.c +112 -0
  178. package/crypto/c_keccak.h +26 -0
  179. package/crypto/c_skein.c +2036 -0
  180. package/crypto/c_skein.h +45 -0
  181. package/crypto/crypto.h +186 -0
  182. package/crypto/cryptonote_core/account.cpp +50 -0
  183. package/crypto/cryptonote_core/account.h +61 -0
  184. package/crypto/cryptonote_core/cryptonote_basic_impl.cpp +186 -0
  185. package/crypto/cryptonote_core/cryptonote_basic_impl.h +65 -0
  186. package/crypto/cryptonote_core/cryptonote_format_utils.cpp +766 -0
  187. package/crypto/cryptonote_core/cryptonote_format_utils.h +30 -0
  188. package/crypto/cryptonote_protocol/cryptonote_protocol_defs.h +152 -0
  189. package/crypto/groestl_tables.h +38 -0
  190. package/crypto/hash-ops.h +57 -0
  191. package/crypto/hash.c +24 -0
  192. package/crypto/hash.h +22 -0
  193. package/crypto/int-util.h +230 -0
  194. package/crypto/oaes_config.h +50 -0
  195. package/crypto/oaes_lib.c +1468 -0
  196. package/crypto/oaes_lib.h +215 -0
  197. package/crypto/skein_port.h +190 -0
  198. package/crypto/variant2_int_sqrt.h +168 -0
  199. package/crypto/wild_keccak.cpp +119 -0
  200. package/crypto/wild_keccak.h +168 -0
  201. package/cryptonight.c +300 -0
  202. package/cryptonight.h +17 -0
  203. package/cryptonight_dark.c +300 -0
  204. package/cryptonight_dark.h +17 -0
  205. package/cryptonight_dark_lite.c +300 -0
  206. package/cryptonight_dark_lite.h +17 -0
  207. package/cryptonight_fast.c +300 -0
  208. package/cryptonight_fast.h +17 -0
  209. package/cryptonight_lite.c +300 -0
  210. package/cryptonight_lite.h +17 -0
  211. package/cryptonight_soft_shell.c +298 -0
  212. package/cryptonight_soft_shell.h +17 -0
  213. package/cryptonight_turtle.c +300 -0
  214. package/cryptonight_turtle.h +17 -0
  215. package/cryptonight_turtle_lite.c +300 -0
  216. package/cryptonight_turtle_lite.h +17 -0
  217. package/fresh.c +42 -0
  218. package/fresh.h +16 -0
  219. package/fugue.c +12 -0
  220. package/fugue.h +16 -0
  221. package/groestl.c +40 -0
  222. package/groestl.h +17 -0
  223. package/hefty1.c +63 -0
  224. package/hefty1.h +16 -0
  225. package/index.js +1 -0
  226. package/keccak.c +14 -0
  227. package/keccak.h +16 -0
  228. package/leocuvee-wrkzcoin-multi-hashing-0.0.20.tgz +0 -0
  229. package/multihashing.cc +699 -0
  230. package/nist5.c +46 -0
  231. package/nist5.h +16 -0
  232. package/package.json +56 -0
  233. package/quark.c +210 -0
  234. package/quark.h +16 -0
  235. package/qubit.c +45 -0
  236. package/qubit.h +16 -0
  237. package/scryptjane/scrypt-jane-chacha.h +132 -0
  238. package/scryptjane/scrypt-jane-hash.h +48 -0
  239. package/scryptjane/scrypt-jane-hash_keccak.h +168 -0
  240. package/scryptjane/scrypt-jane-hash_sha256.h +135 -0
  241. package/scryptjane/scrypt-jane-mix_chacha-avx.h +340 -0
  242. package/scryptjane/scrypt-jane-mix_chacha-sse2.h +371 -0
  243. package/scryptjane/scrypt-jane-mix_chacha-ssse3.h +348 -0
  244. package/scryptjane/scrypt-jane-mix_chacha.h +69 -0
  245. package/scryptjane/scrypt-jane-mix_salsa-avx.h +381 -0
  246. package/scryptjane/scrypt-jane-mix_salsa-sse2.h +443 -0
  247. package/scryptjane/scrypt-jane-mix_salsa.h +70 -0
  248. package/scryptjane/scrypt-jane-pbkdf2.h +112 -0
  249. package/scryptjane/scrypt-jane-portable-x86.h +364 -0
  250. package/scryptjane/scrypt-jane-portable.h +281 -0
  251. package/scryptjane/scrypt-jane-romix-basic.h +67 -0
  252. package/scryptjane/scrypt-jane-romix-template.h +118 -0
  253. package/scryptjane/scrypt-jane-romix.h +27 -0
  254. package/scryptjane/scrypt-jane-salsa.h +106 -0
  255. package/scryptjane/scrypt-jane-test-vectors.h +261 -0
  256. package/scryptjane.c +223 -0
  257. package/scryptjane.h +36 -0
  258. package/scryptn.c +258 -0
  259. package/scryptn.h +16 -0
  260. package/sha1.c +65 -0
  261. package/sha1.h +16 -0
  262. package/sha256.h +440 -0
  263. package/sha3/aes_helper.c +392 -0
  264. package/sha3/hamsi.c +867 -0
  265. package/sha3/hamsi_helper.c +39648 -0
  266. package/sha3/md_helper.c +347 -0
  267. package/sha3/sph_blake.c +1114 -0
  268. package/sha3/sph_blake.h +327 -0
  269. package/sha3/sph_bmw.c +965 -0
  270. package/sha3/sph_bmw.h +328 -0
  271. package/sha3/sph_cubehash.c +723 -0
  272. package/sha3/sph_cubehash.h +292 -0
  273. package/sha3/sph_echo.c +1031 -0
  274. package/sha3/sph_echo.h +320 -0
  275. package/sha3/sph_fugue.c +1208 -0
  276. package/sha3/sph_fugue.h +81 -0
  277. package/sha3/sph_groestl.c +3119 -0
  278. package/sha3/sph_groestl.h +329 -0
  279. package/sha3/sph_hamsi.h +321 -0
  280. package/sha3/sph_hefty1.c +378 -0
  281. package/sha3/sph_hefty1.h +66 -0
  282. package/sha3/sph_jh.c +1116 -0
  283. package/sha3/sph_jh.h +298 -0
  284. package/sha3/sph_keccak.c +1824 -0
  285. package/sha3/sph_keccak.h +293 -0
  286. package/sha3/sph_luffa.c +1426 -0
  287. package/sha3/sph_luffa.h +296 -0
  288. package/sha3/sph_shabal.c +806 -0
  289. package/sha3/sph_shabal.h +344 -0
  290. package/sha3/sph_shavite.c +1764 -0
  291. package/sha3/sph_shavite.h +314 -0
  292. package/sha3/sph_simd.c +1799 -0
  293. package/sha3/sph_simd.h +309 -0
  294. package/sha3/sph_skein.c +1254 -0
  295. package/sha3/sph_skein.h +298 -0
  296. package/sha3/sph_types.h +1976 -0
  297. package/sha3/sph_whirlpool.c +3480 -0
  298. package/sha3/sph_whirlpool.h +209 -0
  299. package/shavite3.c +24 -0
  300. package/shavite3.h +16 -0
  301. package/skein.c +26 -0
  302. package/skein.h +16 -0
  303. package/stdint.h +259 -0
  304. package/tests/argon2-tests.js +16 -0
  305. package/tests/benchmark.js +36 -0
  306. package/tests/cryptonight-tests.js +189 -0
  307. package/tests/cryptonight_monero.js +53 -0
  308. package/tests/test.js +16 -0
  309. package/x11.c +85 -0
  310. package/x11.h +16 -0
  311. package/x13.c +97 -0
  312. package/x13.h +5 -0
  313. package/x15.c +106 -0
  314. package/x15.h +16 -0
@@ -0,0 +1,189 @@
1
+ const Buffer = require('safe-buffer').Buffer
2
+ const multiHashing = require('../build/Release/multihashing')
3
+ const assert = require('assert')
4
+
5
+ console.log('')
6
+ console.log('CryptoNight Tests')
7
+
8
+ var xmrigdata = new Buffer('0100fb8e8ac805899323371bb790db19218afd8db8e3755d8b90f39b3d5506a9abce4fa912244500000000ee8146d49fa93ee724deb57d12cbc6c6f3b924d946127c7a97418f9348828f0f02', 'hex')
9
+
10
+ var cnfasthash = new Buffer('b542df5b6e7f5f05275c98e7345884e2ac726aeeb07e03e44e0389eb86cd05f0', 'hex')
11
+ var xmrigcnvariant0hash = new Buffer('1b606a3f4a07d6489a1bcd07697bd16696b61c8ae982f61a90160f4e52828a7f', 'hex')
12
+ var xmrigcnvariant1hash = new Buffer('c9fae8425d8688dc236bcdbc42fdb42d376c6ec190501aa84b04a4b4cf1ee122', 'hex')
13
+ var xmrigcnvariant2hash = new Buffer('871fcd6823f6a879bb3f33951c8e8e891d4043880b02dfa1bb3be498b50e7578', 'hex')
14
+
15
+ var xmrigcnlitevariant0hash = new Buffer('28a22bad3f93d1408fca472eb5ad1cbe75f21d053c8ce5b3af105a57713e21dd', 'hex')
16
+ var xmrigcnlitevariant1hash = new Buffer('87c4e570653eb4c2b42b7a0d546559452dfab573b82ec52f152b7ff98e79446f', 'hex')
17
+ var xmrigcnlitevariant2hash = new Buffer('b7e78fab22eb19cb8c9c3afe034fb53390321511bab6ab4915cd538a630c3c62', 'hex')
18
+
19
+ var xmrigcndarkvariant0hash = new Buffer('bea42eadd78614f875e55bb972aa5ec54a5edf2dd7068220fda26bf4b1080fb8', 'hex')
20
+ var xmrigcndarkvariant1hash = new Buffer('d18cb32bd5b465e5a7ba4763d60f88b5792f24e513306f1052954294b737e871', 'hex')
21
+ var xmrigcndarkvariant2hash = new Buffer('a18a14d94efea108757a42633a1b4d4dc11838084c3c4347850d39ab5211a91f', 'hex')
22
+
23
+ var xmrigcndarklitevariant0hash = new Buffer('faa7884d9c08126eb164814aeba6547b5d6064277a09fb6b414f5dbc9d01eb2b', 'hex')
24
+ var xmrigcndarklitevariant1hash = new Buffer('c75c010780fffd9d5e99838eb093b37c0dd015101c9d298217866daa2993d277', 'hex')
25
+ var xmrigcndarklitevariant2hash = new Buffer('fdceb794c1055977a955f31c576a8be528a0356ee1b0a1f9b7f09e20185cda28', 'hex')
26
+
27
+ var xmrigcnturtlevariant0hash = new Buffer('546c3f1badd7c1232c7a3b88cdb013f7f611b7bd3d1d2463540fccbd12997982', 'hex')
28
+ var xmrigcnturtlevariant1hash = new Buffer('29e7831780a0ab930e0fe3b965f30e8a44d9b3f9ad2241d67cfbfea3ed62a64e', 'hex')
29
+ var xmrigcnturtlevariant2hash = new Buffer('fc67dfccb5fc90d7855ae903361eabd76f1e40a22a72ad3ef2d6ad27b5a60ce5', 'hex')
30
+
31
+ var xmrigcnturtlelitevariant0hash = new Buffer('5e1891a15d5d85c09baf4a3bbe33675cfa3f77229c8ad66c01779e590528d6d3', 'hex')
32
+ var xmrigcnturtlelitevariant1hash = new Buffer('ae7f864a7a2f2b07dcef253581e60a014972b9655a152341cb989164761c180a', 'hex')
33
+ var xmrigcnturtlelitevariant2hash = new Buffer('b2172ec9466e1aee70ec8572a14c233ee354582bcb93f869d429744de5726a26', 'hex')
34
+
35
+ var cnsoftshellHashv0 = []
36
+ cnsoftshellHashv0.push(new Buffer('5e1891a15d5d85c09baf4a3bbe33675cfa3f77229c8ad66c01779e590528d6d3', 'hex'))
37
+ cnsoftshellHashv0.push(new Buffer('e1239347694df77cab780b7ec8920ec6f7e48ecef1d8c368e06708c08e1455f1', 'hex'))
38
+ cnsoftshellHashv0.push(new Buffer('118a03801c564d12f7e68972419303fe06f7a54ab8f44a8ce7deafbc6b1b5183', 'hex'))
39
+ cnsoftshellHashv0.push(new Buffer('8be48f7955eb3f9ac2275e445fe553f3ef359ea5c065cde98ff83011f407a0ec', 'hex'))
40
+ cnsoftshellHashv0.push(new Buffer('d33da3541960046e846530dcc9872b1914a62c09c7d732bff03bec481866ae48', 'hex'))
41
+ cnsoftshellHashv0.push(new Buffer('8be48f7955eb3f9ac2275e445fe553f3ef359ea5c065cde98ff83011f407a0ec', 'hex'))
42
+ cnsoftshellHashv0.push(new Buffer('118a03801c564d12f7e68972419303fe06f7a54ab8f44a8ce7deafbc6b1b5183', 'hex'))
43
+ cnsoftshellHashv0.push(new Buffer('e1239347694df77cab780b7ec8920ec6f7e48ecef1d8c368e06708c08e1455f1', 'hex'))
44
+ cnsoftshellHashv0.push(new Buffer('5e1891a15d5d85c09baf4a3bbe33675cfa3f77229c8ad66c01779e590528d6d3', 'hex'))
45
+ cnsoftshellHashv0.push(new Buffer('e1239347694df77cab780b7ec8920ec6f7e48ecef1d8c368e06708c08e1455f1', 'hex'))
46
+ cnsoftshellHashv0.push(new Buffer('118a03801c564d12f7e68972419303fe06f7a54ab8f44a8ce7deafbc6b1b5183', 'hex'))
47
+ cnsoftshellHashv0.push(new Buffer('8be48f7955eb3f9ac2275e445fe553f3ef359ea5c065cde98ff83011f407a0ec', 'hex'))
48
+ cnsoftshellHashv0.push(new Buffer('d33da3541960046e846530dcc9872b1914a62c09c7d732bff03bec481866ae48', 'hex'))
49
+ cnsoftshellHashv0.push(new Buffer('8be48f7955eb3f9ac2275e445fe553f3ef359ea5c065cde98ff83011f407a0ec', 'hex'))
50
+ cnsoftshellHashv0.push(new Buffer('118a03801c564d12f7e68972419303fe06f7a54ab8f44a8ce7deafbc6b1b5183', 'hex'))
51
+ cnsoftshellHashv0.push(new Buffer('e1239347694df77cab780b7ec8920ec6f7e48ecef1d8c368e06708c08e1455f1', 'hex'))
52
+ cnsoftshellHashv0.push(new Buffer('5e1891a15d5d85c09baf4a3bbe33675cfa3f77229c8ad66c01779e590528d6d3', 'hex'))
53
+
54
+ var cnsoftshellHashv1 = []
55
+ cnsoftshellHashv1.push(new Buffer('ae7f864a7a2f2b07dcef253581e60a014972b9655a152341cb989164761c180a', 'hex'))
56
+ cnsoftshellHashv1.push(new Buffer('ce8687bdd08c49bd1da3a6a74bf28858670232c1a0173ceb2466655250f9c56d', 'hex'))
57
+ cnsoftshellHashv1.push(new Buffer('ddb6011d400ac8725995fb800af11646bb2fef0d8b6136b634368ad28272d7f4', 'hex'))
58
+ cnsoftshellHashv1.push(new Buffer('02576f9873dc9c8b1b0fc14962982734dfdd41630fc936137a3562b8841237e1', 'hex'))
59
+ cnsoftshellHashv1.push(new Buffer('d37e2785ab7b3d0a222940bf675248e7b96054de5c82c5f0b141014e136eadbc', 'hex'))
60
+ cnsoftshellHashv1.push(new Buffer('02576f9873dc9c8b1b0fc14962982734dfdd41630fc936137a3562b8841237e1', 'hex'))
61
+ cnsoftshellHashv1.push(new Buffer('ddb6011d400ac8725995fb800af11646bb2fef0d8b6136b634368ad28272d7f4', 'hex'))
62
+ cnsoftshellHashv1.push(new Buffer('ce8687bdd08c49bd1da3a6a74bf28858670232c1a0173ceb2466655250f9c56d', 'hex'))
63
+ cnsoftshellHashv1.push(new Buffer('ae7f864a7a2f2b07dcef253581e60a014972b9655a152341cb989164761c180a', 'hex'))
64
+ cnsoftshellHashv1.push(new Buffer('ce8687bdd08c49bd1da3a6a74bf28858670232c1a0173ceb2466655250f9c56d', 'hex'))
65
+ cnsoftshellHashv1.push(new Buffer('ddb6011d400ac8725995fb800af11646bb2fef0d8b6136b634368ad28272d7f4', 'hex'))
66
+ cnsoftshellHashv1.push(new Buffer('02576f9873dc9c8b1b0fc14962982734dfdd41630fc936137a3562b8841237e1', 'hex'))
67
+ cnsoftshellHashv1.push(new Buffer('d37e2785ab7b3d0a222940bf675248e7b96054de5c82c5f0b141014e136eadbc', 'hex'))
68
+ cnsoftshellHashv1.push(new Buffer('02576f9873dc9c8b1b0fc14962982734dfdd41630fc936137a3562b8841237e1', 'hex'))
69
+ cnsoftshellHashv1.push(new Buffer('ddb6011d400ac8725995fb800af11646bb2fef0d8b6136b634368ad28272d7f4', 'hex'))
70
+ cnsoftshellHashv1.push(new Buffer('ce8687bdd08c49bd1da3a6a74bf28858670232c1a0173ceb2466655250f9c56d', 'hex'))
71
+ cnsoftshellHashv1.push(new Buffer('ae7f864a7a2f2b07dcef253581e60a014972b9655a152341cb989164761c180a', 'hex'))
72
+
73
+ var fastHashData = multiHashing['cryptonight'](xmrigdata, true)
74
+ var cnvariant0Data = multiHashing['cryptonight'](xmrigdata)
75
+ var cnvariant1Data = multiHashing['cryptonight'](xmrigdata, 1)
76
+ var cnvariant2Data = multiHashing['cryptonight'](xmrigdata, 2)
77
+ var cnlitevariant0Data = multiHashing['cryptonight-lite'](xmrigdata, 0)
78
+ var cnlitevariant1Data = multiHashing['cryptonight-lite'](xmrigdata, 1)
79
+ var cnlitevariant2Data = multiHashing['cryptonight-lite'](xmrigdata, 2)
80
+ var cndarkvariant0Data = multiHashing['cryptonight-dark'](xmrigdata, 0)
81
+ var cndarkvariant1Data = multiHashing['cryptonight-dark'](xmrigdata, 1)
82
+ var cndarkvariant2Data = multiHashing['cryptonight-dark'](xmrigdata, 2)
83
+ var cndarklitevariant0Data = multiHashing['cryptonight-dark-lite'](xmrigdata, 0)
84
+ var cndarklitevariant1Data = multiHashing['cryptonight-dark-lite'](xmrigdata, 1)
85
+ var cndarklitevariant2Data = multiHashing['cryptonight-dark-lite'](xmrigdata, 2)
86
+ var cnturtlevariant0Data = multiHashing['cryptonight-turtle'](xmrigdata, 0)
87
+ var cnturtlevariant1Data = multiHashing['cryptonight-turtle'](xmrigdata, 1)
88
+ var cnturtlevariant2Data = multiHashing['cryptonight-turtle'](xmrigdata, 2)
89
+ var cnturtlelitevariant0Data = multiHashing['cryptonight-turtle-lite'](xmrigdata, 0)
90
+ var cnturtlelitevariant1Data = multiHashing['cryptonight-turtle-lite'](xmrigdata, 1)
91
+ var cnturtlelitevariant2Data = multiHashing['cryptonight-turtle-lite'](xmrigdata, 2)
92
+
93
+ // Easy fill soft shell data
94
+ var cnsoftshellDatav0 = []
95
+ for (var i = 0; i <= 8192; i += 512) {
96
+ cnsoftshellDatav0.push({ height: i, hash: multiHashing['cryptonight-soft-shell'](xmrigdata, 0, i) })
97
+ }
98
+
99
+ // Easy fill soft shell data
100
+ var cnsoftshellDatav1 = []
101
+ for (i = 0; i <= 8192; i += 512) {
102
+ cnsoftshellDatav1.push({ height: i, hash: multiHashing['cryptonight-soft-shell'](xmrigdata, 1, i) })
103
+ }
104
+
105
+ // Easy fill soft shell data
106
+ var cnsoftshellDatav2 = []
107
+ for (i = 0; i <= 8192; i += 512) {
108
+ cnsoftshellDatav2.push({ height: i, hash: multiHashing['cryptonight-soft-shell'](xmrigdata, 2, i) })
109
+ }
110
+
111
+ console.log('')
112
+ console.log('[#1] Cryptonight Fast Hash: ', fastHashData.toString('hex'))
113
+ assert.deepEqual(fastHashData, cnfasthash)
114
+ console.log('')
115
+ console.log('[#2] Cryptonight v0: ', cnvariant0Data.toString('hex'))
116
+ assert.deepEqual(cnvariant0Data, xmrigcnvariant0hash)
117
+ console.log('[#3] Cryptonight v1: ', cnvariant1Data.toString('hex'))
118
+ assert.deepEqual(cnvariant1Data, xmrigcnvariant1hash)
119
+ console.log('[#4] Cryptonight v2: ', cnvariant2Data.toString('hex'))
120
+ assert.deepEqual(cnvariant2Data, xmrigcnvariant2hash)
121
+ console.log('')
122
+ console.log('[#5] Cryptonight Lite v0: ', cnlitevariant0Data.toString('hex'))
123
+ assert.deepEqual(cnlitevariant0Data, xmrigcnlitevariant0hash)
124
+ console.log('[#6] Cryptonight Lite v1: ', cnlitevariant1Data.toString('hex'))
125
+ assert.deepEqual(cnlitevariant1Data, xmrigcnlitevariant1hash)
126
+ console.log('[#7] Cryptonight Lite v2: ', cnlitevariant2Data.toString('hex'))
127
+ assert.deepEqual(cnlitevariant2Data, xmrigcnlitevariant2hash)
128
+ console.log('')
129
+ console.log('[#8] Cryptonight Dark v0: ', cndarkvariant0Data.toString('hex'))
130
+ assert.deepEqual(cndarkvariant0Data, xmrigcndarkvariant0hash)
131
+ console.log('[#9] Cryptonight Dark v1: ', cndarkvariant1Data.toString('hex'))
132
+ assert.deepEqual(cndarkvariant1Data, xmrigcndarkvariant1hash)
133
+ console.log('[#10] Cryptonight Dark v2: ', cndarkvariant2Data.toString('hex'))
134
+ assert.deepEqual(cndarkvariant2Data, xmrigcndarkvariant2hash)
135
+ console.log('')
136
+ console.log('[#11] Cryptonight Dark Lite v0: ', cndarklitevariant0Data.toString('hex'))
137
+ assert.deepEqual(cndarklitevariant0Data, xmrigcndarklitevariant0hash)
138
+ console.log('[#12] Cryptonight Dark Lite v1: ', cndarklitevariant1Data.toString('hex'))
139
+ assert.deepEqual(cndarklitevariant1Data, xmrigcndarklitevariant1hash)
140
+ console.log('[#13] Cryptonight Dark Lite v2: ', cndarklitevariant2Data.toString('hex'))
141
+ assert.deepEqual(cndarklitevariant2Data, xmrigcndarklitevariant2hash)
142
+ console.log('')
143
+ console.log('[#14] Cryptonight Turtle v0: ', cnturtlevariant0Data.toString('hex'))
144
+ assert.deepEqual(cnturtlevariant0Data, xmrigcnturtlevariant0hash)
145
+ console.log('[#15] Cryptonight Turtle v1: ', cnturtlevariant1Data.toString('hex'))
146
+ assert.deepEqual(cnturtlevariant1Data, xmrigcnturtlevariant1hash)
147
+ console.log('[#16] Cryptonight Turtle v2: ', cnturtlevariant2Data.toString('hex'))
148
+ assert.deepEqual(cnturtlevariant2Data, xmrigcnturtlevariant2hash)
149
+ console.log('')
150
+ console.log('[#17] Cryptonight Turtle Lite v0: ', cnturtlelitevariant0Data.toString('hex'))
151
+ assert.deepEqual(cnturtlelitevariant0Data, xmrigcnturtlelitevariant0hash)
152
+ console.log('[#18] Cryptonight Turtle Lite v1: ', cnturtlelitevariant1Data.toString('hex'))
153
+ assert.deepEqual(cnturtlelitevariant1Data, xmrigcnturtlelitevariant1hash)
154
+ console.log('[#19] Cryptonight Turtle Lite v2: ', cnturtlelitevariant2Data.toString('hex'))
155
+ assert.deepEqual(cnturtlelitevariant2Data, xmrigcnturtlelitevariant2hash)
156
+
157
+ // Spit out soft shell hashes
158
+ var count = 20
159
+ console.log('')
160
+
161
+ for (i = 0; i < cnsoftshellDatav0.length; i++) {
162
+ console.log('[#' + count + '] Cryptonight Soft Shell v0 (' + cnsoftshellDatav0[i].height + '): ', cnsoftshellDatav0[i].hash.toString('hex'))
163
+ count++
164
+ }
165
+
166
+ for (i = 0; i < cnsoftshellDatav0.length; i++) {
167
+ assert.deepEqual(cnsoftshellDatav0[i].hash, cnsoftshellHashv0[i])
168
+ }
169
+
170
+ console.log('')
171
+ for (i = 0; i < cnsoftshellDatav1.length; i++) {
172
+ console.log('[#' + count + '] Cryptonight Soft Shell v1 (' + cnsoftshellDatav1[i].height + '): ', cnsoftshellDatav1[i].hash.toString('hex'))
173
+ count++
174
+ }
175
+
176
+ for (i = 0; i < cnsoftshellDatav1.length; i++) {
177
+ assert.deepEqual(cnsoftshellDatav1[i].hash, cnsoftshellHashv1[i])
178
+ }
179
+
180
+ /* We cannot currently generate a valid Soft Shell v2 hash at this time
181
+ that issue will be rectified soon */
182
+
183
+ /*
184
+ console.log('')
185
+ for (i = 0; i < cnsoftshellDatav2.length; i++) {
186
+ console.log('[#' + count + '] Cryptonight Soft Shell v2 (' + cnsoftshellDatav2[i].height + '): ', cnsoftshellDatav2[i].hash.toString('hex'))
187
+ count++
188
+ }
189
+ */
@@ -0,0 +1,53 @@
1
+ const Buffer = require('safe-buffer').Buffer
2
+ const multiHashing = require('../build/Release/multihashing')
3
+ const assert = require('assert')
4
+
5
+ var tests = [
6
+ new Buffer('This is a test This is a test This is a test'),
7
+ new Buffer('74d15836e33d14e164c2494648996eb5ed71a3ec2c72c2be225eda1b8a857aba', 'hex'),
8
+ new Buffer('0157c5ee188bbec8975285a3064ee92065217672fd69a1aebd0766c7b56ee0bd', 'hex'),
9
+ new Buffer('353fdc068fd47b03c04b9431e005e00b68c2168a3cc7335c8b9b308156591a4f', 'hex'),
10
+ new Buffer('Lorem ipsum dolor sit amet, consectetur adipiscing'),
11
+ new Buffer('22ec483997cba20105378af3ec647ee5d20401d7df21c0bf4bf866bc55383e92', 'hex'),
12
+ new Buffer('755d58e48e53f795a0ed6b27c794018372922e5d1a256cdbf9fc442f59f284c9', 'hex'),
13
+ new Buffer('72f134fc50880c330fe65a2cb7896d59b2e708a0221c6a9da3f69b3a702d8682', 'hex'),
14
+ new Buffer('elit, sed do eiusmod tempor incididunt ut labore'),
15
+ new Buffer('c5efc04bf88b450e86537dc046339b16d35133c4d905ec7fa16bd28a67c4f2fe', 'hex'),
16
+ new Buffer('7158c9c0d5082df7f2ee236b994f385bd96fd09eda30e21643cb7351fd7301ce', 'hex'),
17
+ new Buffer('410919660ec540fc49d8695ff01f974226a2a28dbbac82949c12f541b9a62d2f', 'hex'),
18
+ new Buffer('et dolore magna aliqua. Ut enim ad minim veniam,'),
19
+ new Buffer('628c400e4712cecb44d88572e9e8bb9be9a1221da1cb52ff8eefaf4adcc172eb', 'hex'),
20
+ new Buffer('7329cde3fbf98bec02578fcdcfeaf2cf11e2a1f105324f89c36470708bd6db16', 'hex'),
21
+ new Buffer('4472fecfeb371e8b7942ce0378c0ba5e6d0c6361b669c587807365c787ae652d', 'hex'),
22
+ new Buffer('quis nostrud exercitation ullamco laboris nisi'),
23
+ new Buffer('a0351d7aa54c2e7c774695af86f8bbb859a0ef9b0d4f0031dd1df5ea7ccc752d', 'hex'),
24
+ new Buffer('05066660ea3bc0568269cd95c212ad2bf2f2ced4e4cdb1f2bc5f766e88e4862b', 'hex'),
25
+ new Buffer('577568395203f1f1225f2982b637f7d5e61b47a0f546ba16d46020b471b74076', 'hex'),
26
+ new Buffer('ut aliquip ex ea commodo consequat. Duis aute'),
27
+ new Buffer('677b3a14c1875eda0ca0c3d6c340413848b1ab0bf9d448dddd5714cbc6d170b9', 'hex'),
28
+ new Buffer('edc9f99dfd626ddc5604f8b387c7a88cc6fcb17cef46a3b917c2f8ffbd449982', 'hex'),
29
+ new Buffer('f6fd7efe95a5c6c4bb46d9b429e3faf65b1ce439e116742d42b928e61de52385', 'hex'),
30
+ new Buffer('irure dolor in reprehenderit in voluptate velit'),
31
+ new Buffer('8a73c33ebfd11d78db984486a298149d034051c61cdaf6ff7e783e46a6763edf', 'hex'),
32
+ new Buffer('44df1cbd33439b82f901bcad232f3908331330edad0c9b9af35d62f524fd92b4', 'hex'),
33
+ new Buffer('422f8cfe8060cf6c3d9fd66f68e3c9977adb683aea2788029308bbe9bc50d728', 'hex'),
34
+ new Buffer('esse cillum dolore eu fugiat nulla pariatur.'),
35
+ new Buffer('021007fa46b46110e7dd6c7f1bb392499d7461950efd884e6bb4260d57906b6f', 'hex'),
36
+ new Buffer('0fa9723e149c0772d16ae95b744186f419b48adcbfe685c99b53f6db44ba2668', 'hex'),
37
+ new Buffer('512e62c8c8c833cfbd9d361442cb00d63c0a3fd8964cfd2fedc17c7c25ec2d4b', 'hex'),
38
+ new Buffer('Excepteur sint occaecat cupidatat non proident,'),
39
+ new Buffer('d61f8a0722e9d38c691fe22613ef68c83a498dd24e3c382ee1abfa665d632371', 'hex'),
40
+ new Buffer('90c71412c2ca0c2e5789a98fb7ce36179d3c7f8b164f9aa07df56d44c9e9e96d', 'hex'),
41
+ new Buffer('12a794c1aa13d561c9c6111cee631ca9d0a321718d67d3416add9de1693ba41e', 'hex'),
42
+ new Buffer('sunt in culpa qui officia deserunt mollit anim id est laborum.'),
43
+ new Buffer('75a105029f6b8c00429c427ffc7a64d84dbcdf2728ce0d2df9133cef91c9f8d3', 'hex'),
44
+ new Buffer('5944b5b0480e84dc233bcc37101c23077542433c868c67325e9c501cfd1b8151', 'hex'),
45
+ new Buffer('2659ff95fc74b6215c1dc741e85b7a9710101b30620212f80eb59c3c55993f9d', 'hex')
46
+ ]
47
+
48
+ for (var i = 0; i < 10; ++i) {
49
+ for (var variant = 0; variant <= 2; ++variant) {
50
+ var hash = multiHashing['cryptonight'](tests[i * 4], variant)
51
+ assert.deepEqual(hash, tests[i * 4 + variant + 1])
52
+ }
53
+ }
package/tests/test.js ADDED
@@ -0,0 +1,16 @@
1
+ const Buffer = require('safe-buffer').Buffer
2
+ const multiHashing = require('../build/Release/multihashing')
3
+
4
+ const algorithms = ['keccak', 'groestl', 'skein', 'blake', 'cryptonight', 'cryptonight v7']
5
+
6
+ var data = new Buffer('7000000001e980924e4e1109230383e66d62945ff8e749903bea4336755c00000000000051928aff1b4d72416173a8c3948159a09a73ac3bb556aa6bfbcad1a85da7f4c1d13350531e24031b939b9e2b', 'hex')
7
+
8
+ var hashedData = algorithms.map(function (algo) {
9
+ if (algo === 'cryptonight v7') {
10
+ return multiHashing['cryptonight'](data, 1)
11
+ } else {
12
+ return multiHashing[algo](data)
13
+ }
14
+ })
15
+
16
+ console.log(hashedData)
package/x11.c ADDED
@@ -0,0 +1,85 @@
1
+ #include "x11.h"
2
+ #include <stdlib.h>
3
+ #include <stdint.h>
4
+ #include <string.h>
5
+ #include <stdio.h>
6
+
7
+ #include "sha3/sph_blake.h"
8
+ #include "sha3/sph_bmw.h"
9
+ #include "sha3/sph_groestl.h"
10
+ #include "sha3/sph_jh.h"
11
+ #include "sha3/sph_keccak.h"
12
+ #include "sha3/sph_skein.h"
13
+ #include "sha3/sph_luffa.h"
14
+ #include "sha3/sph_cubehash.h"
15
+ #include "sha3/sph_shavite.h"
16
+ #include "sha3/sph_simd.h"
17
+ #include "sha3/sph_echo.h"
18
+
19
+
20
+ void x11_hash(const char* input, char* output, uint32_t len)
21
+ {
22
+ sph_blake512_context ctx_blake;
23
+ sph_bmw512_context ctx_bmw;
24
+ sph_groestl512_context ctx_groestl;
25
+ sph_skein512_context ctx_skein;
26
+ sph_jh512_context ctx_jh;
27
+ sph_keccak512_context ctx_keccak;
28
+
29
+ sph_luffa512_context ctx_luffa1;
30
+ sph_cubehash512_context ctx_cubehash1;
31
+ sph_shavite512_context ctx_shavite1;
32
+ sph_simd512_context ctx_simd1;
33
+ sph_echo512_context ctx_echo1;
34
+
35
+ //these uint512 in the c++ source of the client are backed by an array of uint32
36
+ uint32_t hashA[16], hashB[16];
37
+
38
+ sph_blake512_init(&ctx_blake);
39
+ sph_blake512 (&ctx_blake, input, len);
40
+ sph_blake512_close (&ctx_blake, hashA);
41
+
42
+ sph_bmw512_init(&ctx_bmw);
43
+ sph_bmw512 (&ctx_bmw, hashA, 64);
44
+ sph_bmw512_close(&ctx_bmw, hashB);
45
+
46
+ sph_groestl512_init(&ctx_groestl);
47
+ sph_groestl512 (&ctx_groestl, hashB, 64);
48
+ sph_groestl512_close(&ctx_groestl, hashA);
49
+
50
+ sph_skein512_init(&ctx_skein);
51
+ sph_skein512 (&ctx_skein, hashA, 64);
52
+ sph_skein512_close (&ctx_skein, hashB);
53
+
54
+ sph_jh512_init(&ctx_jh);
55
+ sph_jh512 (&ctx_jh, hashB, 64);
56
+ sph_jh512_close(&ctx_jh, hashA);
57
+
58
+ sph_keccak512_init(&ctx_keccak);
59
+ sph_keccak512 (&ctx_keccak, hashA, 64);
60
+ sph_keccak512_close(&ctx_keccak, hashB);
61
+
62
+ sph_luffa512_init (&ctx_luffa1);
63
+ sph_luffa512 (&ctx_luffa1, hashB, 64);
64
+ sph_luffa512_close (&ctx_luffa1, hashA);
65
+
66
+ sph_cubehash512_init (&ctx_cubehash1);
67
+ sph_cubehash512 (&ctx_cubehash1, hashA, 64);
68
+ sph_cubehash512_close(&ctx_cubehash1, hashB);
69
+
70
+ sph_shavite512_init (&ctx_shavite1);
71
+ sph_shavite512 (&ctx_shavite1, hashB, 64);
72
+ sph_shavite512_close(&ctx_shavite1, hashA);
73
+
74
+ sph_simd512_init (&ctx_simd1);
75
+ sph_simd512 (&ctx_simd1, hashA, 64);
76
+ sph_simd512_close(&ctx_simd1, hashB);
77
+
78
+ sph_echo512_init (&ctx_echo1);
79
+ sph_echo512 (&ctx_echo1, hashB, 64);
80
+ sph_echo512_close(&ctx_echo1, hashA);
81
+
82
+ memcpy(output, hashA, 32);
83
+
84
+ }
85
+
package/x11.h ADDED
@@ -0,0 +1,16 @@
1
+ #ifndef X11_H
2
+ #define X11_H
3
+
4
+ #ifdef __cplusplus
5
+ extern "C" {
6
+ #endif
7
+
8
+ #include <stdint.h>
9
+
10
+ void x11_hash(const char* input, char* output, uint32_t len);
11
+
12
+ #ifdef __cplusplus
13
+ }
14
+ #endif
15
+
16
+ #endif
package/x13.c ADDED
@@ -0,0 +1,97 @@
1
+ #include "x13.h"
2
+ #include <stdlib.h>
3
+ #include <stdint.h>
4
+ #include <string.h>
5
+ #include <stdio.h>
6
+
7
+ #include "sha3/sph_blake.h"
8
+ #include "sha3/sph_bmw.h"
9
+ #include "sha3/sph_groestl.h"
10
+ #include "sha3/sph_jh.h"
11
+ #include "sha3/sph_keccak.h"
12
+ #include "sha3/sph_skein.h"
13
+ #include "sha3/sph_luffa.h"
14
+ #include "sha3/sph_cubehash.h"
15
+ #include "sha3/sph_shavite.h"
16
+ #include "sha3/sph_simd.h"
17
+ #include "sha3/sph_echo.h"
18
+ #include "sha3/sph_hamsi.h"
19
+ #include "sha3/sph_fugue.h"
20
+
21
+
22
+ void x13_hash(const char* input, char* output, uint32_t len)
23
+ {
24
+ sph_blake512_context ctx_blake;
25
+ sph_bmw512_context ctx_bmw;
26
+ sph_groestl512_context ctx_groestl;
27
+ sph_skein512_context ctx_skein;
28
+ sph_jh512_context ctx_jh;
29
+ sph_keccak512_context ctx_keccak;
30
+ sph_luffa512_context ctx_luffa1;
31
+ sph_cubehash512_context ctx_cubehash1;
32
+ sph_shavite512_context ctx_shavite1;
33
+ sph_simd512_context ctx_simd1;
34
+ sph_echo512_context ctx_echo1;
35
+ sph_hamsi512_context ctx_hamsi1;
36
+ sph_fugue512_context ctx_fugue1;
37
+
38
+ //these uint512 in the c++ source of the client are backed by an array of uint32
39
+ uint32_t hashA[16], hashB[16];
40
+
41
+ sph_blake512_init(&ctx_blake);
42
+ sph_blake512 (&ctx_blake, input, len);
43
+ sph_blake512_close (&ctx_blake, hashA);
44
+
45
+ sph_bmw512_init(&ctx_bmw);
46
+ sph_bmw512 (&ctx_bmw, hashA, 64);
47
+ sph_bmw512_close(&ctx_bmw, hashB);
48
+
49
+ sph_groestl512_init(&ctx_groestl);
50
+ sph_groestl512 (&ctx_groestl, hashB, 64);
51
+ sph_groestl512_close(&ctx_groestl, hashA);
52
+
53
+ sph_skein512_init(&ctx_skein);
54
+ sph_skein512 (&ctx_skein, hashA, 64);
55
+ sph_skein512_close (&ctx_skein, hashB);
56
+
57
+ sph_jh512_init(&ctx_jh);
58
+ sph_jh512 (&ctx_jh, hashB, 64);
59
+ sph_jh512_close(&ctx_jh, hashA);
60
+
61
+ sph_keccak512_init(&ctx_keccak);
62
+ sph_keccak512 (&ctx_keccak, hashA, 64);
63
+ sph_keccak512_close(&ctx_keccak, hashB);
64
+
65
+ sph_luffa512_init (&ctx_luffa1);
66
+ sph_luffa512 (&ctx_luffa1, hashB, 64);
67
+ sph_luffa512_close (&ctx_luffa1, hashA);
68
+
69
+ sph_cubehash512_init (&ctx_cubehash1);
70
+ sph_cubehash512 (&ctx_cubehash1, hashA, 64);
71
+ sph_cubehash512_close(&ctx_cubehash1, hashB);
72
+
73
+ sph_shavite512_init (&ctx_shavite1);
74
+ sph_shavite512 (&ctx_shavite1, hashB, 64);
75
+ sph_shavite512_close(&ctx_shavite1, hashA);
76
+
77
+ sph_simd512_init (&ctx_simd1);
78
+ sph_simd512 (&ctx_simd1, hashA, 64);
79
+ sph_simd512_close(&ctx_simd1, hashB);
80
+
81
+ sph_echo512_init (&ctx_echo1);
82
+ sph_echo512 (&ctx_echo1, hashB, 64);
83
+ sph_echo512_close(&ctx_echo1, hashA);
84
+
85
+ sph_hamsi512_init (&ctx_hamsi1);
86
+ sph_hamsi512 (&ctx_hamsi1, hashA, 64);
87
+ sph_hamsi512_close(&ctx_hamsi1, hashB);
88
+
89
+ sph_fugue512_init (&ctx_fugue1);
90
+ sph_fugue512 (&ctx_fugue1, hashB, 64);
91
+ sph_fugue512_close(&ctx_fugue1, hashA);
92
+
93
+
94
+
95
+ memcpy(output, hashA, 32);
96
+
97
+ }
package/x13.h ADDED
@@ -0,0 +1,5 @@
1
+ #pragma once
2
+
3
+ #include <stdint.h>
4
+
5
+ void x13_hash(const char* input, char* output, uint32_t len);
package/x15.c ADDED
@@ -0,0 +1,106 @@
1
+ #include "x15.h"
2
+ #include <stdlib.h>
3
+ #include <stdint.h>
4
+ #include <string.h>
5
+ #include <stdio.h>
6
+
7
+ #include "sha3/sph_blake.h"
8
+ #include "sha3/sph_bmw.h"
9
+ #include "sha3/sph_groestl.h"
10
+ #include "sha3/sph_jh.h"
11
+ #include "sha3/sph_keccak.h"
12
+ #include "sha3/sph_skein.h"
13
+ #include "sha3/sph_luffa.h"
14
+ #include "sha3/sph_cubehash.h"
15
+ #include "sha3/sph_shavite.h"
16
+ #include "sha3/sph_simd.h"
17
+ #include "sha3/sph_echo.h"
18
+ #include "sha3/sph_hamsi.h"
19
+ #include "sha3/sph_fugue.h"
20
+ #include "sha3/sph_shabal.h"
21
+ #include "sha3/sph_whirlpool.h"
22
+
23
+ void x15_hash(const char* input, char* output, uint32_t len)
24
+ {
25
+ sph_blake512_context ctx_blake;
26
+ sph_bmw512_context ctx_bmw;
27
+ sph_groestl512_context ctx_groestl;
28
+ sph_skein512_context ctx_skein;
29
+ sph_jh512_context ctx_jh;
30
+ sph_keccak512_context ctx_keccak;
31
+ sph_luffa512_context ctx_luffa1;
32
+ sph_cubehash512_context ctx_cubehash1;
33
+ sph_shavite512_context ctx_shavite1;
34
+ sph_simd512_context ctx_simd1;
35
+ sph_echo512_context ctx_echo1;
36
+ sph_hamsi512_context ctx_hamsi1;
37
+ sph_fugue512_context ctx_fugue1;
38
+ sph_shabal512_context ctx_shabal1;
39
+ sph_whirlpool_context ctx_whirlpool1;
40
+
41
+ //these uint512 in the c++ source of the client are backed by an array of uint32
42
+ uint32_t hashA[16], hashB[16];
43
+
44
+ sph_blake512_init(&ctx_blake);
45
+ sph_blake512 (&ctx_blake, input, len);
46
+ sph_blake512_close (&ctx_blake, hashA);
47
+
48
+ sph_bmw512_init(&ctx_bmw);
49
+ sph_bmw512 (&ctx_bmw, hashA, 64);
50
+ sph_bmw512_close(&ctx_bmw, hashB);
51
+
52
+ sph_groestl512_init(&ctx_groestl);
53
+ sph_groestl512 (&ctx_groestl, hashB, 64);
54
+ sph_groestl512_close(&ctx_groestl, hashA);
55
+
56
+ sph_skein512_init(&ctx_skein);
57
+ sph_skein512 (&ctx_skein, hashA, 64);
58
+ sph_skein512_close (&ctx_skein, hashB);
59
+
60
+ sph_jh512_init(&ctx_jh);
61
+ sph_jh512 (&ctx_jh, hashB, 64);
62
+ sph_jh512_close(&ctx_jh, hashA);
63
+
64
+ sph_keccak512_init(&ctx_keccak);
65
+ sph_keccak512 (&ctx_keccak, hashA, 64);
66
+ sph_keccak512_close(&ctx_keccak, hashB);
67
+
68
+ sph_luffa512_init (&ctx_luffa1);
69
+ sph_luffa512 (&ctx_luffa1, hashB, 64);
70
+ sph_luffa512_close (&ctx_luffa1, hashA);
71
+
72
+ sph_cubehash512_init (&ctx_cubehash1);
73
+ sph_cubehash512 (&ctx_cubehash1, hashA, 64);
74
+ sph_cubehash512_close(&ctx_cubehash1, hashB);
75
+
76
+ sph_shavite512_init (&ctx_shavite1);
77
+ sph_shavite512 (&ctx_shavite1, hashB, 64);
78
+ sph_shavite512_close(&ctx_shavite1, hashA);
79
+
80
+ sph_simd512_init (&ctx_simd1);
81
+ sph_simd512 (&ctx_simd1, hashA, 64);
82
+ sph_simd512_close(&ctx_simd1, hashB);
83
+
84
+ sph_echo512_init (&ctx_echo1);
85
+ sph_echo512 (&ctx_echo1, hashB, 64);
86
+ sph_echo512_close(&ctx_echo1, hashA);
87
+
88
+ sph_hamsi512_init (&ctx_hamsi1);
89
+ sph_hamsi512 (&ctx_hamsi1, hashA, 64);
90
+ sph_hamsi512_close(&ctx_hamsi1, hashB);
91
+
92
+ sph_fugue512_init (&ctx_fugue1);
93
+ sph_fugue512 (&ctx_fugue1, hashB, 64);
94
+ sph_fugue512_close(&ctx_fugue1, hashA);
95
+
96
+ sph_shabal512_init (&ctx_shabal1);
97
+ sph_shabal512 (&ctx_shabal1, hashA, 64);
98
+ sph_shabal512_close(&ctx_shabal1, hashB);
99
+
100
+ sph_whirlpool_init (&ctx_whirlpool1);
101
+ sph_whirlpool (&ctx_whirlpool1, hashB, 64);
102
+ sph_whirlpool_close(&ctx_whirlpool1, hashA);
103
+
104
+ memcpy(output, hashA, 32);
105
+
106
+ }
package/x15.h ADDED
@@ -0,0 +1,16 @@
1
+ #ifndef X15_H
2
+ #define X15_H
3
+
4
+ #ifdef __cplusplus
5
+ extern "C" {
6
+ #endif
7
+
8
+ #include <stdint.h>
9
+
10
+ void x15_hash(const char* input, char* output, uint32_t len);
11
+
12
+ #ifdef __cplusplus
13
+ }
14
+ #endif
15
+
16
+ #endif