@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,327 @@
1
+ /* $Id: sph_blake.h 252 2011-06-07 17:55:14Z tp $ */
2
+ /**
3
+ * BLAKE interface. BLAKE is a family of functions which differ by their
4
+ * output size; this implementation defines BLAKE for output sizes 224,
5
+ * 256, 384 and 512 bits. This implementation conforms to the "third
6
+ * round" specification.
7
+ *
8
+ * ==========================(LICENSE BEGIN)============================
9
+ *
10
+ * Copyright (c) 2007-2010 Projet RNRT SAPHIR
11
+ *
12
+ * Permission is hereby granted, free of charge, to any person obtaining
13
+ * a copy of this software and associated documentation files (the
14
+ * "Software"), to deal in the Software without restriction, including
15
+ * without limitation the rights to use, copy, modify, merge, publish,
16
+ * distribute, sublicense, and/or sell copies of the Software, and to
17
+ * permit persons to whom the Software is furnished to do so, subject to
18
+ * the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be
21
+ * included in all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
26
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
27
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
28
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
29
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
+ *
31
+ * ===========================(LICENSE END)=============================
32
+ *
33
+ * @file sph_blake.h
34
+ * @author Thomas Pornin <thomas.pornin@cryptolog.com>
35
+ */
36
+
37
+ #ifndef SPH_BLAKE_H__
38
+ #define SPH_BLAKE_H__
39
+
40
+ #ifdef __cplusplus
41
+ extern "C"{
42
+ #endif
43
+
44
+ #include <stddef.h>
45
+ #include "sph_types.h"
46
+
47
+ /**
48
+ * Output size (in bits) for BLAKE-224.
49
+ */
50
+ #define SPH_SIZE_blake224 224
51
+
52
+ /**
53
+ * Output size (in bits) for BLAKE-256.
54
+ */
55
+ #define SPH_SIZE_blake256 256
56
+
57
+ #if SPH_64
58
+
59
+ /**
60
+ * Output size (in bits) for BLAKE-384.
61
+ */
62
+ #define SPH_SIZE_blake384 384
63
+
64
+ /**
65
+ * Output size (in bits) for BLAKE-512.
66
+ */
67
+ #define SPH_SIZE_blake512 512
68
+
69
+ #endif
70
+
71
+ /**
72
+ * This structure is a context for BLAKE-224 and BLAKE-256 computations:
73
+ * it contains the intermediate values and some data from the last
74
+ * entered block. Once a BLAKE computation has been performed, the
75
+ * context can be reused for another computation.
76
+ *
77
+ * The contents of this structure are private. A running BLAKE
78
+ * computation can be cloned by copying the context (e.g. with a simple
79
+ * <code>memcpy()</code>).
80
+ */
81
+ typedef struct {
82
+ #ifndef DOXYGEN_IGNORE
83
+ unsigned char buf[64]; /* first field, for alignment */
84
+ size_t ptr;
85
+ sph_u32 H[8];
86
+ sph_u32 S[4];
87
+ sph_u32 T0, T1;
88
+ #endif
89
+ } sph_blake_small_context;
90
+
91
+ /**
92
+ * This structure is a context for BLAKE-224 computations. It is
93
+ * identical to the common <code>sph_blake_small_context</code>.
94
+ */
95
+ typedef sph_blake_small_context sph_blake224_context;
96
+
97
+ /**
98
+ * This structure is a context for BLAKE-256 computations. It is
99
+ * identical to the common <code>sph_blake_small_context</code>.
100
+ */
101
+ typedef sph_blake_small_context sph_blake256_context;
102
+
103
+ #if SPH_64
104
+
105
+ /**
106
+ * This structure is a context for BLAKE-384 and BLAKE-512 computations:
107
+ * it contains the intermediate values and some data from the last
108
+ * entered block. Once a BLAKE computation has been performed, the
109
+ * context can be reused for another computation.
110
+ *
111
+ * The contents of this structure are private. A running BLAKE
112
+ * computation can be cloned by copying the context (e.g. with a simple
113
+ * <code>memcpy()</code>).
114
+ */
115
+ typedef struct {
116
+ #ifndef DOXYGEN_IGNORE
117
+ unsigned char buf[128]; /* first field, for alignment */
118
+ size_t ptr;
119
+ sph_u64 H[8];
120
+ sph_u64 S[4];
121
+ sph_u64 T0, T1;
122
+ #endif
123
+ } sph_blake_big_context;
124
+
125
+ /**
126
+ * This structure is a context for BLAKE-384 computations. It is
127
+ * identical to the common <code>sph_blake_small_context</code>.
128
+ */
129
+ typedef sph_blake_big_context sph_blake384_context;
130
+
131
+ /**
132
+ * This structure is a context for BLAKE-512 computations. It is
133
+ * identical to the common <code>sph_blake_small_context</code>.
134
+ */
135
+ typedef sph_blake_big_context sph_blake512_context;
136
+
137
+ #endif
138
+
139
+ /**
140
+ * Initialize a BLAKE-224 context. This process performs no memory allocation.
141
+ *
142
+ * @param cc the BLAKE-224 context (pointer to a
143
+ * <code>sph_blake224_context</code>)
144
+ */
145
+ void sph_blake224_init(void *cc);
146
+
147
+ /**
148
+ * Process some data bytes. It is acceptable that <code>len</code> is zero
149
+ * (in which case this function does nothing).
150
+ *
151
+ * @param cc the BLAKE-224 context
152
+ * @param data the input data
153
+ * @param len the input data length (in bytes)
154
+ */
155
+ void sph_blake224(void *cc, const void *data, size_t len);
156
+
157
+ /**
158
+ * Terminate the current BLAKE-224 computation and output the result into
159
+ * the provided buffer. The destination buffer must be wide enough to
160
+ * accomodate the result (28 bytes). The context is automatically
161
+ * reinitialized.
162
+ *
163
+ * @param cc the BLAKE-224 context
164
+ * @param dst the destination buffer
165
+ */
166
+ void sph_blake224_close(void *cc, void *dst);
167
+
168
+ /**
169
+ * Add a few additional bits (0 to 7) to the current computation, then
170
+ * terminate it and output the result in the provided buffer, which must
171
+ * be wide enough to accomodate the result (28 bytes). If bit number i
172
+ * in <code>ub</code> has value 2^i, then the extra bits are those
173
+ * numbered 7 downto 8-n (this is the big-endian convention at the byte
174
+ * level). The context is automatically reinitialized.
175
+ *
176
+ * @param cc the BLAKE-224 context
177
+ * @param ub the extra bits
178
+ * @param n the number of extra bits (0 to 7)
179
+ * @param dst the destination buffer
180
+ */
181
+ void sph_blake224_addbits_and_close(
182
+ void *cc, unsigned ub, unsigned n, void *dst);
183
+
184
+ /**
185
+ * Initialize a BLAKE-256 context. This process performs no memory allocation.
186
+ *
187
+ * @param cc the BLAKE-256 context (pointer to a
188
+ * <code>sph_blake256_context</code>)
189
+ */
190
+ void sph_blake256_init(void *cc);
191
+
192
+ /**
193
+ * Process some data bytes. It is acceptable that <code>len</code> is zero
194
+ * (in which case this function does nothing).
195
+ *
196
+ * @param cc the BLAKE-256 context
197
+ * @param data the input data
198
+ * @param len the input data length (in bytes)
199
+ */
200
+ void sph_blake256(void *cc, const void *data, size_t len);
201
+
202
+ /**
203
+ * Terminate the current BLAKE-256 computation and output the result into
204
+ * the provided buffer. The destination buffer must be wide enough to
205
+ * accomodate the result (32 bytes). The context is automatically
206
+ * reinitialized.
207
+ *
208
+ * @param cc the BLAKE-256 context
209
+ * @param dst the destination buffer
210
+ */
211
+ void sph_blake256_close(void *cc, void *dst);
212
+
213
+ /**
214
+ * Add a few additional bits (0 to 7) to the current computation, then
215
+ * terminate it and output the result in the provided buffer, which must
216
+ * be wide enough to accomodate the result (32 bytes). If bit number i
217
+ * in <code>ub</code> has value 2^i, then the extra bits are those
218
+ * numbered 7 downto 8-n (this is the big-endian convention at the byte
219
+ * level). The context is automatically reinitialized.
220
+ *
221
+ * @param cc the BLAKE-256 context
222
+ * @param ub the extra bits
223
+ * @param n the number of extra bits (0 to 7)
224
+ * @param dst the destination buffer
225
+ */
226
+ void sph_blake256_addbits_and_close(
227
+ void *cc, unsigned ub, unsigned n, void *dst);
228
+
229
+ #if SPH_64
230
+
231
+ /**
232
+ * Initialize a BLAKE-384 context. This process performs no memory allocation.
233
+ *
234
+ * @param cc the BLAKE-384 context (pointer to a
235
+ * <code>sph_blake384_context</code>)
236
+ */
237
+ void sph_blake384_init(void *cc);
238
+
239
+ /**
240
+ * Process some data bytes. It is acceptable that <code>len</code> is zero
241
+ * (in which case this function does nothing).
242
+ *
243
+ * @param cc the BLAKE-384 context
244
+ * @param data the input data
245
+ * @param len the input data length (in bytes)
246
+ */
247
+ void sph_blake384(void *cc, const void *data, size_t len);
248
+
249
+ /**
250
+ * Terminate the current BLAKE-384 computation and output the result into
251
+ * the provided buffer. The destination buffer must be wide enough to
252
+ * accomodate the result (48 bytes). The context is automatically
253
+ * reinitialized.
254
+ *
255
+ * @param cc the BLAKE-384 context
256
+ * @param dst the destination buffer
257
+ */
258
+ void sph_blake384_close(void *cc, void *dst);
259
+
260
+ /**
261
+ * Add a few additional bits (0 to 7) to the current computation, then
262
+ * terminate it and output the result in the provided buffer, which must
263
+ * be wide enough to accomodate the result (48 bytes). If bit number i
264
+ * in <code>ub</code> has value 2^i, then the extra bits are those
265
+ * numbered 7 downto 8-n (this is the big-endian convention at the byte
266
+ * level). The context is automatically reinitialized.
267
+ *
268
+ * @param cc the BLAKE-384 context
269
+ * @param ub the extra bits
270
+ * @param n the number of extra bits (0 to 7)
271
+ * @param dst the destination buffer
272
+ */
273
+ void sph_blake384_addbits_and_close(
274
+ void *cc, unsigned ub, unsigned n, void *dst);
275
+
276
+ /**
277
+ * Initialize a BLAKE-512 context. This process performs no memory allocation.
278
+ *
279
+ * @param cc the BLAKE-512 context (pointer to a
280
+ * <code>sph_blake512_context</code>)
281
+ */
282
+ void sph_blake512_init(void *cc);
283
+
284
+ /**
285
+ * Process some data bytes. It is acceptable that <code>len</code> is zero
286
+ * (in which case this function does nothing).
287
+ *
288
+ * @param cc the BLAKE-512 context
289
+ * @param data the input data
290
+ * @param len the input data length (in bytes)
291
+ */
292
+ void sph_blake512(void *cc, const void *data, size_t len);
293
+
294
+ /**
295
+ * Terminate the current BLAKE-512 computation and output the result into
296
+ * the provided buffer. The destination buffer must be wide enough to
297
+ * accomodate the result (64 bytes). The context is automatically
298
+ * reinitialized.
299
+ *
300
+ * @param cc the BLAKE-512 context
301
+ * @param dst the destination buffer
302
+ */
303
+ void sph_blake512_close(void *cc, void *dst);
304
+
305
+ /**
306
+ * Add a few additional bits (0 to 7) to the current computation, then
307
+ * terminate it and output the result in the provided buffer, which must
308
+ * be wide enough to accomodate the result (64 bytes). If bit number i
309
+ * in <code>ub</code> has value 2^i, then the extra bits are those
310
+ * numbered 7 downto 8-n (this is the big-endian convention at the byte
311
+ * level). The context is automatically reinitialized.
312
+ *
313
+ * @param cc the BLAKE-512 context
314
+ * @param ub the extra bits
315
+ * @param n the number of extra bits (0 to 7)
316
+ * @param dst the destination buffer
317
+ */
318
+ void sph_blake512_addbits_and_close(
319
+ void *cc, unsigned ub, unsigned n, void *dst);
320
+
321
+ #endif
322
+
323
+ #ifdef __cplusplus
324
+ }
325
+ #endif
326
+
327
+ #endif