react-native-quick-crypto 1.0.0-beta.8 → 1.0.0

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 (480) hide show
  1. package/QuickCrypto.podspec +145 -6
  2. package/README.md +14 -27
  3. package/android/CMakeLists.txt +62 -7
  4. package/android/build.gradle +12 -2
  5. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +0 -2
  6. package/app.plugin.js +3 -0
  7. package/cpp/blake3/HybridBlake3.cpp +118 -0
  8. package/cpp/blake3/HybridBlake3.hpp +35 -0
  9. package/cpp/cipher/CCMCipher.cpp +199 -0
  10. package/cpp/cipher/CCMCipher.hpp +26 -0
  11. package/cpp/cipher/ChaCha20Cipher.cpp +97 -0
  12. package/cpp/cipher/ChaCha20Cipher.hpp +25 -0
  13. package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +170 -0
  14. package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +30 -0
  15. package/cpp/cipher/GCMCipher.cpp +68 -0
  16. package/cpp/cipher/GCMCipher.hpp +14 -0
  17. package/cpp/cipher/HybridCipher.cpp +322 -0
  18. package/cpp/cipher/HybridCipher.hpp +68 -0
  19. package/cpp/cipher/HybridCipherFactory.hpp +105 -0
  20. package/cpp/cipher/HybridRsaCipher.cpp +348 -0
  21. package/cpp/cipher/HybridRsaCipher.hpp +29 -0
  22. package/cpp/cipher/OCBCipher.cpp +55 -0
  23. package/cpp/cipher/OCBCipher.hpp +19 -0
  24. package/cpp/cipher/XSalsa20Cipher.cpp +61 -0
  25. package/cpp/cipher/XSalsa20Cipher.hpp +33 -0
  26. package/cpp/ec/HybridEcKeyPair.cpp +428 -0
  27. package/cpp/ec/HybridEcKeyPair.hpp +48 -0
  28. package/cpp/ed25519/HybridEdKeyPair.cpp +228 -98
  29. package/cpp/ed25519/HybridEdKeyPair.hpp +42 -56
  30. package/cpp/hash/HybridHash.cpp +185 -0
  31. package/cpp/hash/HybridHash.hpp +43 -0
  32. package/cpp/hmac/HybridHmac.cpp +95 -0
  33. package/cpp/hmac/HybridHmac.hpp +31 -0
  34. package/cpp/keys/HybridKeyObjectHandle.cpp +749 -0
  35. package/cpp/keys/HybridKeyObjectHandle.hpp +51 -0
  36. package/cpp/keys/KeyObjectData.cpp +268 -0
  37. package/cpp/keys/KeyObjectData.hpp +71 -0
  38. package/cpp/keys/node.h +5 -0
  39. package/cpp/pbkdf2/HybridPbkdf2.cpp +34 -55
  40. package/cpp/pbkdf2/HybridPbkdf2.hpp +5 -16
  41. package/cpp/random/HybridRandom.cpp +6 -17
  42. package/cpp/random/HybridRandom.hpp +5 -6
  43. package/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
  44. package/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
  45. package/cpp/sign/HybridSignHandle.cpp +191 -0
  46. package/cpp/sign/HybridSignHandle.hpp +36 -0
  47. package/cpp/sign/HybridVerifyHandle.cpp +158 -0
  48. package/cpp/sign/HybridVerifyHandle.hpp +36 -0
  49. package/cpp/sign/SignUtils.hpp +108 -0
  50. package/cpp/utils/Macros.hpp +68 -0
  51. package/cpp/utils/Utils.hpp +43 -2
  52. package/cpp/utils/base64.h +309 -0
  53. package/deps/blake3/.cargo/config.toml +2 -0
  54. package/deps/blake3/.git-blame-ignore-revs +2 -0
  55. package/deps/blake3/.github/workflows/build_b3sum.py +38 -0
  56. package/deps/blake3/.github/workflows/ci.yml +491 -0
  57. package/deps/blake3/.github/workflows/tag.yml +43 -0
  58. package/deps/blake3/.github/workflows/upload_github_release_asset.py +73 -0
  59. package/deps/blake3/CONTRIBUTING.md +31 -0
  60. package/deps/blake3/Cargo.toml +135 -0
  61. package/deps/blake3/LICENSE_A2 +202 -0
  62. package/deps/blake3/LICENSE_A2LLVM +219 -0
  63. package/deps/blake3/LICENSE_CC0 +121 -0
  64. package/deps/blake3/README.md +229 -0
  65. package/deps/blake3/b3sum/Cargo.lock +513 -0
  66. package/deps/blake3/b3sum/Cargo.toml +26 -0
  67. package/deps/blake3/b3sum/README.md +72 -0
  68. package/deps/blake3/b3sum/src/main.rs +564 -0
  69. package/deps/blake3/b3sum/src/unit_tests.rs +235 -0
  70. package/deps/blake3/b3sum/tests/cli_tests.rs +680 -0
  71. package/deps/blake3/b3sum/what_does_check_do.md +176 -0
  72. package/deps/blake3/benches/bench.rs +623 -0
  73. package/deps/blake3/build.rs +389 -0
  74. package/deps/blake3/c/CMakeLists.txt +383 -0
  75. package/deps/blake3/c/CMakePresets.json +73 -0
  76. package/deps/blake3/c/Makefile.testing +82 -0
  77. package/deps/blake3/c/README.md +403 -0
  78. package/deps/blake3/c/blake3-config.cmake.in +14 -0
  79. package/deps/blake3/c/blake3.c +650 -0
  80. package/deps/blake3/c/blake3.h +86 -0
  81. package/deps/blake3/c/blake3_avx2.c +326 -0
  82. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +1815 -0
  83. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +1817 -0
  84. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +1828 -0
  85. package/deps/blake3/c/blake3_avx512.c +1388 -0
  86. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +4824 -0
  87. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +2615 -0
  88. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +2634 -0
  89. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +32 -0
  90. package/deps/blake3/c/blake3_c_rust_bindings/README.md +4 -0
  91. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +477 -0
  92. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +253 -0
  93. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +31 -0
  94. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +333 -0
  95. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +696 -0
  96. package/deps/blake3/c/blake3_dispatch.c +332 -0
  97. package/deps/blake3/c/blake3_impl.h +333 -0
  98. package/deps/blake3/c/blake3_neon.c +366 -0
  99. package/deps/blake3/c/blake3_portable.c +160 -0
  100. package/deps/blake3/c/blake3_sse2.c +566 -0
  101. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +2291 -0
  102. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +2332 -0
  103. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
  104. package/deps/blake3/c/blake3_sse41.c +560 -0
  105. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +2028 -0
  106. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +2069 -0
  107. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +2089 -0
  108. package/deps/blake3/c/blake3_tbb.cpp +37 -0
  109. package/deps/blake3/c/dependencies/CMakeLists.txt +3 -0
  110. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +28 -0
  111. package/deps/blake3/c/example.c +36 -0
  112. package/deps/blake3/c/example_tbb.c +57 -0
  113. package/deps/blake3/c/libblake3.pc.in +12 -0
  114. package/deps/blake3/c/main.c +166 -0
  115. package/deps/blake3/c/test.py +97 -0
  116. package/deps/blake3/media/B3.svg +70 -0
  117. package/deps/blake3/media/BLAKE3.svg +85 -0
  118. package/deps/blake3/media/speed.svg +1474 -0
  119. package/deps/blake3/reference_impl/Cargo.toml +8 -0
  120. package/deps/blake3/reference_impl/README.md +14 -0
  121. package/deps/blake3/reference_impl/reference_impl.rs +374 -0
  122. package/deps/blake3/src/ffi_avx2.rs +65 -0
  123. package/deps/blake3/src/ffi_avx512.rs +169 -0
  124. package/deps/blake3/src/ffi_neon.rs +82 -0
  125. package/deps/blake3/src/ffi_sse2.rs +126 -0
  126. package/deps/blake3/src/ffi_sse41.rs +126 -0
  127. package/deps/blake3/src/guts.rs +60 -0
  128. package/deps/blake3/src/hazmat.rs +704 -0
  129. package/deps/blake3/src/io.rs +64 -0
  130. package/deps/blake3/src/join.rs +92 -0
  131. package/deps/blake3/src/lib.rs +1835 -0
  132. package/deps/blake3/src/platform.rs +587 -0
  133. package/deps/blake3/src/portable.rs +198 -0
  134. package/deps/blake3/src/rust_avx2.rs +474 -0
  135. package/deps/blake3/src/rust_sse2.rs +775 -0
  136. package/deps/blake3/src/rust_sse41.rs +766 -0
  137. package/deps/blake3/src/test.rs +1049 -0
  138. package/deps/blake3/src/traits.rs +227 -0
  139. package/deps/blake3/src/wasm32_simd.rs +794 -0
  140. package/deps/blake3/test_vectors/Cargo.toml +19 -0
  141. package/deps/blake3/test_vectors/cross_test.sh +25 -0
  142. package/deps/blake3/test_vectors/src/bin/generate.rs +4 -0
  143. package/deps/blake3/test_vectors/src/lib.rs +350 -0
  144. package/deps/blake3/test_vectors/test_vectors.json +217 -0
  145. package/deps/blake3/tools/compiler_version/Cargo.toml +7 -0
  146. package/deps/blake3/tools/compiler_version/build.rs +6 -0
  147. package/deps/blake3/tools/compiler_version/src/main.rs +27 -0
  148. package/deps/blake3/tools/instruction_set_support/Cargo.toml +6 -0
  149. package/deps/blake3/tools/instruction_set_support/src/main.rs +10 -0
  150. package/deps/blake3/tools/release.md +16 -0
  151. package/deps/fastpbkdf2/fastpbkdf2.c +5 -1
  152. package/deps/ncrypto/ncrypto.cc +4679 -0
  153. package/deps/ncrypto/ncrypto.h +1625 -0
  154. package/lib/commonjs/blake3.js +98 -0
  155. package/lib/commonjs/blake3.js.map +1 -0
  156. package/lib/commonjs/cipher.js +180 -0
  157. package/lib/commonjs/cipher.js.map +1 -0
  158. package/lib/commonjs/constants.js +32 -0
  159. package/lib/commonjs/constants.js.map +1 -0
  160. package/lib/commonjs/ec.js +480 -0
  161. package/lib/commonjs/ec.js.map +1 -0
  162. package/lib/commonjs/ed.js +214 -2
  163. package/lib/commonjs/ed.js.map +1 -1
  164. package/lib/commonjs/expo-plugin/@types.js +2 -0
  165. package/lib/commonjs/expo-plugin/@types.js.map +1 -0
  166. package/lib/commonjs/expo-plugin/withRNQC.js +25 -0
  167. package/lib/commonjs/expo-plugin/withRNQC.js.map +1 -0
  168. package/lib/commonjs/expo-plugin/withSodiumAndroid.js +25 -0
  169. package/lib/commonjs/expo-plugin/withSodiumAndroid.js.map +1 -0
  170. package/lib/commonjs/expo-plugin/withSodiumIos.js +26 -0
  171. package/lib/commonjs/expo-plugin/withSodiumIos.js.map +1 -0
  172. package/lib/commonjs/expo-plugin/withXCode.js +51 -0
  173. package/lib/commonjs/expo-plugin/withXCode.js.map +1 -0
  174. package/lib/commonjs/hash.js +215 -0
  175. package/lib/commonjs/hash.js.map +1 -0
  176. package/lib/commonjs/hmac.js +109 -0
  177. package/lib/commonjs/hmac.js.map +1 -0
  178. package/lib/commonjs/index.js +102 -24
  179. package/lib/commonjs/index.js.map +1 -1
  180. package/lib/commonjs/keys/classes.js +109 -52
  181. package/lib/commonjs/keys/classes.js.map +1 -1
  182. package/lib/commonjs/keys/generateKeyPair.js +141 -144
  183. package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
  184. package/lib/commonjs/keys/index.js +229 -0
  185. package/lib/commonjs/keys/index.js.map +1 -1
  186. package/lib/commonjs/keys/publicCipher.js +152 -0
  187. package/lib/commonjs/keys/publicCipher.js.map +1 -0
  188. package/lib/commonjs/keys/signVerify.js +178 -39
  189. package/lib/commonjs/keys/signVerify.js.map +1 -1
  190. package/lib/commonjs/keys/utils.js +18 -13
  191. package/lib/commonjs/keys/utils.js.map +1 -1
  192. package/lib/commonjs/pbkdf2.js.map +1 -1
  193. package/lib/commonjs/random.js +6 -0
  194. package/lib/commonjs/random.js.map +1 -1
  195. package/lib/commonjs/rsa.js +202 -0
  196. package/lib/commonjs/rsa.js.map +1 -0
  197. package/lib/commonjs/specs/blake3.nitro.js +6 -0
  198. package/lib/commonjs/specs/blake3.nitro.js.map +1 -0
  199. package/lib/commonjs/specs/cipher.nitro.js +6 -0
  200. package/lib/commonjs/specs/cipher.nitro.js.map +1 -0
  201. package/lib/commonjs/specs/ecKeyPair.nitro.js +6 -0
  202. package/lib/commonjs/specs/ecKeyPair.nitro.js.map +1 -0
  203. package/lib/commonjs/specs/hash.nitro.js +6 -0
  204. package/lib/commonjs/specs/hash.nitro.js.map +1 -0
  205. package/lib/commonjs/specs/hmac.nitro.js +6 -0
  206. package/lib/commonjs/specs/hmac.nitro.js.map +1 -0
  207. package/lib/commonjs/specs/rsaCipher.nitro.js +6 -0
  208. package/lib/commonjs/specs/rsaCipher.nitro.js.map +1 -0
  209. package/lib/commonjs/specs/rsaKeyPair.nitro.js +6 -0
  210. package/lib/commonjs/specs/rsaKeyPair.nitro.js.map +1 -0
  211. package/lib/commonjs/specs/sign.nitro.js +6 -0
  212. package/lib/commonjs/specs/sign.nitro.js.map +1 -0
  213. package/lib/commonjs/subtle.js +987 -0
  214. package/lib/commonjs/subtle.js.map +1 -0
  215. package/lib/commonjs/utils/cipher.js +64 -0
  216. package/lib/commonjs/utils/cipher.js.map +1 -0
  217. package/lib/commonjs/utils/conversion.js +44 -5
  218. package/lib/commonjs/utils/conversion.js.map +1 -1
  219. package/lib/commonjs/utils/hashnames.js +2 -1
  220. package/lib/commonjs/utils/hashnames.js.map +1 -1
  221. package/lib/commonjs/utils/index.js +11 -0
  222. package/lib/commonjs/utils/index.js.map +1 -1
  223. package/lib/commonjs/utils/noble.js +82 -0
  224. package/lib/commonjs/utils/noble.js.map +1 -0
  225. package/lib/commonjs/utils/types.js +32 -17
  226. package/lib/commonjs/utils/types.js.map +1 -1
  227. package/lib/commonjs/utils/validation.js +74 -1
  228. package/lib/commonjs/utils/validation.js.map +1 -1
  229. package/lib/module/blake3.js +90 -0
  230. package/lib/module/blake3.js.map +1 -0
  231. package/lib/module/cipher.js +173 -0
  232. package/lib/module/cipher.js.map +1 -0
  233. package/lib/module/constants.js +28 -0
  234. package/lib/module/constants.js.map +1 -0
  235. package/lib/module/ec.js +470 -0
  236. package/lib/module/ec.js.map +1 -0
  237. package/lib/module/ed.js +212 -3
  238. package/lib/module/ed.js.map +1 -1
  239. package/lib/module/expo-plugin/@types.js +2 -0
  240. package/lib/module/expo-plugin/@types.js.map +1 -0
  241. package/lib/module/expo-plugin/withRNQC.js +21 -0
  242. package/lib/module/expo-plugin/withRNQC.js.map +1 -0
  243. package/lib/module/expo-plugin/withSodiumAndroid.js +20 -0
  244. package/lib/module/expo-plugin/withSodiumAndroid.js.map +1 -0
  245. package/lib/module/expo-plugin/withSodiumIos.js +20 -0
  246. package/lib/module/expo-plugin/withSodiumIos.js.map +1 -0
  247. package/lib/module/expo-plugin/withXCode.js +46 -0
  248. package/lib/module/expo-plugin/withXCode.js.map +1 -0
  249. package/lib/module/hash.js +207 -0
  250. package/lib/module/hash.js.map +1 -0
  251. package/lib/module/hmac.js +104 -0
  252. package/lib/module/hmac.js.map +1 -0
  253. package/lib/module/index.js +21 -21
  254. package/lib/module/index.js.map +1 -1
  255. package/lib/module/keys/classes.js +106 -49
  256. package/lib/module/keys/classes.js.map +1 -1
  257. package/lib/module/keys/generateKeyPair.js +134 -143
  258. package/lib/module/keys/generateKeyPair.js.map +1 -1
  259. package/lib/module/keys/index.js +161 -22
  260. package/lib/module/keys/index.js.map +1 -1
  261. package/lib/module/keys/publicCipher.js +145 -0
  262. package/lib/module/keys/publicCipher.js.map +1 -0
  263. package/lib/module/keys/signVerify.js +170 -39
  264. package/lib/module/keys/signVerify.js.map +1 -1
  265. package/lib/module/keys/utils.js +16 -12
  266. package/lib/module/keys/utils.js.map +1 -1
  267. package/lib/module/pbkdf2.js.map +1 -1
  268. package/lib/module/random.js +6 -0
  269. package/lib/module/random.js.map +1 -1
  270. package/lib/module/rsa.js +194 -0
  271. package/lib/module/rsa.js.map +1 -0
  272. package/lib/module/specs/blake3.nitro.js +4 -0
  273. package/lib/module/specs/blake3.nitro.js.map +1 -0
  274. package/lib/module/specs/cipher.nitro.js +4 -0
  275. package/lib/module/specs/cipher.nitro.js.map +1 -0
  276. package/lib/module/specs/ecKeyPair.nitro.js +4 -0
  277. package/lib/module/specs/ecKeyPair.nitro.js.map +1 -0
  278. package/lib/module/specs/hash.nitro.js +4 -0
  279. package/lib/module/specs/hash.nitro.js.map +1 -0
  280. package/lib/module/specs/hmac.nitro.js +4 -0
  281. package/lib/module/specs/hmac.nitro.js.map +1 -0
  282. package/lib/module/specs/rsaCipher.nitro.js +4 -0
  283. package/lib/module/specs/rsaCipher.nitro.js.map +1 -0
  284. package/lib/module/specs/rsaKeyPair.nitro.js +4 -0
  285. package/lib/module/specs/rsaKeyPair.nitro.js.map +1 -0
  286. package/lib/module/specs/sign.nitro.js +4 -0
  287. package/lib/module/specs/sign.nitro.js.map +1 -0
  288. package/lib/module/subtle.js +982 -0
  289. package/lib/module/subtle.js.map +1 -0
  290. package/lib/module/utils/cipher.js +56 -0
  291. package/lib/module/utils/cipher.js.map +1 -0
  292. package/lib/module/utils/conversion.js +26 -5
  293. package/lib/module/utils/conversion.js.map +1 -1
  294. package/lib/module/utils/hashnames.js +2 -1
  295. package/lib/module/utils/hashnames.js.map +1 -1
  296. package/lib/module/utils/index.js +1 -0
  297. package/lib/module/utils/index.js.map +1 -1
  298. package/lib/module/utils/noble.js +76 -0
  299. package/lib/module/utils/noble.js.map +1 -0
  300. package/lib/module/utils/types.js +32 -17
  301. package/lib/module/utils/types.js.map +1 -1
  302. package/lib/module/utils/validation.js +69 -1
  303. package/lib/module/utils/validation.js.map +1 -1
  304. package/lib/tsconfig.tsbuildinfo +1 -1
  305. package/lib/typescript/blake3.d.ts +33 -0
  306. package/lib/typescript/blake3.d.ts.map +1 -0
  307. package/lib/typescript/cipher.d.ts +60 -0
  308. package/lib/typescript/cipher.d.ts.map +1 -0
  309. package/lib/typescript/constants.d.ts +21 -0
  310. package/lib/typescript/constants.d.ts.map +1 -0
  311. package/lib/typescript/ec.d.ts +22 -0
  312. package/lib/typescript/ec.d.ts.map +1 -0
  313. package/lib/typescript/ed.d.ts +28 -1
  314. package/lib/typescript/ed.d.ts.map +1 -1
  315. package/lib/typescript/expo-plugin/@types.d.ts +8 -0
  316. package/lib/typescript/expo-plugin/@types.d.ts.map +1 -0
  317. package/lib/typescript/expo-plugin/withRNQC.d.ts +4 -0
  318. package/lib/typescript/expo-plugin/withRNQC.d.ts.map +1 -0
  319. package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts +4 -0
  320. package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts.map +1 -0
  321. package/lib/typescript/expo-plugin/withSodiumIos.d.ts +4 -0
  322. package/lib/typescript/expo-plugin/withSodiumIos.d.ts.map +1 -0
  323. package/lib/typescript/expo-plugin/withXCode.d.ts +9 -0
  324. package/lib/typescript/expo-plugin/withXCode.d.ts.map +1 -0
  325. package/lib/typescript/hash.d.ts +122 -0
  326. package/lib/typescript/hash.d.ts.map +1 -0
  327. package/lib/typescript/hmac.d.ts +66 -0
  328. package/lib/typescript/hmac.d.ts.map +1 -0
  329. package/lib/typescript/index.d.ts +102 -10
  330. package/lib/typescript/index.d.ts.map +1 -1
  331. package/lib/typescript/keys/classes.d.ts +50 -8
  332. package/lib/typescript/keys/classes.d.ts.map +1 -1
  333. package/lib/typescript/keys/generateKeyPair.d.ts +5 -0
  334. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
  335. package/lib/typescript/keys/index.d.ts +22 -2
  336. package/lib/typescript/keys/index.d.ts.map +1 -1
  337. package/lib/typescript/keys/publicCipher.d.ts +20 -0
  338. package/lib/typescript/keys/publicCipher.d.ts.map +1 -0
  339. package/lib/typescript/keys/signVerify.d.ts +28 -0
  340. package/lib/typescript/keys/signVerify.d.ts.map +1 -1
  341. package/lib/typescript/keys/utils.d.ts +3 -1
  342. package/lib/typescript/keys/utils.d.ts.map +1 -1
  343. package/lib/typescript/pbkdf2.d.ts +1 -1
  344. package/lib/typescript/pbkdf2.d.ts.map +1 -1
  345. package/lib/typescript/random.d.ts +6 -0
  346. package/lib/typescript/random.d.ts.map +1 -1
  347. package/lib/typescript/rsa.d.ts +19 -0
  348. package/lib/typescript/rsa.d.ts.map +1 -0
  349. package/lib/typescript/specs/blake3.nitro.d.ts +15 -0
  350. package/lib/typescript/specs/blake3.nitro.d.ts.map +1 -0
  351. package/lib/typescript/specs/cipher.nitro.d.ts +29 -0
  352. package/lib/typescript/specs/cipher.nitro.d.ts.map +1 -0
  353. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +20 -0
  354. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -0
  355. package/lib/typescript/specs/edKeyPair.nitro.d.ts +1 -0
  356. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -1
  357. package/lib/typescript/specs/hash.nitro.d.ts +13 -0
  358. package/lib/typescript/specs/hash.nitro.d.ts.map +1 -0
  359. package/lib/typescript/specs/hmac.nitro.d.ts +10 -0
  360. package/lib/typescript/specs/hmac.nitro.d.ts.map +1 -0
  361. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +1 -1
  362. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
  363. package/lib/typescript/specs/rsaCipher.nitro.d.ts +44 -0
  364. package/lib/typescript/specs/rsaCipher.nitro.d.ts.map +1 -0
  365. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts +20 -0
  366. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts.map +1 -0
  367. package/lib/typescript/specs/sign.nitro.d.ts +19 -0
  368. package/lib/typescript/specs/sign.nitro.d.ts.map +1 -0
  369. package/lib/typescript/subtle.d.ts +17 -0
  370. package/lib/typescript/subtle.d.ts.map +1 -0
  371. package/lib/typescript/utils/cipher.d.ts +7 -0
  372. package/lib/typescript/utils/cipher.d.ts.map +1 -0
  373. package/lib/typescript/utils/conversion.d.ts +1 -0
  374. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  375. package/lib/typescript/utils/hashnames.d.ts +3 -1
  376. package/lib/typescript/utils/hashnames.d.ts.map +1 -1
  377. package/lib/typescript/utils/index.d.ts +1 -0
  378. package/lib/typescript/utils/index.d.ts.map +1 -1
  379. package/lib/typescript/utils/noble.d.ts +19 -0
  380. package/lib/typescript/utils/noble.d.ts.map +1 -0
  381. package/lib/typescript/utils/types.d.ts +125 -23
  382. package/lib/typescript/utils/types.d.ts.map +1 -1
  383. package/lib/typescript/utils/validation.d.ts +5 -0
  384. package/lib/typescript/utils/validation.d.ts.map +1 -1
  385. package/nitrogen/generated/.gitattributes +1 -0
  386. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +30 -1
  387. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -1
  388. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +115 -1
  389. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +1 -1
  390. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +35 -0
  391. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +3 -1
  392. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +1 -1
  393. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +1 -1
  394. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +3 -3
  395. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +111 -1
  396. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +1 -1
  397. package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +104 -0
  398. package/nitrogen/generated/shared/c++/CipherArgs.hpp +86 -0
  399. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +28 -0
  400. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +76 -0
  401. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +21 -0
  402. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +67 -0
  403. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +28 -0
  404. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +76 -0
  405. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +29 -0
  406. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +77 -0
  407. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +2 -1
  408. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +5 -4
  409. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +26 -0
  410. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +75 -0
  411. package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +23 -0
  412. package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +66 -0
  413. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +1 -1
  414. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +8 -8
  415. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +1 -1
  416. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +3 -3
  417. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +1 -1
  418. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +3 -3
  419. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +24 -0
  420. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +72 -0
  421. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +29 -0
  422. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +77 -0
  423. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.cpp +23 -0
  424. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.hpp +71 -0
  425. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.cpp +23 -0
  426. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.hpp +71 -0
  427. package/nitrogen/generated/shared/c++/JWK.hpp +17 -18
  428. package/nitrogen/generated/shared/c++/JWKkty.hpp +12 -14
  429. package/nitrogen/generated/shared/c++/JWKuse.hpp +8 -10
  430. package/nitrogen/generated/shared/c++/KFormatType.hpp +14 -16
  431. package/nitrogen/generated/shared/c++/KeyDetail.hpp +6 -7
  432. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +15 -17
  433. package/nitrogen/generated/shared/c++/KeyObject.hpp +67 -0
  434. package/nitrogen/generated/shared/c++/KeyType.hpp +11 -13
  435. package/nitrogen/generated/shared/c++/KeyUsage.hpp +38 -24
  436. package/nitrogen/generated/shared/c++/NamedCurve.hpp +10 -12
  437. package/package.json +28 -23
  438. package/src/blake3.ts +123 -0
  439. package/src/cipher.ts +335 -0
  440. package/src/constants.ts +32 -0
  441. package/src/ec.ts +657 -0
  442. package/src/ed.ts +297 -13
  443. package/src/expo-plugin/@types.ts +7 -0
  444. package/src/expo-plugin/withRNQC.ts +23 -0
  445. package/src/expo-plugin/withSodiumAndroid.ts +24 -0
  446. package/src/expo-plugin/withSodiumIos.ts +30 -0
  447. package/src/expo-plugin/withXCode.ts +55 -0
  448. package/src/hash.ts +274 -0
  449. package/src/hmac.ts +135 -0
  450. package/src/index.ts +20 -20
  451. package/src/keys/classes.ts +148 -55
  452. package/src/keys/generateKeyPair.ts +177 -134
  453. package/src/keys/index.ts +226 -14
  454. package/src/keys/publicCipher.ts +229 -0
  455. package/src/keys/signVerify.ts +239 -39
  456. package/src/keys/utils.ts +24 -18
  457. package/src/pbkdf2.ts +1 -1
  458. package/src/random.ts +7 -0
  459. package/src/rsa.ts +310 -0
  460. package/src/specs/blake3.nitro.ts +12 -0
  461. package/src/specs/cipher.nitro.ts +25 -0
  462. package/src/specs/ecKeyPair.nitro.ts +38 -0
  463. package/src/specs/edKeyPair.nitro.ts +2 -0
  464. package/src/specs/hash.nitro.ts +10 -0
  465. package/src/specs/hmac.nitro.ts +7 -0
  466. package/src/specs/keyObjectHandle.nitro.ts +1 -1
  467. package/src/specs/rsaCipher.nitro.ts +65 -0
  468. package/src/specs/rsaKeyPair.nitro.ts +33 -0
  469. package/src/specs/sign.nitro.ts +31 -0
  470. package/src/subtle.ts +1436 -0
  471. package/src/utils/cipher.ts +60 -0
  472. package/src/utils/conversion.ts +33 -4
  473. package/src/utils/hashnames.ts +4 -2
  474. package/src/utils/index.ts +1 -0
  475. package/src/utils/noble.ts +85 -0
  476. package/src/utils/types.ts +209 -29
  477. package/src/utils/validation.ts +96 -1
  478. package/lib/module/package.json +0 -1
  479. package/nitrogen/generated/android/QuickCryptoOnLoad.kt +0 -1
  480. package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +0 -86
@@ -1,39 +1,239 @@
1
- // import { KeyObject, PublicKeyObject, PrivateKeyObject } from '.';
2
- // import { ed25519 } from '../ed25519';
3
- // import type {
4
- // BinaryLike,
5
- // BinaryLikeNode,
6
- // SignCallback,
7
- // VerifyCallback,
8
- // } from '../utils';
9
-
10
- // export function sign(
11
- // algorithm: string | null | undefined,
12
- // data: BinaryLike,
13
- // key: BinaryLikeNode | KeyObject,
14
- // callback: SignCallback,
15
- // ): ArrayBuffer {
16
- // console.log('sign ', algorithm, data, key, callback);
17
- // return new ArrayBuffer(32);
18
- // }
19
-
20
- // export function verify(
21
- // algorithm: string | null | undefined,
22
- // data: BinaryLike,
23
- // key: BinaryLikeNode | KeyObject,
24
- // signature: ArrayBuffer,
25
- // callback: VerifyCallback,
26
- // ): boolean {
27
- // if (!algorithm) {
28
- // if (key instanceof PublicKeyObject) {
29
- // switch (key.asymmetricKeyType) {
30
- // case 'ed25519':
31
- // case 'ed448':
32
- // case 'x25519':
33
- // case 'x448': {
34
- // return ed25519.verify(signature, data, key);
35
- // }
36
- // }
37
- // }
38
- // throw new Error('Verify not implemented', algorithm, data, key, signature, callback);
39
- // }
1
+ import { Buffer } from '@craftzdog/react-native-buffer';
2
+ import { NitroModules } from 'react-native-nitro-modules';
3
+ import type {
4
+ SignHandle as SignHandleSpec,
5
+ VerifyHandle as VerifyHandleSpec,
6
+ } from '../specs/sign.nitro';
7
+ import { KeyObject, CryptoKey } from './classes';
8
+ import { isCryptoKey } from './utils';
9
+ import type { BinaryLike } from '../utils';
10
+ import {
11
+ binaryLikeToArrayBuffer as toAB,
12
+ isStringOrBuffer,
13
+ KFormatType,
14
+ KeyEncoding,
15
+ } from '../utils';
16
+
17
+ type KeyInput = BinaryLike | KeyObject | CryptoKey | KeyInputObject;
18
+
19
+ interface KeyInputObject {
20
+ key: BinaryLike | KeyObject | CryptoKey;
21
+ format?: 'pem' | 'der';
22
+ type?: 'pkcs1' | 'pkcs8' | 'spki' | 'sec1';
23
+ passphrase?: BinaryLike;
24
+ padding?: number;
25
+ saltLength?: number;
26
+ dsaEncoding?: 'der' | 'ieee-p1363';
27
+ }
28
+
29
+ interface SignOptions {
30
+ padding?: number;
31
+ saltLength?: number;
32
+ dsaEncoding?: 'der' | 'ieee-p1363';
33
+ }
34
+
35
+ interface PreparedKey {
36
+ keyObject: KeyObject;
37
+ options?: SignOptions;
38
+ }
39
+
40
+ function prepareKey(key: KeyInput, isPublic: boolean): PreparedKey {
41
+ // Already a KeyObject
42
+ if (key instanceof KeyObject) {
43
+ if (isPublic) {
44
+ if (key.type === 'secret') {
45
+ throw new Error('Cannot use secret key for signature verification');
46
+ }
47
+ } else {
48
+ if (key.type !== 'private') {
49
+ throw new Error('Key must be a private key for signing');
50
+ }
51
+ }
52
+ return { keyObject: key };
53
+ }
54
+
55
+ // CryptoKey - extract KeyObject
56
+ if (isCryptoKey(key)) {
57
+ const cryptoKey = key as CryptoKey;
58
+ return prepareKey(cryptoKey.keyObject, isPublic);
59
+ }
60
+
61
+ // Raw string or buffer - create KeyObject
62
+ if (isStringOrBuffer(key)) {
63
+ const isPem = typeof key === 'string' && key.includes('-----BEGIN');
64
+ const format = isPem ? KFormatType.PEM : undefined;
65
+ const type = isPublic ? 'public' : 'private';
66
+ const keyData = toAB(key);
67
+ const keyObject = KeyObject.createKeyObject(type, keyData, format);
68
+ return { keyObject };
69
+ }
70
+
71
+ // KeyInputObject with options
72
+ if (typeof key === 'object' && 'key' in key) {
73
+ const keyObj = key as KeyInputObject;
74
+ const {
75
+ key: data,
76
+ format,
77
+ type,
78
+ padding,
79
+ saltLength,
80
+ dsaEncoding,
81
+ } = keyObj;
82
+
83
+ // Nested KeyObject
84
+ if (data instanceof KeyObject) {
85
+ return {
86
+ keyObject: data,
87
+ options: { padding, saltLength, dsaEncoding },
88
+ };
89
+ }
90
+
91
+ // Nested CryptoKey
92
+ if (isCryptoKey(data)) {
93
+ return {
94
+ keyObject: (data as CryptoKey).keyObject,
95
+ options: { padding, saltLength, dsaEncoding },
96
+ };
97
+ }
98
+
99
+ if (!isStringOrBuffer(data)) {
100
+ throw new Error('Invalid key data type');
101
+ }
102
+
103
+ // Determine format
104
+ const isPem =
105
+ format === 'pem' ||
106
+ (typeof data === 'string' && data.includes('-----BEGIN'));
107
+ const kFormat = isPem
108
+ ? KFormatType.PEM
109
+ : format === 'der'
110
+ ? KFormatType.DER
111
+ : undefined;
112
+
113
+ // Determine encoding type
114
+ let kType: KeyEncoding | undefined;
115
+ if (type === 'pkcs8') kType = KeyEncoding.PKCS8;
116
+ else if (type === 'pkcs1') kType = KeyEncoding.PKCS1;
117
+ else if (type === 'sec1') kType = KeyEncoding.SEC1;
118
+ else if (type === 'spki') kType = KeyEncoding.SPKI;
119
+
120
+ const keyType = isPublic ? 'public' : 'private';
121
+ // Always convert to ArrayBuffer to avoid Nitro bridge string truncation bug
122
+ const originalLength =
123
+ typeof data === 'string' ? data.length : data.byteLength;
124
+ const keyData = toAB(data);
125
+ console.log(
126
+ `[prepareKey KeyInputObject] ${keyType} key, original length: ${originalLength}, ArrayBuffer size: ${keyData.byteLength}`,
127
+ );
128
+ const keyObject = KeyObject.createKeyObject(
129
+ keyType,
130
+ keyData,
131
+ kFormat,
132
+ kType,
133
+ );
134
+
135
+ return {
136
+ keyObject,
137
+ options: { padding, saltLength, dsaEncoding },
138
+ };
139
+ }
140
+
141
+ throw new Error('Invalid key input');
142
+ }
143
+
144
+ function dsaEncodingToNumber(
145
+ dsaEncoding?: 'der' | 'ieee-p1363',
146
+ ): number | undefined {
147
+ if (dsaEncoding === 'der') return 0;
148
+ if (dsaEncoding === 'ieee-p1363') return 1;
149
+ return undefined;
150
+ }
151
+
152
+ export class Sign {
153
+ private handle: SignHandleSpec;
154
+
155
+ constructor(algorithm: string) {
156
+ this.handle = NitroModules.createHybridObject<SignHandleSpec>('SignHandle');
157
+ this.handle.init(algorithm);
158
+ }
159
+
160
+ update(data: BinaryLike): this {
161
+ const dataBuffer = toAB(data);
162
+ this.handle.update(dataBuffer);
163
+ return this;
164
+ }
165
+
166
+ sign(privateKey: KeyInput, outputEncoding?: BufferEncoding): Buffer;
167
+ sign(privateKey: KeyInput, outputEncoding?: BufferEncoding): Buffer | string {
168
+ if (privateKey === null || privateKey === undefined) {
169
+ throw new Error('Private key is required');
170
+ }
171
+
172
+ const { keyObject, options } = prepareKey(privateKey, false);
173
+
174
+ const signature = this.handle.sign(
175
+ keyObject.handle,
176
+ options?.padding,
177
+ options?.saltLength,
178
+ dsaEncodingToNumber(options?.dsaEncoding),
179
+ );
180
+
181
+ const buf = Buffer.from(signature);
182
+ if (outputEncoding) {
183
+ return buf.toString(outputEncoding);
184
+ }
185
+ return buf;
186
+ }
187
+ }
188
+
189
+ export class Verify {
190
+ private handle: VerifyHandleSpec;
191
+
192
+ constructor(algorithm: string) {
193
+ this.handle =
194
+ NitroModules.createHybridObject<VerifyHandleSpec>('VerifyHandle');
195
+ this.handle.init(algorithm);
196
+ }
197
+
198
+ update(data: BinaryLike): this {
199
+ const dataBuffer = toAB(data);
200
+ this.handle.update(dataBuffer);
201
+ return this;
202
+ }
203
+
204
+ verify(
205
+ publicKey: KeyInput,
206
+ signature: BinaryLike,
207
+ signatureEncoding?: BufferEncoding,
208
+ ): boolean {
209
+ if (publicKey === null || publicKey === undefined) {
210
+ throw new Error('Public key is required');
211
+ }
212
+
213
+ const { keyObject, options } = prepareKey(publicKey, true);
214
+
215
+ // Convert signature to ArrayBuffer
216
+ let sigBuffer: ArrayBuffer;
217
+ if (signatureEncoding && typeof signature === 'string') {
218
+ sigBuffer = toAB(Buffer.from(signature, signatureEncoding));
219
+ } else {
220
+ sigBuffer = toAB(signature);
221
+ }
222
+
223
+ return this.handle.verify(
224
+ keyObject.handle,
225
+ sigBuffer,
226
+ options?.padding,
227
+ options?.saltLength,
228
+ dsaEncodingToNumber(options?.dsaEncoding),
229
+ );
230
+ }
231
+ }
232
+
233
+ export function createSign(algorithm: string): Sign {
234
+ return new Sign(algorithm);
235
+ }
236
+
237
+ export function createVerify(algorithm: string): Verify {
238
+ return new Verify(algorithm);
239
+ }
package/src/keys/utils.ts CHANGED
@@ -4,13 +4,21 @@ import {
4
4
  KeyEncoding,
5
5
  KFormatType,
6
6
  } from '../utils';
7
- import type { EncodingOptions } from '../utils';
7
+ import type { CryptoKeyPair, EncodingOptions } from '../utils';
8
+ import type { CryptoKey } from './classes';
8
9
 
9
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
11
  export const isCryptoKey = (obj: any): boolean => {
11
12
  return obj !== null && obj?.keyObject !== undefined;
12
13
  };
13
14
 
15
+ export function getCryptoKeyPair(
16
+ key: CryptoKey | CryptoKeyPair,
17
+ ): CryptoKeyPair {
18
+ if ('publicKey' in key && 'privateKey' in key) return key;
19
+ throw new Error('Invalid CryptoKeyPair');
20
+ }
21
+
14
22
  /**
15
23
  * Parses the public key encoding based on an object. keyType must be undefined
16
24
  * when this is used to parse an input encoding and must be a valid key type if
@@ -65,9 +73,8 @@ export function parseKeyEncoding(
65
73
  `Invalid argument ${option('cipher', objName)}: ${cipher}`,
66
74
  );
67
75
  if (
68
- format === KFormatType.kKeyFormatDER &&
69
- (type === KeyEncoding.kKeyEncodingPKCS1 ||
70
- type === KeyEncoding.kKeyEncodingSEC1)
76
+ format === KFormatType.DER &&
77
+ (type === KeyEncoding.PKCS1 || type === KeyEncoding.SEC1)
71
78
  ) {
72
79
  throw new Error(
73
80
  `Incompatible key options ${encodingNames[type]} does not support encryption`,
@@ -97,10 +104,10 @@ export function parseKeyEncoding(
97
104
  }
98
105
 
99
106
  const encodingNames = {
100
- [KeyEncoding.kKeyEncodingPKCS1]: 'pkcs1',
101
- [KeyEncoding.kKeyEncodingPKCS8]: 'pkcs8',
102
- [KeyEncoding.kKeyEncodingSPKI]: 'spki',
103
- [KeyEncoding.kKeyEncodingSEC1]: 'sec1',
107
+ [KeyEncoding.PKCS1]: 'pkcs1',
108
+ [KeyEncoding.PKCS8]: 'pkcs8',
109
+ [KeyEncoding.SPKI]: 'spki',
110
+ [KeyEncoding.SEC1]: 'sec1',
104
111
  };
105
112
 
106
113
  function option(name: string, objName?: string) {
@@ -116,9 +123,9 @@ function parseKeyFormat(
116
123
  ) {
117
124
  if (formatStr === undefined && defaultFormat !== undefined)
118
125
  return defaultFormat;
119
- else if (formatStr === 'pem') return KFormatType.kKeyFormatPEM;
120
- else if (formatStr === 'der') return KFormatType.kKeyFormatDER;
121
- else if (formatStr === 'jwk') return KFormatType.kKeyFormatJWK;
126
+ else if (formatStr === 'pem') return KFormatType.PEM;
127
+ else if (formatStr === 'der') return KFormatType.DER;
128
+ else if (formatStr === 'jwk') return KFormatType.JWK;
122
129
  throw new Error(`Invalid key format str: ${optionName}`);
123
130
  }
124
131
 
@@ -137,18 +144,18 @@ function parseKeyType(
137
144
  `Crypto incompatible key options: ${typeStr} can only be used for RSA keys`,
138
145
  );
139
146
  }
140
- return KeyEncoding.kKeyEncodingPKCS1;
147
+ return KeyEncoding.PKCS1;
141
148
  } else if (typeStr === 'spki' && isPublic !== false) {
142
- return KeyEncoding.kKeyEncodingSPKI;
149
+ return KeyEncoding.SPKI;
143
150
  } else if (typeStr === 'pkcs8' && isPublic !== true) {
144
- return KeyEncoding.kKeyEncodingPKCS8;
151
+ return KeyEncoding.PKCS8;
145
152
  } else if (typeStr === 'sec1' && isPublic !== true) {
146
153
  if (keyType !== undefined && keyType !== 'ec') {
147
154
  throw new Error(
148
155
  `Incompatible key options ${typeStr} can only be used for EC keys`,
149
156
  );
150
157
  }
151
- return KeyEncoding.kKeyEncodingSEC1;
158
+ return KeyEncoding.SEC1;
152
159
  }
153
160
 
154
161
  throw new Error(`Invalid option ${optionName} - ${typeStr}`);
@@ -165,13 +172,12 @@ function parseKeyFormatAndType(
165
172
  const isInput = keyType === undefined;
166
173
  const format = parseKeyFormat(
167
174
  formatStr,
168
- isInput ? KFormatType.kKeyFormatPEM : undefined,
175
+ isInput ? KFormatType.PEM : undefined,
169
176
  option('format', objName),
170
177
  );
171
178
 
172
179
  const isRequired =
173
- (!isInput || format === KFormatType.kKeyFormatDER) &&
174
- format !== KFormatType.kKeyFormatJWK;
180
+ (!isInput || format === KFormatType.DER) && format !== KFormatType.JWK;
175
181
 
176
182
  const type = parseKeyType(
177
183
  typeStr,
package/src/pbkdf2.ts CHANGED
@@ -80,7 +80,7 @@ export function pbkdf2Sync(
80
80
  iterations: number,
81
81
  keylen: number,
82
82
  digest?: HashAlgorithm,
83
- ): ArrayBuffer {
83
+ ): Buffer {
84
84
  const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
85
85
  const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
86
86
 
package/src/random.ts CHANGED
@@ -269,6 +269,13 @@ export type RandomTypedArrays =
269
269
  | Uint8Array
270
270
  | Uint16Array
271
271
  | Uint32Array;
272
+
273
+ /**
274
+ * Fills the provided typed array with cryptographically strong random values.
275
+ *
276
+ * @param data The data to fill with random values
277
+ * @returns The filled data
278
+ */
272
279
  export function getRandomValues(data: RandomTypedArrays) {
273
280
  if (data.byteLength > 65536) {
274
281
  throw new Error('The requested length exceeds 65,536 bytes');