react-native-quick-crypto 1.0.0-beta.2 → 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 (462) hide show
  1. package/QuickCrypto.podspec +143 -7
  2. package/README.md +12 -6
  3. package/android/CMakeLists.txt +82 -21
  4. package/android/build.gradle +47 -4
  5. package/android/src/main/cpp/cpp-adapter.cpp +3 -10
  6. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +13 -10
  7. package/app.plugin.js +3 -0
  8. package/cpp/blake3/HybridBlake3.cpp +118 -0
  9. package/cpp/blake3/HybridBlake3.hpp +35 -0
  10. package/cpp/cipher/CCMCipher.cpp +199 -0
  11. package/cpp/cipher/CCMCipher.hpp +26 -0
  12. package/cpp/cipher/ChaCha20Cipher.cpp +97 -0
  13. package/cpp/cipher/ChaCha20Cipher.hpp +25 -0
  14. package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +170 -0
  15. package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +30 -0
  16. package/cpp/cipher/HybridCipher.cpp +322 -0
  17. package/cpp/cipher/HybridCipher.hpp +68 -0
  18. package/cpp/cipher/HybridCipherFactory.hpp +97 -0
  19. package/cpp/cipher/OCBCipher.cpp +55 -0
  20. package/cpp/cipher/OCBCipher.hpp +19 -0
  21. package/cpp/cipher/XSalsa20Cipher.cpp +61 -0
  22. package/cpp/cipher/XSalsa20Cipher.hpp +33 -0
  23. package/cpp/ec/HybridEcKeyPair.cpp +428 -0
  24. package/cpp/ec/HybridEcKeyPair.hpp +48 -0
  25. package/cpp/ed25519/HybridEdKeyPair.cpp +300 -0
  26. package/cpp/ed25519/HybridEdKeyPair.hpp +63 -0
  27. package/cpp/hash/HybridHash.cpp +185 -0
  28. package/cpp/hash/HybridHash.hpp +43 -0
  29. package/cpp/hmac/HybridHmac.cpp +95 -0
  30. package/cpp/hmac/HybridHmac.hpp +31 -0
  31. package/cpp/keys/HybridKeyObjectHandle.cpp +243 -0
  32. package/cpp/keys/HybridKeyObjectHandle.hpp +42 -0
  33. package/cpp/keys/KeyObjectData.cpp +226 -0
  34. package/cpp/keys/KeyObjectData.hpp +71 -0
  35. package/cpp/keys/node.h +5 -0
  36. package/cpp/pbkdf2/HybridPbkdf2.cpp +51 -0
  37. package/cpp/pbkdf2/HybridPbkdf2.hpp +24 -0
  38. package/cpp/random/HybridRandom.cpp +32 -18
  39. package/cpp/random/HybridRandom.hpp +18 -30
  40. package/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
  41. package/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
  42. package/cpp/utils/Macros.hpp +68 -0
  43. package/cpp/utils/Utils.hpp +53 -1
  44. package/deps/blake3/.cargo/config.toml +2 -0
  45. package/deps/blake3/.git-blame-ignore-revs +2 -0
  46. package/deps/blake3/.github/workflows/build_b3sum.py +38 -0
  47. package/deps/blake3/.github/workflows/ci.yml +491 -0
  48. package/deps/blake3/.github/workflows/tag.yml +43 -0
  49. package/deps/blake3/.github/workflows/upload_github_release_asset.py +73 -0
  50. package/deps/blake3/CONTRIBUTING.md +31 -0
  51. package/deps/blake3/Cargo.toml +135 -0
  52. package/deps/blake3/LICENSE_A2 +202 -0
  53. package/deps/blake3/LICENSE_A2LLVM +219 -0
  54. package/deps/blake3/LICENSE_CC0 +121 -0
  55. package/deps/blake3/README.md +229 -0
  56. package/deps/blake3/b3sum/Cargo.lock +513 -0
  57. package/deps/blake3/b3sum/Cargo.toml +26 -0
  58. package/deps/blake3/b3sum/README.md +72 -0
  59. package/deps/blake3/b3sum/src/main.rs +564 -0
  60. package/deps/blake3/b3sum/src/unit_tests.rs +235 -0
  61. package/deps/blake3/b3sum/tests/cli_tests.rs +680 -0
  62. package/deps/blake3/b3sum/what_does_check_do.md +176 -0
  63. package/deps/blake3/benches/bench.rs +623 -0
  64. package/deps/blake3/build.rs +389 -0
  65. package/deps/blake3/c/CMakeLists.txt +383 -0
  66. package/deps/blake3/c/CMakePresets.json +73 -0
  67. package/deps/blake3/c/Makefile.testing +82 -0
  68. package/deps/blake3/c/README.md +403 -0
  69. package/deps/blake3/c/blake3-config.cmake.in +14 -0
  70. package/deps/blake3/c/blake3.c +650 -0
  71. package/deps/blake3/c/blake3.h +86 -0
  72. package/deps/blake3/c/blake3_avx2.c +326 -0
  73. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +1815 -0
  74. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +1817 -0
  75. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +1828 -0
  76. package/deps/blake3/c/blake3_avx512.c +1388 -0
  77. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +4824 -0
  78. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +2615 -0
  79. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +2634 -0
  80. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +32 -0
  81. package/deps/blake3/c/blake3_c_rust_bindings/README.md +4 -0
  82. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +477 -0
  83. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +253 -0
  84. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +31 -0
  85. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +333 -0
  86. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +696 -0
  87. package/deps/blake3/c/blake3_dispatch.c +332 -0
  88. package/deps/blake3/c/blake3_impl.h +333 -0
  89. package/deps/blake3/c/blake3_neon.c +366 -0
  90. package/deps/blake3/c/blake3_portable.c +160 -0
  91. package/deps/blake3/c/blake3_sse2.c +566 -0
  92. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +2291 -0
  93. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +2332 -0
  94. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
  95. package/deps/blake3/c/blake3_sse41.c +560 -0
  96. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +2028 -0
  97. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +2069 -0
  98. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +2089 -0
  99. package/deps/blake3/c/blake3_tbb.cpp +37 -0
  100. package/deps/blake3/c/dependencies/CMakeLists.txt +3 -0
  101. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +28 -0
  102. package/deps/blake3/c/example.c +36 -0
  103. package/deps/blake3/c/example_tbb.c +57 -0
  104. package/deps/blake3/c/libblake3.pc.in +12 -0
  105. package/deps/blake3/c/main.c +166 -0
  106. package/deps/blake3/c/test.py +97 -0
  107. package/deps/blake3/media/B3.svg +70 -0
  108. package/deps/blake3/media/BLAKE3.svg +85 -0
  109. package/deps/blake3/media/speed.svg +1474 -0
  110. package/deps/blake3/reference_impl/Cargo.toml +8 -0
  111. package/deps/blake3/reference_impl/README.md +14 -0
  112. package/deps/blake3/reference_impl/reference_impl.rs +374 -0
  113. package/deps/blake3/src/ffi_avx2.rs +65 -0
  114. package/deps/blake3/src/ffi_avx512.rs +169 -0
  115. package/deps/blake3/src/ffi_neon.rs +82 -0
  116. package/deps/blake3/src/ffi_sse2.rs +126 -0
  117. package/deps/blake3/src/ffi_sse41.rs +126 -0
  118. package/deps/blake3/src/guts.rs +60 -0
  119. package/deps/blake3/src/hazmat.rs +704 -0
  120. package/deps/blake3/src/io.rs +64 -0
  121. package/deps/blake3/src/join.rs +92 -0
  122. package/deps/blake3/src/lib.rs +1835 -0
  123. package/deps/blake3/src/platform.rs +587 -0
  124. package/deps/blake3/src/portable.rs +198 -0
  125. package/deps/blake3/src/rust_avx2.rs +474 -0
  126. package/deps/blake3/src/rust_sse2.rs +775 -0
  127. package/deps/blake3/src/rust_sse41.rs +766 -0
  128. package/deps/blake3/src/test.rs +1049 -0
  129. package/deps/blake3/src/traits.rs +227 -0
  130. package/deps/blake3/src/wasm32_simd.rs +794 -0
  131. package/deps/blake3/test_vectors/Cargo.toml +19 -0
  132. package/deps/blake3/test_vectors/cross_test.sh +25 -0
  133. package/deps/blake3/test_vectors/src/bin/generate.rs +4 -0
  134. package/deps/blake3/test_vectors/src/lib.rs +350 -0
  135. package/deps/blake3/test_vectors/test_vectors.json +217 -0
  136. package/deps/blake3/tools/compiler_version/Cargo.toml +7 -0
  137. package/deps/blake3/tools/compiler_version/build.rs +6 -0
  138. package/deps/blake3/tools/compiler_version/src/main.rs +27 -0
  139. package/deps/blake3/tools/instruction_set_support/Cargo.toml +6 -0
  140. package/deps/blake3/tools/instruction_set_support/src/main.rs +10 -0
  141. package/deps/blake3/tools/release.md +16 -0
  142. package/deps/fastpbkdf2/fastpbkdf2.c +356 -0
  143. package/deps/fastpbkdf2/fastpbkdf2.h +68 -0
  144. package/deps/ncrypto/ncrypto.cc +4679 -0
  145. package/deps/ncrypto/ncrypto.h +1625 -0
  146. package/lib/commonjs/blake3.js +98 -0
  147. package/lib/commonjs/blake3.js.map +1 -0
  148. package/lib/commonjs/cipher.js +180 -0
  149. package/lib/commonjs/cipher.js.map +1 -0
  150. package/lib/commonjs/ec.js +344 -0
  151. package/lib/commonjs/ec.js.map +1 -0
  152. package/lib/commonjs/ed.js +185 -0
  153. package/lib/commonjs/ed.js.map +1 -0
  154. package/lib/commonjs/expo-plugin/@types.js +2 -0
  155. package/lib/commonjs/expo-plugin/@types.js.map +1 -0
  156. package/lib/commonjs/expo-plugin/withRNQC.js +25 -0
  157. package/lib/commonjs/expo-plugin/withRNQC.js.map +1 -0
  158. package/lib/commonjs/expo-plugin/withSodiumAndroid.js +25 -0
  159. package/lib/commonjs/expo-plugin/withSodiumAndroid.js.map +1 -0
  160. package/lib/commonjs/expo-plugin/withSodiumIos.js +26 -0
  161. package/lib/commonjs/expo-plugin/withSodiumIos.js.map +1 -0
  162. package/lib/commonjs/expo-plugin/withXCode.js +51 -0
  163. package/lib/commonjs/expo-plugin/withXCode.js.map +1 -0
  164. package/lib/commonjs/hash.js +215 -0
  165. package/lib/commonjs/hash.js.map +1 -0
  166. package/lib/commonjs/hmac.js +109 -0
  167. package/lib/commonjs/hmac.js.map +1 -0
  168. package/lib/commonjs/index.js +152 -32
  169. package/lib/commonjs/index.js.map +1 -1
  170. package/lib/commonjs/keys/classes.js +250 -0
  171. package/lib/commonjs/keys/classes.js.map +1 -0
  172. package/lib/commonjs/keys/generateKeyPair.js +102 -0
  173. package/lib/commonjs/keys/generateKeyPair.js.map +1 -0
  174. package/lib/commonjs/keys/index.js +89 -0
  175. package/lib/commonjs/keys/index.js.map +1 -0
  176. package/lib/commonjs/keys/signVerify.js +41 -0
  177. package/lib/commonjs/keys/signVerify.js.map +1 -0
  178. package/lib/commonjs/keys/utils.js +123 -0
  179. package/lib/commonjs/keys/utils.js.map +1 -0
  180. package/lib/commonjs/pbkdf2.js +89 -0
  181. package/lib/commonjs/pbkdf2.js.map +1 -0
  182. package/lib/commonjs/random.js +9 -3
  183. package/lib/commonjs/random.js.map +1 -1
  184. package/lib/commonjs/rsa.js +129 -0
  185. package/lib/commonjs/rsa.js.map +1 -0
  186. package/lib/commonjs/specs/blake3.nitro.js +6 -0
  187. package/lib/commonjs/specs/blake3.nitro.js.map +1 -0
  188. package/lib/commonjs/specs/cipher.nitro.js +6 -0
  189. package/lib/commonjs/specs/cipher.nitro.js.map +1 -0
  190. package/lib/commonjs/specs/ecKeyPair.nitro.js +6 -0
  191. package/lib/commonjs/specs/ecKeyPair.nitro.js.map +1 -0
  192. package/lib/commonjs/specs/edKeyPair.nitro.js +6 -0
  193. package/lib/commonjs/specs/edKeyPair.nitro.js.map +1 -0
  194. package/lib/commonjs/specs/hash.nitro.js +6 -0
  195. package/lib/commonjs/specs/hash.nitro.js.map +1 -0
  196. package/lib/commonjs/specs/hmac.nitro.js +6 -0
  197. package/lib/commonjs/specs/hmac.nitro.js.map +1 -0
  198. package/lib/commonjs/specs/keyObjectHandle.nitro.js +6 -0
  199. package/lib/commonjs/specs/keyObjectHandle.nitro.js.map +1 -0
  200. package/lib/commonjs/specs/pbkdf2.nitro.js +6 -0
  201. package/lib/commonjs/specs/pbkdf2.nitro.js.map +1 -0
  202. package/lib/commonjs/specs/rsaKeyPair.nitro.js +6 -0
  203. package/lib/commonjs/specs/rsaKeyPair.nitro.js.map +1 -0
  204. package/lib/commonjs/subtle.js +365 -0
  205. package/lib/commonjs/subtle.js.map +1 -0
  206. package/lib/commonjs/utils/cipher.js +64 -0
  207. package/lib/commonjs/utils/cipher.js.map +1 -0
  208. package/lib/commonjs/utils/conversion.js +140 -6
  209. package/lib/commonjs/utils/conversion.js.map +1 -1
  210. package/lib/commonjs/utils/errors.js +14 -0
  211. package/lib/commonjs/utils/errors.js.map +1 -0
  212. package/lib/commonjs/utils/hashnames.js +91 -0
  213. package/lib/commonjs/utils/hashnames.js.map +1 -0
  214. package/lib/commonjs/utils/index.js +65 -5
  215. package/lib/commonjs/utils/index.js.map +1 -1
  216. package/lib/commonjs/utils/noble.js +82 -0
  217. package/lib/commonjs/utils/noble.js.map +1 -0
  218. package/lib/commonjs/utils/types.js +52 -0
  219. package/lib/commonjs/utils/types.js.map +1 -1
  220. package/lib/commonjs/utils/validation.js +98 -0
  221. package/lib/commonjs/utils/validation.js.map +1 -0
  222. package/lib/module/blake3.js +90 -0
  223. package/lib/module/blake3.js.map +1 -0
  224. package/lib/module/cipher.js +173 -0
  225. package/lib/module/cipher.js.map +1 -0
  226. package/lib/module/ec.js +336 -0
  227. package/lib/module/ec.js.map +1 -0
  228. package/lib/module/ed.js +178 -0
  229. package/lib/module/ed.js.map +1 -0
  230. package/lib/module/expo-plugin/@types.js +2 -0
  231. package/lib/module/expo-plugin/@types.js.map +1 -0
  232. package/lib/module/expo-plugin/withRNQC.js +21 -0
  233. package/lib/module/expo-plugin/withRNQC.js.map +1 -0
  234. package/lib/module/expo-plugin/withSodiumAndroid.js +20 -0
  235. package/lib/module/expo-plugin/withSodiumAndroid.js.map +1 -0
  236. package/lib/module/expo-plugin/withSodiumIos.js +20 -0
  237. package/lib/module/expo-plugin/withSodiumIos.js.map +1 -0
  238. package/lib/module/expo-plugin/withXCode.js +46 -0
  239. package/lib/module/expo-plugin/withXCode.js.map +1 -0
  240. package/lib/module/hash.js +207 -0
  241. package/lib/module/hash.js.map +1 -0
  242. package/lib/module/hmac.js +104 -0
  243. package/lib/module/hmac.js.map +1 -0
  244. package/lib/module/index.js +33 -29
  245. package/lib/module/index.js.map +1 -1
  246. package/lib/module/keys/classes.js +241 -0
  247. package/lib/module/keys/classes.js.map +1 -0
  248. package/lib/module/keys/generateKeyPair.js +96 -0
  249. package/lib/module/keys/generateKeyPair.js.map +1 -0
  250. package/lib/module/keys/index.js +32 -0
  251. package/lib/module/keys/index.js.map +1 -0
  252. package/lib/module/keys/signVerify.js +41 -0
  253. package/lib/module/keys/signVerify.js.map +1 -0
  254. package/lib/module/keys/utils.js +114 -0
  255. package/lib/module/keys/utils.js.map +1 -0
  256. package/lib/module/pbkdf2.js +83 -0
  257. package/lib/module/pbkdf2.js.map +1 -0
  258. package/lib/module/random.js +7 -1
  259. package/lib/module/random.js.map +1 -1
  260. package/lib/module/rsa.js +123 -0
  261. package/lib/module/rsa.js.map +1 -0
  262. package/lib/module/specs/blake3.nitro.js +4 -0
  263. package/lib/module/specs/blake3.nitro.js.map +1 -0
  264. package/lib/module/specs/cipher.nitro.js +4 -0
  265. package/lib/module/specs/cipher.nitro.js.map +1 -0
  266. package/lib/module/specs/ecKeyPair.nitro.js +4 -0
  267. package/lib/module/specs/ecKeyPair.nitro.js.map +1 -0
  268. package/lib/module/specs/edKeyPair.nitro.js +4 -0
  269. package/lib/module/specs/edKeyPair.nitro.js.map +1 -0
  270. package/lib/module/specs/hash.nitro.js +4 -0
  271. package/lib/module/specs/hash.nitro.js.map +1 -0
  272. package/lib/module/specs/hmac.nitro.js +4 -0
  273. package/lib/module/specs/hmac.nitro.js.map +1 -0
  274. package/lib/module/specs/keyObjectHandle.nitro.js +4 -0
  275. package/lib/module/specs/keyObjectHandle.nitro.js.map +1 -0
  276. package/lib/module/specs/pbkdf2.nitro.js +4 -0
  277. package/lib/module/specs/pbkdf2.nitro.js.map +1 -0
  278. package/lib/module/specs/rsaKeyPair.nitro.js +4 -0
  279. package/lib/module/specs/rsaKeyPair.nitro.js.map +1 -0
  280. package/lib/module/subtle.js +360 -0
  281. package/lib/module/subtle.js.map +1 -0
  282. package/lib/module/utils/cipher.js +56 -0
  283. package/lib/module/utils/cipher.js.map +1 -0
  284. package/lib/module/utils/conversion.js +120 -8
  285. package/lib/module/utils/conversion.js.map +1 -1
  286. package/lib/module/utils/errors.js +10 -0
  287. package/lib/module/utils/errors.js.map +1 -0
  288. package/lib/module/utils/hashnames.js +89 -0
  289. package/lib/module/utils/hashnames.js.map +1 -0
  290. package/lib/module/utils/index.js +6 -5
  291. package/lib/module/utils/index.js.map +1 -1
  292. package/lib/module/utils/noble.js +76 -0
  293. package/lib/module/utils/noble.js.map +1 -0
  294. package/lib/module/utils/types.js +53 -0
  295. package/lib/module/utils/types.js.map +1 -1
  296. package/lib/module/utils/validation.js +87 -0
  297. package/lib/module/utils/validation.js.map +1 -0
  298. package/lib/tsconfig.tsbuildinfo +1 -1
  299. package/lib/typescript/blake3.d.ts +33 -0
  300. package/lib/typescript/blake3.d.ts.map +1 -0
  301. package/lib/typescript/cipher.d.ts +60 -0
  302. package/lib/typescript/cipher.d.ts.map +1 -0
  303. package/lib/typescript/ec.d.ts +13 -0
  304. package/lib/typescript/ec.d.ts.map +1 -0
  305. package/lib/typescript/ed.d.ts +43 -0
  306. package/lib/typescript/ed.d.ts.map +1 -0
  307. package/lib/typescript/expo-plugin/@types.d.ts +8 -0
  308. package/lib/typescript/expo-plugin/@types.d.ts.map +1 -0
  309. package/lib/typescript/expo-plugin/withRNQC.d.ts +4 -0
  310. package/lib/typescript/expo-plugin/withRNQC.d.ts.map +1 -0
  311. package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts +4 -0
  312. package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts.map +1 -0
  313. package/lib/typescript/expo-plugin/withSodiumIos.d.ts +4 -0
  314. package/lib/typescript/expo-plugin/withSodiumIos.d.ts.map +1 -0
  315. package/lib/typescript/expo-plugin/withXCode.d.ts +9 -0
  316. package/lib/typescript/expo-plugin/withXCode.d.ts.map +1 -0
  317. package/lib/typescript/hash.d.ts +122 -0
  318. package/lib/typescript/hash.d.ts.map +1 -0
  319. package/lib/typescript/hmac.d.ts +66 -0
  320. package/lib/typescript/hmac.d.ts.map +1 -0
  321. package/lib/typescript/index.d.ts +110 -9
  322. package/lib/typescript/index.d.ts.map +1 -1
  323. package/lib/typescript/keys/classes.d.ts +79 -0
  324. package/lib/typescript/keys/classes.d.ts.map +1 -0
  325. package/lib/typescript/keys/generateKeyPair.d.ts +6 -0
  326. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -0
  327. package/lib/typescript/keys/index.d.ts +7 -0
  328. package/lib/typescript/keys/index.d.ts.map +1 -0
  329. package/lib/typescript/keys/signVerify.d.ts +1 -0
  330. package/lib/typescript/keys/signVerify.d.ts.map +1 -0
  331. package/lib/typescript/keys/utils.d.ts +34 -0
  332. package/lib/typescript/keys/utils.d.ts.map +1 -0
  333. package/lib/typescript/pbkdf2.d.ts +12 -0
  334. package/lib/typescript/pbkdf2.d.ts.map +1 -0
  335. package/lib/typescript/random.d.ts +11 -5
  336. package/lib/typescript/random.d.ts.map +1 -1
  337. package/lib/typescript/rsa.d.ts +10 -0
  338. package/lib/typescript/rsa.d.ts.map +1 -0
  339. package/lib/typescript/specs/blake3.nitro.d.ts +15 -0
  340. package/lib/typescript/specs/blake3.nitro.d.ts.map +1 -0
  341. package/lib/typescript/specs/cipher.nitro.d.ts +29 -0
  342. package/lib/typescript/specs/cipher.nitro.d.ts.map +1 -0
  343. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +20 -0
  344. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -0
  345. package/lib/typescript/specs/edKeyPair.nitro.d.ts +17 -0
  346. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -0
  347. package/lib/typescript/specs/hash.nitro.d.ts +13 -0
  348. package/lib/typescript/specs/hash.nitro.d.ts.map +1 -0
  349. package/lib/typescript/specs/hmac.nitro.d.ts +10 -0
  350. package/lib/typescript/specs/hmac.nitro.d.ts.map +1 -0
  351. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +14 -0
  352. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -0
  353. package/lib/typescript/specs/pbkdf2.nitro.d.ts +9 -0
  354. package/lib/typescript/specs/pbkdf2.nitro.d.ts.map +1 -0
  355. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts +20 -0
  356. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts.map +1 -0
  357. package/lib/typescript/subtle.d.ts +17 -0
  358. package/lib/typescript/subtle.d.ts.map +1 -0
  359. package/lib/typescript/utils/cipher.d.ts +7 -0
  360. package/lib/typescript/utils/cipher.d.ts.map +1 -0
  361. package/lib/typescript/utils/conversion.d.ts +24 -2
  362. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  363. package/lib/typescript/utils/errors.d.ts +7 -0
  364. package/lib/typescript/utils/errors.d.ts.map +1 -0
  365. package/lib/typescript/utils/hashnames.d.ts +13 -0
  366. package/lib/typescript/utils/hashnames.d.ts.map +1 -0
  367. package/lib/typescript/utils/index.d.ts +6 -5
  368. package/lib/typescript/utils/index.d.ts.map +1 -1
  369. package/lib/typescript/utils/noble.d.ts +19 -0
  370. package/lib/typescript/utils/noble.d.ts.map +1 -0
  371. package/lib/typescript/utils/types.d.ts +252 -2
  372. package/lib/typescript/utils/types.d.ts.map +1 -1
  373. package/lib/typescript/utils/validation.d.ts +13 -0
  374. package/lib/typescript/utils/validation.d.ts.map +1 -0
  375. package/nitrogen/generated/.gitattributes +1 -0
  376. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +47 -4
  377. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +4 -3
  378. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +144 -0
  379. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +25 -0
  380. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +35 -0
  381. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +11 -8
  382. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +11 -3
  383. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +5 -3
  384. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +16 -7
  385. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +135 -0
  386. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +12 -0
  387. package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +84 -0
  388. package/nitrogen/generated/shared/c++/CipherArgs.hpp +86 -0
  389. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +28 -0
  390. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +76 -0
  391. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +21 -0
  392. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +67 -0
  393. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +28 -0
  394. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +76 -0
  395. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +29 -0
  396. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +77 -0
  397. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +30 -0
  398. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +75 -0
  399. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +26 -0
  400. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +75 -0
  401. package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +23 -0
  402. package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +66 -0
  403. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +26 -0
  404. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +92 -0
  405. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +22 -0
  406. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +66 -0
  407. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +2 -3
  408. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +9 -6
  409. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +29 -0
  410. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +77 -0
  411. package/nitrogen/generated/shared/c++/JWK.hpp +161 -0
  412. package/nitrogen/generated/shared/c++/JWKkty.hpp +84 -0
  413. package/nitrogen/generated/shared/c++/JWKuse.hpp +76 -0
  414. package/nitrogen/generated/shared/c++/KFormatType.hpp +63 -0
  415. package/nitrogen/generated/shared/c++/KeyDetail.hpp +92 -0
  416. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +64 -0
  417. package/nitrogen/generated/shared/c++/KeyObject.hpp +67 -0
  418. package/nitrogen/generated/shared/c++/KeyType.hpp +63 -0
  419. package/nitrogen/generated/shared/c++/KeyUsage.hpp +116 -0
  420. package/nitrogen/generated/shared/c++/NamedCurve.hpp +80 -0
  421. package/package.json +66 -39
  422. package/src/blake3.ts +123 -0
  423. package/src/cipher.ts +335 -0
  424. package/src/ec.ts +432 -0
  425. package/src/ed.ts +256 -0
  426. package/src/expo-plugin/@types.ts +7 -0
  427. package/src/expo-plugin/withRNQC.ts +23 -0
  428. package/src/expo-plugin/withSodiumAndroid.ts +24 -0
  429. package/src/expo-plugin/withSodiumIos.ts +30 -0
  430. package/src/expo-plugin/withXCode.ts +55 -0
  431. package/src/hash.ts +274 -0
  432. package/src/hmac.ts +135 -0
  433. package/src/index.ts +32 -29
  434. package/src/keys/classes.ts +317 -0
  435. package/src/keys/generateKeyPair.ts +145 -0
  436. package/src/keys/index.ts +52 -0
  437. package/src/keys/signVerify.ts +39 -0
  438. package/src/keys/utils.ts +190 -0
  439. package/src/pbkdf2.ts +154 -0
  440. package/src/random.ts +26 -23
  441. package/src/rsa.ts +176 -0
  442. package/src/specs/blake3.nitro.ts +12 -0
  443. package/src/specs/cipher.nitro.ts +25 -0
  444. package/src/specs/ecKeyPair.nitro.ts +38 -0
  445. package/src/specs/edKeyPair.nitro.ts +43 -0
  446. package/src/specs/hash.nitro.ts +10 -0
  447. package/src/specs/hmac.nitro.ts +7 -0
  448. package/src/specs/keyObjectHandle.nitro.ts +31 -0
  449. package/src/specs/pbkdf2.nitro.ts +18 -0
  450. package/src/specs/random.nitro.ts +2 -2
  451. package/src/specs/rsaKeyPair.nitro.ts +33 -0
  452. package/src/subtle.ts +614 -0
  453. package/src/utils/cipher.ts +60 -0
  454. package/src/utils/conversion.ts +143 -9
  455. package/src/utils/errors.ts +15 -0
  456. package/src/utils/hashnames.ts +98 -0
  457. package/src/utils/index.ts +6 -6
  458. package/src/utils/noble.ts +85 -0
  459. package/src/utils/types.ts +423 -3
  460. package/src/utils/validation.ts +130 -0
  461. package/ios/QuickCryptoOnLoad.mm +0 -19
  462. package/lib/module/package.json +0 -1
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Rsa = void 0;
7
+ exports.rsa_generateKeyPair = rsa_generateKeyPair;
8
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
9
+ var _keys = require("./keys");
10
+ var _utils = require("./utils");
11
+ class Rsa {
12
+ constructor(modulusLength, publicExponent, hashAlgorithm) {
13
+ this.native = _reactNativeNitroModules.NitroModules.createHybridObject('RsaKeyPair');
14
+ this.native.setModulusLength(modulusLength);
15
+ this.native.setPublicExponent(publicExponent.buffer.slice(publicExponent.byteOffset, publicExponent.byteOffset + publicExponent.byteLength));
16
+ this.native.setHashAlgorithm(hashAlgorithm);
17
+ }
18
+ async generateKeyPair() {
19
+ await this.native.generateKeyPair();
20
+ return {
21
+ publicKey: this.native.getPublicKey(),
22
+ privateKey: this.native.getPrivateKey()
23
+ };
24
+ }
25
+ generateKeyPairSync() {
26
+ this.native.generateKeyPairSync();
27
+ return {
28
+ publicKey: this.native.getPublicKey(),
29
+ privateKey: this.native.getPrivateKey()
30
+ };
31
+ }
32
+ }
33
+
34
+ // Node API
35
+ exports.Rsa = Rsa;
36
+ async function rsa_generateKeyPair(algorithm, extractable, keyUsages) {
37
+ const {
38
+ name,
39
+ modulusLength,
40
+ publicExponent,
41
+ hash
42
+ } = algorithm;
43
+
44
+ // Validate parameters first
45
+ if (!modulusLength || modulusLength < 256) {
46
+ throw (0, _utils.lazyDOMException)('Invalid key length', 'OperationError');
47
+ }
48
+ if (!publicExponent || publicExponent.length === 0) {
49
+ throw (0, _utils.lazyDOMException)('Invalid public exponent', 'OperationError');
50
+ }
51
+
52
+ // Validate hash algorithm using existing validation function
53
+ let hashName;
54
+ try {
55
+ const normalizedHash = (0, _utils.normalizeHashName)(hash);
56
+ hashName = typeof hash === 'string' ? hash : hash?.name || normalizedHash;
57
+ } catch {
58
+ throw (0, _utils.lazyDOMException)('Invalid Hash Algorithm', 'NotSupportedError');
59
+ }
60
+
61
+ // Validate usages are not empty
62
+ if (keyUsages.length === 0) {
63
+ throw (0, _utils.lazyDOMException)('Usages cannot be empty', 'SyntaxError');
64
+ }
65
+
66
+ // Usage validation based on algorithm type
67
+ switch (name) {
68
+ case 'RSASSA-PKCS1-v1_5':
69
+ if ((0, _utils.hasAnyNotIn)(keyUsages, ['sign', 'verify'])) {
70
+ throw (0, _utils.lazyDOMException)(`Unsupported key usage for a ${name} key`, 'SyntaxError');
71
+ }
72
+ break;
73
+ case 'RSA-PSS':
74
+ if ((0, _utils.hasAnyNotIn)(keyUsages, ['sign', 'verify'])) {
75
+ throw (0, _utils.lazyDOMException)(`Unsupported key usage for a ${name} key`, 'SyntaxError');
76
+ }
77
+ break;
78
+ case 'RSA-OAEP':
79
+ if ((0, _utils.hasAnyNotIn)(keyUsages, ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'])) {
80
+ throw (0, _utils.lazyDOMException)(`Unsupported key usage for a ${name} key`, 'SyntaxError');
81
+ }
82
+ break;
83
+ default:
84
+ throw (0, _utils.lazyDOMException)('The algorithm is not supported', 'NotSupportedError');
85
+ }
86
+
87
+ // Split usages between public and private keys
88
+ let publicUsages = [];
89
+ let privateUsages = [];
90
+ switch (name) {
91
+ case 'RSASSA-PKCS1-v1_5':
92
+ case 'RSA-PSS':
93
+ publicUsages = (0, _utils.getUsagesUnion)(keyUsages, 'verify');
94
+ privateUsages = (0, _utils.getUsagesUnion)(keyUsages, 'sign');
95
+ break;
96
+ case 'RSA-OAEP':
97
+ publicUsages = (0, _utils.getUsagesUnion)(keyUsages, 'encrypt', 'wrapKey');
98
+ privateUsages = (0, _utils.getUsagesUnion)(keyUsages, 'decrypt', 'unwrapKey');
99
+ break;
100
+ }
101
+
102
+ // Validate that private key has usages for CryptoKeyPair
103
+ if (privateUsages.length === 0) {
104
+ throw (0, _utils.lazyDOMException)('Usages cannot be empty', 'SyntaxError');
105
+ }
106
+ const rsa = new Rsa(modulusLength, publicExponent, hashName);
107
+ await rsa.generateKeyPair();
108
+ const keyAlgorithm = {
109
+ name,
110
+ modulusLength,
111
+ publicExponent,
112
+ hash: {
113
+ name: hashName
114
+ }
115
+ };
116
+
117
+ // Create KeyObject instances using the standard createKeyObject method
118
+ const publicKeyData = rsa.native.getPublicKey();
119
+ const pub = _keys.KeyObject.createKeyObject('public', publicKeyData);
120
+ const publicKey = new _keys.CryptoKey(pub, keyAlgorithm, publicUsages, true);
121
+ const privateKeyData = rsa.native.getPrivateKey();
122
+ const priv = _keys.KeyObject.createKeyObject('private', privateKeyData);
123
+ const privateKey = new _keys.CryptoKey(priv, keyAlgorithm, privateUsages, extractable);
124
+ return {
125
+ publicKey,
126
+ privateKey
127
+ };
128
+ }
129
+ //# sourceMappingURL=rsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_keys","_utils","Rsa","constructor","modulusLength","publicExponent","hashAlgorithm","native","NitroModules","createHybridObject","setModulusLength","setPublicExponent","buffer","slice","byteOffset","byteLength","setHashAlgorithm","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","rsa_generateKeyPair","algorithm","extractable","keyUsages","name","hash","lazyDOMException","length","hashName","normalizedHash","normalizeHashName","hasAnyNotIn","publicUsages","privateUsages","getUsagesUnion","rsa","keyAlgorithm","publicKeyData","pub","KeyObject","createKeyObject","CryptoKey","privateKeyData","priv"],"sourceRoot":"../../src","sources":["rsa.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=blake3.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/blake3.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=cipher.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/cipher.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=ecKeyPair.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/ecKeyPair.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=edKeyPair.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/edKeyPair.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=hash.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/hash.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=hmac.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/hmac.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=keyObjectHandle.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/keyObjectHandle.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=pbkdf2.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/pbkdf2.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=rsaKeyPair.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/rsaKeyPair.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,365 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Subtle = void 0;
7
+ exports.isCryptoKeyPair = isCryptoKeyPair;
8
+ exports.subtle = void 0;
9
+ var _safeBuffer = require("safe-buffer");
10
+ var _keys = require("./keys");
11
+ var _conversion = require("./utils/conversion");
12
+ var _errors = require("./utils/errors");
13
+ var _hashnames = require("./utils/hashnames");
14
+ var _validation = require("./utils/validation");
15
+ var _hash = require("./hash");
16
+ var _pbkdf = require("./pbkdf2");
17
+ var _ec = require("./ec");
18
+ var _rsa = require("./rsa");
19
+ /* eslint-disable @typescript-eslint/no-unused-vars */
20
+ // import { pbkdf2DeriveBits } from './pbkdf2';
21
+ // import { aesCipher, aesGenerateKey, aesImportKey, getAlgorithmName } from './aes';
22
+ // import { rsaCipher, rsaExportKey, rsaImportKey, rsaKeyGenerate } from './rsa';
23
+ // import { normalizeAlgorithm, type Operation } from './algorithms';
24
+ // import { hmacImportKey } from './mac';
25
+ // Temporary enums that need to be defined
26
+ var KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
27
+ KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
28
+ KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatSPKI"] = 1] = "kWebCryptoKeyFormatSPKI";
29
+ KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatPKCS8"] = 2] = "kWebCryptoKeyFormatPKCS8";
30
+ return KWebCryptoKeyFormat;
31
+ }(KWebCryptoKeyFormat || {});
32
+ var CipherOrWrapMode = /*#__PURE__*/function (CipherOrWrapMode) {
33
+ CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherEncrypt"] = 0] = "kWebCryptoCipherEncrypt";
34
+ CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherDecrypt"] = 1] = "kWebCryptoCipherDecrypt";
35
+ return CipherOrWrapMode;
36
+ }(CipherOrWrapMode || {}); // Placeholder functions that need to be implemented
37
+ function hasAnyNotIn(usages, allowed) {
38
+ return usages.some(usage => !allowed.includes(usage));
39
+ }
40
+ function normalizeAlgorithm(algorithm, _operation) {
41
+ if (typeof algorithm === 'string') {
42
+ return {
43
+ name: algorithm
44
+ };
45
+ }
46
+ return algorithm;
47
+ }
48
+ function getAlgorithmName(name, length) {
49
+ return `${name}${length}`;
50
+ }
51
+
52
+ // Placeholder implementations for missing functions
53
+ function ecExportKey(_key, _format) {
54
+ throw new Error('ecExportKey not implemented');
55
+ }
56
+ function rsaExportKey(_key, _format) {
57
+ throw new Error('rsaExportKey not implemented');
58
+ }
59
+ function rsaCipher(_mode, _key, _data, _algorithm) {
60
+ throw new Error('rsaCipher not implemented');
61
+ }
62
+ function aesCipher(_mode, _key, _data, _algorithm) {
63
+ throw new Error('aesCipher not implemented');
64
+ }
65
+ async function aesGenerateKey(_algorithm, _extractable, _keyUsages) {
66
+ throw new Error('aesGenerateKey not implemented');
67
+ }
68
+ function rsaImportKey(_format, _data, _algorithm, _extractable, _keyUsages) {
69
+ throw new Error('rsaImportKey not implemented');
70
+ }
71
+ async function hmacImportKey(_algorithm, _format, _data, _extractable, _keyUsages) {
72
+ throw new Error('hmacImportKey not implemented');
73
+ }
74
+ async function aesImportKey(_algorithm, _format, _data, _extractable, _keyUsages) {
75
+ throw new Error('aesImportKey not implemented');
76
+ }
77
+ const exportKeySpki = async key => {
78
+ switch (key.algorithm.name) {
79
+ case 'RSASSA-PKCS1-v1_5':
80
+ // Fall through
81
+ case 'RSA-PSS':
82
+ // Fall through
83
+ case 'RSA-OAEP':
84
+ if (key.type === 'public') {
85
+ return rsaExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI);
86
+ }
87
+ break;
88
+ case 'ECDSA':
89
+ // Fall through
90
+ case 'ECDH':
91
+ if (key.type === 'public') {
92
+ return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI);
93
+ }
94
+ break;
95
+ }
96
+ throw new Error(`Unable to export a spki ${key.algorithm.name} ${key.type} key`);
97
+ };
98
+ const exportKeyPkcs8 = async key => {
99
+ switch (key.algorithm.name) {
100
+ case 'RSASSA-PKCS1-v1_5':
101
+ // Fall through
102
+ case 'RSA-PSS':
103
+ // Fall through
104
+ case 'RSA-OAEP':
105
+ if (key.type === 'private') {
106
+ return rsaExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8);
107
+ }
108
+ break;
109
+ case 'ECDSA':
110
+ // Fall through
111
+ case 'ECDH':
112
+ if (key.type === 'private') {
113
+ return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8);
114
+ }
115
+ break;
116
+ }
117
+ throw new Error(`Unable to export a pkcs8 ${key.algorithm.name} ${key.type} key`);
118
+ };
119
+ const exportKeyRaw = key => {
120
+ switch (key.algorithm.name) {
121
+ case 'ECDSA':
122
+ // Fall through
123
+ case 'ECDH':
124
+ if (key.type === 'public') {
125
+ return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatRaw);
126
+ }
127
+ break;
128
+ case 'AES-CTR':
129
+ // Fall through
130
+ case 'AES-CBC':
131
+ // Fall through
132
+ case 'AES-GCM':
133
+ // Fall through
134
+ case 'AES-KW':
135
+ // Fall through
136
+ case 'HMAC':
137
+ return key.keyObject.export();
138
+ }
139
+ throw (0, _errors.lazyDOMException)(`Unable to export a raw ${key.algorithm.name} ${key.type} key`, 'InvalidAccessError');
140
+ };
141
+ const exportKeyJWK = key => {
142
+ const jwk = key.keyObject.handle.exportJwk({
143
+ key_ops: key.usages,
144
+ ext: key.extractable
145
+ }, true);
146
+ switch (key.algorithm.name) {
147
+ case 'RSASSA-PKCS1-v1_5':
148
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkRsa);
149
+ return jwk;
150
+ case 'RSA-PSS':
151
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkRsaPss);
152
+ return jwk;
153
+ case 'RSA-OAEP':
154
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkRsaOaep);
155
+ return jwk;
156
+ case 'HMAC':
157
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkHmac);
158
+ return jwk;
159
+ case 'ECDSA':
160
+ // Fall through
161
+ case 'ECDH':
162
+ jwk.crv ||= key.algorithm.namedCurve;
163
+ return jwk;
164
+ case 'AES-CTR':
165
+ // Fall through
166
+ case 'AES-CBC':
167
+ // Fall through
168
+ case 'AES-GCM':
169
+ // Fall through
170
+ case 'AES-KW':
171
+ if (key.algorithm.length === undefined) {
172
+ throw (0, _errors.lazyDOMException)(`Algorithm ${key.algorithm.name} missing required length property`, 'InvalidAccessError');
173
+ }
174
+ jwk.alg = getAlgorithmName(key.algorithm.name, key.algorithm.length);
175
+ return jwk;
176
+ default:
177
+ // Fall through
178
+ }
179
+ throw (0, _errors.lazyDOMException)(`JWK export not yet supported: ${key.algorithm.name}`, 'NotSupportedError');
180
+ };
181
+ const importGenericSecretKey = async ({
182
+ name,
183
+ length
184
+ }, format, keyData, extractable, keyUsages) => {
185
+ if (extractable) {
186
+ throw new Error(`${name} keys are not extractable`);
187
+ }
188
+ if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
189
+ throw new Error(`Unsupported key usage for a ${name} key`);
190
+ }
191
+ switch (format) {
192
+ case 'raw':
193
+ {
194
+ if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
195
+ throw new Error(`Unsupported key usage for a ${name} key`);
196
+ }
197
+ const checkLength = typeof keyData === 'string' || _safeBuffer.Buffer.isBuffer(keyData) ? keyData.length * 8 : keyData.byteLength * 8;
198
+ if (length !== undefined && length !== checkLength) {
199
+ throw new Error('Invalid key length');
200
+ }
201
+ const keyObject = (0, _keys.createSecretKey)(keyData);
202
+ return new _keys.CryptoKey(keyObject, {
203
+ name
204
+ }, keyUsages, false);
205
+ }
206
+ }
207
+ throw new Error(`Unable to import ${name} key with format ${format}`);
208
+ };
209
+ const checkCryptoKeyPairUsages = pair => {
210
+ if (pair.privateKey && pair.privateKey instanceof _keys.CryptoKey && pair.privateKey.keyUsages && pair.privateKey.keyUsages.length > 0) {
211
+ return;
212
+ }
213
+ throw (0, _errors.lazyDOMException)('Usages cannot be empty when creating a key.', 'SyntaxError');
214
+ };
215
+
216
+ // Type guard to check if result is CryptoKeyPair
217
+ function isCryptoKeyPair(result) {
218
+ return 'publicKey' in result && 'privateKey' in result;
219
+ }
220
+ const signVerify = (algorithm, key, data, signature) => {
221
+ const usage = signature === undefined ? 'sign' : 'verify';
222
+ algorithm = normalizeAlgorithm(algorithm, usage);
223
+ if (!key.usages.includes(usage) || algorithm.name !== key.algorithm.name) {
224
+ throw (0, _errors.lazyDOMException)(`Unable to use this key to ${usage}`, 'InvalidAccessError');
225
+ }
226
+ switch (algorithm.name) {
227
+ case 'ECDSA':
228
+ return (0, _ec.ecdsaSignVerify)(key, data, algorithm, signature);
229
+ }
230
+ throw (0, _errors.lazyDOMException)(`Unrecognized algorithm name '${algorithm}' for '${usage}'`, 'NotSupportedError');
231
+ };
232
+ const cipherOrWrap = async (mode, algorithm, key, data, op) => {
233
+ if (key.algorithm.name !== algorithm.name || !key.usages.includes(op)) {
234
+ throw (0, _errors.lazyDOMException)('The requested operation is not valid for the provided key', 'InvalidAccessError');
235
+ }
236
+ (0, _validation.validateMaxBufferLength)(data, 'data');
237
+ switch (algorithm.name) {
238
+ case 'RSA-OAEP':
239
+ return rsaCipher(mode, key, data, algorithm);
240
+ case 'AES-CTR':
241
+ // Fall through
242
+ case 'AES-CBC':
243
+ // Fall through
244
+ case 'AES-GCM':
245
+ return aesCipher(mode, key, data, algorithm);
246
+ }
247
+ };
248
+ class Subtle {
249
+ async decrypt(algorithm, key, data) {
250
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'decrypt');
251
+ return cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherDecrypt, normalizedAlgorithm, key, (0, _conversion.bufferLikeToArrayBuffer)(data), 'decrypt');
252
+ }
253
+ async digest(algorithm, data) {
254
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'digest');
255
+ return (0, _hash.asyncDigest)(normalizedAlgorithm, data);
256
+ }
257
+ async deriveBits(algorithm, baseKey, length) {
258
+ if (!baseKey.keyUsages.includes('deriveBits')) {
259
+ throw new Error('baseKey does not have deriveBits usage');
260
+ }
261
+ if (baseKey.algorithm.name !== algorithm.name) throw new Error('Key algorithm mismatch');
262
+ switch (algorithm.name) {
263
+ case 'PBKDF2':
264
+ return (0, _pbkdf.pbkdf2DeriveBits)(algorithm, baseKey, length);
265
+ }
266
+ throw new Error(`'subtle.deriveBits()' for ${algorithm.name} is not implemented.`);
267
+ }
268
+ async encrypt(algorithm, key, data) {
269
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'encrypt');
270
+ return cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherEncrypt, normalizedAlgorithm, key, (0, _conversion.bufferLikeToArrayBuffer)(data), 'encrypt');
271
+ }
272
+ async exportKey(format, key) {
273
+ if (!key.extractable) throw new Error('key is not extractable');
274
+ switch (format) {
275
+ case 'spki':
276
+ return await exportKeySpki(key);
277
+ case 'pkcs8':
278
+ return await exportKeyPkcs8(key);
279
+ case 'jwk':
280
+ return exportKeyJWK(key);
281
+ case 'raw':
282
+ return exportKeyRaw(key);
283
+ }
284
+ }
285
+ async generateKey(algorithm, extractable, keyUsages) {
286
+ algorithm = normalizeAlgorithm(algorithm, 'generateKey');
287
+ let result;
288
+ switch (algorithm.name) {
289
+ case 'RSASSA-PKCS1-v1_5':
290
+ // Fall through
291
+ case 'RSA-PSS':
292
+ // Fall through
293
+ case 'RSA-OAEP':
294
+ result = await (0, _rsa.rsa_generateKeyPair)(algorithm, extractable, keyUsages);
295
+ break;
296
+ case 'ECDSA':
297
+ // Fall through
298
+ case 'ECDH':
299
+ result = await (0, _ec.ec_generateKeyPair)(algorithm.name, algorithm.namedCurve, extractable, keyUsages);
300
+ checkCryptoKeyPairUsages(result);
301
+ break;
302
+ case 'AES-CTR':
303
+ // Fall through
304
+ case 'AES-CBC':
305
+ // Fall through
306
+ case 'AES-GCM':
307
+ // Fall through
308
+ case 'AES-KW':
309
+ result = await aesGenerateKey(algorithm, extractable, keyUsages);
310
+ break;
311
+ default:
312
+ throw new Error(`'subtle.generateKey()' is not implemented for ${algorithm.name}.
313
+ Unrecognized algorithm name`);
314
+ }
315
+ return result;
316
+ }
317
+ async importKey(format, data, algorithm, extractable, keyUsages) {
318
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'importKey');
319
+ let result;
320
+ switch (normalizedAlgorithm.name) {
321
+ case 'RSASSA-PKCS1-v1_5':
322
+ // Fall through
323
+ case 'RSA-PSS':
324
+ // Fall through
325
+ case 'RSA-OAEP':
326
+ result = rsaImportKey(format, data, normalizedAlgorithm, extractable, keyUsages);
327
+ break;
328
+ case 'ECDSA':
329
+ // Fall through
330
+ case 'ECDH':
331
+ result = (0, _ec.ecImportKey)(format, data, normalizedAlgorithm, extractable, keyUsages);
332
+ break;
333
+ case 'HMAC':
334
+ result = await hmacImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
335
+ break;
336
+ case 'AES-CTR':
337
+ // Fall through
338
+ case 'AES-CBC':
339
+ // Fall through
340
+ case 'AES-GCM':
341
+ // Fall through
342
+ case 'AES-KW':
343
+ result = await aesImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
344
+ break;
345
+ case 'PBKDF2':
346
+ result = await importGenericSecretKey(normalizedAlgorithm, format, data, extractable, keyUsages);
347
+ break;
348
+ default:
349
+ throw new Error(`"subtle.importKey()" is not implemented for ${normalizedAlgorithm.name}`);
350
+ }
351
+ if ((result.type === 'secret' || result.type === 'private') && result.usages.length === 0) {
352
+ throw new Error(`Usages cannot be empty when importing a ${result.type} key.`);
353
+ }
354
+ return result;
355
+ }
356
+ async sign(algorithm, key, data) {
357
+ return signVerify(algorithm, key, data);
358
+ }
359
+ async verify(algorithm, key, signature, data) {
360
+ return signVerify(algorithm, key, data, signature);
361
+ }
362
+ }
363
+ exports.Subtle = Subtle;
364
+ const subtle = exports.subtle = new Subtle();
365
+ //# sourceMappingURL=subtle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_safeBuffer","require","_keys","_conversion","_errors","_hashnames","_validation","_hash","_pbkdf","_ec","_rsa","KWebCryptoKeyFormat","CipherOrWrapMode","hasAnyNotIn","usages","allowed","some","usage","includes","normalizeAlgorithm","algorithm","_operation","name","getAlgorithmName","length","ecExportKey","_key","_format","Error","rsaExportKey","rsaCipher","_mode","_data","_algorithm","aesCipher","aesGenerateKey","_extractable","_keyUsages","rsaImportKey","hmacImportKey","aesImportKey","exportKeySpki","key","type","kWebCryptoKeyFormatSPKI","exportKeyPkcs8","kWebCryptoKeyFormatPKCS8","exportKeyRaw","kWebCryptoKeyFormatRaw","keyObject","export","lazyDOMException","exportKeyJWK","jwk","handle","exportJwk","key_ops","ext","extractable","alg","normalizeHashName","hash","HashContext","JwkRsa","JwkRsaPss","JwkRsaOaep","JwkHmac","crv","namedCurve","undefined","importGenericSecretKey","format","keyData","keyUsages","checkLength","SBuffer","isBuffer","byteLength","createSecretKey","CryptoKey","checkCryptoKeyPairUsages","pair","privateKey","isCryptoKeyPair","result","signVerify","data","signature","ecdsaSignVerify","cipherOrWrap","mode","op","validateMaxBufferLength","Subtle","decrypt","normalizedAlgorithm","kWebCryptoCipherDecrypt","bufferLikeToArrayBuffer","digest","asyncDigest","deriveBits","baseKey","pbkdf2DeriveBits","encrypt","kWebCryptoCipherEncrypt","exportKey","generateKey","rsa_generateKeyPair","ec_generateKeyPair","importKey","ecImportKey","sign","verify","exports","subtle"],"sourceRoot":"../../src","sources":["subtle.ts"],"mappings":"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","ignoreList":[]}