react-native-quick-crypto 1.0.0-beta.20 → 1.0.0-beta.22

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 (913) hide show
  1. package/QuickCrypto.podspec +81 -8
  2. package/android/CMakeLists.txt +33 -1
  3. package/cpp/blake3/HybridBlake3.cpp +118 -0
  4. package/cpp/blake3/HybridBlake3.hpp +35 -0
  5. package/cpp/cipher/GCMCipher.cpp +68 -0
  6. package/cpp/cipher/GCMCipher.hpp +14 -0
  7. package/cpp/cipher/HybridCipherFactory.hpp +13 -0
  8. package/cpp/cipher/HybridRsaCipher.cpp +229 -0
  9. package/cpp/cipher/HybridRsaCipher.hpp +23 -0
  10. package/cpp/ec/HybridEcKeyPair.cpp +428 -0
  11. package/cpp/ec/HybridEcKeyPair.hpp +48 -0
  12. package/cpp/ed25519/HybridEdKeyPair.cpp +78 -4
  13. package/cpp/ed25519/HybridEdKeyPair.hpp +9 -2
  14. package/cpp/hash/HybridHash.cpp +37 -3
  15. package/cpp/hash/HybridHash.hpp +5 -3
  16. package/cpp/keys/HybridKeyObjectHandle.cpp +742 -0
  17. package/cpp/keys/HybridKeyObjectHandle.hpp +51 -0
  18. package/cpp/keys/KeyObjectData.cpp +226 -0
  19. package/cpp/keys/KeyObjectData.hpp +71 -0
  20. package/cpp/keys/node.h +5 -0
  21. package/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
  22. package/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
  23. package/cpp/utils/Macros.hpp +68 -0
  24. package/cpp/utils/Utils.hpp +27 -0
  25. package/cpp/utils/base64.h +309 -0
  26. package/deps/blake3/.cargo/config.toml +2 -0
  27. package/deps/blake3/.git-blame-ignore-revs +2 -0
  28. package/deps/blake3/.github/workflows/build_b3sum.py +38 -0
  29. package/deps/blake3/.github/workflows/ci.yml +491 -0
  30. package/deps/blake3/.github/workflows/tag.yml +43 -0
  31. package/deps/blake3/.github/workflows/upload_github_release_asset.py +73 -0
  32. package/deps/blake3/CONTRIBUTING.md +31 -0
  33. package/deps/blake3/Cargo.toml +135 -0
  34. package/deps/blake3/LICENSE_A2 +202 -0
  35. package/deps/blake3/LICENSE_A2LLVM +219 -0
  36. package/deps/blake3/LICENSE_CC0 +121 -0
  37. package/deps/blake3/README.md +229 -0
  38. package/deps/blake3/b3sum/Cargo.lock +513 -0
  39. package/deps/blake3/b3sum/Cargo.toml +26 -0
  40. package/deps/blake3/b3sum/README.md +72 -0
  41. package/deps/blake3/b3sum/src/main.rs +564 -0
  42. package/deps/blake3/b3sum/src/unit_tests.rs +235 -0
  43. package/deps/blake3/b3sum/tests/cli_tests.rs +680 -0
  44. package/deps/blake3/b3sum/what_does_check_do.md +176 -0
  45. package/deps/blake3/benches/bench.rs +623 -0
  46. package/deps/blake3/build.rs +389 -0
  47. package/deps/blake3/c/CMakeLists.txt +383 -0
  48. package/deps/blake3/c/CMakePresets.json +73 -0
  49. package/deps/blake3/c/Makefile.testing +82 -0
  50. package/deps/blake3/c/README.md +403 -0
  51. package/deps/blake3/c/blake3-config.cmake.in +14 -0
  52. package/deps/blake3/c/blake3.c +650 -0
  53. package/deps/blake3/c/blake3.h +86 -0
  54. package/deps/blake3/c/blake3_avx2.c +326 -0
  55. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +1815 -0
  56. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +1817 -0
  57. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +1828 -0
  58. package/deps/blake3/c/blake3_avx512.c +1388 -0
  59. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +4824 -0
  60. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +2615 -0
  61. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +2634 -0
  62. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +32 -0
  63. package/deps/blake3/c/blake3_c_rust_bindings/README.md +4 -0
  64. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +477 -0
  65. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +253 -0
  66. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +31 -0
  67. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +333 -0
  68. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +696 -0
  69. package/deps/blake3/c/blake3_dispatch.c +332 -0
  70. package/deps/blake3/c/blake3_impl.h +333 -0
  71. package/deps/blake3/c/blake3_neon.c +366 -0
  72. package/deps/blake3/c/blake3_portable.c +160 -0
  73. package/deps/blake3/c/blake3_sse2.c +566 -0
  74. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +2291 -0
  75. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +2332 -0
  76. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
  77. package/deps/blake3/c/blake3_sse41.c +560 -0
  78. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +2028 -0
  79. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +2069 -0
  80. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +2089 -0
  81. package/deps/blake3/c/blake3_tbb.cpp +37 -0
  82. package/deps/blake3/c/dependencies/CMakeLists.txt +3 -0
  83. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +28 -0
  84. package/deps/blake3/c/example.c +36 -0
  85. package/deps/blake3/c/example_tbb.c +57 -0
  86. package/deps/blake3/c/libblake3.pc.in +12 -0
  87. package/deps/blake3/c/main.c +166 -0
  88. package/deps/blake3/c/test.py +97 -0
  89. package/deps/blake3/media/B3.svg +70 -0
  90. package/deps/blake3/media/BLAKE3.svg +85 -0
  91. package/deps/blake3/media/speed.svg +1474 -0
  92. package/deps/blake3/reference_impl/Cargo.toml +8 -0
  93. package/deps/blake3/reference_impl/README.md +14 -0
  94. package/deps/blake3/reference_impl/reference_impl.rs +374 -0
  95. package/deps/blake3/src/ffi_avx2.rs +65 -0
  96. package/deps/blake3/src/ffi_avx512.rs +169 -0
  97. package/deps/blake3/src/ffi_neon.rs +82 -0
  98. package/deps/blake3/src/ffi_sse2.rs +126 -0
  99. package/deps/blake3/src/ffi_sse41.rs +126 -0
  100. package/deps/blake3/src/guts.rs +60 -0
  101. package/deps/blake3/src/hazmat.rs +704 -0
  102. package/deps/blake3/src/io.rs +64 -0
  103. package/deps/blake3/src/join.rs +92 -0
  104. package/deps/blake3/src/lib.rs +1835 -0
  105. package/deps/blake3/src/platform.rs +587 -0
  106. package/deps/blake3/src/portable.rs +198 -0
  107. package/deps/blake3/src/rust_avx2.rs +474 -0
  108. package/deps/blake3/src/rust_sse2.rs +775 -0
  109. package/deps/blake3/src/rust_sse41.rs +766 -0
  110. package/deps/blake3/src/test.rs +1049 -0
  111. package/deps/blake3/src/traits.rs +227 -0
  112. package/deps/blake3/src/wasm32_simd.rs +794 -0
  113. package/deps/blake3/test_vectors/Cargo.toml +19 -0
  114. package/deps/blake3/test_vectors/cross_test.sh +25 -0
  115. package/deps/blake3/test_vectors/src/bin/generate.rs +4 -0
  116. package/deps/blake3/test_vectors/src/lib.rs +350 -0
  117. package/deps/blake3/test_vectors/test_vectors.json +217 -0
  118. package/deps/blake3/tools/compiler_version/Cargo.toml +7 -0
  119. package/deps/blake3/tools/compiler_version/build.rs +6 -0
  120. package/deps/blake3/tools/compiler_version/src/main.rs +27 -0
  121. package/deps/blake3/tools/instruction_set_support/Cargo.toml +6 -0
  122. package/deps/blake3/tools/instruction_set_support/src/main.rs +10 -0
  123. package/deps/blake3/tools/release.md +16 -0
  124. package/deps/ncrypto/ncrypto.cc +4679 -0
  125. package/deps/ncrypto/ncrypto.h +1625 -0
  126. package/lib/commonjs/blake3.js +98 -0
  127. package/lib/commonjs/blake3.js.map +1 -0
  128. package/lib/commonjs/ec.js +412 -0
  129. package/lib/commonjs/ec.js.map +1 -0
  130. package/lib/commonjs/ed.js +143 -0
  131. package/lib/commonjs/ed.js.map +1 -1
  132. package/lib/commonjs/expo-plugin/withXCode.js +3 -3
  133. package/lib/commonjs/hash.js +48 -1
  134. package/lib/commonjs/hash.js.map +1 -1
  135. package/lib/commonjs/index.js +54 -4
  136. package/lib/commonjs/index.js.map +1 -1
  137. package/lib/commonjs/keys/classes.js +111 -52
  138. package/lib/commonjs/keys/classes.js.map +1 -1
  139. package/lib/commonjs/keys/generateKeyPair.js +98 -144
  140. package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
  141. package/lib/commonjs/keys/index.js +27 -0
  142. package/lib/commonjs/keys/index.js.map +1 -1
  143. package/lib/commonjs/keys/utils.js +18 -13
  144. package/lib/commonjs/keys/utils.js.map +1 -1
  145. package/lib/commonjs/rsa.js +129 -0
  146. package/lib/commonjs/rsa.js.map +1 -0
  147. package/lib/commonjs/specs/blake3.nitro.js +6 -0
  148. package/lib/commonjs/specs/blake3.nitro.js.map +1 -0
  149. package/lib/commonjs/specs/ecKeyPair.nitro.js +6 -0
  150. package/lib/commonjs/specs/ecKeyPair.nitro.js.map +1 -0
  151. package/lib/commonjs/specs/rsaCipher.nitro.js +6 -0
  152. package/lib/commonjs/specs/rsaCipher.nitro.js.map +1 -0
  153. package/lib/commonjs/specs/rsaKeyPair.nitro.js +6 -0
  154. package/lib/commonjs/specs/rsaKeyPair.nitro.js.map +1 -0
  155. package/lib/commonjs/subtle.js +768 -0
  156. package/lib/commonjs/subtle.js.map +1 -0
  157. package/lib/commonjs/utils/conversion.js +26 -3
  158. package/lib/commonjs/utils/conversion.js.map +1 -1
  159. package/lib/commonjs/utils/hashnames.js +2 -1
  160. package/lib/commonjs/utils/hashnames.js.map +1 -1
  161. package/lib/commonjs/utils/index.js +11 -0
  162. package/lib/commonjs/utils/index.js.map +1 -1
  163. package/lib/commonjs/utils/noble.js +82 -0
  164. package/lib/commonjs/utils/noble.js.map +1 -0
  165. package/lib/commonjs/utils/types.js +28 -16
  166. package/lib/commonjs/utils/types.js.map +1 -1
  167. package/lib/commonjs/utils/validation.js +74 -1
  168. package/lib/commonjs/utils/validation.js.map +1 -1
  169. package/lib/module/blake3.js +90 -0
  170. package/lib/module/blake3.js.map +1 -0
  171. package/lib/module/ec.js +404 -0
  172. package/lib/module/ec.js.map +1 -0
  173. package/lib/module/ed.js +141 -0
  174. package/lib/module/ed.js.map +1 -1
  175. package/lib/module/expo-plugin/withXCode.js +3 -3
  176. package/lib/module/hash.js +47 -2
  177. package/lib/module/hash.js.map +1 -1
  178. package/lib/module/index.js +9 -1
  179. package/lib/module/index.js.map +1 -1
  180. package/lib/module/keys/classes.js +108 -49
  181. package/lib/module/keys/classes.js.map +1 -1
  182. package/lib/module/keys/generateKeyPair.js +91 -143
  183. package/lib/module/keys/generateKeyPair.js.map +1 -1
  184. package/lib/module/keys/index.js +9 -6
  185. package/lib/module/keys/index.js.map +1 -1
  186. package/lib/module/keys/utils.js +16 -12
  187. package/lib/module/keys/utils.js.map +1 -1
  188. package/lib/module/rsa.js +123 -0
  189. package/lib/module/rsa.js.map +1 -0
  190. package/lib/module/specs/blake3.nitro.js +4 -0
  191. package/lib/module/specs/blake3.nitro.js.map +1 -0
  192. package/lib/module/specs/ecKeyPair.nitro.js +4 -0
  193. package/lib/module/specs/ecKeyPair.nitro.js.map +1 -0
  194. package/lib/module/specs/rsaCipher.nitro.js +4 -0
  195. package/lib/module/specs/rsaCipher.nitro.js.map +1 -0
  196. package/lib/module/specs/rsaKeyPair.nitro.js +4 -0
  197. package/lib/module/specs/rsaKeyPair.nitro.js.map +1 -0
  198. package/lib/module/subtle.js +763 -0
  199. package/lib/module/subtle.js.map +1 -0
  200. package/lib/module/utils/conversion.js +8 -3
  201. package/lib/module/utils/conversion.js.map +1 -1
  202. package/lib/module/utils/hashnames.js +2 -1
  203. package/lib/module/utils/hashnames.js.map +1 -1
  204. package/lib/module/utils/index.js +1 -0
  205. package/lib/module/utils/index.js.map +1 -1
  206. package/lib/module/utils/noble.js +76 -0
  207. package/lib/module/utils/noble.js.map +1 -0
  208. package/lib/module/utils/types.js +26 -17
  209. package/lib/module/utils/types.js.map +1 -1
  210. package/lib/module/utils/validation.js +69 -1
  211. package/lib/module/utils/validation.js.map +1 -1
  212. package/lib/tsconfig.tsbuildinfo +1 -1
  213. package/lib/typescript/blake3.d.ts +33 -0
  214. package/lib/typescript/blake3.d.ts.map +1 -0
  215. package/lib/typescript/ec.d.ts +13 -0
  216. package/lib/typescript/ec.d.ts.map +1 -0
  217. package/lib/typescript/ed.d.ts +27 -1
  218. package/lib/typescript/ed.d.ts.map +1 -1
  219. package/lib/typescript/hash.d.ts +14 -1
  220. package/lib/typescript/hash.d.ts.map +1 -1
  221. package/lib/typescript/index.d.ts +45 -1
  222. package/lib/typescript/index.d.ts.map +1 -1
  223. package/lib/typescript/keys/classes.d.ts +49 -8
  224. package/lib/typescript/keys/classes.d.ts.map +1 -1
  225. package/lib/typescript/keys/generateKeyPair.d.ts +5 -0
  226. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
  227. package/lib/typescript/keys/index.d.ts +5 -2
  228. package/lib/typescript/keys/index.d.ts.map +1 -1
  229. package/lib/typescript/keys/utils.d.ts +3 -1
  230. package/lib/typescript/keys/utils.d.ts.map +1 -1
  231. package/lib/typescript/rsa.d.ts +10 -0
  232. package/lib/typescript/rsa.d.ts.map +1 -0
  233. package/lib/typescript/specs/blake3.nitro.d.ts +15 -0
  234. package/lib/typescript/specs/blake3.nitro.d.ts.map +1 -0
  235. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +20 -0
  236. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -0
  237. package/lib/typescript/specs/edKeyPair.nitro.d.ts +1 -0
  238. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -1
  239. package/lib/typescript/specs/hash.nitro.d.ts +1 -0
  240. package/lib/typescript/specs/hash.nitro.d.ts.map +1 -1
  241. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +1 -1
  242. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
  243. package/lib/typescript/specs/rsaCipher.nitro.d.ts +26 -0
  244. package/lib/typescript/specs/rsaCipher.nitro.d.ts.map +1 -0
  245. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts +20 -0
  246. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts.map +1 -0
  247. package/lib/typescript/subtle.d.ts +17 -0
  248. package/lib/typescript/subtle.d.ts.map +1 -0
  249. package/lib/typescript/utils/cipher.d.ts +1 -1
  250. package/lib/typescript/utils/conversion.d.ts +1 -0
  251. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  252. package/lib/typescript/utils/hashnames.d.ts +3 -1
  253. package/lib/typescript/utils/hashnames.d.ts.map +1 -1
  254. package/lib/typescript/utils/index.d.ts +1 -0
  255. package/lib/typescript/utils/index.d.ts.map +1 -1
  256. package/lib/typescript/utils/noble.d.ts +19 -0
  257. package/lib/typescript/utils/noble.d.ts.map +1 -0
  258. package/lib/typescript/utils/types.d.ts +102 -18
  259. package/lib/typescript/utils/types.d.ts.map +1 -1
  260. package/lib/typescript/utils/validation.d.ts +5 -0
  261. package/lib/typescript/utils/validation.d.ts.map +1 -1
  262. package/nitrogen/generated/.gitattributes +1 -1
  263. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +4 -0
  264. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +50 -0
  265. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +2 -1
  266. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +50 -0
  267. package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +104 -0
  268. package/nitrogen/generated/shared/c++/CipherArgs.hpp +4 -6
  269. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +28 -0
  270. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +76 -0
  271. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +1 -1
  272. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +1 -1
  273. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +29 -0
  274. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +77 -0
  275. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +1 -0
  276. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +3 -2
  277. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +1 -0
  278. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -1
  279. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +6 -6
  280. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +1 -1
  281. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +1 -1
  282. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +22 -0
  283. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +70 -0
  284. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +29 -0
  285. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +77 -0
  286. package/nitrogen/generated/shared/c++/JWK.hpp +15 -17
  287. package/nitrogen/generated/shared/c++/JWKkty.hpp +11 -13
  288. package/nitrogen/generated/shared/c++/JWKuse.hpp +7 -9
  289. package/nitrogen/generated/shared/c++/KFormatType.hpp +12 -14
  290. package/nitrogen/generated/shared/c++/KeyDetail.hpp +4 -6
  291. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +13 -15
  292. package/nitrogen/generated/shared/c++/KeyObject.hpp +67 -0
  293. package/nitrogen/generated/shared/c++/KeyType.hpp +9 -11
  294. package/nitrogen/generated/shared/c++/KeyUsage.hpp +37 -23
  295. package/nitrogen/generated/shared/c++/NamedCurve.hpp +9 -11
  296. package/package.json +14 -11
  297. package/src/blake3.ts +123 -0
  298. package/src/ec.ts +534 -0
  299. package/src/ed.ts +179 -2
  300. package/src/expo-plugin/withXCode.ts +3 -3
  301. package/src/hash.ts +68 -2
  302. package/src/index.ts +8 -0
  303. package/src/keys/classes.ts +161 -55
  304. package/src/keys/generateKeyPair.ts +133 -134
  305. package/src/keys/index.ts +13 -3
  306. package/src/keys/utils.ts +24 -18
  307. package/src/rsa.ts +176 -0
  308. package/src/specs/blake3.nitro.ts +12 -0
  309. package/src/specs/ecKeyPair.nitro.ts +38 -0
  310. package/src/specs/edKeyPair.nitro.ts +2 -0
  311. package/src/specs/hash.nitro.ts +1 -0
  312. package/src/specs/keyObjectHandle.nitro.ts +1 -1
  313. package/src/specs/rsaCipher.nitro.ts +35 -0
  314. package/src/specs/rsaKeyPair.nitro.ts +33 -0
  315. package/src/subtle.ts +1119 -0
  316. package/src/utils/conversion.ts +10 -2
  317. package/src/utils/hashnames.ts +4 -2
  318. package/src/utils/index.ts +1 -0
  319. package/src/utils/noble.ts +85 -0
  320. package/src/utils/types.ts +148 -26
  321. package/src/utils/validation.ts +96 -1
  322. package/ios/libsodium-stable/.github/workflows/autocloser.yml +0 -12
  323. package/ios/libsodium-stable/.github/workflows/ci.yml +0 -180
  324. package/ios/libsodium-stable/.github/workflows/cifuzz.yml +0 -32
  325. package/ios/libsodium-stable/.github/workflows/codeql-analysis.yml +0 -48
  326. package/ios/libsodium-stable/.github/workflows/dotnet-core.yml +0 -388
  327. package/ios/libsodium-stable/AUTHORS +0 -144
  328. package/ios/libsodium-stable/CITATION.cff +0 -18
  329. package/ios/libsodium-stable/ChangeLog +0 -677
  330. package/ios/libsodium-stable/LICENSE +0 -18
  331. package/ios/libsodium-stable/Makefile.am +0 -23
  332. package/ios/libsodium-stable/README.markdown +0 -76
  333. package/ios/libsodium-stable/THANKS +0 -92
  334. package/ios/libsodium-stable/appveyor.yml +0 -24
  335. package/ios/libsodium-stable/autogen.sh +0 -117
  336. package/ios/libsodium-stable/azure-pipelines.yml +0 -122
  337. package/ios/libsodium-stable/build.zig +0 -281
  338. package/ios/libsodium-stable/builds/Makefile.am +0 -81
  339. package/ios/libsodium-stable/builds/msvc/build/buildall.bat +0 -18
  340. package/ios/libsodium-stable/builds/msvc/build/buildbase.bat +0 -132
  341. package/ios/libsodium-stable/builds/msvc/properties/ARM64.props +0 -23
  342. package/ios/libsodium-stable/builds/msvc/properties/Common.props +0 -21
  343. package/ios/libsodium-stable/builds/msvc/properties/DLL.props +0 -16
  344. package/ios/libsodium-stable/builds/msvc/properties/Debug.props +0 -29
  345. package/ios/libsodium-stable/builds/msvc/properties/DebugDEXE.props +0 -21
  346. package/ios/libsodium-stable/builds/msvc/properties/DebugDLL.props +0 -20
  347. package/ios/libsodium-stable/builds/msvc/properties/DebugLEXE.props +0 -20
  348. package/ios/libsodium-stable/builds/msvc/properties/DebugLIB.props +0 -21
  349. package/ios/libsodium-stable/builds/msvc/properties/DebugLTCG.props +0 -20
  350. package/ios/libsodium-stable/builds/msvc/properties/DebugSEXE.props +0 -21
  351. package/ios/libsodium-stable/builds/msvc/properties/EXE.props +0 -17
  352. package/ios/libsodium-stable/builds/msvc/properties/LIB.props +0 -16
  353. package/ios/libsodium-stable/builds/msvc/properties/LTCG.props +0 -13
  354. package/ios/libsodium-stable/builds/msvc/properties/Link.props +0 -21
  355. package/ios/libsodium-stable/builds/msvc/properties/Messages.props +0 -15
  356. package/ios/libsodium-stable/builds/msvc/properties/Output.props +0 -30
  357. package/ios/libsodium-stable/builds/msvc/properties/Release.props +0 -41
  358. package/ios/libsodium-stable/builds/msvc/properties/ReleaseDEXE.props +0 -20
  359. package/ios/libsodium-stable/builds/msvc/properties/ReleaseDLL.props +0 -19
  360. package/ios/libsodium-stable/builds/msvc/properties/ReleaseLEXE.props +0 -20
  361. package/ios/libsodium-stable/builds/msvc/properties/ReleaseLIB.props +0 -19
  362. package/ios/libsodium-stable/builds/msvc/properties/ReleaseLTCG.props +0 -19
  363. package/ios/libsodium-stable/builds/msvc/properties/ReleaseSEXE.props +0 -20
  364. package/ios/libsodium-stable/builds/msvc/properties/Win32.props +0 -23
  365. package/ios/libsodium-stable/builds/msvc/properties/x64.props +0 -26
  366. package/ios/libsodium-stable/builds/msvc/resource.h +0 -14
  367. package/ios/libsodium-stable/builds/msvc/resource.rc +0 -65
  368. package/ios/libsodium-stable/builds/msvc/version.h +0 -33
  369. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.props +0 -48
  370. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.vcxproj +0 -346
  371. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters +0 -1088
  372. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.xml +0 -15
  373. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium.import.props +0 -52
  374. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium.import.xml +0 -17
  375. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium.sln +0 -50
  376. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.props +0 -48
  377. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.vcxproj +0 -346
  378. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters +0 -1088
  379. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.xml +0 -15
  380. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium.import.props +0 -52
  381. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium.import.xml +0 -17
  382. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium.sln +0 -50
  383. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.props +0 -48
  384. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.vcxproj +0 -346
  385. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters +0 -1088
  386. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.xml +0 -15
  387. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium.import.props +0 -52
  388. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium.import.xml +0 -17
  389. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium.sln +0 -52
  390. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.props +0 -48
  391. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.vcxproj +0 -346
  392. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters +0 -1088
  393. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.xml +0 -15
  394. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium.import.props +0 -52
  395. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium.import.xml +0 -17
  396. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium.sln +0 -52
  397. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.props +0 -48
  398. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.vcxproj +0 -346
  399. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters +0 -1088
  400. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.xml +0 -15
  401. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium.import.props +0 -52
  402. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium.import.xml +0 -17
  403. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium.sln +0 -52
  404. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.props +0 -48
  405. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.vcxproj +0 -370
  406. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters +0 -1088
  407. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.xml +0 -15
  408. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium.import.props +0 -52
  409. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium.import.xml +0 -17
  410. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium.sln +0 -52
  411. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.props +0 -48
  412. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.vcxproj +0 -370
  413. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters +0 -1088
  414. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.xml +0 -15
  415. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium.import.props +0 -52
  416. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium.import.xml +0 -17
  417. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium.sln +0 -70
  418. package/ios/libsodium-stable/ci/appveyor/libsodium.sln +0 -40
  419. package/ios/libsodium-stable/ci/appveyor/libsodium.vcxproj +0 -594
  420. package/ios/libsodium-stable/ci/appveyor/libsodium.vcxproj.filters +0 -813
  421. package/ios/libsodium-stable/ci/appveyor/msvc-scripts/process.bat +0 -5
  422. package/ios/libsodium-stable/ci/appveyor/msvc-scripts/rep.vbs +0 -12
  423. package/ios/libsodium-stable/ci/appveyor/msvc-scripts/sodium.props +0 -29
  424. package/ios/libsodium-stable/configure.ac +0 -1004
  425. package/ios/libsodium-stable/contrib/Findsodium.cmake +0 -297
  426. package/ios/libsodium-stable/contrib/Makefile.am +0 -3
  427. package/ios/libsodium-stable/dist-build/Makefile.am +0 -14
  428. package/ios/libsodium-stable/dist-build/android-aar.sh +0 -194
  429. package/ios/libsodium-stable/dist-build/android-armv7-a.sh +0 -5
  430. package/ios/libsodium-stable/dist-build/android-armv8-a.sh +0 -5
  431. package/ios/libsodium-stable/dist-build/android-build.sh +0 -95
  432. package/ios/libsodium-stable/dist-build/android-x86.sh +0 -5
  433. package/ios/libsodium-stable/dist-build/android-x86_64.sh +0 -5
  434. package/ios/libsodium-stable/dist-build/apple-xcframework.sh +0 -628
  435. package/ios/libsodium-stable/dist-build/emscripten-symbols.def +0 -651
  436. package/ios/libsodium-stable/dist-build/emscripten.sh +0 -206
  437. package/ios/libsodium-stable/dist-build/generate-emscripten-symbols.sh +0 -59
  438. package/ios/libsodium-stable/dist-build/macos.sh +0 -26
  439. package/ios/libsodium-stable/dist-build/msys2-win32.sh +0 -18
  440. package/ios/libsodium-stable/dist-build/msys2-win64.sh +0 -18
  441. package/ios/libsodium-stable/dist-build/wasm32-wasi.sh +0 -45
  442. package/ios/libsodium-stable/lgtm.yml +0 -6
  443. package/ios/libsodium-stable/libsodium-uninstalled.pc.in +0 -7
  444. package/ios/libsodium-stable/libsodium.pc.in +0 -12
  445. package/ios/libsodium-stable/logo.png +0 -0
  446. package/ios/libsodium-stable/m4/ax_add_fortify_source.m4 +0 -119
  447. package/ios/libsodium-stable/m4/ax_check_catchable_abrt.m4 +0 -57
  448. package/ios/libsodium-stable/m4/ax_check_catchable_segv.m4 +0 -47
  449. package/ios/libsodium-stable/m4/ax_check_compile_flag.m4 +0 -55
  450. package/ios/libsodium-stable/m4/ax_check_define.m4 +0 -73
  451. package/ios/libsodium-stable/m4/ax_check_gnu_make.m4 +0 -95
  452. package/ios/libsodium-stable/m4/ax_check_link_flag.m4 +0 -75
  453. package/ios/libsodium-stable/m4/ax_pthread.m4 +0 -522
  454. package/ios/libsodium-stable/m4/ax_tls.m4 +0 -71
  455. package/ios/libsodium-stable/m4/ax_valgrind_check.m4 +0 -239
  456. package/ios/libsodium-stable/m4/ld-output-def.m4 +0 -29
  457. package/ios/libsodium-stable/packaging/dotnet-core/libsodium.pkgproj +0 -49
  458. package/ios/libsodium-stable/packaging/dotnet-core/test.cs +0 -43
  459. package/ios/libsodium-stable/packaging/nuget/package.bat +0 -13
  460. package/ios/libsodium-stable/packaging/nuget/package.config +0 -4
  461. package/ios/libsodium-stable/packaging/nuget/package.gsl +0 -260
  462. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj +0 -326
  463. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj.filters +0 -23
  464. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj.filters.tpl +0 -35
  465. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj.tpl +0 -37
  466. package/ios/libsodium-stable/regen-msvc/regen-msvc.py +0 -240
  467. package/ios/libsodium-stable/regen-msvc/tl_libsodium.vcxproj.filters.tpl +0 -23
  468. package/ios/libsodium-stable/regen-msvc/tl_libsodium.vcxproj.tpl +0 -332
  469. package/ios/libsodium-stable/src/Makefile.am +0 -3
  470. package/ios/libsodium-stable/src/libsodium/Makefile.am +0 -314
  471. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c +0 -159
  472. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.c +0 -70
  473. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.h +0 -8
  474. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c +0 -72
  475. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.h +0 -8
  476. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_common.h +0 -248
  477. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c +0 -59
  478. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.h +0 -8
  479. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/implementations.h +0 -17
  480. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aead_aegis256.c +0 -158
  481. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_aesni.c +0 -65
  482. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_aesni.h +0 -8
  483. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c +0 -70
  484. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.h +0 -8
  485. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_common.h +0 -231
  486. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_soft.c +0 -54
  487. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_soft.h +0 -8
  488. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/implementations.h +0 -17
  489. package/ios/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/aead_aes256gcm.c +0 -157
  490. package/ios/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +0 -1015
  491. package/ios/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c +0 -1033
  492. package/ios/libsodium-stable/src/libsodium/crypto_aead/chacha20poly1305/aead_chacha20poly1305.c +0 -400
  493. package/ios/libsodium-stable/src/libsodium/crypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c +0 -262
  494. package/ios/libsodium-stable/src/libsodium/crypto_auth/crypto_auth.c +0 -41
  495. package/ios/libsodium-stable/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c +0 -118
  496. package/ios/libsodium-stable/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c +0 -118
  497. package/ios/libsodium-stable/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c +0 -93
  498. package/ios/libsodium-stable/src/libsodium/crypto_box/crypto_box.c +0 -114
  499. package/ios/libsodium-stable/src/libsodium/crypto_box/crypto_box_easy.c +0 -115
  500. package/ios/libsodium-stable/src/libsodium/crypto_box/crypto_box_seal.c +0 -68
  501. package/ios/libsodium-stable/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c +0 -204
  502. package/ios/libsodium-stable/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c +0 -79
  503. package/ios/libsodium-stable/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c +0 -156
  504. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/core_ed25519.c +0 -225
  505. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/core_ristretto255.c +0 -156
  506. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c +0 -2873
  507. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h +0 -1344
  508. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h +0 -40
  509. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h +0 -40
  510. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h +0 -220
  511. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h +0 -1344
  512. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h +0 -40
  513. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/constants.h +0 -41
  514. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h +0 -116
  515. package/ios/libsodium-stable/src/libsodium/crypto_core/hchacha20/core_hchacha20.c +0 -93
  516. package/ios/libsodium-stable/src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c +0 -21
  517. package/ios/libsodium-stable/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c +0 -95
  518. package/ios/libsodium-stable/src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c +0 -195
  519. package/ios/libsodium-stable/src/libsodium/crypto_core/softaes/softaes.c +0 -340
  520. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/generichash_blake2.c +0 -55
  521. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2.h +0 -106
  522. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.c +0 -52
  523. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.h +0 -142
  524. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c +0 -93
  525. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.c +0 -91
  526. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.h +0 -106
  527. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.c +0 -95
  528. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.h +0 -106
  529. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-avx2.h +0 -340
  530. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse2.h +0 -164
  531. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse41.h +0 -307
  532. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c +0 -438
  533. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c +0 -116
  534. package/ios/libsodium-stable/src/libsodium/crypto_generichash/crypto_generichash.c +0 -91
  535. package/ios/libsodium-stable/src/libsodium/crypto_hash/crypto_hash.c +0 -20
  536. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c +0 -256
  537. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha256/hash_sha256.c +0 -13
  538. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c +0 -284
  539. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha512/hash_sha512.c +0 -13
  540. package/ios/libsodium-stable/src/libsodium/crypto_kdf/blake2b/kdf_blake2b.c +0 -52
  541. package/ios/libsodium-stable/src/libsodium/crypto_kdf/crypto_kdf.c +0 -49
  542. package/ios/libsodium-stable/src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha256.c +0 -123
  543. package/ios/libsodium-stable/src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha512.c +0 -123
  544. package/ios/libsodium-stable/src/libsodium/crypto_kx/crypto_kx.c +0 -143
  545. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c +0 -71
  546. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c +0 -124
  547. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h +0 -12
  548. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h +0 -235
  549. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h +0 -221
  550. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c +0 -90
  551. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h +0 -21
  552. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c +0 -957
  553. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h +0 -12
  554. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-core.c +0 -556
  555. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-core.h +0 -271
  556. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c +0 -306
  557. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h +0 -34
  558. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.c +0 -243
  559. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.c +0 -251
  560. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c +0 -234
  561. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c +0 -244
  562. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2.c +0 -283
  563. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2.h +0 -305
  564. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blake2b-long.c +0 -79
  565. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blake2b-long.h +0 -8
  566. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-avx2.h +0 -150
  567. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-avx512f.h +0 -145
  568. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h +0 -40
  569. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h +0 -124
  570. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c +0 -294
  571. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c +0 -238
  572. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/crypto_pwhash.c +0 -212
  573. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c +0 -268
  574. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h +0 -92
  575. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c +0 -318
  576. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c +0 -96
  577. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h +0 -45
  578. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c +0 -301
  579. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c +0 -112
  580. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c +0 -406
  581. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/crypto_scalarmult.c +0 -33
  582. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c +0 -182
  583. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h +0 -10
  584. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts.S +0 -25
  585. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h +0 -20
  586. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c +0 -71
  587. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h +0 -9
  588. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h +0 -26
  589. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h +0 -35
  590. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c +0 -58
  591. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_mul.S +0 -200
  592. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h +0 -16
  593. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S +0 -174
  594. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_pack.S +0 -228
  595. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c +0 -78
  596. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.S +0 -1442
  597. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h +0 -18
  598. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h +0 -8
  599. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S +0 -16
  600. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c +0 -60
  601. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h +0 -11
  602. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c +0 -121
  603. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.c +0 -63
  604. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/crypto_secretbox.c +0 -67
  605. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c +0 -145
  606. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c +0 -177
  607. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c +0 -89
  608. package/ios/libsodium-stable/src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c +0 -313
  609. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/crypto_shorthash.c +0 -34
  610. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c +0 -71
  611. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash_ref.h +0 -24
  612. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c +0 -77
  613. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c +0 -11
  614. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.c +0 -11
  615. package/ios/libsodium-stable/src/libsodium/crypto_sign/crypto_sign.c +0 -115
  616. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/keypair.c +0 -84
  617. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c +0 -118
  618. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/open.c +0 -98
  619. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/sign.c +0 -128
  620. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h +0 -18
  621. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/sign_ed25519.c +0 -97
  622. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c +0 -180
  623. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h +0 -8
  624. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c +0 -176
  625. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.h +0 -8
  626. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u0.h +0 -86
  627. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u1.h +0 -98
  628. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u4.h +0 -177
  629. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u8.h +0 -326
  630. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c +0 -312
  631. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.h +0 -8
  632. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/stream_chacha20.c +0 -184
  633. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/stream_chacha20.h +0 -22
  634. package/ios/libsodium-stable/src/libsodium/crypto_stream/crypto_stream.c +0 -49
  635. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c +0 -120
  636. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.h +0 -8
  637. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/stream_salsa20.c +0 -100
  638. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/stream_salsa20.h +0 -16
  639. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S +0 -965
  640. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.c +0 -31
  641. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h +0 -8
  642. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.c +0 -134
  643. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.h +0 -8
  644. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.c +0 -128
  645. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.h +0 -8
  646. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u0.h +0 -195
  647. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u1.h +0 -207
  648. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u4.h +0 -547
  649. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u8.h +0 -477
  650. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012_ref.c +0 -106
  651. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa2012/stream_salsa2012.c +0 -26
  652. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208_ref.c +0 -106
  653. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa208/stream_salsa208.c +0 -26
  654. package/ios/libsodium-stable/src/libsodium/crypto_stream/xchacha20/stream_xchacha20.c +0 -69
  655. package/ios/libsodium-stable/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c +0 -66
  656. package/ios/libsodium-stable/src/libsodium/crypto_verify/verify.c +0 -103
  657. package/ios/libsodium-stable/src/libsodium/include/Makefile.am +0 -76
  658. package/ios/libsodium-stable/src/libsodium/include/sodium/core.h +0 -28
  659. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_aegis128l.h +0 -92
  660. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_aegis256.h +0 -92
  661. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_aes256gcm.h +0 -179
  662. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h +0 -180
  663. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_xchacha20poly1305.h +0 -100
  664. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth.h +0 -46
  665. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth_hmacsha256.h +0 -70
  666. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth_hmacsha512.h +0 -68
  667. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h +0 -65
  668. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_box.h +0 -177
  669. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_box_curve25519xchacha20poly1305.h +0 -164
  670. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h +0 -112
  671. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_ed25519.h +0 -100
  672. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_hchacha20.h +0 -36
  673. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_hsalsa20.h +0 -36
  674. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_ristretto255.h +0 -100
  675. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_salsa20.h +0 -36
  676. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_salsa2012.h +0 -36
  677. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_salsa208.h +0 -40
  678. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_generichash.h +0 -84
  679. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_generichash_blake2b.h +0 -122
  680. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_hash.h +0 -40
  681. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_hash_sha256.h +0 -60
  682. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_hash_sha512.h +0 -60
  683. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf.h +0 -53
  684. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf_blake2b.h +0 -44
  685. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf_hkdf_sha256.h +0 -74
  686. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf_hkdf_sha512.h +0 -75
  687. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kx.h +0 -66
  688. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_onetimeauth.h +0 -65
  689. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h +0 -72
  690. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash.h +0 -147
  691. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash_argon2i.h +0 -122
  692. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash_argon2id.h +0 -122
  693. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h +0 -120
  694. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult.h +0 -46
  695. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h +0 -42
  696. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult_ed25519.h +0 -51
  697. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult_ristretto255.h +0 -43
  698. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretbox.h +0 -93
  699. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretbox_xchacha20poly1305.h +0 -70
  700. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h +0 -69
  701. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h +0 -108
  702. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_shorthash.h +0 -41
  703. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_shorthash_siphash24.h +0 -50
  704. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_sign.h +0 -107
  705. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_sign_ed25519.h +0 -124
  706. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h +0 -55
  707. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream.h +0 -59
  708. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_chacha20.h +0 -106
  709. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_salsa20.h +0 -61
  710. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_salsa2012.h +0 -53
  711. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_salsa208.h +0 -56
  712. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_xchacha20.h +0 -61
  713. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_xsalsa20.h +0 -61
  714. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_verify_16.h +0 -23
  715. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_verify_32.h +0 -23
  716. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_verify_64.h +0 -23
  717. package/ios/libsodium-stable/src/libsodium/include/sodium/export.h +0 -57
  718. package/ios/libsodium-stable/src/libsodium/include/sodium/private/asm_cet.h +0 -11
  719. package/ios/libsodium-stable/src/libsodium/include/sodium/private/chacha20_ietf_ext.h +0 -16
  720. package/ios/libsodium-stable/src/libsodium/include/sodium/private/common.h +0 -296
  721. package/ios/libsodium-stable/src/libsodium/include/sodium/private/ed25519_ref10.h +0 -142
  722. package/ios/libsodium-stable/src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h +0 -1030
  723. package/ios/libsodium-stable/src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h +0 -508
  724. package/ios/libsodium-stable/src/libsodium/include/sodium/private/implementations.h +0 -13
  725. package/ios/libsodium-stable/src/libsodium/include/sodium/private/mutex.h +0 -7
  726. package/ios/libsodium-stable/src/libsodium/include/sodium/private/softaes.h +0 -56
  727. package/ios/libsodium-stable/src/libsodium/include/sodium/private/sse2_64_32.h +0 -50
  728. package/ios/libsodium-stable/src/libsodium/include/sodium/randombytes.h +0 -72
  729. package/ios/libsodium-stable/src/libsodium/include/sodium/randombytes_internal_random.h +0 -22
  730. package/ios/libsodium-stable/src/libsodium/include/sodium/randombytes_sysrandom.h +0 -19
  731. package/ios/libsodium-stable/src/libsodium/include/sodium/runtime.h +0 -55
  732. package/ios/libsodium-stable/src/libsodium/include/sodium/utils.h +0 -179
  733. package/ios/libsodium-stable/src/libsodium/include/sodium/version.h.in +0 -33
  734. package/ios/libsodium-stable/src/libsodium/include/sodium.h +0 -75
  735. package/ios/libsodium-stable/src/libsodium/randombytes/internal/randombytes_internal_random.c +0 -648
  736. package/ios/libsodium-stable/src/libsodium/randombytes/randombytes.c +0 -200
  737. package/ios/libsodium-stable/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c +0 -396
  738. package/ios/libsodium-stable/src/libsodium/sodium/codecs.c +0 -335
  739. package/ios/libsodium-stable/src/libsodium/sodium/core.c +0 -216
  740. package/ios/libsodium-stable/src/libsodium/sodium/runtime.c +0 -391
  741. package/ios/libsodium-stable/src/libsodium/sodium/utils.c +0 -809
  742. package/ios/libsodium-stable/src/libsodium/sodium/version.c +0 -30
  743. package/ios/libsodium-stable/test/Makefile.am +0 -5
  744. package/ios/libsodium-stable/test/constcheck.sh +0 -22
  745. package/ios/libsodium-stable/test/default/Makefile.am +0 -525
  746. package/ios/libsodium-stable/test/default/aead_aegis128l.c +0 -642
  747. package/ios/libsodium-stable/test/default/aead_aegis128l.exp +0 -1
  748. package/ios/libsodium-stable/test/default/aead_aegis256.c +0 -723
  749. package/ios/libsodium-stable/test/default/aead_aegis256.exp +0 -1
  750. package/ios/libsodium-stable/test/default/aead_aes256gcm.c +0 -3328
  751. package/ios/libsodium-stable/test/default/aead_aes256gcm.exp +0 -1
  752. package/ios/libsodium-stable/test/default/aead_aes256gcm2.c +0 -276
  753. package/ios/libsodium-stable/test/default/aead_aes256gcm2.exp +0 -1
  754. package/ios/libsodium-stable/test/default/aead_chacha20poly1305.c +0 -372
  755. package/ios/libsodium-stable/test/default/aead_chacha20poly1305.exp +0 -63
  756. package/ios/libsodium-stable/test/default/aead_chacha20poly13052.c +0 -1046
  757. package/ios/libsodium-stable/test/default/aead_chacha20poly13052.exp +0 -1
  758. package/ios/libsodium-stable/test/default/aead_xchacha20poly1305.c +0 -203
  759. package/ios/libsodium-stable/test/default/aead_xchacha20poly1305.exp +0 -51
  760. package/ios/libsodium-stable/test/default/auth.c +0 -141
  761. package/ios/libsodium-stable/test/default/auth.exp +0 -30
  762. package/ios/libsodium-stable/test/default/auth2.c +0 -34
  763. package/ios/libsodium-stable/test/default/auth2.exp +0 -4
  764. package/ios/libsodium-stable/test/default/auth3.c +0 -36
  765. package/ios/libsodium-stable/test/default/auth3.exp +0 -1
  766. package/ios/libsodium-stable/test/default/auth5.c +0 -41
  767. package/ios/libsodium-stable/test/default/auth5.exp +0 -0
  768. package/ios/libsodium-stable/test/default/auth6.c +0 -23
  769. package/ios/libsodium-stable/test/default/auth6.exp +0 -8
  770. package/ios/libsodium-stable/test/default/auth7.c +0 -41
  771. package/ios/libsodium-stable/test/default/auth7.exp +0 -0
  772. package/ios/libsodium-stable/test/default/box.c +0 -112
  773. package/ios/libsodium-stable/test/default/box.exp +0 -38
  774. package/ios/libsodium-stable/test/default/box2.c +0 -80
  775. package/ios/libsodium-stable/test/default/box2.exp +0 -34
  776. package/ios/libsodium-stable/test/default/box7.c +0 -50
  777. package/ios/libsodium-stable/test/default/box7.exp +0 -0
  778. package/ios/libsodium-stable/test/default/box8.c +0 -58
  779. package/ios/libsodium-stable/test/default/box8.exp +0 -0
  780. package/ios/libsodium-stable/test/default/box_easy.c +0 -72
  781. package/ios/libsodium-stable/test/default/box_easy.exp +0 -3
  782. package/ios/libsodium-stable/test/default/box_easy2.c +0 -149
  783. package/ios/libsodium-stable/test/default/box_easy2.exp +0 -7
  784. package/ios/libsodium-stable/test/default/box_seal.c +0 -165
  785. package/ios/libsodium-stable/test/default/box_seal.exp +0 -8
  786. package/ios/libsodium-stable/test/default/box_seed.c +0 -30
  787. package/ios/libsodium-stable/test/default/box_seed.exp +0 -8
  788. package/ios/libsodium-stable/test/default/chacha20.c +0 -186
  789. package/ios/libsodium-stable/test/default/chacha20.exp +0 -64
  790. package/ios/libsodium-stable/test/default/cmptest.h +0 -238
  791. package/ios/libsodium-stable/test/default/codecs.c +0 -251
  792. package/ios/libsodium-stable/test/default/codecs.exp +0 -30
  793. package/ios/libsodium-stable/test/default/core1.c +0 -41
  794. package/ios/libsodium-stable/test/default/core1.exp +0 -4
  795. package/ios/libsodium-stable/test/default/core2.c +0 -38
  796. package/ios/libsodium-stable/test/default/core2.exp +0 -4
  797. package/ios/libsodium-stable/test/default/core3.c +0 -115
  798. package/ios/libsodium-stable/test/default/core3.exp +0 -3
  799. package/ios/libsodium-stable/test/default/core4.c +0 -36
  800. package/ios/libsodium-stable/test/default/core4.exp +0 -8
  801. package/ios/libsodium-stable/test/default/core5.c +0 -33
  802. package/ios/libsodium-stable/test/default/core5.exp +0 -4
  803. package/ios/libsodium-stable/test/default/core6.c +0 -52
  804. package/ios/libsodium-stable/test/default/core6.exp +0 -4
  805. package/ios/libsodium-stable/test/default/core_ed25519.c +0 -545
  806. package/ios/libsodium-stable/test/default/core_ed25519.exp +0 -55
  807. package/ios/libsodium-stable/test/default/core_ristretto255.c +0 -271
  808. package/ios/libsodium-stable/test/default/core_ristretto255.exp +0 -8
  809. package/ios/libsodium-stable/test/default/ed25519_convert.c +0 -70
  810. package/ios/libsodium-stable/test/default/ed25519_convert.exp +0 -3
  811. package/ios/libsodium-stable/test/default/generichash.c +0 -1406
  812. package/ios/libsodium-stable/test/default/generichash.exp +0 -65
  813. package/ios/libsodium-stable/test/default/generichash2.c +0 -62
  814. package/ios/libsodium-stable/test/default/generichash2.exp +0 -64
  815. package/ios/libsodium-stable/test/default/generichash3.c +0 -176
  816. package/ios/libsodium-stable/test/default/generichash3.exp +0 -75
  817. package/ios/libsodium-stable/test/default/hash.c +0 -47
  818. package/ios/libsodium-stable/test/default/hash.exp +0 -4
  819. package/ios/libsodium-stable/test/default/hash3.c +0 -20
  820. package/ios/libsodium-stable/test/default/hash3.exp +0 -1
  821. package/ios/libsodium-stable/test/default/index.html.tpl +0 -98
  822. package/ios/libsodium-stable/test/default/kdf.c +0 -71
  823. package/ios/libsodium-stable/test/default/kdf.exp +0 -77
  824. package/ios/libsodium-stable/test/default/kdf_hkdf.c +0 -102
  825. package/ios/libsodium-stable/test/default/kdf_hkdf.exp +0 -205
  826. package/ios/libsodium-stable/test/default/keygen.c +0 -67
  827. package/ios/libsodium-stable/test/default/keygen.exp +0 -1
  828. package/ios/libsodium-stable/test/default/kx.c +0 -149
  829. package/ios/libsodium-stable/test/default/kx.exp +0 -7
  830. package/ios/libsodium-stable/test/default/metamorphic.c +0 -187
  831. package/ios/libsodium-stable/test/default/metamorphic.exp +0 -1
  832. package/ios/libsodium-stable/test/default/misuse.c +0 -187
  833. package/ios/libsodium-stable/test/default/misuse.exp +0 -0
  834. package/ios/libsodium-stable/test/default/onetimeauth.c +0 -63
  835. package/ios/libsodium-stable/test/default/onetimeauth.exp +0 -4
  836. package/ios/libsodium-stable/test/default/onetimeauth2.c +0 -33
  837. package/ios/libsodium-stable/test/default/onetimeauth2.exp +0 -1
  838. package/ios/libsodium-stable/test/default/onetimeauth7.c +0 -36
  839. package/ios/libsodium-stable/test/default/onetimeauth7.exp +0 -0
  840. package/ios/libsodium-stable/test/default/pre.js.inc +0 -22
  841. package/ios/libsodium-stable/test/default/pwhash_argon2i.c +0 -467
  842. package/ios/libsodium-stable/test/default/pwhash_argon2i.exp +0 -11
  843. package/ios/libsodium-stable/test/default/pwhash_argon2id.c +0 -517
  844. package/ios/libsodium-stable/test/default/pwhash_argon2id.exp +0 -14
  845. package/ios/libsodium-stable/test/default/pwhash_scrypt.c +0 -393
  846. package/ios/libsodium-stable/test/default/pwhash_scrypt.exp +0 -37
  847. package/ios/libsodium-stable/test/default/pwhash_scrypt_ll.c +0 -59
  848. package/ios/libsodium-stable/test/default/pwhash_scrypt_ll.exp +0 -15
  849. package/ios/libsodium-stable/test/default/randombytes.c +0 -164
  850. package/ios/libsodium-stable/test/default/randombytes.exp +0 -2
  851. package/ios/libsodium-stable/test/default/run.sh +0 -9
  852. package/ios/libsodium-stable/test/default/scalarmult.c +0 -77
  853. package/ios/libsodium-stable/test/default/scalarmult.exp +0 -5
  854. package/ios/libsodium-stable/test/default/scalarmult2.c +0 -22
  855. package/ios/libsodium-stable/test/default/scalarmult2.exp +0 -1
  856. package/ios/libsodium-stable/test/default/scalarmult5.c +0 -30
  857. package/ios/libsodium-stable/test/default/scalarmult5.exp +0 -1
  858. package/ios/libsodium-stable/test/default/scalarmult6.c +0 -54
  859. package/ios/libsodium-stable/test/default/scalarmult6.exp +0 -4
  860. package/ios/libsodium-stable/test/default/scalarmult7.c +0 -34
  861. package/ios/libsodium-stable/test/default/scalarmult7.exp +0 -1
  862. package/ios/libsodium-stable/test/default/scalarmult8.c +0 -580
  863. package/ios/libsodium-stable/test/default/scalarmult8.exp +0 -65
  864. package/ios/libsodium-stable/test/default/scalarmult_ed25519.c +0 -134
  865. package/ios/libsodium-stable/test/default/scalarmult_ed25519.exp +0 -1
  866. package/ios/libsodium-stable/test/default/scalarmult_ristretto255.c +0 -51
  867. package/ios/libsodium-stable/test/default/scalarmult_ristretto255.exp +0 -18
  868. package/ios/libsodium-stable/test/default/secretbox.c +0 -84
  869. package/ios/libsodium-stable/test/default/secretbox.exp +0 -38
  870. package/ios/libsodium-stable/test/default/secretbox2.c +0 -55
  871. package/ios/libsodium-stable/test/default/secretbox2.exp +0 -17
  872. package/ios/libsodium-stable/test/default/secretbox7.c +0 -36
  873. package/ios/libsodium-stable/test/default/secretbox7.exp +0 -0
  874. package/ios/libsodium-stable/test/default/secretbox8.c +0 -41
  875. package/ios/libsodium-stable/test/default/secretbox8.exp +0 -0
  876. package/ios/libsodium-stable/test/default/secretbox_easy.c +0 -124
  877. package/ios/libsodium-stable/test/default/secretbox_easy.exp +0 -9
  878. package/ios/libsodium-stable/test/default/secretbox_easy2.c +0 -72
  879. package/ios/libsodium-stable/test/default/secretbox_easy2.exp +0 -5
  880. package/ios/libsodium-stable/test/default/secretstream_xchacha20poly1305.c +0 -329
  881. package/ios/libsodium-stable/test/default/secretstream_xchacha20poly1305.exp +0 -1
  882. package/ios/libsodium-stable/test/default/shorthash.c +0 -35
  883. package/ios/libsodium-stable/test/default/shorthash.exp +0 -64
  884. package/ios/libsodium-stable/test/default/sign.c +0 -1324
  885. package/ios/libsodium-stable/test/default/sign.exp +0 -5
  886. package/ios/libsodium-stable/test/default/siphashx24.c +0 -33
  887. package/ios/libsodium-stable/test/default/siphashx24.exp +0 -64
  888. package/ios/libsodium-stable/test/default/sodium_core.c +0 -43
  889. package/ios/libsodium-stable/test/default/sodium_core.exp +0 -1
  890. package/ios/libsodium-stable/test/default/sodium_utils.c +0 -224
  891. package/ios/libsodium-stable/test/default/sodium_utils.exp +0 -25
  892. package/ios/libsodium-stable/test/default/sodium_utils2.c +0 -120
  893. package/ios/libsodium-stable/test/default/sodium_utils2.exp +0 -3
  894. package/ios/libsodium-stable/test/default/sodium_utils3.c +0 -90
  895. package/ios/libsodium-stable/test/default/sodium_utils3.exp +0 -2
  896. package/ios/libsodium-stable/test/default/sodium_version.c +0 -18
  897. package/ios/libsodium-stable/test/default/sodium_version.exp +0 -3
  898. package/ios/libsodium-stable/test/default/stream.c +0 -84
  899. package/ios/libsodium-stable/test/default/stream.exp +0 -83
  900. package/ios/libsodium-stable/test/default/stream2.c +0 -59
  901. package/ios/libsodium-stable/test/default/stream2.exp +0 -2
  902. package/ios/libsodium-stable/test/default/stream3.c +0 -32
  903. package/ios/libsodium-stable/test/default/stream3.exp +0 -4
  904. package/ios/libsodium-stable/test/default/stream4.c +0 -51
  905. package/ios/libsodium-stable/test/default/stream4.exp +0 -17
  906. package/ios/libsodium-stable/test/default/verify1.c +0 -76
  907. package/ios/libsodium-stable/test/default/verify1.exp +0 -2
  908. package/ios/libsodium-stable/test/default/wasi-test-wrapper.sh +0 -98
  909. package/ios/libsodium-stable/test/default/wintest.bat +0 -61
  910. package/ios/libsodium-stable/test/default/xchacha20.c +0 -428
  911. package/ios/libsodium-stable/test/default/xchacha20.exp +0 -5
  912. package/ios/libsodium-stable/test/quirks/quirks.h +0 -34
  913. package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +0 -86
@@ -0,0 +1,704 @@
1
+ //! Low-level tree manipulations and other sharp tools
2
+ //!
3
+ //! The target audience for this module is projects like [Bao](https://github.com/oconnor663/bao),
4
+ //! which work directly with the interior hashes ("chaining values") of BLAKE3 chunks and subtrees.
5
+ //! For example, you could use these functions to implement a BitTorrent-like protocol using the
6
+ //! BLAKE3 tree structure, or to hash an input that's distributed across different machines. These
7
+ //! use cases are advanced, and most applications don't need this module. Also:
8
+ //!
9
+ //! <div class="warning">
10
+ //!
11
+ //! **Warning:** This module is *hazardous material*. If you've heard folks say *don't roll your
12
+ //! own crypto,* this is the sort of thing they're talking about. These functions have complicated
13
+ //! requirements, and any mistakes will give you garbage output and/or break the security
14
+ //! properties that BLAKE3 is supposed to have. Read section 2.1 of [the BLAKE3
15
+ //! paper](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf) to understand the
16
+ //! tree structure you need to maintain. Test your code against [`blake3::hash`](../fn.hash.html)
17
+ //! and make sure you can get the same outputs for [lots of different
18
+ //! inputs](https://github.com/BLAKE3-team/BLAKE3/blob/master/test_vectors/test_vectors.json).
19
+ //!
20
+ //! </div>
21
+ //!
22
+ //! On the other hand:
23
+ //!
24
+ //! <div class="warning">
25
+ //!
26
+ //! **Encouragement:** Playing with these functions is a great way to learn how BLAKE3 works on the
27
+ //! inside. Have fun!
28
+ //!
29
+ //! </div>
30
+ //!
31
+ //! The main entrypoint for this module is the [`HasherExt`] trait, particularly the
32
+ //! [`set_input_offset`](HasherExt::set_input_offset) and
33
+ //! [`finalize_non_root`](HasherExt::finalize_non_root) methods. These let you compute the chaining
34
+ //! values of individual chunks or subtrees. You then combine these chaining values into larger
35
+ //! subtrees using [`merge_subtrees_non_root`] and finally (once at the very top)
36
+ //! [`merge_subtrees_root`] or [`merge_subtrees_root_xof`].
37
+ //!
38
+ //! # Examples
39
+ //!
40
+ //! Here's an example of computing all the interior hashes in a 3-chunk tree:
41
+ //!
42
+ //! ```text
43
+ //! root
44
+ //! / \
45
+ //! parent \
46
+ //! / \ \
47
+ //! chunk0 chunk1 chunk2
48
+ //! ```
49
+ //!
50
+ //! ```
51
+ //! # fn main() {
52
+ //! use blake3::{Hasher, CHUNK_LEN};
53
+ //! use blake3::hazmat::{merge_subtrees_non_root, merge_subtrees_root, Mode};
54
+ //! use blake3::hazmat::HasherExt; // an extension trait for Hasher
55
+ //!
56
+ //! let chunk0 = [b'a'; CHUNK_LEN];
57
+ //! let chunk1 = [b'b'; CHUNK_LEN];
58
+ //! let chunk2 = [b'c'; 42]; // The final chunk can be short.
59
+ //!
60
+ //! // Compute the non-root hashes ("chaining values") of all three chunks. Chunks or subtrees
61
+ //! // that don't begin at the start of the input use `set_input_offset` to say where they begin.
62
+ //! let chunk0_cv = Hasher::new()
63
+ //! // .set_input_offset(0) is the default.
64
+ //! .update(&chunk0)
65
+ //! .finalize_non_root();
66
+ //! let chunk1_cv = Hasher::new()
67
+ //! .set_input_offset(CHUNK_LEN as u64)
68
+ //! .update(&chunk1)
69
+ //! .finalize_non_root();
70
+ //! let chunk2_cv = Hasher::new()
71
+ //! .set_input_offset(2 * CHUNK_LEN as u64)
72
+ //! .update(&chunk2)
73
+ //! .finalize_non_root();
74
+ //!
75
+ //! // Join the first two chunks with a non-root parent node and compute its chaining value.
76
+ //! let parent_cv = merge_subtrees_non_root(&chunk0_cv, &chunk1_cv, Mode::Hash);
77
+ //!
78
+ //! // Join that parent node and the third chunk with a root parent node and compute the hash.
79
+ //! let root_hash = merge_subtrees_root(&parent_cv, &chunk2_cv, Mode::Hash);
80
+ //!
81
+ //! // Double check that we got the right answer.
82
+ //! let mut combined_input = Vec::new();
83
+ //! combined_input.extend_from_slice(&chunk0);
84
+ //! combined_input.extend_from_slice(&chunk1);
85
+ //! combined_input.extend_from_slice(&chunk2);
86
+ //! assert_eq!(root_hash, blake3::hash(&combined_input));
87
+ //! # }
88
+ //! ```
89
+ //!
90
+ //! Hashing many chunks together is important for performance, because it allows the implementation
91
+ //! to use SIMD parallelism internally. ([AVX-512](https://en.wikipedia.org/wiki/AVX-512) for
92
+ //! example needs 16 chunks to really get going.) We can reproduce `parent_cv` by hashing `chunk0`
93
+ //! and `chunk1` at the same time:
94
+ //!
95
+ //! ```
96
+ //! # fn main() {
97
+ //! # use blake3::{Hasher, CHUNK_LEN};
98
+ //! # use blake3::hazmat::{Mode, HasherExt, merge_subtrees_non_root, merge_subtrees_root};
99
+ //! # let chunk0 = [b'a'; CHUNK_LEN];
100
+ //! # let chunk1 = [b'b'; CHUNK_LEN];
101
+ //! # let chunk0_cv = Hasher::new().update(&chunk0).finalize_non_root();
102
+ //! # let chunk1_cv = Hasher::new().set_input_offset(CHUNK_LEN as u64).update(&chunk1).finalize_non_root();
103
+ //! # let parent_cv = merge_subtrees_non_root(&chunk0_cv, &chunk1_cv, Mode::Hash);
104
+ //! # let mut combined_input = Vec::new();
105
+ //! # combined_input.extend_from_slice(&chunk0);
106
+ //! # combined_input.extend_from_slice(&chunk1);
107
+ //! let left_subtree_cv = Hasher::new()
108
+ //! // .set_input_offset(0) is the default.
109
+ //! .update(&combined_input[..2 * CHUNK_LEN])
110
+ //! .finalize_non_root();
111
+ //! assert_eq!(left_subtree_cv, parent_cv);
112
+ //!
113
+ //! // Using multiple updates gives the same answer, though it's not as efficient.
114
+ //! let mut subtree_hasher = Hasher::new();
115
+ //! // Again, .set_input_offset(0) is the default.
116
+ //! subtree_hasher.update(&chunk0);
117
+ //! subtree_hasher.update(&chunk1);
118
+ //! assert_eq!(left_subtree_cv, subtree_hasher.finalize_non_root());
119
+ //! # }
120
+ //! ```
121
+ //!
122
+ //! However, hashing multiple chunks together **must** respect the overall tree structure. Hashing
123
+ //! `chunk0` and `chunk1` together is valid, but hashing `chunk1` and `chunk2` together is
124
+ //! incorrect and gives a garbage result that will never match a standard BLAKE3 hash. The
125
+ //! implementation includes a few best-effort asserts to catch some of these mistakes, but these
126
+ //! checks aren't guaranteed. For example, this second call to `update` currently panics:
127
+ //!
128
+ //! ```should_panic
129
+ //! # fn main() {
130
+ //! # use blake3::{Hasher, CHUNK_LEN};
131
+ //! # use blake3::hazmat::HasherExt;
132
+ //! # let chunk0 = [b'a'; CHUNK_LEN];
133
+ //! # let chunk1 = [b'b'; CHUNK_LEN];
134
+ //! # let chunk2 = [b'c'; 42];
135
+ //! let oops = Hasher::new()
136
+ //! .set_input_offset(CHUNK_LEN as u64)
137
+ //! .update(&chunk1)
138
+ //! // PANIC: "the subtree starting at 1024 contains at most 1024 bytes"
139
+ //! .update(&chunk2)
140
+ //! .finalize_non_root();
141
+ //! # }
142
+ //! ```
143
+ //!
144
+ //! For more on valid tree structures, see the docs for and [`left_subtree_len`] and
145
+ //! [`max_subtree_len`], and see section 2.1 of [the BLAKE3
146
+ //! paper](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf). Note that the
147
+ //! merging functions ([`merge_subtrees_root`] and friends) don't know the shape of the left and
148
+ //! right subtrees you're giving them, and they can't help you catch mistakes. The best way to
149
+ //! catch mistakes with these is to compare your root output to the [`blake3::hash`](crate::hash)
150
+ //! of the same input.
151
+
152
+ use crate::platform::Platform;
153
+ use crate::{CVWords, Hasher, CHUNK_LEN, IV, KEY_LEN, OUT_LEN};
154
+
155
+ /// Extension methods for [`Hasher`]. This is the main entrypoint to the `hazmat` module.
156
+ pub trait HasherExt {
157
+ /// Similar to [`Hasher::new_derive_key`] but using a pre-hashed [`ContextKey`] from
158
+ /// [`hash_derive_key_context`].
159
+ ///
160
+ /// The [`hash_derive_key_context`] function is _only_ valid source of the [`ContextKey`]
161
+ ///
162
+ /// # Example
163
+ ///
164
+ /// ```
165
+ /// use blake3::Hasher;
166
+ /// use blake3::hazmat::HasherExt;
167
+ ///
168
+ /// let context_key = blake3::hazmat::hash_derive_key_context("foo");
169
+ /// let mut hasher = Hasher::new_from_context_key(&context_key);
170
+ /// hasher.update(b"bar");
171
+ /// let derived_key = *hasher.finalize().as_bytes();
172
+ ///
173
+ /// assert_eq!(derived_key, blake3::derive_key("foo", b"bar"));
174
+ /// ```
175
+ fn new_from_context_key(context_key: &ContextKey) -> Self;
176
+
177
+ /// Configure the `Hasher` to process a chunk or subtree starting at `offset` bytes into the
178
+ /// whole input.
179
+ ///
180
+ /// You must call this function before processing any input with [`update`](Hasher::update) or
181
+ /// similar. This step isn't required for the first chunk, or for a subtree that includes the
182
+ /// first chunk (i.e. when the `offset` is zero), but it's required for all other chunks and
183
+ /// subtrees.
184
+ ///
185
+ /// The starting input offset of a subtree implies a maximum possible length for that subtree.
186
+ /// See [`max_subtree_len`] and section 2.1 of [the BLAKE3
187
+ /// paper](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf). Note that only
188
+ /// subtrees along the right edge of the whole tree can have a length less than their maximum
189
+ /// possible length.
190
+ ///
191
+ /// See the [module level examples](index.html#examples).
192
+ ///
193
+ /// # Panics
194
+ ///
195
+ /// This function panics if the `Hasher` has already accepted any input with
196
+ /// [`update`](Hasher::update) or similar.
197
+ ///
198
+ /// This should always be paired with [`finalize_non_root`](HasherExt::finalize_non_root). It's
199
+ /// never correct to use a non-zero input offset with [`finalize`](Hasher::finalize) or
200
+ /// [`finalize_xof`](Hasher::finalize_xof). The `offset` must also be a multiple of
201
+ /// `CHUNK_LEN`. Violating either of these rules will currently fail an assertion and panic,
202
+ /// but this is not guaranteed.
203
+ fn set_input_offset(&mut self, offset: u64) -> &mut Self;
204
+
205
+ /// Finalize the non-root hash ("chaining value") of the current chunk or subtree.
206
+ ///
207
+ /// Afterwards you can merge subtree chaining values into parent nodes using
208
+ /// [`merge_subtrees_non_root`] and ultimately into the root node with either
209
+ /// [`merge_subtrees_root`] (similar to [`Hasher::finalize`]) or [`merge_subtrees_root_xof`]
210
+ /// (similar to [`Hasher::finalize_xof`]).
211
+ ///
212
+ /// See the [module level examples](index.html#examples), particularly the discussion of valid
213
+ /// tree structures.
214
+ fn finalize_non_root(&self) -> ChainingValue;
215
+ }
216
+
217
+ impl HasherExt for Hasher {
218
+ fn new_from_context_key(context_key: &[u8; KEY_LEN]) -> Hasher {
219
+ let context_key_words = crate::platform::words_from_le_bytes_32(context_key);
220
+ Hasher::new_internal(&context_key_words, crate::DERIVE_KEY_MATERIAL)
221
+ }
222
+
223
+ fn set_input_offset(&mut self, offset: u64) -> &mut Hasher {
224
+ assert_eq!(self.count(), 0, "hasher has already accepted input");
225
+ assert_eq!(
226
+ offset % CHUNK_LEN as u64,
227
+ 0,
228
+ "offset ({offset}) must be a chunk boundary (divisible by {CHUNK_LEN})",
229
+ );
230
+ let counter = offset / CHUNK_LEN as u64;
231
+ self.chunk_state.chunk_counter = counter;
232
+ self.initial_chunk_counter = counter;
233
+ self
234
+ }
235
+
236
+ fn finalize_non_root(&self) -> ChainingValue {
237
+ assert_ne!(self.count(), 0, "empty subtrees are never valid");
238
+ self.final_output().chaining_value()
239
+ }
240
+ }
241
+
242
+ /// The maximum length of a subtree in bytes, given its starting offset in bytes
243
+ ///
244
+ /// If you try to hash more than this many bytes as one subtree, you'll end up merging parent nodes
245
+ /// that shouldn't be merged, and your output will be garbage. [`Hasher::update`] will currently
246
+ /// panic in this case, but this is not guaranteed.
247
+ ///
248
+ /// For input offset zero (the default), there is no maximum length, and this function returns
249
+ /// `None`. For all other offsets it returns `Some`. Note that valid offsets must be a multiple of
250
+ /// [`CHUNK_LEN`] (1024); it's not possible to start hashing a chunk in the middle.
251
+ ///
252
+ /// In the example tree below, chunks are numbered by their _0-based index_. The subtree that
253
+ /// _starts_ with chunk 3, i.e. `input_offset = 3 * CHUNK_LEN`, includes only that one chunk, so
254
+ /// its max length is `Some(CHUNK_LEN)`. The subtree that starts with chunk 6 includes chunk 7 but
255
+ /// not chunk 8, so its max length is `Some(2 * CHUNK_LEN)`. The subtree that starts with chunk 12
256
+ /// includes chunks 13, 14, and 15, but if the tree were bigger it would not include chunk 16, so
257
+ /// its max length is `Some(4 * CHUNK_LEN)`. One way to think about the rule here is that, if you
258
+ /// go beyond the max subtree length from a given starting offset, you start dealing with subtrees
259
+ /// that include chunks _to the left_ of where you started.
260
+ ///
261
+ /// ```text
262
+ /// root
263
+ /// / \
264
+ /// . .
265
+ /// / \ / \
266
+ /// . . . .
267
+ /// / \ / \ / \ / \
268
+ /// . . . . . . . .
269
+ /// / \ / \ / \ / \ / \ / \ / \ / \
270
+ /// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
271
+ /// ```
272
+ ///
273
+ /// The general rule turns out to be that for a subtree starting at a 0-based chunk index N greater
274
+ /// than zero, the maximum number of chunks in that subtree is the largest power-of-two that
275
+ /// divides N, which is given by `1 << N.trailing_zeros()`.
276
+ ///
277
+ /// This function can be useful for writing tests or debug assertions, but it's actually rare to
278
+ /// use this for real control flow. Callers who split their input recursively using
279
+ /// [`left_subtree_len`] will automatically satisfy the `max_subtree_len` bound and don't
280
+ /// necessarily need to check. It's also common to choose some fixed power-of-two subtree size, say
281
+ /// 64 chunks, and divide your input up into slices of that fixed length (with the final slice
282
+ /// possibly short). This approach also automatically satisfies the `max_subtree_len` bound and
283
+ /// doesn't need to check. Proving that this is true can be an interesting exercise. Note that
284
+ /// chunks 0, 4, 8, and 12 all begin subtrees of at least 4 chunks in the example tree above.
285
+ ///
286
+ /// # Panics
287
+ ///
288
+ /// This function currently panics if `input_offset` is not a multiple of `CHUNK_LEN`. This is not
289
+ /// guaranteed.
290
+ #[inline(always)]
291
+ pub fn max_subtree_len(input_offset: u64) -> Option<u64> {
292
+ if input_offset == 0 {
293
+ return None;
294
+ }
295
+ assert_eq!(input_offset % CHUNK_LEN as u64, 0);
296
+ let counter = input_offset / CHUNK_LEN as u64;
297
+ let max_chunks = 1 << counter.trailing_zeros();
298
+ Some(max_chunks * CHUNK_LEN as u64)
299
+ }
300
+
301
+ #[test]
302
+ fn test_max_subtree_len() {
303
+ assert_eq!(max_subtree_len(0), None);
304
+ // (chunk index, max chunks)
305
+ let cases = [
306
+ (1, 1),
307
+ (2, 2),
308
+ (3, 1),
309
+ (4, 4),
310
+ (5, 1),
311
+ (6, 2),
312
+ (7, 1),
313
+ (8, 8),
314
+ ];
315
+ for (chunk_index, max_chunks) in cases {
316
+ let input_offset = chunk_index * CHUNK_LEN as u64;
317
+ assert_eq!(
318
+ max_subtree_len(input_offset),
319
+ Some(max_chunks * CHUNK_LEN as u64),
320
+ );
321
+ }
322
+ }
323
+
324
+ /// Given the length in bytes of either a complete input or a subtree input, return the number of
325
+ /// bytes that belong to its left child subtree. The rest belong to its right child subtree.
326
+ ///
327
+ /// Concretely, this function returns the largest power-of-two number of bytes that's strictly less
328
+ /// than `input_len`. This leads to a tree where all left subtrees are "complete" and at least as
329
+ /// large as their sibling right subtrees, as specified in section 2.1 of [the BLAKE3
330
+ /// paper](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf). For example, if an
331
+ /// input is exactly two chunks, its left and right subtrees both get one chunk. But if an input is
332
+ /// two chunks plus one more byte, then its left subtree gets two chunks, and its right subtree
333
+ /// only gets one byte.
334
+ ///
335
+ /// This function isn't meaningful for one chunk of input, because chunks don't have children. It
336
+ /// currently panics in debug mode if `input_len <= CHUNK_LEN`.
337
+ ///
338
+ /// # Example
339
+ ///
340
+ /// Hash a input of random length as two subtrees:
341
+ ///
342
+ /// ```
343
+ /// # #[cfg(feature = "std")] {
344
+ /// use blake3::hazmat::{left_subtree_len, merge_subtrees_root, HasherExt, Mode};
345
+ /// use blake3::{Hasher, CHUNK_LEN};
346
+ ///
347
+ /// // Generate a random-length input. Note that to be split into two subtrees, the input length
348
+ /// // must be greater than CHUNK_LEN.
349
+ /// let input_len = rand::random_range(CHUNK_LEN + 1..1_000_000);
350
+ /// let mut input = vec![0; input_len];
351
+ /// rand::fill(&mut input[..]);
352
+ ///
353
+ /// // Compute the left and right subtree hashes and then the root hash. left_subtree_len() tells
354
+ /// // us exactly where to split the input. Any other split would either panic (if we're lucky) or
355
+ /// // lead to an incorrect root hash.
356
+ /// let left_len = left_subtree_len(input_len as u64) as usize;
357
+ /// let left_subtree_cv = Hasher::new()
358
+ /// .update(&input[..left_len])
359
+ /// .finalize_non_root();
360
+ /// let right_subtree_cv = Hasher::new()
361
+ /// .set_input_offset(left_len as u64)
362
+ /// .update(&input[left_len..])
363
+ /// .finalize_non_root();
364
+ /// let root_hash = merge_subtrees_root(&left_subtree_cv, &right_subtree_cv, Mode::Hash);
365
+ ///
366
+ /// // Double check the answer.
367
+ /// assert_eq!(root_hash, blake3::hash(&input));
368
+ /// # }
369
+ /// ```
370
+ #[inline(always)]
371
+ pub fn left_subtree_len(input_len: u64) -> u64 {
372
+ debug_assert!(input_len > CHUNK_LEN as u64);
373
+ // Note that .next_power_of_two() is greater than *or equal*.
374
+ ((input_len + 1) / 2).next_power_of_two()
375
+ }
376
+
377
+ #[test]
378
+ fn test_left_subtree_len() {
379
+ assert_eq!(left_subtree_len(1025), 1024);
380
+ for boundary_case in [2, 4, 8, 16, 32, 64] {
381
+ let input_len = boundary_case * CHUNK_LEN as u64;
382
+ assert_eq!(left_subtree_len(input_len - 1), input_len / 2);
383
+ assert_eq!(left_subtree_len(input_len), input_len / 2);
384
+ assert_eq!(left_subtree_len(input_len + 1), input_len);
385
+ }
386
+ }
387
+
388
+ /// The `mode` argument to [`merge_subtrees_root`] and friends
389
+ ///
390
+ /// See the [module level examples](index.html#examples).
391
+ #[derive(Copy, Clone, Debug)]
392
+ pub enum Mode<'a> {
393
+ /// Corresponding to [`hash`](crate::hash)
394
+ Hash,
395
+
396
+ /// Corresponding to [`keyed_hash`](crate::hash)
397
+ KeyedHash(&'a [u8; KEY_LEN]),
398
+
399
+ /// Corresponding to [`derive_key`](crate::hash)
400
+ ///
401
+ /// The [`ContextKey`] comes from [`hash_derive_key_context`].
402
+ DeriveKeyMaterial(&'a ContextKey),
403
+ }
404
+
405
+ impl<'a> Mode<'a> {
406
+ fn key_words(&self) -> CVWords {
407
+ match self {
408
+ Mode::Hash => *IV,
409
+ Mode::KeyedHash(key) => crate::platform::words_from_le_bytes_32(key),
410
+ Mode::DeriveKeyMaterial(cx_key) => crate::platform::words_from_le_bytes_32(cx_key),
411
+ }
412
+ }
413
+
414
+ fn flags_byte(&self) -> u8 {
415
+ match self {
416
+ Mode::Hash => 0,
417
+ Mode::KeyedHash(_) => crate::KEYED_HASH,
418
+ Mode::DeriveKeyMaterial(_) => crate::DERIVE_KEY_MATERIAL,
419
+ }
420
+ }
421
+ }
422
+
423
+ /// "Chaining value" is the academic term for a non-root or non-final hash.
424
+ ///
425
+ /// Besides just sounding fancy, it turns out there are [security
426
+ /// reasons](https://jacko.io/tree_hashing.html) to be careful about the difference between
427
+ /// (root/final) hashes and (non-root/non-final) chaining values.
428
+ pub type ChainingValue = [u8; OUT_LEN];
429
+
430
+ fn merge_subtrees_inner(
431
+ left_child: &ChainingValue,
432
+ right_child: &ChainingValue,
433
+ mode: Mode,
434
+ ) -> crate::Output {
435
+ crate::parent_node_output(
436
+ &left_child,
437
+ &right_child,
438
+ &mode.key_words(),
439
+ mode.flags_byte(),
440
+ Platform::detect(),
441
+ )
442
+ }
443
+
444
+ /// Compute a non-root parent node chaining value from two child chaining values.
445
+ ///
446
+ /// See the [module level examples](index.html#examples), particularly the discussion of valid tree
447
+ /// structures. The left and right child chaining values can come from either
448
+ /// [`Hasher::finalize_non_root`](HasherExt::finalize_non_root) or other calls to
449
+ /// `merge_subtrees_non_root`. "Chaining value" is the academic term for a non-root or non-final
450
+ /// hash.
451
+ pub fn merge_subtrees_non_root(
452
+ left_child: &ChainingValue,
453
+ right_child: &ChainingValue,
454
+ mode: Mode,
455
+ ) -> ChainingValue {
456
+ merge_subtrees_inner(left_child, right_child, mode).chaining_value()
457
+ }
458
+
459
+ /// Compute a root hash from two child chaining values.
460
+ ///
461
+ /// See the [module level examples](index.html#examples), particularly the discussion of valid tree
462
+ /// structures. The left and right child chaining values can come from either
463
+ /// [`Hasher::finalize_non_root`](HasherExt::finalize_non_root) or [`merge_subtrees_non_root`].
464
+ /// "Chaining value" is the academic term for a non-root or non-final hash.
465
+ ///
466
+ /// Note that inputs of [`CHUNK_LEN`] or less don't produce any parent nodes and can't be hashed
467
+ /// using this function. In that case you must get the root hash from [`Hasher::finalize`] (or just
468
+ /// [`blake3::hash`](crate::hash)).
469
+ pub fn merge_subtrees_root(
470
+ left_child: &ChainingValue,
471
+ right_child: &ChainingValue,
472
+ mode: Mode,
473
+ ) -> crate::Hash {
474
+ merge_subtrees_inner(left_child, right_child, mode).root_hash()
475
+ }
476
+
477
+ /// Build a root [`OutputReader`](crate::OutputReader) from two child chaining values.
478
+ ///
479
+ /// See also the [module level examples](index.html#examples), particularly the discussion of valid
480
+ /// tree structures. The left and right child chaining values can come from either
481
+ /// [`Hasher::finalize_non_root`](HasherExt::finalize_non_root) or [`merge_subtrees_non_root`].
482
+ /// "Chaining value" is the academic term for a non-root or non-final hash.
483
+ ///
484
+ /// Note that inputs of [`CHUNK_LEN`] or less don't produce any parent nodes and can't be hashed
485
+ /// using this function. In that case you must get the `OutputReader` from
486
+ /// [`Hasher::finalize_xof`].
487
+ ///
488
+ /// # Example
489
+ ///
490
+ /// ```
491
+ /// use blake3::hazmat::{merge_subtrees_root_xof, HasherExt, Mode};
492
+ /// use blake3::{Hasher, CHUNK_LEN};
493
+ ///
494
+ /// // Hash a 2-chunk subtree in steps. Note that only
495
+ /// // the final chunk can be shorter than CHUNK_LEN.
496
+ /// let chunk0 = &[42; CHUNK_LEN];
497
+ /// let chunk1 = b"hello world";
498
+ /// let chunk0_cv = Hasher::new()
499
+ /// .update(chunk0)
500
+ /// .finalize_non_root();
501
+ /// let chunk1_cv = Hasher::new()
502
+ /// .set_input_offset(CHUNK_LEN as u64)
503
+ /// .update(chunk1)
504
+ /// .finalize_non_root();
505
+ ///
506
+ /// // Obtain a blake3::OutputReader at the root and extract 1000 bytes.
507
+ /// let mut output_reader = merge_subtrees_root_xof(&chunk0_cv, &chunk1_cv, Mode::Hash);
508
+ /// let mut output_bytes = [0; 1_000];
509
+ /// output_reader.fill(&mut output_bytes);
510
+ ///
511
+ /// // Double check the answer.
512
+ /// let mut hasher = Hasher::new();
513
+ /// hasher.update(chunk0);
514
+ /// hasher.update(chunk1);
515
+ /// let mut expected = [0; 1_000];
516
+ /// hasher.finalize_xof().fill(&mut expected);
517
+ /// assert_eq!(output_bytes, expected);
518
+ /// ```
519
+ pub fn merge_subtrees_root_xof(
520
+ left_child: &ChainingValue,
521
+ right_child: &ChainingValue,
522
+ mode: Mode,
523
+ ) -> crate::OutputReader {
524
+ crate::OutputReader::new(merge_subtrees_inner(left_child, right_child, mode))
525
+ }
526
+
527
+ /// An alias to distinguish [`hash_derive_key_context`] outputs from other keys.
528
+ pub type ContextKey = [u8; KEY_LEN];
529
+
530
+ /// Hash a [`derive_key`](crate::derive_key) context string and return a [`ContextKey`].
531
+ ///
532
+ /// The _only_ valid uses for the returned [`ContextKey`] are [`Hasher::new_from_context_key`] and
533
+ /// [`Mode::DeriveKeyMaterial`] (together with the merge subtree functions).
534
+ ///
535
+ /// # Example
536
+ ///
537
+ /// ```
538
+ /// use blake3::Hasher;
539
+ /// use blake3::hazmat::HasherExt;
540
+ ///
541
+ /// let context_key = blake3::hazmat::hash_derive_key_context("foo");
542
+ /// let mut hasher = Hasher::new_from_context_key(&context_key);
543
+ /// hasher.update(b"bar");
544
+ /// let derived_key = *hasher.finalize().as_bytes();
545
+ ///
546
+ /// assert_eq!(derived_key, blake3::derive_key("foo", b"bar"));
547
+ /// ```
548
+ pub fn hash_derive_key_context(context: &str) -> ContextKey {
549
+ crate::hash_all_at_once::<crate::join::SerialJoin>(
550
+ context.as_bytes(),
551
+ IV,
552
+ crate::DERIVE_KEY_CONTEXT,
553
+ )
554
+ .root_hash()
555
+ .0
556
+ }
557
+
558
+ #[cfg(test)]
559
+ mod test {
560
+ use super::*;
561
+
562
+ #[test]
563
+ #[should_panic]
564
+ fn test_empty_subtree_should_panic() {
565
+ Hasher::new().finalize_non_root();
566
+ }
567
+
568
+ #[test]
569
+ #[should_panic]
570
+ fn test_unaligned_offset_should_panic() {
571
+ Hasher::new().set_input_offset(1);
572
+ }
573
+
574
+ #[test]
575
+ #[should_panic]
576
+ fn test_hasher_already_accepted_input_should_panic() {
577
+ Hasher::new().update(b"x").set_input_offset(0);
578
+ }
579
+
580
+ #[test]
581
+ #[should_panic]
582
+ fn test_too_much_input_should_panic() {
583
+ Hasher::new()
584
+ .set_input_offset(CHUNK_LEN as u64)
585
+ .update(&[0; CHUNK_LEN + 1]);
586
+ }
587
+
588
+ #[test]
589
+ #[should_panic]
590
+ fn test_set_input_offset_cant_finalize() {
591
+ Hasher::new().set_input_offset(CHUNK_LEN as u64).finalize();
592
+ }
593
+
594
+ #[test]
595
+ #[should_panic]
596
+ fn test_set_input_offset_cant_finalize_xof() {
597
+ Hasher::new()
598
+ .set_input_offset(CHUNK_LEN as u64)
599
+ .finalize_xof();
600
+ }
601
+
602
+ #[test]
603
+ fn test_grouped_hash() {
604
+ const MAX_CHUNKS: usize = (crate::test::TEST_CASES_MAX + 1) / CHUNK_LEN;
605
+ let mut input_buf = [0; crate::test::TEST_CASES_MAX];
606
+ crate::test::paint_test_input(&mut input_buf);
607
+ for subtree_chunks in [1, 2, 4, 8, 16, 32] {
608
+ #[cfg(feature = "std")]
609
+ dbg!(subtree_chunks);
610
+ let subtree_len = subtree_chunks * CHUNK_LEN;
611
+ for &case in crate::test::TEST_CASES {
612
+ if case <= subtree_len {
613
+ continue;
614
+ }
615
+ #[cfg(feature = "std")]
616
+ dbg!(case);
617
+ let input = &input_buf[..case];
618
+ let expected_hash = crate::hash(input);
619
+
620
+ // Collect all the group chaining values.
621
+ let mut chaining_values = arrayvec::ArrayVec::<ChainingValue, MAX_CHUNKS>::new();
622
+ let mut subtree_offset = 0;
623
+ while subtree_offset < input.len() {
624
+ let take = core::cmp::min(subtree_len, input.len() - subtree_offset);
625
+ let subtree_input = &input[subtree_offset..][..take];
626
+ let subtree_cv = Hasher::new()
627
+ .set_input_offset(subtree_offset as u64)
628
+ .update(subtree_input)
629
+ .finalize_non_root();
630
+ chaining_values.push(subtree_cv);
631
+ subtree_offset += take;
632
+ }
633
+
634
+ // Compress all the chaining_values together, layer by layer.
635
+ assert!(chaining_values.len() >= 2);
636
+ while chaining_values.len() > 2 {
637
+ let n = chaining_values.len();
638
+ // Merge each side-by-side pair in place, overwriting the front half of the
639
+ // array with the merged results. This moves us "up one level" in the tree.
640
+ for i in 0..(n / 2) {
641
+ chaining_values[i] = merge_subtrees_non_root(
642
+ &chaining_values[2 * i],
643
+ &chaining_values[2 * i + 1],
644
+ Mode::Hash,
645
+ );
646
+ }
647
+ // If there's an odd CV out, it moves up.
648
+ if n % 2 == 1 {
649
+ chaining_values[n / 2] = chaining_values[n - 1];
650
+ }
651
+ chaining_values.truncate(n / 2 + n % 2);
652
+ }
653
+ assert_eq!(chaining_values.len(), 2);
654
+ let root_hash =
655
+ merge_subtrees_root(&chaining_values[0], &chaining_values[1], Mode::Hash);
656
+ assert_eq!(expected_hash, root_hash);
657
+ }
658
+ }
659
+ }
660
+
661
+ #[test]
662
+ fn test_keyed_hash_xof() {
663
+ let group0 = &[42; 4096];
664
+ let group1 = &[43; 4095];
665
+ let mut input = [0; 8191];
666
+ input[..4096].copy_from_slice(group0);
667
+ input[4096..].copy_from_slice(group1);
668
+ let key = &[44; 32];
669
+
670
+ let mut expected_output = [0; 100];
671
+ Hasher::new_keyed(&key)
672
+ .update(&input)
673
+ .finalize_xof()
674
+ .fill(&mut expected_output);
675
+
676
+ let mut hazmat_output = [0; 100];
677
+ let left = Hasher::new_keyed(key).update(group0).finalize_non_root();
678
+ let right = Hasher::new_keyed(key)
679
+ .set_input_offset(group0.len() as u64)
680
+ .update(group1)
681
+ .finalize_non_root();
682
+ merge_subtrees_root_xof(&left, &right, Mode::KeyedHash(&key)).fill(&mut hazmat_output);
683
+ assert_eq!(expected_output, hazmat_output);
684
+ }
685
+
686
+ #[test]
687
+ fn test_derive_key() {
688
+ let context = "foo";
689
+ let mut input = [0; 1025];
690
+ crate::test::paint_test_input(&mut input);
691
+ let expected = crate::derive_key(context, &input);
692
+
693
+ let cx_key = hash_derive_key_context(context);
694
+ let left = Hasher::new_from_context_key(&cx_key)
695
+ .update(&input[..1024])
696
+ .finalize_non_root();
697
+ let right = Hasher::new_from_context_key(&cx_key)
698
+ .set_input_offset(1024)
699
+ .update(&input[1024..])
700
+ .finalize_non_root();
701
+ let derived_key = merge_subtrees_root(&left, &right, Mode::DeriveKeyMaterial(&cx_key)).0;
702
+ assert_eq!(expected, derived_key);
703
+ }
704
+ }