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

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 (899) hide show
  1. package/QuickCrypto.podspec +70 -7
  2. package/android/CMakeLists.txt +31 -1
  3. package/cpp/blake3/HybridBlake3.cpp +118 -0
  4. package/cpp/blake3/HybridBlake3.hpp +35 -0
  5. package/cpp/cipher/HybridCipherFactory.hpp +5 -0
  6. package/cpp/ec/HybridEcKeyPair.cpp +428 -0
  7. package/cpp/ec/HybridEcKeyPair.hpp +48 -0
  8. package/cpp/ed25519/HybridEdKeyPair.cpp +78 -4
  9. package/cpp/ed25519/HybridEdKeyPair.hpp +9 -2
  10. package/cpp/hash/HybridHash.cpp +37 -3
  11. package/cpp/hash/HybridHash.hpp +5 -3
  12. package/cpp/keys/HybridKeyObjectHandle.cpp +243 -0
  13. package/cpp/keys/HybridKeyObjectHandle.hpp +42 -0
  14. package/cpp/keys/KeyObjectData.cpp +226 -0
  15. package/cpp/keys/KeyObjectData.hpp +71 -0
  16. package/cpp/keys/node.h +5 -0
  17. package/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
  18. package/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
  19. package/cpp/utils/Macros.hpp +68 -0
  20. package/cpp/utils/Utils.hpp +27 -0
  21. package/deps/blake3/.cargo/config.toml +2 -0
  22. package/deps/blake3/.git-blame-ignore-revs +2 -0
  23. package/deps/blake3/.github/workflows/build_b3sum.py +38 -0
  24. package/deps/blake3/.github/workflows/ci.yml +491 -0
  25. package/deps/blake3/.github/workflows/tag.yml +43 -0
  26. package/deps/blake3/.github/workflows/upload_github_release_asset.py +73 -0
  27. package/deps/blake3/CONTRIBUTING.md +31 -0
  28. package/deps/blake3/Cargo.toml +135 -0
  29. package/deps/blake3/LICENSE_A2 +202 -0
  30. package/deps/blake3/LICENSE_A2LLVM +219 -0
  31. package/deps/blake3/LICENSE_CC0 +121 -0
  32. package/deps/blake3/README.md +229 -0
  33. package/deps/blake3/b3sum/Cargo.lock +513 -0
  34. package/deps/blake3/b3sum/Cargo.toml +26 -0
  35. package/deps/blake3/b3sum/README.md +72 -0
  36. package/deps/blake3/b3sum/src/main.rs +564 -0
  37. package/deps/blake3/b3sum/src/unit_tests.rs +235 -0
  38. package/deps/blake3/b3sum/tests/cli_tests.rs +680 -0
  39. package/deps/blake3/b3sum/what_does_check_do.md +176 -0
  40. package/deps/blake3/benches/bench.rs +623 -0
  41. package/deps/blake3/build.rs +389 -0
  42. package/deps/blake3/c/CMakeLists.txt +383 -0
  43. package/deps/blake3/c/CMakePresets.json +73 -0
  44. package/deps/blake3/c/Makefile.testing +82 -0
  45. package/deps/blake3/c/README.md +403 -0
  46. package/deps/blake3/c/blake3-config.cmake.in +14 -0
  47. package/deps/blake3/c/blake3.c +650 -0
  48. package/deps/blake3/c/blake3.h +86 -0
  49. package/deps/blake3/c/blake3_avx2.c +326 -0
  50. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +1815 -0
  51. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +1817 -0
  52. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +1828 -0
  53. package/deps/blake3/c/blake3_avx512.c +1388 -0
  54. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +4824 -0
  55. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +2615 -0
  56. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +2634 -0
  57. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +32 -0
  58. package/deps/blake3/c/blake3_c_rust_bindings/README.md +4 -0
  59. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +477 -0
  60. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +253 -0
  61. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +31 -0
  62. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +333 -0
  63. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +696 -0
  64. package/deps/blake3/c/blake3_dispatch.c +332 -0
  65. package/deps/blake3/c/blake3_impl.h +333 -0
  66. package/deps/blake3/c/blake3_neon.c +366 -0
  67. package/deps/blake3/c/blake3_portable.c +160 -0
  68. package/deps/blake3/c/blake3_sse2.c +566 -0
  69. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +2291 -0
  70. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +2332 -0
  71. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
  72. package/deps/blake3/c/blake3_sse41.c +560 -0
  73. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +2028 -0
  74. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +2069 -0
  75. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +2089 -0
  76. package/deps/blake3/c/blake3_tbb.cpp +37 -0
  77. package/deps/blake3/c/dependencies/CMakeLists.txt +3 -0
  78. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +28 -0
  79. package/deps/blake3/c/example.c +36 -0
  80. package/deps/blake3/c/example_tbb.c +57 -0
  81. package/deps/blake3/c/libblake3.pc.in +12 -0
  82. package/deps/blake3/c/main.c +166 -0
  83. package/deps/blake3/c/test.py +97 -0
  84. package/deps/blake3/media/B3.svg +70 -0
  85. package/deps/blake3/media/BLAKE3.svg +85 -0
  86. package/deps/blake3/media/speed.svg +1474 -0
  87. package/deps/blake3/reference_impl/Cargo.toml +8 -0
  88. package/deps/blake3/reference_impl/README.md +14 -0
  89. package/deps/blake3/reference_impl/reference_impl.rs +374 -0
  90. package/deps/blake3/src/ffi_avx2.rs +65 -0
  91. package/deps/blake3/src/ffi_avx512.rs +169 -0
  92. package/deps/blake3/src/ffi_neon.rs +82 -0
  93. package/deps/blake3/src/ffi_sse2.rs +126 -0
  94. package/deps/blake3/src/ffi_sse41.rs +126 -0
  95. package/deps/blake3/src/guts.rs +60 -0
  96. package/deps/blake3/src/hazmat.rs +704 -0
  97. package/deps/blake3/src/io.rs +64 -0
  98. package/deps/blake3/src/join.rs +92 -0
  99. package/deps/blake3/src/lib.rs +1835 -0
  100. package/deps/blake3/src/platform.rs +587 -0
  101. package/deps/blake3/src/portable.rs +198 -0
  102. package/deps/blake3/src/rust_avx2.rs +474 -0
  103. package/deps/blake3/src/rust_sse2.rs +775 -0
  104. package/deps/blake3/src/rust_sse41.rs +766 -0
  105. package/deps/blake3/src/test.rs +1049 -0
  106. package/deps/blake3/src/traits.rs +227 -0
  107. package/deps/blake3/src/wasm32_simd.rs +794 -0
  108. package/deps/blake3/test_vectors/Cargo.toml +19 -0
  109. package/deps/blake3/test_vectors/cross_test.sh +25 -0
  110. package/deps/blake3/test_vectors/src/bin/generate.rs +4 -0
  111. package/deps/blake3/test_vectors/src/lib.rs +350 -0
  112. package/deps/blake3/test_vectors/test_vectors.json +217 -0
  113. package/deps/blake3/tools/compiler_version/Cargo.toml +7 -0
  114. package/deps/blake3/tools/compiler_version/build.rs +6 -0
  115. package/deps/blake3/tools/compiler_version/src/main.rs +27 -0
  116. package/deps/blake3/tools/instruction_set_support/Cargo.toml +6 -0
  117. package/deps/blake3/tools/instruction_set_support/src/main.rs +10 -0
  118. package/deps/blake3/tools/release.md +16 -0
  119. package/deps/ncrypto/ncrypto.cc +4679 -0
  120. package/deps/ncrypto/ncrypto.h +1625 -0
  121. package/lib/commonjs/blake3.js +98 -0
  122. package/lib/commonjs/blake3.js.map +1 -0
  123. package/lib/commonjs/ec.js +344 -0
  124. package/lib/commonjs/ec.js.map +1 -0
  125. package/lib/commonjs/ed.js +143 -0
  126. package/lib/commonjs/ed.js.map +1 -1
  127. package/lib/commonjs/expo-plugin/withXCode.js +3 -3
  128. package/lib/commonjs/hash.js +48 -1
  129. package/lib/commonjs/hash.js.map +1 -1
  130. package/lib/commonjs/index.js +54 -4
  131. package/lib/commonjs/index.js.map +1 -1
  132. package/lib/commonjs/keys/classes.js +111 -52
  133. package/lib/commonjs/keys/classes.js.map +1 -1
  134. package/lib/commonjs/keys/generateKeyPair.js +98 -144
  135. package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
  136. package/lib/commonjs/keys/index.js +27 -0
  137. package/lib/commonjs/keys/index.js.map +1 -1
  138. package/lib/commonjs/keys/utils.js +18 -13
  139. package/lib/commonjs/keys/utils.js.map +1 -1
  140. package/lib/commonjs/rsa.js +129 -0
  141. package/lib/commonjs/rsa.js.map +1 -0
  142. package/lib/commonjs/specs/blake3.nitro.js +6 -0
  143. package/lib/commonjs/specs/blake3.nitro.js.map +1 -0
  144. package/lib/commonjs/specs/ecKeyPair.nitro.js +6 -0
  145. package/lib/commonjs/specs/ecKeyPair.nitro.js.map +1 -0
  146. package/lib/commonjs/specs/rsaKeyPair.nitro.js +6 -0
  147. package/lib/commonjs/specs/rsaKeyPair.nitro.js.map +1 -0
  148. package/lib/commonjs/subtle.js +365 -0
  149. package/lib/commonjs/subtle.js.map +1 -0
  150. package/lib/commonjs/utils/conversion.js +25 -2
  151. package/lib/commonjs/utils/conversion.js.map +1 -1
  152. package/lib/commonjs/utils/hashnames.js +2 -1
  153. package/lib/commonjs/utils/hashnames.js.map +1 -1
  154. package/lib/commonjs/utils/index.js +11 -0
  155. package/lib/commonjs/utils/index.js.map +1 -1
  156. package/lib/commonjs/utils/noble.js +82 -0
  157. package/lib/commonjs/utils/noble.js.map +1 -0
  158. package/lib/commonjs/utils/types.js +28 -16
  159. package/lib/commonjs/utils/types.js.map +1 -1
  160. package/lib/commonjs/utils/validation.js +74 -1
  161. package/lib/commonjs/utils/validation.js.map +1 -1
  162. package/lib/module/blake3.js +90 -0
  163. package/lib/module/blake3.js.map +1 -0
  164. package/lib/module/ec.js +336 -0
  165. package/lib/module/ec.js.map +1 -0
  166. package/lib/module/ed.js +141 -0
  167. package/lib/module/ed.js.map +1 -1
  168. package/lib/module/expo-plugin/withXCode.js +3 -3
  169. package/lib/module/hash.js +47 -2
  170. package/lib/module/hash.js.map +1 -1
  171. package/lib/module/index.js +9 -1
  172. package/lib/module/index.js.map +1 -1
  173. package/lib/module/keys/classes.js +108 -49
  174. package/lib/module/keys/classes.js.map +1 -1
  175. package/lib/module/keys/generateKeyPair.js +91 -143
  176. package/lib/module/keys/generateKeyPair.js.map +1 -1
  177. package/lib/module/keys/index.js +9 -6
  178. package/lib/module/keys/index.js.map +1 -1
  179. package/lib/module/keys/utils.js +16 -12
  180. package/lib/module/keys/utils.js.map +1 -1
  181. package/lib/module/rsa.js +123 -0
  182. package/lib/module/rsa.js.map +1 -0
  183. package/lib/module/specs/blake3.nitro.js +4 -0
  184. package/lib/module/specs/blake3.nitro.js.map +1 -0
  185. package/lib/module/specs/ecKeyPair.nitro.js +4 -0
  186. package/lib/module/specs/ecKeyPair.nitro.js.map +1 -0
  187. package/lib/module/specs/rsaKeyPair.nitro.js +4 -0
  188. package/lib/module/specs/rsaKeyPair.nitro.js.map +1 -0
  189. package/lib/module/subtle.js +360 -0
  190. package/lib/module/subtle.js.map +1 -0
  191. package/lib/module/utils/conversion.js +7 -2
  192. package/lib/module/utils/conversion.js.map +1 -1
  193. package/lib/module/utils/hashnames.js +2 -1
  194. package/lib/module/utils/hashnames.js.map +1 -1
  195. package/lib/module/utils/index.js +1 -0
  196. package/lib/module/utils/index.js.map +1 -1
  197. package/lib/module/utils/noble.js +76 -0
  198. package/lib/module/utils/noble.js.map +1 -0
  199. package/lib/module/utils/types.js +26 -17
  200. package/lib/module/utils/types.js.map +1 -1
  201. package/lib/module/utils/validation.js +69 -1
  202. package/lib/module/utils/validation.js.map +1 -1
  203. package/lib/tsconfig.tsbuildinfo +1 -1
  204. package/lib/typescript/blake3.d.ts +33 -0
  205. package/lib/typescript/blake3.d.ts.map +1 -0
  206. package/lib/typescript/ec.d.ts +13 -0
  207. package/lib/typescript/ec.d.ts.map +1 -0
  208. package/lib/typescript/ed.d.ts +27 -1
  209. package/lib/typescript/ed.d.ts.map +1 -1
  210. package/lib/typescript/hash.d.ts +14 -1
  211. package/lib/typescript/hash.d.ts.map +1 -1
  212. package/lib/typescript/index.d.ts +45 -1
  213. package/lib/typescript/index.d.ts.map +1 -1
  214. package/lib/typescript/keys/classes.d.ts +49 -8
  215. package/lib/typescript/keys/classes.d.ts.map +1 -1
  216. package/lib/typescript/keys/generateKeyPair.d.ts +5 -0
  217. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
  218. package/lib/typescript/keys/index.d.ts +5 -2
  219. package/lib/typescript/keys/index.d.ts.map +1 -1
  220. package/lib/typescript/keys/utils.d.ts +3 -1
  221. package/lib/typescript/keys/utils.d.ts.map +1 -1
  222. package/lib/typescript/rsa.d.ts +10 -0
  223. package/lib/typescript/rsa.d.ts.map +1 -0
  224. package/lib/typescript/specs/blake3.nitro.d.ts +15 -0
  225. package/lib/typescript/specs/blake3.nitro.d.ts.map +1 -0
  226. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +20 -0
  227. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -0
  228. package/lib/typescript/specs/edKeyPair.nitro.d.ts +1 -0
  229. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -1
  230. package/lib/typescript/specs/hash.nitro.d.ts +1 -0
  231. package/lib/typescript/specs/hash.nitro.d.ts.map +1 -1
  232. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +0 -1
  233. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
  234. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts +20 -0
  235. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts.map +1 -0
  236. package/lib/typescript/subtle.d.ts +17 -0
  237. package/lib/typescript/subtle.d.ts.map +1 -0
  238. package/lib/typescript/utils/cipher.d.ts +1 -1
  239. package/lib/typescript/utils/conversion.d.ts +1 -0
  240. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  241. package/lib/typescript/utils/hashnames.d.ts +3 -1
  242. package/lib/typescript/utils/hashnames.d.ts.map +1 -1
  243. package/lib/typescript/utils/index.d.ts +1 -0
  244. package/lib/typescript/utils/index.d.ts.map +1 -1
  245. package/lib/typescript/utils/noble.d.ts +19 -0
  246. package/lib/typescript/utils/noble.d.ts.map +1 -0
  247. package/lib/typescript/utils/types.d.ts +101 -17
  248. package/lib/typescript/utils/types.d.ts.map +1 -1
  249. package/lib/typescript/utils/validation.d.ts +5 -0
  250. package/lib/typescript/utils/validation.d.ts.map +1 -1
  251. package/nitrogen/generated/.gitattributes +1 -1
  252. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +3 -0
  253. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +40 -0
  254. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +2 -1
  255. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +40 -0
  256. package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +11 -13
  257. package/nitrogen/generated/shared/c++/CipherArgs.hpp +4 -6
  258. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +28 -0
  259. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +76 -0
  260. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +1 -1
  261. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +1 -1
  262. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +29 -0
  263. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +77 -0
  264. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +1 -0
  265. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +3 -2
  266. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +1 -0
  267. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -1
  268. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +0 -1
  269. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +1 -2
  270. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +1 -1
  271. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +1 -1
  272. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +29 -0
  273. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +77 -0
  274. package/nitrogen/generated/shared/c++/JWK.hpp +15 -17
  275. package/nitrogen/generated/shared/c++/JWKkty.hpp +11 -13
  276. package/nitrogen/generated/shared/c++/JWKuse.hpp +7 -9
  277. package/nitrogen/generated/shared/c++/KFormatType.hpp +12 -14
  278. package/nitrogen/generated/shared/c++/KeyDetail.hpp +4 -6
  279. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +13 -15
  280. package/nitrogen/generated/shared/c++/KeyObject.hpp +67 -0
  281. package/nitrogen/generated/shared/c++/KeyType.hpp +9 -11
  282. package/nitrogen/generated/shared/c++/KeyUsage.hpp +37 -23
  283. package/nitrogen/generated/shared/c++/NamedCurve.hpp +9 -11
  284. package/package.json +14 -11
  285. package/src/blake3.ts +123 -0
  286. package/src/ec.ts +432 -0
  287. package/src/ed.ts +179 -2
  288. package/src/expo-plugin/withXCode.ts +3 -3
  289. package/src/hash.ts +68 -2
  290. package/src/index.ts +8 -0
  291. package/src/keys/classes.ts +161 -55
  292. package/src/keys/generateKeyPair.ts +133 -134
  293. package/src/keys/index.ts +13 -3
  294. package/src/keys/utils.ts +24 -18
  295. package/src/rsa.ts +176 -0
  296. package/src/specs/blake3.nitro.ts +12 -0
  297. package/src/specs/ecKeyPair.nitro.ts +38 -0
  298. package/src/specs/edKeyPair.nitro.ts +2 -0
  299. package/src/specs/hash.nitro.ts +1 -0
  300. package/src/specs/keyObjectHandle.nitro.ts +0 -1
  301. package/src/specs/rsaKeyPair.nitro.ts +33 -0
  302. package/src/subtle.ts +614 -0
  303. package/src/utils/conversion.ts +7 -1
  304. package/src/utils/hashnames.ts +4 -2
  305. package/src/utils/index.ts +1 -0
  306. package/src/utils/noble.ts +85 -0
  307. package/src/utils/types.ts +142 -20
  308. package/src/utils/validation.ts +96 -1
  309. package/ios/libsodium-stable/.github/workflows/autocloser.yml +0 -12
  310. package/ios/libsodium-stable/.github/workflows/ci.yml +0 -180
  311. package/ios/libsodium-stable/.github/workflows/cifuzz.yml +0 -32
  312. package/ios/libsodium-stable/.github/workflows/codeql-analysis.yml +0 -48
  313. package/ios/libsodium-stable/.github/workflows/dotnet-core.yml +0 -388
  314. package/ios/libsodium-stable/AUTHORS +0 -144
  315. package/ios/libsodium-stable/CITATION.cff +0 -18
  316. package/ios/libsodium-stable/ChangeLog +0 -677
  317. package/ios/libsodium-stable/LICENSE +0 -18
  318. package/ios/libsodium-stable/Makefile.am +0 -23
  319. package/ios/libsodium-stable/README.markdown +0 -76
  320. package/ios/libsodium-stable/THANKS +0 -92
  321. package/ios/libsodium-stable/appveyor.yml +0 -24
  322. package/ios/libsodium-stable/autogen.sh +0 -117
  323. package/ios/libsodium-stable/azure-pipelines.yml +0 -122
  324. package/ios/libsodium-stable/build.zig +0 -281
  325. package/ios/libsodium-stable/builds/Makefile.am +0 -81
  326. package/ios/libsodium-stable/builds/msvc/build/buildall.bat +0 -18
  327. package/ios/libsodium-stable/builds/msvc/build/buildbase.bat +0 -132
  328. package/ios/libsodium-stable/builds/msvc/properties/ARM64.props +0 -23
  329. package/ios/libsodium-stable/builds/msvc/properties/Common.props +0 -21
  330. package/ios/libsodium-stable/builds/msvc/properties/DLL.props +0 -16
  331. package/ios/libsodium-stable/builds/msvc/properties/Debug.props +0 -29
  332. package/ios/libsodium-stable/builds/msvc/properties/DebugDEXE.props +0 -21
  333. package/ios/libsodium-stable/builds/msvc/properties/DebugDLL.props +0 -20
  334. package/ios/libsodium-stable/builds/msvc/properties/DebugLEXE.props +0 -20
  335. package/ios/libsodium-stable/builds/msvc/properties/DebugLIB.props +0 -21
  336. package/ios/libsodium-stable/builds/msvc/properties/DebugLTCG.props +0 -20
  337. package/ios/libsodium-stable/builds/msvc/properties/DebugSEXE.props +0 -21
  338. package/ios/libsodium-stable/builds/msvc/properties/EXE.props +0 -17
  339. package/ios/libsodium-stable/builds/msvc/properties/LIB.props +0 -16
  340. package/ios/libsodium-stable/builds/msvc/properties/LTCG.props +0 -13
  341. package/ios/libsodium-stable/builds/msvc/properties/Link.props +0 -21
  342. package/ios/libsodium-stable/builds/msvc/properties/Messages.props +0 -15
  343. package/ios/libsodium-stable/builds/msvc/properties/Output.props +0 -30
  344. package/ios/libsodium-stable/builds/msvc/properties/Release.props +0 -41
  345. package/ios/libsodium-stable/builds/msvc/properties/ReleaseDEXE.props +0 -20
  346. package/ios/libsodium-stable/builds/msvc/properties/ReleaseDLL.props +0 -19
  347. package/ios/libsodium-stable/builds/msvc/properties/ReleaseLEXE.props +0 -20
  348. package/ios/libsodium-stable/builds/msvc/properties/ReleaseLIB.props +0 -19
  349. package/ios/libsodium-stable/builds/msvc/properties/ReleaseLTCG.props +0 -19
  350. package/ios/libsodium-stable/builds/msvc/properties/ReleaseSEXE.props +0 -20
  351. package/ios/libsodium-stable/builds/msvc/properties/Win32.props +0 -23
  352. package/ios/libsodium-stable/builds/msvc/properties/x64.props +0 -26
  353. package/ios/libsodium-stable/builds/msvc/resource.h +0 -14
  354. package/ios/libsodium-stable/builds/msvc/resource.rc +0 -65
  355. package/ios/libsodium-stable/builds/msvc/version.h +0 -33
  356. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.props +0 -48
  357. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.vcxproj +0 -346
  358. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters +0 -1088
  359. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium/libsodium.xml +0 -15
  360. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium.import.props +0 -52
  361. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium.import.xml +0 -17
  362. package/ios/libsodium-stable/builds/msvc/vs2010/libsodium.sln +0 -50
  363. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.props +0 -48
  364. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.vcxproj +0 -346
  365. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters +0 -1088
  366. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium/libsodium.xml +0 -15
  367. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium.import.props +0 -52
  368. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium.import.xml +0 -17
  369. package/ios/libsodium-stable/builds/msvc/vs2012/libsodium.sln +0 -50
  370. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.props +0 -48
  371. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.vcxproj +0 -346
  372. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters +0 -1088
  373. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium/libsodium.xml +0 -15
  374. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium.import.props +0 -52
  375. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium.import.xml +0 -17
  376. package/ios/libsodium-stable/builds/msvc/vs2013/libsodium.sln +0 -52
  377. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.props +0 -48
  378. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.vcxproj +0 -346
  379. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters +0 -1088
  380. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium/libsodium.xml +0 -15
  381. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium.import.props +0 -52
  382. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium.import.xml +0 -17
  383. package/ios/libsodium-stable/builds/msvc/vs2015/libsodium.sln +0 -52
  384. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.props +0 -48
  385. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.vcxproj +0 -346
  386. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters +0 -1088
  387. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium/libsodium.xml +0 -15
  388. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium.import.props +0 -52
  389. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium.import.xml +0 -17
  390. package/ios/libsodium-stable/builds/msvc/vs2017/libsodium.sln +0 -52
  391. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.props +0 -48
  392. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.vcxproj +0 -370
  393. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters +0 -1088
  394. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium/libsodium.xml +0 -15
  395. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium.import.props +0 -52
  396. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium.import.xml +0 -17
  397. package/ios/libsodium-stable/builds/msvc/vs2019/libsodium.sln +0 -52
  398. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.props +0 -48
  399. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.vcxproj +0 -370
  400. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters +0 -1088
  401. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium/libsodium.xml +0 -15
  402. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium.import.props +0 -52
  403. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium.import.xml +0 -17
  404. package/ios/libsodium-stable/builds/msvc/vs2022/libsodium.sln +0 -70
  405. package/ios/libsodium-stable/ci/appveyor/libsodium.sln +0 -40
  406. package/ios/libsodium-stable/ci/appveyor/libsodium.vcxproj +0 -594
  407. package/ios/libsodium-stable/ci/appveyor/libsodium.vcxproj.filters +0 -813
  408. package/ios/libsodium-stable/ci/appveyor/msvc-scripts/process.bat +0 -5
  409. package/ios/libsodium-stable/ci/appveyor/msvc-scripts/rep.vbs +0 -12
  410. package/ios/libsodium-stable/ci/appveyor/msvc-scripts/sodium.props +0 -29
  411. package/ios/libsodium-stable/configure.ac +0 -1004
  412. package/ios/libsodium-stable/contrib/Findsodium.cmake +0 -297
  413. package/ios/libsodium-stable/contrib/Makefile.am +0 -3
  414. package/ios/libsodium-stable/dist-build/Makefile.am +0 -14
  415. package/ios/libsodium-stable/dist-build/android-aar.sh +0 -194
  416. package/ios/libsodium-stable/dist-build/android-armv7-a.sh +0 -5
  417. package/ios/libsodium-stable/dist-build/android-armv8-a.sh +0 -5
  418. package/ios/libsodium-stable/dist-build/android-build.sh +0 -95
  419. package/ios/libsodium-stable/dist-build/android-x86.sh +0 -5
  420. package/ios/libsodium-stable/dist-build/android-x86_64.sh +0 -5
  421. package/ios/libsodium-stable/dist-build/apple-xcframework.sh +0 -628
  422. package/ios/libsodium-stable/dist-build/emscripten-symbols.def +0 -651
  423. package/ios/libsodium-stable/dist-build/emscripten.sh +0 -206
  424. package/ios/libsodium-stable/dist-build/generate-emscripten-symbols.sh +0 -59
  425. package/ios/libsodium-stable/dist-build/macos.sh +0 -26
  426. package/ios/libsodium-stable/dist-build/msys2-win32.sh +0 -18
  427. package/ios/libsodium-stable/dist-build/msys2-win64.sh +0 -18
  428. package/ios/libsodium-stable/dist-build/wasm32-wasi.sh +0 -45
  429. package/ios/libsodium-stable/lgtm.yml +0 -6
  430. package/ios/libsodium-stable/libsodium-uninstalled.pc.in +0 -7
  431. package/ios/libsodium-stable/libsodium.pc.in +0 -12
  432. package/ios/libsodium-stable/logo.png +0 -0
  433. package/ios/libsodium-stable/m4/ax_add_fortify_source.m4 +0 -119
  434. package/ios/libsodium-stable/m4/ax_check_catchable_abrt.m4 +0 -57
  435. package/ios/libsodium-stable/m4/ax_check_catchable_segv.m4 +0 -47
  436. package/ios/libsodium-stable/m4/ax_check_compile_flag.m4 +0 -55
  437. package/ios/libsodium-stable/m4/ax_check_define.m4 +0 -73
  438. package/ios/libsodium-stable/m4/ax_check_gnu_make.m4 +0 -95
  439. package/ios/libsodium-stable/m4/ax_check_link_flag.m4 +0 -75
  440. package/ios/libsodium-stable/m4/ax_pthread.m4 +0 -522
  441. package/ios/libsodium-stable/m4/ax_tls.m4 +0 -71
  442. package/ios/libsodium-stable/m4/ax_valgrind_check.m4 +0 -239
  443. package/ios/libsodium-stable/m4/ld-output-def.m4 +0 -29
  444. package/ios/libsodium-stable/packaging/dotnet-core/libsodium.pkgproj +0 -49
  445. package/ios/libsodium-stable/packaging/dotnet-core/test.cs +0 -43
  446. package/ios/libsodium-stable/packaging/nuget/package.bat +0 -13
  447. package/ios/libsodium-stable/packaging/nuget/package.config +0 -4
  448. package/ios/libsodium-stable/packaging/nuget/package.gsl +0 -260
  449. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj +0 -326
  450. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj.filters +0 -23
  451. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj.filters.tpl +0 -35
  452. package/ios/libsodium-stable/regen-msvc/libsodium.vcxproj.tpl +0 -37
  453. package/ios/libsodium-stable/regen-msvc/regen-msvc.py +0 -240
  454. package/ios/libsodium-stable/regen-msvc/tl_libsodium.vcxproj.filters.tpl +0 -23
  455. package/ios/libsodium-stable/regen-msvc/tl_libsodium.vcxproj.tpl +0 -332
  456. package/ios/libsodium-stable/src/Makefile.am +0 -3
  457. package/ios/libsodium-stable/src/libsodium/Makefile.am +0 -314
  458. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c +0 -159
  459. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.c +0 -70
  460. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.h +0 -8
  461. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c +0 -72
  462. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.h +0 -8
  463. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_common.h +0 -248
  464. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c +0 -59
  465. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.h +0 -8
  466. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis128l/implementations.h +0 -17
  467. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aead_aegis256.c +0 -158
  468. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_aesni.c +0 -65
  469. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_aesni.h +0 -8
  470. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c +0 -70
  471. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.h +0 -8
  472. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_common.h +0 -231
  473. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_soft.c +0 -54
  474. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/aegis256_soft.h +0 -8
  475. package/ios/libsodium-stable/src/libsodium/crypto_aead/aegis256/implementations.h +0 -17
  476. package/ios/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/aead_aes256gcm.c +0 -157
  477. package/ios/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +0 -1015
  478. package/ios/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c +0 -1033
  479. package/ios/libsodium-stable/src/libsodium/crypto_aead/chacha20poly1305/aead_chacha20poly1305.c +0 -400
  480. package/ios/libsodium-stable/src/libsodium/crypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c +0 -262
  481. package/ios/libsodium-stable/src/libsodium/crypto_auth/crypto_auth.c +0 -41
  482. package/ios/libsodium-stable/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c +0 -118
  483. package/ios/libsodium-stable/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c +0 -118
  484. package/ios/libsodium-stable/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c +0 -93
  485. package/ios/libsodium-stable/src/libsodium/crypto_box/crypto_box.c +0 -114
  486. package/ios/libsodium-stable/src/libsodium/crypto_box/crypto_box_easy.c +0 -115
  487. package/ios/libsodium-stable/src/libsodium/crypto_box/crypto_box_seal.c +0 -68
  488. package/ios/libsodium-stable/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c +0 -204
  489. package/ios/libsodium-stable/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c +0 -79
  490. package/ios/libsodium-stable/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c +0 -156
  491. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/core_ed25519.c +0 -225
  492. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/core_ristretto255.c +0 -156
  493. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c +0 -2873
  494. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h +0 -1344
  495. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h +0 -40
  496. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h +0 -40
  497. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h +0 -220
  498. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h +0 -1344
  499. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h +0 -40
  500. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/constants.h +0 -41
  501. package/ios/libsodium-stable/src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h +0 -116
  502. package/ios/libsodium-stable/src/libsodium/crypto_core/hchacha20/core_hchacha20.c +0 -93
  503. package/ios/libsodium-stable/src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c +0 -21
  504. package/ios/libsodium-stable/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c +0 -95
  505. package/ios/libsodium-stable/src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c +0 -195
  506. package/ios/libsodium-stable/src/libsodium/crypto_core/softaes/softaes.c +0 -340
  507. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/generichash_blake2.c +0 -55
  508. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2.h +0 -106
  509. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.c +0 -52
  510. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.h +0 -142
  511. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c +0 -93
  512. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.c +0 -91
  513. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.h +0 -106
  514. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.c +0 -95
  515. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.h +0 -106
  516. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-avx2.h +0 -340
  517. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse2.h +0 -164
  518. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse41.h +0 -307
  519. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c +0 -438
  520. package/ios/libsodium-stable/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c +0 -116
  521. package/ios/libsodium-stable/src/libsodium/crypto_generichash/crypto_generichash.c +0 -91
  522. package/ios/libsodium-stable/src/libsodium/crypto_hash/crypto_hash.c +0 -20
  523. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c +0 -256
  524. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha256/hash_sha256.c +0 -13
  525. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c +0 -284
  526. package/ios/libsodium-stable/src/libsodium/crypto_hash/sha512/hash_sha512.c +0 -13
  527. package/ios/libsodium-stable/src/libsodium/crypto_kdf/blake2b/kdf_blake2b.c +0 -52
  528. package/ios/libsodium-stable/src/libsodium/crypto_kdf/crypto_kdf.c +0 -49
  529. package/ios/libsodium-stable/src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha256.c +0 -123
  530. package/ios/libsodium-stable/src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha512.c +0 -123
  531. package/ios/libsodium-stable/src/libsodium/crypto_kx/crypto_kx.c +0 -143
  532. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c +0 -71
  533. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c +0 -124
  534. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h +0 -12
  535. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h +0 -235
  536. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h +0 -221
  537. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c +0 -90
  538. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h +0 -21
  539. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c +0 -957
  540. package/ios/libsodium-stable/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h +0 -12
  541. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-core.c +0 -556
  542. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-core.h +0 -271
  543. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c +0 -306
  544. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h +0 -34
  545. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.c +0 -243
  546. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.c +0 -251
  547. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c +0 -234
  548. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c +0 -244
  549. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2.c +0 -283
  550. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/argon2.h +0 -305
  551. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blake2b-long.c +0 -79
  552. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blake2b-long.h +0 -8
  553. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-avx2.h +0 -150
  554. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-avx512f.h +0 -145
  555. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h +0 -40
  556. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h +0 -124
  557. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c +0 -294
  558. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c +0 -238
  559. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/crypto_pwhash.c +0 -212
  560. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c +0 -268
  561. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h +0 -92
  562. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c +0 -318
  563. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c +0 -96
  564. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h +0 -45
  565. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c +0 -301
  566. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c +0 -112
  567. package/ios/libsodium-stable/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c +0 -406
  568. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/crypto_scalarmult.c +0 -33
  569. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c +0 -182
  570. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h +0 -10
  571. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts.S +0 -25
  572. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h +0 -20
  573. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c +0 -71
  574. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h +0 -9
  575. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h +0 -26
  576. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h +0 -35
  577. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c +0 -58
  578. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_mul.S +0 -200
  579. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h +0 -16
  580. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S +0 -174
  581. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_pack.S +0 -228
  582. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c +0 -78
  583. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.S +0 -1442
  584. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h +0 -18
  585. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h +0 -8
  586. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S +0 -16
  587. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c +0 -60
  588. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h +0 -11
  589. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c +0 -121
  590. package/ios/libsodium-stable/src/libsodium/crypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.c +0 -63
  591. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/crypto_secretbox.c +0 -67
  592. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c +0 -145
  593. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c +0 -177
  594. package/ios/libsodium-stable/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c +0 -89
  595. package/ios/libsodium-stable/src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c +0 -313
  596. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/crypto_shorthash.c +0 -34
  597. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c +0 -71
  598. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash_ref.h +0 -24
  599. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c +0 -77
  600. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c +0 -11
  601. package/ios/libsodium-stable/src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.c +0 -11
  602. package/ios/libsodium-stable/src/libsodium/crypto_sign/crypto_sign.c +0 -115
  603. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/keypair.c +0 -84
  604. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c +0 -118
  605. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/open.c +0 -98
  606. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/sign.c +0 -128
  607. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h +0 -18
  608. package/ios/libsodium-stable/src/libsodium/crypto_sign/ed25519/sign_ed25519.c +0 -97
  609. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c +0 -180
  610. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h +0 -8
  611. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c +0 -176
  612. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.h +0 -8
  613. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u0.h +0 -86
  614. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u1.h +0 -98
  615. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u4.h +0 -177
  616. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/dolbeau/u8.h +0 -326
  617. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c +0 -312
  618. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.h +0 -8
  619. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/stream_chacha20.c +0 -184
  620. package/ios/libsodium-stable/src/libsodium/crypto_stream/chacha20/stream_chacha20.h +0 -22
  621. package/ios/libsodium-stable/src/libsodium/crypto_stream/crypto_stream.c +0 -49
  622. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c +0 -120
  623. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.h +0 -8
  624. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/stream_salsa20.c +0 -100
  625. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/stream_salsa20.h +0 -16
  626. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S +0 -965
  627. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.c +0 -31
  628. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h +0 -8
  629. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.c +0 -134
  630. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.h +0 -8
  631. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.c +0 -128
  632. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.h +0 -8
  633. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u0.h +0 -195
  634. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u1.h +0 -207
  635. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u4.h +0 -547
  636. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa20/xmm6int/u8.h +0 -477
  637. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012_ref.c +0 -106
  638. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa2012/stream_salsa2012.c +0 -26
  639. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208_ref.c +0 -106
  640. package/ios/libsodium-stable/src/libsodium/crypto_stream/salsa208/stream_salsa208.c +0 -26
  641. package/ios/libsodium-stable/src/libsodium/crypto_stream/xchacha20/stream_xchacha20.c +0 -69
  642. package/ios/libsodium-stable/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c +0 -66
  643. package/ios/libsodium-stable/src/libsodium/crypto_verify/verify.c +0 -103
  644. package/ios/libsodium-stable/src/libsodium/include/Makefile.am +0 -76
  645. package/ios/libsodium-stable/src/libsodium/include/sodium/core.h +0 -28
  646. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_aegis128l.h +0 -92
  647. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_aegis256.h +0 -92
  648. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_aes256gcm.h +0 -179
  649. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h +0 -180
  650. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_aead_xchacha20poly1305.h +0 -100
  651. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth.h +0 -46
  652. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth_hmacsha256.h +0 -70
  653. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth_hmacsha512.h +0 -68
  654. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h +0 -65
  655. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_box.h +0 -177
  656. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_box_curve25519xchacha20poly1305.h +0 -164
  657. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h +0 -112
  658. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_ed25519.h +0 -100
  659. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_hchacha20.h +0 -36
  660. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_hsalsa20.h +0 -36
  661. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_ristretto255.h +0 -100
  662. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_salsa20.h +0 -36
  663. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_salsa2012.h +0 -36
  664. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_core_salsa208.h +0 -40
  665. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_generichash.h +0 -84
  666. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_generichash_blake2b.h +0 -122
  667. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_hash.h +0 -40
  668. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_hash_sha256.h +0 -60
  669. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_hash_sha512.h +0 -60
  670. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf.h +0 -53
  671. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf_blake2b.h +0 -44
  672. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf_hkdf_sha256.h +0 -74
  673. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kdf_hkdf_sha512.h +0 -75
  674. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_kx.h +0 -66
  675. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_onetimeauth.h +0 -65
  676. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h +0 -72
  677. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash.h +0 -147
  678. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash_argon2i.h +0 -122
  679. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash_argon2id.h +0 -122
  680. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h +0 -120
  681. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult.h +0 -46
  682. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h +0 -42
  683. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult_ed25519.h +0 -51
  684. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_scalarmult_ristretto255.h +0 -43
  685. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretbox.h +0 -93
  686. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretbox_xchacha20poly1305.h +0 -70
  687. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h +0 -69
  688. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h +0 -108
  689. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_shorthash.h +0 -41
  690. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_shorthash_siphash24.h +0 -50
  691. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_sign.h +0 -107
  692. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_sign_ed25519.h +0 -124
  693. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h +0 -55
  694. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream.h +0 -59
  695. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_chacha20.h +0 -106
  696. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_salsa20.h +0 -61
  697. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_salsa2012.h +0 -53
  698. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_salsa208.h +0 -56
  699. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_xchacha20.h +0 -61
  700. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_stream_xsalsa20.h +0 -61
  701. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_verify_16.h +0 -23
  702. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_verify_32.h +0 -23
  703. package/ios/libsodium-stable/src/libsodium/include/sodium/crypto_verify_64.h +0 -23
  704. package/ios/libsodium-stable/src/libsodium/include/sodium/export.h +0 -57
  705. package/ios/libsodium-stable/src/libsodium/include/sodium/private/asm_cet.h +0 -11
  706. package/ios/libsodium-stable/src/libsodium/include/sodium/private/chacha20_ietf_ext.h +0 -16
  707. package/ios/libsodium-stable/src/libsodium/include/sodium/private/common.h +0 -296
  708. package/ios/libsodium-stable/src/libsodium/include/sodium/private/ed25519_ref10.h +0 -142
  709. package/ios/libsodium-stable/src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h +0 -1030
  710. package/ios/libsodium-stable/src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h +0 -508
  711. package/ios/libsodium-stable/src/libsodium/include/sodium/private/implementations.h +0 -13
  712. package/ios/libsodium-stable/src/libsodium/include/sodium/private/mutex.h +0 -7
  713. package/ios/libsodium-stable/src/libsodium/include/sodium/private/softaes.h +0 -56
  714. package/ios/libsodium-stable/src/libsodium/include/sodium/private/sse2_64_32.h +0 -50
  715. package/ios/libsodium-stable/src/libsodium/include/sodium/randombytes.h +0 -72
  716. package/ios/libsodium-stable/src/libsodium/include/sodium/randombytes_internal_random.h +0 -22
  717. package/ios/libsodium-stable/src/libsodium/include/sodium/randombytes_sysrandom.h +0 -19
  718. package/ios/libsodium-stable/src/libsodium/include/sodium/runtime.h +0 -55
  719. package/ios/libsodium-stable/src/libsodium/include/sodium/utils.h +0 -179
  720. package/ios/libsodium-stable/src/libsodium/include/sodium/version.h.in +0 -33
  721. package/ios/libsodium-stable/src/libsodium/include/sodium.h +0 -75
  722. package/ios/libsodium-stable/src/libsodium/randombytes/internal/randombytes_internal_random.c +0 -648
  723. package/ios/libsodium-stable/src/libsodium/randombytes/randombytes.c +0 -200
  724. package/ios/libsodium-stable/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c +0 -396
  725. package/ios/libsodium-stable/src/libsodium/sodium/codecs.c +0 -335
  726. package/ios/libsodium-stable/src/libsodium/sodium/core.c +0 -216
  727. package/ios/libsodium-stable/src/libsodium/sodium/runtime.c +0 -391
  728. package/ios/libsodium-stable/src/libsodium/sodium/utils.c +0 -809
  729. package/ios/libsodium-stable/src/libsodium/sodium/version.c +0 -30
  730. package/ios/libsodium-stable/test/Makefile.am +0 -5
  731. package/ios/libsodium-stable/test/constcheck.sh +0 -22
  732. package/ios/libsodium-stable/test/default/Makefile.am +0 -525
  733. package/ios/libsodium-stable/test/default/aead_aegis128l.c +0 -642
  734. package/ios/libsodium-stable/test/default/aead_aegis128l.exp +0 -1
  735. package/ios/libsodium-stable/test/default/aead_aegis256.c +0 -723
  736. package/ios/libsodium-stable/test/default/aead_aegis256.exp +0 -1
  737. package/ios/libsodium-stable/test/default/aead_aes256gcm.c +0 -3328
  738. package/ios/libsodium-stable/test/default/aead_aes256gcm.exp +0 -1
  739. package/ios/libsodium-stable/test/default/aead_aes256gcm2.c +0 -276
  740. package/ios/libsodium-stable/test/default/aead_aes256gcm2.exp +0 -1
  741. package/ios/libsodium-stable/test/default/aead_chacha20poly1305.c +0 -372
  742. package/ios/libsodium-stable/test/default/aead_chacha20poly1305.exp +0 -63
  743. package/ios/libsodium-stable/test/default/aead_chacha20poly13052.c +0 -1046
  744. package/ios/libsodium-stable/test/default/aead_chacha20poly13052.exp +0 -1
  745. package/ios/libsodium-stable/test/default/aead_xchacha20poly1305.c +0 -203
  746. package/ios/libsodium-stable/test/default/aead_xchacha20poly1305.exp +0 -51
  747. package/ios/libsodium-stable/test/default/auth.c +0 -141
  748. package/ios/libsodium-stable/test/default/auth.exp +0 -30
  749. package/ios/libsodium-stable/test/default/auth2.c +0 -34
  750. package/ios/libsodium-stable/test/default/auth2.exp +0 -4
  751. package/ios/libsodium-stable/test/default/auth3.c +0 -36
  752. package/ios/libsodium-stable/test/default/auth3.exp +0 -1
  753. package/ios/libsodium-stable/test/default/auth5.c +0 -41
  754. package/ios/libsodium-stable/test/default/auth5.exp +0 -0
  755. package/ios/libsodium-stable/test/default/auth6.c +0 -23
  756. package/ios/libsodium-stable/test/default/auth6.exp +0 -8
  757. package/ios/libsodium-stable/test/default/auth7.c +0 -41
  758. package/ios/libsodium-stable/test/default/auth7.exp +0 -0
  759. package/ios/libsodium-stable/test/default/box.c +0 -112
  760. package/ios/libsodium-stable/test/default/box.exp +0 -38
  761. package/ios/libsodium-stable/test/default/box2.c +0 -80
  762. package/ios/libsodium-stable/test/default/box2.exp +0 -34
  763. package/ios/libsodium-stable/test/default/box7.c +0 -50
  764. package/ios/libsodium-stable/test/default/box7.exp +0 -0
  765. package/ios/libsodium-stable/test/default/box8.c +0 -58
  766. package/ios/libsodium-stable/test/default/box8.exp +0 -0
  767. package/ios/libsodium-stable/test/default/box_easy.c +0 -72
  768. package/ios/libsodium-stable/test/default/box_easy.exp +0 -3
  769. package/ios/libsodium-stable/test/default/box_easy2.c +0 -149
  770. package/ios/libsodium-stable/test/default/box_easy2.exp +0 -7
  771. package/ios/libsodium-stable/test/default/box_seal.c +0 -165
  772. package/ios/libsodium-stable/test/default/box_seal.exp +0 -8
  773. package/ios/libsodium-stable/test/default/box_seed.c +0 -30
  774. package/ios/libsodium-stable/test/default/box_seed.exp +0 -8
  775. package/ios/libsodium-stable/test/default/chacha20.c +0 -186
  776. package/ios/libsodium-stable/test/default/chacha20.exp +0 -64
  777. package/ios/libsodium-stable/test/default/cmptest.h +0 -238
  778. package/ios/libsodium-stable/test/default/codecs.c +0 -251
  779. package/ios/libsodium-stable/test/default/codecs.exp +0 -30
  780. package/ios/libsodium-stable/test/default/core1.c +0 -41
  781. package/ios/libsodium-stable/test/default/core1.exp +0 -4
  782. package/ios/libsodium-stable/test/default/core2.c +0 -38
  783. package/ios/libsodium-stable/test/default/core2.exp +0 -4
  784. package/ios/libsodium-stable/test/default/core3.c +0 -115
  785. package/ios/libsodium-stable/test/default/core3.exp +0 -3
  786. package/ios/libsodium-stable/test/default/core4.c +0 -36
  787. package/ios/libsodium-stable/test/default/core4.exp +0 -8
  788. package/ios/libsodium-stable/test/default/core5.c +0 -33
  789. package/ios/libsodium-stable/test/default/core5.exp +0 -4
  790. package/ios/libsodium-stable/test/default/core6.c +0 -52
  791. package/ios/libsodium-stable/test/default/core6.exp +0 -4
  792. package/ios/libsodium-stable/test/default/core_ed25519.c +0 -545
  793. package/ios/libsodium-stable/test/default/core_ed25519.exp +0 -55
  794. package/ios/libsodium-stable/test/default/core_ristretto255.c +0 -271
  795. package/ios/libsodium-stable/test/default/core_ristretto255.exp +0 -8
  796. package/ios/libsodium-stable/test/default/ed25519_convert.c +0 -70
  797. package/ios/libsodium-stable/test/default/ed25519_convert.exp +0 -3
  798. package/ios/libsodium-stable/test/default/generichash.c +0 -1406
  799. package/ios/libsodium-stable/test/default/generichash.exp +0 -65
  800. package/ios/libsodium-stable/test/default/generichash2.c +0 -62
  801. package/ios/libsodium-stable/test/default/generichash2.exp +0 -64
  802. package/ios/libsodium-stable/test/default/generichash3.c +0 -176
  803. package/ios/libsodium-stable/test/default/generichash3.exp +0 -75
  804. package/ios/libsodium-stable/test/default/hash.c +0 -47
  805. package/ios/libsodium-stable/test/default/hash.exp +0 -4
  806. package/ios/libsodium-stable/test/default/hash3.c +0 -20
  807. package/ios/libsodium-stable/test/default/hash3.exp +0 -1
  808. package/ios/libsodium-stable/test/default/index.html.tpl +0 -98
  809. package/ios/libsodium-stable/test/default/kdf.c +0 -71
  810. package/ios/libsodium-stable/test/default/kdf.exp +0 -77
  811. package/ios/libsodium-stable/test/default/kdf_hkdf.c +0 -102
  812. package/ios/libsodium-stable/test/default/kdf_hkdf.exp +0 -205
  813. package/ios/libsodium-stable/test/default/keygen.c +0 -67
  814. package/ios/libsodium-stable/test/default/keygen.exp +0 -1
  815. package/ios/libsodium-stable/test/default/kx.c +0 -149
  816. package/ios/libsodium-stable/test/default/kx.exp +0 -7
  817. package/ios/libsodium-stable/test/default/metamorphic.c +0 -187
  818. package/ios/libsodium-stable/test/default/metamorphic.exp +0 -1
  819. package/ios/libsodium-stable/test/default/misuse.c +0 -187
  820. package/ios/libsodium-stable/test/default/misuse.exp +0 -0
  821. package/ios/libsodium-stable/test/default/onetimeauth.c +0 -63
  822. package/ios/libsodium-stable/test/default/onetimeauth.exp +0 -4
  823. package/ios/libsodium-stable/test/default/onetimeauth2.c +0 -33
  824. package/ios/libsodium-stable/test/default/onetimeauth2.exp +0 -1
  825. package/ios/libsodium-stable/test/default/onetimeauth7.c +0 -36
  826. package/ios/libsodium-stable/test/default/onetimeauth7.exp +0 -0
  827. package/ios/libsodium-stable/test/default/pre.js.inc +0 -22
  828. package/ios/libsodium-stable/test/default/pwhash_argon2i.c +0 -467
  829. package/ios/libsodium-stable/test/default/pwhash_argon2i.exp +0 -11
  830. package/ios/libsodium-stable/test/default/pwhash_argon2id.c +0 -517
  831. package/ios/libsodium-stable/test/default/pwhash_argon2id.exp +0 -14
  832. package/ios/libsodium-stable/test/default/pwhash_scrypt.c +0 -393
  833. package/ios/libsodium-stable/test/default/pwhash_scrypt.exp +0 -37
  834. package/ios/libsodium-stable/test/default/pwhash_scrypt_ll.c +0 -59
  835. package/ios/libsodium-stable/test/default/pwhash_scrypt_ll.exp +0 -15
  836. package/ios/libsodium-stable/test/default/randombytes.c +0 -164
  837. package/ios/libsodium-stable/test/default/randombytes.exp +0 -2
  838. package/ios/libsodium-stable/test/default/run.sh +0 -9
  839. package/ios/libsodium-stable/test/default/scalarmult.c +0 -77
  840. package/ios/libsodium-stable/test/default/scalarmult.exp +0 -5
  841. package/ios/libsodium-stable/test/default/scalarmult2.c +0 -22
  842. package/ios/libsodium-stable/test/default/scalarmult2.exp +0 -1
  843. package/ios/libsodium-stable/test/default/scalarmult5.c +0 -30
  844. package/ios/libsodium-stable/test/default/scalarmult5.exp +0 -1
  845. package/ios/libsodium-stable/test/default/scalarmult6.c +0 -54
  846. package/ios/libsodium-stable/test/default/scalarmult6.exp +0 -4
  847. package/ios/libsodium-stable/test/default/scalarmult7.c +0 -34
  848. package/ios/libsodium-stable/test/default/scalarmult7.exp +0 -1
  849. package/ios/libsodium-stable/test/default/scalarmult8.c +0 -580
  850. package/ios/libsodium-stable/test/default/scalarmult8.exp +0 -65
  851. package/ios/libsodium-stable/test/default/scalarmult_ed25519.c +0 -134
  852. package/ios/libsodium-stable/test/default/scalarmult_ed25519.exp +0 -1
  853. package/ios/libsodium-stable/test/default/scalarmult_ristretto255.c +0 -51
  854. package/ios/libsodium-stable/test/default/scalarmult_ristretto255.exp +0 -18
  855. package/ios/libsodium-stable/test/default/secretbox.c +0 -84
  856. package/ios/libsodium-stable/test/default/secretbox.exp +0 -38
  857. package/ios/libsodium-stable/test/default/secretbox2.c +0 -55
  858. package/ios/libsodium-stable/test/default/secretbox2.exp +0 -17
  859. package/ios/libsodium-stable/test/default/secretbox7.c +0 -36
  860. package/ios/libsodium-stable/test/default/secretbox7.exp +0 -0
  861. package/ios/libsodium-stable/test/default/secretbox8.c +0 -41
  862. package/ios/libsodium-stable/test/default/secretbox8.exp +0 -0
  863. package/ios/libsodium-stable/test/default/secretbox_easy.c +0 -124
  864. package/ios/libsodium-stable/test/default/secretbox_easy.exp +0 -9
  865. package/ios/libsodium-stable/test/default/secretbox_easy2.c +0 -72
  866. package/ios/libsodium-stable/test/default/secretbox_easy2.exp +0 -5
  867. package/ios/libsodium-stable/test/default/secretstream_xchacha20poly1305.c +0 -329
  868. package/ios/libsodium-stable/test/default/secretstream_xchacha20poly1305.exp +0 -1
  869. package/ios/libsodium-stable/test/default/shorthash.c +0 -35
  870. package/ios/libsodium-stable/test/default/shorthash.exp +0 -64
  871. package/ios/libsodium-stable/test/default/sign.c +0 -1324
  872. package/ios/libsodium-stable/test/default/sign.exp +0 -5
  873. package/ios/libsodium-stable/test/default/siphashx24.c +0 -33
  874. package/ios/libsodium-stable/test/default/siphashx24.exp +0 -64
  875. package/ios/libsodium-stable/test/default/sodium_core.c +0 -43
  876. package/ios/libsodium-stable/test/default/sodium_core.exp +0 -1
  877. package/ios/libsodium-stable/test/default/sodium_utils.c +0 -224
  878. package/ios/libsodium-stable/test/default/sodium_utils.exp +0 -25
  879. package/ios/libsodium-stable/test/default/sodium_utils2.c +0 -120
  880. package/ios/libsodium-stable/test/default/sodium_utils2.exp +0 -3
  881. package/ios/libsodium-stable/test/default/sodium_utils3.c +0 -90
  882. package/ios/libsodium-stable/test/default/sodium_utils3.exp +0 -2
  883. package/ios/libsodium-stable/test/default/sodium_version.c +0 -18
  884. package/ios/libsodium-stable/test/default/sodium_version.exp +0 -3
  885. package/ios/libsodium-stable/test/default/stream.c +0 -84
  886. package/ios/libsodium-stable/test/default/stream.exp +0 -83
  887. package/ios/libsodium-stable/test/default/stream2.c +0 -59
  888. package/ios/libsodium-stable/test/default/stream2.exp +0 -2
  889. package/ios/libsodium-stable/test/default/stream3.c +0 -32
  890. package/ios/libsodium-stable/test/default/stream3.exp +0 -4
  891. package/ios/libsodium-stable/test/default/stream4.c +0 -51
  892. package/ios/libsodium-stable/test/default/stream4.exp +0 -17
  893. package/ios/libsodium-stable/test/default/verify1.c +0 -76
  894. package/ios/libsodium-stable/test/default/verify1.exp +0 -2
  895. package/ios/libsodium-stable/test/default/wasi-test-wrapper.sh +0 -98
  896. package/ios/libsodium-stable/test/default/wintest.bat +0 -61
  897. package/ios/libsodium-stable/test/default/xchacha20.c +0 -428
  898. package/ios/libsodium-stable/test/default/xchacha20.exp +0 -5
  899. package/ios/libsodium-stable/test/quirks/quirks.h +0 -34
@@ -1,1033 +0,0 @@
1
- #include <errno.h>
2
- #include <limits.h>
3
- #include <stdint.h>
4
- #include <stdlib.h>
5
- #include <string.h>
6
-
7
- #include "core.h"
8
- #include "crypto_aead_aes256gcm.h"
9
- #include "crypto_verify_16.h"
10
- #include "export.h"
11
- #include "private/common.h"
12
- #include "randombytes.h"
13
- #include "runtime.h"
14
- #include "utils.h"
15
-
16
- #if defined(HAVE_ARMCRYPTO) && defined(__clang__) && defined(NATIVE_LITTLE_ENDIAN)
17
-
18
- #if !defined(_MSC_VER) || _MSC_VER < 1800
19
- #define __vectorcall
20
- #endif
21
-
22
- #ifndef __ARM_FEATURE_CRYPTO
23
- #define __ARM_FEATURE_CRYPTO 1
24
- #endif
25
- #ifndef __ARM_FEATURE_AES
26
- #define __ARM_FEATURE_AES 1
27
- #endif
28
-
29
- #include <arm_neon.h>
30
-
31
- #ifdef __clang__
32
- #pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
33
- #elif defined(__GNUC__)
34
- #pragma GCC target("+simd+crypto")
35
- #endif
36
-
37
- #define ABYTES crypto_aead_aes256gcm_ABYTES
38
- #define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES
39
- #define KEYBYTES crypto_aead_aes256gcm_KEYBYTES
40
-
41
- #define PARALLEL_BLOCKS 6
42
- #undef USE_KARATSUBA_MULTIPLICATION
43
-
44
- typedef uint64x2_t BlockVec;
45
-
46
- #define LOAD128(a) vld1q_u64((const uint64_t *) (const void *) (a))
47
- #define STORE128(a, b) vst1q_u64((uint64_t *) (void *) (a), (b))
48
- #define AES_XENCRYPT(block_vec, rkey) \
49
- vreinterpretq_u64_u8( \
50
- vaesmcq_u8(vaeseq_u8(rkey, vreinterpretq_u8_u64(block_vec))))
51
- #define AES_XENCRYPTLAST(block_vec, rkey) \
52
- vreinterpretq_u64_u8(vaeseq_u8(rkey, vreinterpretq_u8_u64(block_vec)))
53
- #define XOR128(a, b) veorq_u64((a), (b))
54
- #define AND128(a, b) vandq_u64((a), (b))
55
- #define OR128(a, b) vorrq_u64((a), (b))
56
- #define SET64x2(a, b) vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1)
57
- #define ZERO128 vmovq_n_u8(0)
58
- #define ONE128 SET64x2(0, 1)
59
- #define ADD64x2(a, b) vaddq_u64((a), (b))
60
- #define SUB64x2(a, b) vsubq_u64((a), (b))
61
- #define SHL64x2(a, b) vshlq_n_u64((a), (b))
62
- #define SHR64x2(a, b) vshrq_n_u64((a), (b))
63
- #define REV128(x) \
64
- vreinterpretq_u64_u8(__builtin_shufflevector(vreinterpretq_u8_u64(x), vreinterpretq_u8_u64(x), \
65
- 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, \
66
- 1, 0))
67
- #define SHUFFLE32x4(x, a, b, c, d) \
68
- vreinterpretq_u64_u32(__builtin_shufflevector(vreinterpretq_u32_u64(x), \
69
- vreinterpretq_u32_u64(x), (a), (b), (c), (d)))
70
- #define BYTESHL128(a, b) vreinterpretq_u64_u8(vextq_s8(vdupq_n_s8(0), (int8x16_t) a, 16 - (b)))
71
- #define BYTESHR128(a, b) vreinterpretq_u64_u8(vextq_s8((int8x16_t) a, vdupq_n_s8(0), (b)))
72
-
73
- #define SHL128(a, b) OR128(SHL64x2((a), (b)), SHR64x2(BYTESHL128((a), 8), 64 - (b)))
74
- #define CLMULLO128(a, b) \
75
- vreinterpretq_u64_p128(vmull_p64((poly64_t) vget_low_u64(a), (poly64_t) vget_low_u64(b)))
76
- #define CLMULHI128(a, b) \
77
- vreinterpretq_u64_p128(vmull_high_p64(vreinterpretq_p64_s64(a), vreinterpretq_p64_s64(b)))
78
- #define CLMULLOHI128(a, b) \
79
- vreinterpretq_u64_p128(vmull_p64((poly64_t) vget_low_u64(a), (poly64_t) vget_high_u64(b)))
80
- #define CLMULHILO128(a, b) \
81
- vreinterpretq_u64_p128(vmull_p64((poly64_t) vget_high_u64(a), (poly64_t) vget_low_u64(b)))
82
- #define PREFETCH_READ(x) __builtin_prefetch((x), 0, 2)
83
- #define PREFETCH_WRITE(x) __builtin_prefetch((x), 1, 2);
84
-
85
- static inline BlockVec
86
- AES_KEYGEN(BlockVec block_vec, const int rc)
87
- {
88
- uint8x16_t a = vaeseq_u8(vreinterpretq_u8_u64(block_vec), vmovq_n_u8(0));
89
- const uint8x16_t b =
90
- __builtin_shufflevector(a, a, 4, 1, 14, 11, 1, 14, 11, 4, 12, 9, 6, 3, 9, 6, 3, 12);
91
- const uint64x2_t c = SET64x2((uint64_t) rc << 32, (uint64_t) rc << 32);
92
- return XOR128(b, c);
93
- }
94
-
95
- #define ROUNDS 14
96
-
97
- #define PC_COUNT (2 * PARALLEL_BLOCKS)
98
-
99
- typedef struct I256 {
100
- BlockVec hi;
101
- BlockVec lo;
102
- BlockVec mid;
103
- } I256;
104
-
105
- typedef BlockVec Precomp;
106
-
107
- typedef struct GHash {
108
- BlockVec acc;
109
- } GHash;
110
-
111
- typedef struct State {
112
- BlockVec rkeys[ROUNDS + 1];
113
- Precomp hx[PC_COUNT];
114
- } State;
115
-
116
- static void __vectorcall expand256(const unsigned char key[KEYBYTES], BlockVec rkeys[1 + ROUNDS])
117
- {
118
- BlockVec t1, t2, s;
119
- size_t i = 0;
120
-
121
- #define EXPAND_KEY_1(RC) \
122
- rkeys[i++] = t2; \
123
- s = AES_KEYGEN(t2, RC); \
124
- t1 = XOR128(t1, BYTESHL128(t1, 4)); \
125
- t1 = XOR128(t1, BYTESHL128(t1, 8)); \
126
- t1 = XOR128(t1, SHUFFLE32x4(s, 3, 3, 3, 3));
127
-
128
- #define EXPAND_KEY_2(RC) \
129
- rkeys[i++] = t1; \
130
- s = AES_KEYGEN(t1, RC); \
131
- t2 = XOR128(t2, BYTESHL128(t2, 4)); \
132
- t2 = XOR128(t2, BYTESHL128(t2, 8)); \
133
- t2 = XOR128(t2, SHUFFLE32x4(s, 2, 2, 2, 2));
134
-
135
- t1 = LOAD128(&key[0]);
136
- t2 = LOAD128(&key[16]);
137
-
138
- rkeys[i++] = t1;
139
- EXPAND_KEY_1(0x01);
140
- EXPAND_KEY_2(0x01);
141
- EXPAND_KEY_1(0x02);
142
- EXPAND_KEY_2(0x02);
143
- EXPAND_KEY_1(0x04);
144
- EXPAND_KEY_2(0x04);
145
- EXPAND_KEY_1(0x08);
146
- EXPAND_KEY_2(0x08);
147
- EXPAND_KEY_1(0x10);
148
- EXPAND_KEY_2(0x10);
149
- EXPAND_KEY_1(0x20);
150
- EXPAND_KEY_2(0x20);
151
- EXPAND_KEY_1(0x40);
152
- rkeys[i++] = t1;
153
- }
154
-
155
- /* Encrypt a single AES block */
156
-
157
- static inline void
158
- encrypt(const State *st, unsigned char dst[16], const unsigned char src[16])
159
- {
160
- BlockVec t;
161
-
162
- size_t i;
163
-
164
- t = AES_XENCRYPT(LOAD128(src), st->rkeys[0]);
165
- for (i = 1; i < ROUNDS - 1; i++) {
166
- t = AES_XENCRYPT(t, st->rkeys[i]);
167
- }
168
- t = AES_XENCRYPTLAST(t, st->rkeys[i]);
169
- t = XOR128(t, st->rkeys[ROUNDS]);
170
- STORE128(dst, t);
171
- }
172
-
173
- /* Encrypt and add a single AES block */
174
-
175
- static inline void __vectorcall encrypt_xor_block(const State *st, unsigned char dst[16],
176
- const unsigned char src[16],
177
- const BlockVec counter)
178
- {
179
- BlockVec ts;
180
- size_t i;
181
-
182
- ts = AES_XENCRYPT(counter, st->rkeys[0]);
183
- for (i = 1; i < ROUNDS - 1; i++) {
184
- ts = AES_XENCRYPT(ts, st->rkeys[i]);
185
- }
186
- ts = AES_XENCRYPTLAST(ts, st->rkeys[i]);
187
- ts = XOR128(ts, XOR128(st->rkeys[ROUNDS], LOAD128(src)));
188
- STORE128(dst, ts);
189
- }
190
-
191
- /* Encrypt and add PARALLEL_BLOCKS AES blocks */
192
-
193
- static inline void __vectorcall encrypt_xor_wide(const State *st,
194
- unsigned char dst[16 * PARALLEL_BLOCKS],
195
- const unsigned char src[16 * PARALLEL_BLOCKS],
196
- const BlockVec counters[PARALLEL_BLOCKS])
197
- {
198
- BlockVec ts[PARALLEL_BLOCKS];
199
- size_t i, j;
200
-
201
- for (j = 0; j < PARALLEL_BLOCKS; j++) {
202
- ts[j] = AES_XENCRYPT(counters[j], st->rkeys[0]);
203
- }
204
- for (i = 1; i < ROUNDS - 1; i++) {
205
- for (j = 0; j < PARALLEL_BLOCKS; j++) {
206
- ts[j] = AES_XENCRYPT(ts[j], st->rkeys[i]);
207
- }
208
- }
209
- for (j = 0; j < PARALLEL_BLOCKS; j++) {
210
- ts[j] = AES_XENCRYPTLAST(ts[j], st->rkeys[i]);
211
- ts[j] = XOR128(ts[j], XOR128(st->rkeys[ROUNDS], LOAD128(&src[16 * j])));
212
- }
213
- for (j = 0; j < PARALLEL_BLOCKS; j++) {
214
- STORE128(&dst[16 * j], ts[j]);
215
- }
216
- }
217
-
218
- /* Square a field element */
219
-
220
- static inline I256 __vectorcall clsq128(const BlockVec x)
221
- {
222
- const BlockVec r_lo = CLMULLO128(x, x);
223
- const BlockVec r_hi = CLMULHI128(x, x);
224
-
225
- return (I256) {
226
- SODIUM_C99(.hi =) r_hi,
227
- SODIUM_C99(.lo =) r_lo,
228
- SODIUM_C99(.mid =) ZERO128,
229
- };
230
- }
231
-
232
- /* Multiply two field elements -- Textbook multiplication is faster than Karatsuba on some recent
233
- * CPUs */
234
-
235
- static inline I256 __vectorcall clmul128(const BlockVec x, const BlockVec y)
236
- {
237
- #ifdef USE_KARATSUBA_MULTIPLICATION
238
- const BlockVec x_hi = BYTESHR128(x, 8);
239
- const BlockVec y_hi = BYTESHR128(y, 8);
240
- const BlockVec r_lo = CLMULLO128(x, y);
241
- const BlockVec r_hi = CLMULHI128(x, y);
242
- const BlockVec r_mid = XOR128(CLMULLO128(XOR128(x, x_hi), XOR128(y, y_hi)), XOR128(r_lo, r_hi));
243
-
244
- return (I256) {
245
- SODIUM_C99(.hi =) r_hi,
246
- SODIUM_C99(.lo =) r_lo,
247
- SODIUM_C99(.mid =) r_mid,
248
- };
249
- #else
250
- const BlockVec r_hi = CLMULHI128(x, y);
251
- const BlockVec r_lo = CLMULLO128(x, y);
252
- const BlockVec r_mid = XOR128(CLMULHILO128(x, y), CLMULLOHI128(x, y));
253
-
254
- return (I256) {
255
- SODIUM_C99(.hi =) r_hi,
256
- SODIUM_C99(.lo =) r_lo,
257
- SODIUM_C99(.mid =) r_mid,
258
- };
259
- #endif
260
- }
261
-
262
- /* Merge the middle word and reduce a field element */
263
-
264
- static inline BlockVec __vectorcall gcm_reduce(const I256 x)
265
- {
266
- const BlockVec hi = XOR128(x.hi, BYTESHR128(x.mid, 8));
267
- const BlockVec lo = XOR128(x.lo, BYTESHL128(x.mid, 8));
268
-
269
- const BlockVec p64 = SET64x2(0, 0xc200000000000000);
270
- const BlockVec a = CLMULLO128(lo, p64);
271
- const BlockVec b = XOR128(SHUFFLE32x4(lo, 2, 3, 0, 1), a);
272
- const BlockVec c = CLMULLO128(b, p64);
273
- const BlockVec d = XOR128(SHUFFLE32x4(b, 2, 3, 0, 1), c);
274
-
275
- return XOR128(d, hi);
276
- }
277
-
278
- /* Precompute powers of H from `from` to `to` */
279
-
280
- static inline void __vectorcall precomp(Precomp hx[PC_COUNT], const size_t from, const size_t to)
281
- {
282
- const Precomp h = hx[0];
283
- size_t i;
284
-
285
- for (i = from & ~1U; i < to; i += 2) {
286
- hx[i] = gcm_reduce(clmul128(hx[i - 1], h));
287
- hx[i + 1] = gcm_reduce(clsq128(hx[i / 2]));
288
- }
289
- }
290
-
291
- /* Precompute powers of H given a key and a block count */
292
-
293
- static void __vectorcall precomp_for_block_count(Precomp hx[PC_COUNT],
294
- const unsigned char gh_key[16],
295
- const size_t block_count)
296
- {
297
- const BlockVec h0 = REV128(LOAD128(gh_key));
298
- BlockVec carry = SET64x2(0xc200000000000000, 1);
299
- BlockVec mask = SUB64x2(ZERO128, SHR64x2(h0, 63));
300
- BlockVec h0_shifted;
301
- BlockVec h;
302
-
303
- mask = SHUFFLE32x4(mask, 3, 3, 3, 3);
304
- carry = AND128(carry, mask);
305
- h0_shifted = SHL128(h0, 1);
306
- h = XOR128(h0_shifted, carry);
307
-
308
- hx[0] = h;
309
- hx[1] = gcm_reduce(clsq128(hx[0]));
310
-
311
- if (block_count >= PC_COUNT) {
312
- precomp(hx, 2, PC_COUNT);
313
- } else {
314
- precomp(hx, 2, block_count);
315
- }
316
- }
317
-
318
- /* Initialize a GHash */
319
-
320
- static inline void
321
- gh_init(GHash *sth)
322
- {
323
- sth->acc = ZERO128;
324
- }
325
-
326
- static inline I256 __vectorcall gh_update0(const GHash *const sth, const unsigned char *const p,
327
- const Precomp hn)
328
- {
329
- const BlockVec m = REV128(LOAD128(p));
330
- return clmul128(XOR128(sth->acc, m), hn);
331
- }
332
-
333
- static inline void __vectorcall gh_update(I256 *const u, const unsigned char *p, const Precomp hn)
334
- {
335
- const BlockVec m = REV128(LOAD128(p));
336
- const I256 t = clmul128(m, hn);
337
- *u = (I256) { SODIUM_C99(.hi =) XOR128(u->hi, t.hi), SODIUM_C99(.lo =) XOR128(u->lo, t.lo),
338
- SODIUM_C99(.mid =) XOR128(u->mid, t.mid) };
339
- }
340
-
341
- /* Absorb ad_len bytes of associated data. There has to be no partial block. */
342
-
343
- static inline void
344
- gh_ad_blocks(const State *st, GHash *sth, const unsigned char *ad, size_t ad_len)
345
- {
346
- size_t i;
347
-
348
- i = (size_t) 0U;
349
- for (; i + PC_COUNT * 16 <= ad_len; i += PC_COUNT * 16) {
350
- I256 u = gh_update0(sth, ad + i, st->hx[PC_COUNT - 1 - 0]);
351
- size_t j;
352
-
353
- for (j = 1; j < PC_COUNT; j += 1) {
354
- gh_update(&u, ad + i + j * 16, st->hx[PC_COUNT - 1 - j]);
355
- }
356
- sth->acc = gcm_reduce(u);
357
- }
358
- for (; i + PC_COUNT * 16 / 2 <= ad_len; i += PC_COUNT * 16 / 2) {
359
- I256 u = gh_update0(sth, ad + i, st->hx[PC_COUNT / 2 - 1 - 0]);
360
- size_t j;
361
-
362
- for (j = 1; j < PC_COUNT / 2; j += 1) {
363
- gh_update(&u, ad + i + j * 16, st->hx[PC_COUNT / 2 - 1 - j]);
364
- }
365
- sth->acc = gcm_reduce(u);
366
- }
367
- for (; i + 4 * 16 <= ad_len; i += 4 * 16) {
368
- size_t j;
369
- I256 u = gh_update0(sth, ad + i, st->hx[4 - 1 - 0]);
370
-
371
- for (j = 1; j < 4; j += 1) {
372
- gh_update(&u, ad + i + j * 16, st->hx[4 - 1 - j]);
373
- }
374
- sth->acc = gcm_reduce(u);
375
- }
376
- for (; i + 2 * 16 <= ad_len; i += 2 * 16) {
377
- size_t j;
378
- I256 u = gh_update0(sth, ad + i, st->hx[2 - 1 - 0]);
379
-
380
- for (j = 1; j < 2; j += 1) {
381
- gh_update(&u, ad + i + j * 16, st->hx[2 - 1 - j]);
382
- }
383
- sth->acc = gcm_reduce(u);
384
- }
385
- if (i < ad_len) {
386
- I256 u = gh_update0(sth, ad + i, st->hx[0]);
387
- sth->acc = gcm_reduce(u);
388
- }
389
- }
390
-
391
- /* Increment counters */
392
-
393
- static inline BlockVec __vectorcall incr_counters(BlockVec rev_counters[], BlockVec counter,
394
- const size_t n)
395
- {
396
- size_t i;
397
-
398
- const BlockVec one = ONE128;
399
- for (i = 0; i < n; i++) {
400
- rev_counters[i] = REV128(counter);
401
- counter = ADD64x2(counter, one);
402
- }
403
- return counter;
404
- }
405
-
406
- /* Compute the number of required blocks to encrypt and authenticate `ad_len` of associated data,
407
- * and `m_len` of encrypted bytes. Return `0` if limits would be exceeded.*/
408
-
409
- static inline size_t
410
- required_blocks(const size_t ad_len, const size_t m_len)
411
- {
412
- const size_t ad_blocks = (ad_len + 15) / 16;
413
- const size_t m_blocks = (m_len + 15) / 16;
414
-
415
- if (ad_len > SIZE_MAX - 2 * PARALLEL_BLOCKS * 16 ||
416
- m_len > SIZE_MAX - 2 * PARALLEL_BLOCKS * 16 || ad_len < ad_blocks || m_len < m_blocks ||
417
- m_blocks >= (1ULL << 32) - 2) {
418
- return 0;
419
- }
420
- return ad_blocks + m_blocks + 1;
421
- }
422
-
423
- /* Generic AES-GCM encryption. "Generic" as it can handle arbitrary input sizes,
424
- unlike a length-limited version that would precompute all the required powers of H */
425
-
426
- static void
427
- aes_gcm_encrypt_generic(const State *st, GHash *sth, unsigned char mac[ABYTES], unsigned char *dst,
428
- const unsigned char *src, size_t src_len, const unsigned char *ad,
429
- size_t ad_len, unsigned char counter_[16])
430
- {
431
- CRYPTO_ALIGN(32) I256 u;
432
- CRYPTO_ALIGN(16) unsigned char last_blocks[2 * 16];
433
- const BlockVec one = ONE128;
434
- BlockVec final_block;
435
- BlockVec rev_counters[PARALLEL_BLOCKS];
436
- BlockVec counter;
437
- size_t i;
438
- size_t j;
439
- size_t left;
440
- size_t pi;
441
-
442
- COMPILER_ASSERT(PC_COUNT % PARALLEL_BLOCKS == 0);
443
-
444
- /* Associated data */
445
-
446
- if (ad != NULL && ad_len != 0) {
447
- gh_ad_blocks(st, sth, ad, ad_len & ~15);
448
- left = ad_len & 15;
449
- if (left != 0) {
450
- unsigned char pad[16];
451
-
452
- memset(pad, 0, sizeof pad);
453
- memcpy(pad, ad + ad_len - left, left);
454
- gh_ad_blocks(st, sth, pad, sizeof pad);
455
- }
456
- }
457
-
458
- /* Encrypted data */
459
-
460
- counter = REV128(LOAD128(counter_));
461
- i = 0;
462
-
463
- /* 2*PARALLEL_BLOCKS aggregation */
464
-
465
- if (src_len - i >= 2 * PARALLEL_BLOCKS * 16) {
466
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
467
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
468
- i += PARALLEL_BLOCKS * 16;
469
-
470
- for (; i + 2 * PARALLEL_BLOCKS * 16 <= src_len; i += 2 * PARALLEL_BLOCKS * 16) {
471
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
472
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
473
-
474
- pi = i - PARALLEL_BLOCKS * 16;
475
- u = gh_update0(sth, dst + pi, st->hx[2 * PARALLEL_BLOCKS - 1 - 0]);
476
- for (j = 1; j < PARALLEL_BLOCKS; j += 1) {
477
- gh_update(&u, dst + pi + j * 16, st->hx[2 * PARALLEL_BLOCKS - 1 - j]);
478
- }
479
-
480
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
481
- encrypt_xor_wide(st, dst + i + PARALLEL_BLOCKS * 16, src + i + PARALLEL_BLOCKS * 16,
482
- rev_counters);
483
-
484
- pi = i;
485
- for (j = 0; j < PARALLEL_BLOCKS; j += 1) {
486
- gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);
487
- }
488
- sth->acc = gcm_reduce(u);
489
- }
490
-
491
- pi = i - PARALLEL_BLOCKS * 16;
492
- u = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);
493
- for (j = 1; j < PARALLEL_BLOCKS; j += 1) {
494
- gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);
495
- }
496
- sth->acc = gcm_reduce(u);
497
- }
498
-
499
- /* PARALLEL_BLOCKS aggregation */
500
-
501
- if (src_len - i >= PARALLEL_BLOCKS * 16) {
502
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
503
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
504
- i += PARALLEL_BLOCKS * 16;
505
-
506
- for (; i + PARALLEL_BLOCKS * 16 <= src_len; i += PARALLEL_BLOCKS * 16) {
507
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
508
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
509
-
510
- pi = i - PARALLEL_BLOCKS * 16;
511
- u = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);
512
- for (j = 1; j < PARALLEL_BLOCKS; j += 1) {
513
- gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);
514
- }
515
- sth->acc = gcm_reduce(u);
516
- }
517
-
518
- pi = i - PARALLEL_BLOCKS * 16;
519
- u = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);
520
- for (j = 1; j < PARALLEL_BLOCKS; j += 1) {
521
- gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);
522
- }
523
- sth->acc = gcm_reduce(u);
524
- }
525
-
526
- /* 4-blocks aggregation */
527
-
528
- for (; i + 4 * 16 <= src_len; i += 4 * 16) {
529
- counter = incr_counters(rev_counters, counter, 4);
530
- for (j = 0; j < 4; j++) {
531
- encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);
532
- }
533
-
534
- u = gh_update0(sth, dst + i, st->hx[4 - 1 - 0]);
535
- for (j = 1; j < 4; j += 1) {
536
- gh_update(&u, dst + i + j * 16, st->hx[4 - 1 - j]);
537
- }
538
- sth->acc = gcm_reduce(u);
539
- }
540
-
541
- /* 2-blocks aggregation */
542
-
543
- for (; i + 2 * 16 <= src_len; i += 2 * 16) {
544
- counter = incr_counters(rev_counters, counter, 2);
545
- for (j = 0; j < 2; j++) {
546
- encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);
547
- }
548
-
549
- u = gh_update0(sth, dst + i, st->hx[2 - 1 - 0]);
550
- for (j = 1; j < 2; j += 1) {
551
- gh_update(&u, dst + i + j * 16, st->hx[2 - 1 - j]);
552
- }
553
- sth->acc = gcm_reduce(u);
554
- }
555
-
556
- /* Remaining *partial* blocks; if we have 16 bytes left, we want to keep the
557
- full block authenticated along with the final block, hence < and not <= */
558
-
559
- for (; i + 16 < src_len; i += 16) {
560
- encrypt_xor_block(st, dst + i, src + i, REV128(counter));
561
- u = gh_update0(sth, dst + i, st->hx[1 - 1 - 0]);
562
- sth->acc = gcm_reduce(u);
563
- counter = ADD64x2(counter, one);
564
- }
565
-
566
- /* Authenticate both the last block of the message and the final block */
567
-
568
- final_block = REV128(SET64x2(ad_len * 8, src_len * 8));
569
- STORE32_BE(counter_ + NPUBBYTES, 1);
570
- encrypt(st, mac, counter_);
571
- left = src_len - i;
572
- if (left != 0) {
573
- for (j = 0; j < left; j++) {
574
- last_blocks[j] = src[i + j];
575
- }
576
- STORE128(last_blocks + 16, final_block);
577
- encrypt_xor_block(st, last_blocks, last_blocks, REV128(counter));
578
- for (; j < 16; j++) {
579
- last_blocks[j] = 0;
580
- }
581
- for (j = 0; j < left; j++) {
582
- dst[i + j] = last_blocks[j];
583
- }
584
- gh_ad_blocks(st, sth, last_blocks, 32);
585
- } else {
586
- STORE128(last_blocks, final_block);
587
- gh_ad_blocks(st, sth, last_blocks, 16);
588
- }
589
- STORE128(mac, XOR128(LOAD128(mac), REV128(sth->acc)));
590
- }
591
-
592
- /* Generic AES-GCM decryption. "Generic" as it can handle arbitrary input sizes,
593
- unlike a length-limited version that would precompute all the required powers of H */
594
-
595
- static void
596
- aes_gcm_decrypt_generic(const State *st, GHash *sth, unsigned char mac[ABYTES], unsigned char *dst,
597
- const unsigned char *src, size_t src_len, const unsigned char *ad,
598
- size_t ad_len, unsigned char counter_[16])
599
- {
600
- CRYPTO_ALIGN(32) I256 u;
601
- CRYPTO_ALIGN(16) unsigned char last_blocks[2 * 16];
602
- const BlockVec one = ONE128;
603
- BlockVec final_block;
604
- BlockVec rev_counters[PARALLEL_BLOCKS];
605
- BlockVec counter;
606
- size_t i;
607
- size_t j;
608
- size_t left;
609
-
610
- COMPILER_ASSERT(PC_COUNT % PARALLEL_BLOCKS == 0);
611
-
612
- /* Associated data */
613
-
614
- if (ad != NULL && ad_len != 0) {
615
- gh_ad_blocks(st, sth, ad, ad_len & ~15);
616
- left = ad_len & 15;
617
- if (left != 0) {
618
- unsigned char pad[16];
619
-
620
- memset(pad, 0, sizeof pad);
621
- memcpy(pad, ad + ad_len - left, left);
622
- gh_ad_blocks(st, sth, pad, sizeof pad);
623
- }
624
- }
625
-
626
- /* Encrypted data */
627
-
628
- counter = REV128(LOAD128(counter_));
629
- i = 0;
630
-
631
- /* 2*PARALLEL_BLOCKS aggregation */
632
-
633
- while (i + 2 * PARALLEL_BLOCKS * 16 <= src_len) {
634
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
635
-
636
- u = gh_update0(sth, src + i, st->hx[2 * PARALLEL_BLOCKS - 1 - 0]);
637
- for (j = 1; j < PARALLEL_BLOCKS; j += 1) {
638
- gh_update(&u, src + i + j * 16, st->hx[2 * PARALLEL_BLOCKS - 1 - j]);
639
- }
640
-
641
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
642
-
643
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
644
-
645
- i += PARALLEL_BLOCKS * 16;
646
- for (j = 0; j < PARALLEL_BLOCKS; j += 1) {
647
- gh_update(&u, src + i + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);
648
- }
649
- sth->acc = gcm_reduce(u);
650
-
651
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
652
- i += PARALLEL_BLOCKS * 16;
653
- }
654
-
655
- /* PARALLEL_BLOCKS aggregation */
656
-
657
- for (; i + PARALLEL_BLOCKS * 16 <= src_len; i += PARALLEL_BLOCKS * 16) {
658
- counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);
659
-
660
- u = gh_update0(sth, src + i, st->hx[PARALLEL_BLOCKS - 1 - 0]);
661
- for (j = 1; j < PARALLEL_BLOCKS; j += 1) {
662
- gh_update(&u, src + i + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);
663
- }
664
- sth->acc = gcm_reduce(u);
665
-
666
- encrypt_xor_wide(st, dst + i, src + i, rev_counters);
667
- }
668
-
669
- /* 4-blocks aggregation */
670
-
671
- for (; i + 4 * 16 <= src_len; i += 4 * 16) {
672
- counter = incr_counters(rev_counters, counter, 4);
673
-
674
- u = gh_update0(sth, src + i, st->hx[4 - 1 - 0]);
675
- for (j = 1; j < 4; j += 1) {
676
- gh_update(&u, src + i + j * 16, st->hx[4 - 1 - j]);
677
- }
678
- sth->acc = gcm_reduce(u);
679
-
680
- for (j = 0; j < 4; j++) {
681
- encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);
682
- }
683
- }
684
-
685
- /* 2-blocks aggregation */
686
-
687
- for (; i + 2 * 16 <= src_len; i += 2 * 16) {
688
- counter = incr_counters(rev_counters, counter, 2);
689
-
690
- u = gh_update0(sth, src + i, st->hx[2 - 1 - 0]);
691
- for (j = 1; j < 2; j += 1) {
692
- gh_update(&u, src + i + j * 16, st->hx[2 - 1 - j]);
693
- }
694
- sth->acc = gcm_reduce(u);
695
-
696
- for (j = 0; j < 2; j++) {
697
- encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);
698
- }
699
- }
700
-
701
- /* Remaining *partial* blocks; if we have 16 bytes left, we want to keep the
702
- full block authenticated along with the final block, hence < and not <= */
703
-
704
- for (; i + 16 < src_len; i += 16) {
705
- u = gh_update0(sth, src + i, st->hx[1 - 1 - 0]);
706
- sth->acc = gcm_reduce(u);
707
- encrypt_xor_block(st, dst + i, src + i, REV128(counter));
708
- counter = ADD64x2(counter, one);
709
- }
710
-
711
- /* Authenticate both the last block of the message and the final block */
712
-
713
- final_block = REV128(SET64x2(ad_len * 8, src_len * 8));
714
- STORE32_BE(counter_ + NPUBBYTES, 1);
715
- encrypt(st, mac, counter_);
716
- left = src_len - i;
717
- if (left != 0) {
718
- for (j = 0; j < left; j++) {
719
- last_blocks[j] = src[i + j];
720
- }
721
- for (; j < 16; j++) {
722
- last_blocks[j] = 0;
723
- }
724
- STORE128(last_blocks + 16, final_block);
725
- gh_ad_blocks(st, sth, last_blocks, 32);
726
- encrypt_xor_block(st, last_blocks, last_blocks, REV128(counter));
727
- for (j = 0; j < left; j++) {
728
- dst[i + j] = last_blocks[j];
729
- }
730
- } else {
731
- STORE128(last_blocks, final_block);
732
- gh_ad_blocks(st, sth, last_blocks, 16);
733
- }
734
- STORE128(mac, XOR128(LOAD128(mac), REV128(sth->acc)));
735
- }
736
-
737
- int
738
- crypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *st_, const unsigned char *k)
739
- {
740
- State *st = (State *) (void *) st_;
741
- CRYPTO_ALIGN(16) unsigned char h[16];
742
-
743
- COMPILER_ASSERT(sizeof *st_ >= sizeof *st);
744
-
745
- expand256(k, st->rkeys);
746
- memset(h, 0, sizeof h);
747
- encrypt(st, h, h);
748
-
749
- precomp_for_block_count(st->hx, h, PC_COUNT);
750
-
751
- return 0;
752
- }
753
-
754
- int
755
- crypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, unsigned char *mac,
756
- unsigned long long *maclen_p, const unsigned char *m,
757
- unsigned long long m_len_, const unsigned char *ad,
758
- unsigned long long ad_len_,
759
- const unsigned char *nsec, const unsigned char *npub,
760
- const crypto_aead_aes256gcm_state *st_)
761
- {
762
- const State *st = (const State *) (const void *) st_;
763
- GHash sth;
764
- CRYPTO_ALIGN(16) unsigned char j[16];
765
- size_t gh_required_blocks;
766
- const size_t ad_len = (size_t) ad_len_;
767
- const size_t m_len = (size_t) m_len_;
768
-
769
- (void) nsec;
770
- if (maclen_p != NULL) {
771
- *maclen_p = 0;
772
- }
773
- if (ad_len_ > SODIUM_SIZE_MAX || m_len_ > SODIUM_SIZE_MAX) {
774
- sodium_misuse();
775
- }
776
- gh_required_blocks = required_blocks(ad_len, m_len);
777
- if (gh_required_blocks == 0) {
778
- memset(mac, 0xd0, ABYTES);
779
- memset(c, 0, m_len);
780
- return -1;
781
- }
782
-
783
- gh_init(&sth);
784
-
785
- memcpy(j, npub, NPUBBYTES);
786
- STORE32_BE(j + NPUBBYTES, 2);
787
-
788
- aes_gcm_encrypt_generic(st, &sth, mac, c, m, m_len, ad, ad_len, j);
789
-
790
- if (maclen_p != NULL) {
791
- *maclen_p = ABYTES;
792
- }
793
- return 0;
794
- }
795
-
796
- int
797
- crypto_aead_aes256gcm_encrypt(unsigned char *c, unsigned long long *clen_p, const unsigned char *m,
798
- unsigned long long m_len, const unsigned char *ad,
799
- unsigned long long ad_len, const unsigned char *nsec,
800
- const unsigned char *npub, const unsigned char *k)
801
- {
802
- const int ret = crypto_aead_aes256gcm_encrypt_detached(c, c + m_len, NULL, m, m_len, ad, ad_len,
803
- nsec, npub, k);
804
- if (clen_p != NULL) {
805
- if (ret == 0) {
806
- *clen_p = m_len + crypto_aead_aes256gcm_ABYTES;
807
- } else {
808
- *clen_p = 0;
809
- }
810
- }
811
- return ret;
812
- }
813
-
814
- int
815
- crypto_aead_aes256gcm_encrypt_detached(unsigned char *c, unsigned char *mac,
816
- unsigned long long *maclen_p, const unsigned char *m,
817
- unsigned long long m_len, const unsigned char *ad,
818
- unsigned long long ad_len, const unsigned char *nsec,
819
- const unsigned char *npub, const unsigned char *k)
820
- {
821
- CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;
822
- int ret;
823
-
824
- PREFETCH_WRITE(c);
825
- PREFETCH_READ(m);
826
- PREFETCH_READ(ad);
827
-
828
- crypto_aead_aes256gcm_beforenm(&st, k);
829
- ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, mac, maclen_p, m, m_len, ad, ad_len,
830
- nsec, npub, &st);
831
- sodium_memzero(&st, sizeof st);
832
-
833
- return ret;
834
- }
835
-
836
- int
837
- crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen_p,
838
- const unsigned char *m, unsigned long long mlen,
839
- const unsigned char *ad, unsigned long long adlen,
840
- const unsigned char *nsec, const unsigned char *npub,
841
- const crypto_aead_aes256gcm_state *st_)
842
- {
843
- int ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, c + mlen, NULL, m, mlen, ad, adlen,
844
- nsec, npub, st_);
845
- if (clen_p != NULL) {
846
- *clen_p = mlen + crypto_aead_aes256gcm_ABYTES;
847
- }
848
- return ret;
849
- }
850
-
851
- static int
852
- crypto_aead_aes256gcm_verify_mac(unsigned char *nsec, const unsigned char *c,
853
- unsigned long long c_len_, const unsigned char *mac,
854
- const unsigned char *ad, unsigned long long ad_len_,
855
- const unsigned char *npub, const crypto_aead_aes256gcm_state *st_)
856
- {
857
- const State *st = (const State *) (const void *) st_;
858
- GHash sth;
859
- BlockVec final_block;
860
- CRYPTO_ALIGN(16) unsigned char j[16];
861
- CRYPTO_ALIGN(16) unsigned char computed_mac[16];
862
- CRYPTO_ALIGN(16) unsigned char last_block[16];
863
- size_t gh_required_blocks;
864
- size_t left;
865
- const size_t ad_len = (size_t) ad_len_;
866
- const size_t c_len = (size_t) c_len_;
867
- int ret;
868
-
869
- (void) nsec;
870
- if (ad_len_ > SODIUM_SIZE_MAX || c_len_ > SODIUM_SIZE_MAX) {
871
- sodium_misuse();
872
- }
873
- gh_required_blocks = required_blocks(ad_len, c_len);
874
- if (gh_required_blocks == 0) {
875
- return -1;
876
- }
877
-
878
- gh_init(&sth);
879
-
880
- memcpy(j, npub, NPUBBYTES);
881
- STORE32_BE(j + NPUBBYTES, 2);
882
-
883
- gh_ad_blocks(st, &sth, ad, ad_len & ~15);
884
- left = ad_len & 15;
885
- if (left != 0) {
886
- unsigned char pad[16];
887
-
888
- memset(pad, 0, sizeof pad);
889
- memcpy(pad, ad + ad_len - left, left);
890
- gh_ad_blocks(st, &sth, pad, sizeof pad);
891
- }
892
-
893
- gh_ad_blocks(st, &sth, c, c_len & ~15);
894
- left = c_len & 15;
895
- if (left != 0) {
896
- unsigned char pad[16];
897
-
898
- memset(pad, 0, sizeof pad);
899
- memcpy(pad, c + c_len - left, left);
900
- gh_ad_blocks(st, &sth, pad, sizeof pad);
901
- }
902
- final_block = REV128(SET64x2(ad_len * 8, c_len * 8));
903
- STORE32_BE(j + NPUBBYTES, 1);
904
- encrypt(st, computed_mac, j);
905
- STORE128(last_block, final_block);
906
- gh_ad_blocks(st, &sth, last_block, 16);
907
- STORE128(computed_mac, XOR128(LOAD128(computed_mac), REV128(sth.acc)));
908
-
909
- ret = crypto_verify_16(mac, computed_mac);
910
- sodium_memzero(computed_mac, sizeof computed_mac);
911
-
912
- return ret;
913
- }
914
-
915
- int
916
- crypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char *nsec,
917
- const unsigned char *c, unsigned long long c_len_,
918
- const unsigned char *mac, const unsigned char *ad,
919
- unsigned long long ad_len_,
920
- const unsigned char *npub,
921
- const crypto_aead_aes256gcm_state *st_)
922
- {
923
- const State *st = (const State *) (const void *) st_;
924
- GHash sth;
925
- CRYPTO_ALIGN(16) unsigned char j[16];
926
- unsigned char computed_mac[16];
927
- size_t gh_required_blocks;
928
- const size_t ad_len = (size_t) ad_len_;
929
- const size_t c_len = (size_t) c_len_;
930
- const size_t m_len = c_len;
931
-
932
- (void) nsec;
933
- if (ad_len_ > SODIUM_SIZE_MAX || c_len_ > SODIUM_SIZE_MAX) {
934
- sodium_misuse();
935
- }
936
- if (m == NULL) {
937
- return crypto_aead_aes256gcm_verify_mac(nsec, c, c_len, mac, ad, ad_len, npub, st_);
938
- }
939
- gh_required_blocks = required_blocks(ad_len, m_len);
940
- if (gh_required_blocks == 0) {
941
- return -1;
942
- }
943
-
944
- gh_init(&sth);
945
-
946
- memcpy(j, npub, NPUBBYTES);
947
- STORE32_BE(j + NPUBBYTES, 2);
948
-
949
- aes_gcm_decrypt_generic(st, &sth, computed_mac, m, c, m_len, ad, ad_len, j);
950
-
951
- if (crypto_verify_16(mac, computed_mac) != 0) {
952
- sodium_memzero(computed_mac, sizeof computed_mac);
953
- memset(m, 0xd0, m_len);
954
- return -1;
955
- }
956
- return 0;
957
- }
958
-
959
- int
960
- crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen_p,
961
- unsigned char *nsec, const unsigned char *c,
962
- unsigned long long clen, const unsigned char *ad,
963
- unsigned long long adlen, const unsigned char *npub,
964
- const crypto_aead_aes256gcm_state *st_)
965
- {
966
- unsigned long long mlen = 0ULL;
967
- int ret = -1;
968
-
969
- if (clen >= ABYTES) {
970
- ret = crypto_aead_aes256gcm_decrypt_detached_afternm(
971
- m, nsec, c, clen - ABYTES, c + clen - ABYTES, ad, adlen, npub, st_);
972
- }
973
- if (mlen_p != NULL) {
974
- if (ret == 0) {
975
- mlen = clen - ABYTES;
976
- }
977
- *mlen_p = mlen;
978
- }
979
- return ret;
980
- }
981
-
982
- int
983
- crypto_aead_aes256gcm_decrypt_detached(unsigned char *m, unsigned char *nsec,
984
- const unsigned char *c, unsigned long long clen,
985
- const unsigned char *mac, const unsigned char *ad,
986
- unsigned long long adlen, const unsigned char *npub,
987
- const unsigned char *k)
988
- {
989
- CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;
990
-
991
- PREFETCH_WRITE(m);
992
- PREFETCH_READ(c);
993
- PREFETCH_READ(ad);
994
-
995
- crypto_aead_aes256gcm_beforenm(&st, k);
996
-
997
- return crypto_aead_aes256gcm_decrypt_detached_afternm(
998
- m, nsec, c, clen, mac, ad, adlen, npub, (const crypto_aead_aes256gcm_state *) &st);
999
- }
1000
-
1001
- int
1002
- crypto_aead_aes256gcm_decrypt(unsigned char *m, unsigned long long *mlen_p, unsigned char *nsec,
1003
- const unsigned char *c, unsigned long long clen,
1004
- const unsigned char *ad, unsigned long long adlen,
1005
- const unsigned char *npub, const unsigned char *k)
1006
- {
1007
- CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;
1008
- int ret;
1009
-
1010
- PREFETCH_WRITE(m);
1011
- PREFETCH_READ(c);
1012
- PREFETCH_READ(ad);
1013
-
1014
- crypto_aead_aes256gcm_beforenm(&st, k);
1015
-
1016
- ret = crypto_aead_aes256gcm_decrypt_afternm(m, mlen_p, nsec, c, clen, ad, adlen, npub,
1017
- (const crypto_aead_aes256gcm_state *) &st);
1018
- sodium_memzero(&st, sizeof st);
1019
-
1020
- return ret;
1021
- }
1022
-
1023
- int
1024
- crypto_aead_aes256gcm_is_available(void)
1025
- {
1026
- return sodium_runtime_has_armcrypto();
1027
- }
1028
-
1029
- #ifdef __clang__
1030
- #pragma clang attribute pop
1031
- #endif
1032
-
1033
- #endif