react-native-quick-crypto 1.0.0-beta.9 → 1.0.1
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.
- package/QuickCrypto.podspec +156 -8
- package/README.md +14 -27
- package/android/CMakeLists.txt +64 -7
- package/android/build.gradle +12 -2
- package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +0 -2
- package/app.plugin.js +3 -0
- package/cpp/blake3/HybridBlake3.cpp +118 -0
- package/cpp/blake3/HybridBlake3.hpp +35 -0
- package/cpp/cipher/CCMCipher.cpp +199 -0
- package/cpp/cipher/CCMCipher.hpp +26 -0
- package/cpp/cipher/ChaCha20Cipher.cpp +97 -0
- package/cpp/cipher/ChaCha20Cipher.hpp +25 -0
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +170 -0
- package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +30 -0
- package/cpp/cipher/GCMCipher.cpp +68 -0
- package/cpp/cipher/GCMCipher.hpp +14 -0
- package/cpp/cipher/HybridCipher.cpp +323 -0
- package/cpp/cipher/HybridCipher.hpp +68 -0
- package/cpp/cipher/HybridCipherFactory.hpp +105 -0
- package/cpp/cipher/HybridRsaCipher.cpp +367 -0
- package/cpp/cipher/HybridRsaCipher.hpp +29 -0
- package/cpp/cipher/OCBCipher.cpp +55 -0
- package/cpp/cipher/OCBCipher.hpp +19 -0
- package/cpp/cipher/XSalsa20Cipher.cpp +61 -0
- package/cpp/cipher/XSalsa20Cipher.hpp +33 -0
- package/cpp/ec/HybridEcKeyPair.cpp +428 -0
- package/cpp/ec/HybridEcKeyPair.hpp +48 -0
- package/cpp/ed25519/HybridEdKeyPair.cpp +228 -98
- package/cpp/ed25519/HybridEdKeyPair.hpp +42 -56
- package/cpp/hash/HybridHash.cpp +185 -0
- package/cpp/hash/HybridHash.hpp +43 -0
- package/cpp/hmac/HybridHmac.cpp +95 -0
- package/cpp/hmac/HybridHmac.hpp +31 -0
- package/cpp/keys/HybridKeyObjectHandle.cpp +757 -0
- package/cpp/keys/HybridKeyObjectHandle.hpp +51 -0
- package/cpp/keys/KeyObjectData.cpp +268 -0
- package/cpp/keys/KeyObjectData.hpp +71 -0
- package/cpp/keys/node.h +5 -0
- package/cpp/mldsa/HybridMlDsaKeyPair.cpp +264 -0
- package/cpp/mldsa/HybridMlDsaKeyPair.hpp +47 -0
- package/cpp/pbkdf2/HybridPbkdf2.cpp +34 -55
- package/cpp/pbkdf2/HybridPbkdf2.hpp +5 -16
- package/cpp/random/HybridRandom.cpp +6 -17
- package/cpp/random/HybridRandom.hpp +5 -6
- package/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
- package/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
- package/cpp/sign/HybridSignHandle.cpp +266 -0
- package/cpp/sign/HybridSignHandle.hpp +36 -0
- package/cpp/sign/HybridVerifyHandle.cpp +227 -0
- package/cpp/sign/HybridVerifyHandle.hpp +36 -0
- package/cpp/sign/SignUtils.hpp +108 -0
- package/cpp/utils/Macros.hpp +68 -0
- package/cpp/utils/Utils.hpp +43 -2
- package/cpp/utils/base64.h +309 -0
- package/deps/blake3/.cargo/config.toml +2 -0
- package/deps/blake3/.git-blame-ignore-revs +2 -0
- package/deps/blake3/.github/workflows/build_b3sum.py +38 -0
- package/deps/blake3/.github/workflows/ci.yml +491 -0
- package/deps/blake3/.github/workflows/tag.yml +43 -0
- package/deps/blake3/.github/workflows/upload_github_release_asset.py +73 -0
- package/deps/blake3/CONTRIBUTING.md +31 -0
- package/deps/blake3/Cargo.toml +135 -0
- package/deps/blake3/LICENSE_A2 +202 -0
- package/deps/blake3/LICENSE_A2LLVM +219 -0
- package/deps/blake3/LICENSE_CC0 +121 -0
- package/deps/blake3/README.md +229 -0
- package/deps/blake3/b3sum/Cargo.lock +513 -0
- package/deps/blake3/b3sum/Cargo.toml +26 -0
- package/deps/blake3/b3sum/README.md +72 -0
- package/deps/blake3/b3sum/src/main.rs +564 -0
- package/deps/blake3/b3sum/src/unit_tests.rs +235 -0
- package/deps/blake3/b3sum/tests/cli_tests.rs +680 -0
- package/deps/blake3/b3sum/what_does_check_do.md +176 -0
- package/deps/blake3/benches/bench.rs +623 -0
- package/deps/blake3/build.rs +389 -0
- package/deps/blake3/c/CMakeLists.txt +383 -0
- package/deps/blake3/c/CMakePresets.json +73 -0
- package/deps/blake3/c/Makefile.testing +82 -0
- package/deps/blake3/c/README.md +403 -0
- package/deps/blake3/c/blake3-config.cmake.in +14 -0
- package/deps/blake3/c/blake3.c +650 -0
- package/deps/blake3/c/blake3.h +86 -0
- package/deps/blake3/c/blake3_avx2.c +326 -0
- package/deps/blake3/c/blake3_avx2_x86-64_unix.S +1815 -0
- package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +1817 -0
- package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +1828 -0
- package/deps/blake3/c/blake3_avx512.c +1388 -0
- package/deps/blake3/c/blake3_avx512_x86-64_unix.S +4824 -0
- package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +2615 -0
- package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +2634 -0
- package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +32 -0
- package/deps/blake3/c/blake3_c_rust_bindings/README.md +4 -0
- package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +477 -0
- package/deps/blake3/c/blake3_c_rust_bindings/build.rs +253 -0
- package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +31 -0
- package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +333 -0
- package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +696 -0
- package/deps/blake3/c/blake3_dispatch.c +332 -0
- package/deps/blake3/c/blake3_impl.h +333 -0
- package/deps/blake3/c/blake3_neon.c +366 -0
- package/deps/blake3/c/blake3_portable.c +160 -0
- package/deps/blake3/c/blake3_sse2.c +566 -0
- package/deps/blake3/c/blake3_sse2_x86-64_unix.S +2291 -0
- package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +2332 -0
- package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
- package/deps/blake3/c/blake3_sse41.c +560 -0
- package/deps/blake3/c/blake3_sse41_x86-64_unix.S +2028 -0
- package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +2069 -0
- package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +2089 -0
- package/deps/blake3/c/blake3_tbb.cpp +37 -0
- package/deps/blake3/c/dependencies/CMakeLists.txt +3 -0
- package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +28 -0
- package/deps/blake3/c/example.c +36 -0
- package/deps/blake3/c/example_tbb.c +57 -0
- package/deps/blake3/c/libblake3.pc.in +12 -0
- package/deps/blake3/c/main.c +166 -0
- package/deps/blake3/c/test.py +97 -0
- package/deps/blake3/media/B3.svg +70 -0
- package/deps/blake3/media/BLAKE3.svg +85 -0
- package/deps/blake3/media/speed.svg +1474 -0
- package/deps/blake3/reference_impl/Cargo.toml +8 -0
- package/deps/blake3/reference_impl/README.md +14 -0
- package/deps/blake3/reference_impl/reference_impl.rs +374 -0
- package/deps/blake3/src/ffi_avx2.rs +65 -0
- package/deps/blake3/src/ffi_avx512.rs +169 -0
- package/deps/blake3/src/ffi_neon.rs +82 -0
- package/deps/blake3/src/ffi_sse2.rs +126 -0
- package/deps/blake3/src/ffi_sse41.rs +126 -0
- package/deps/blake3/src/guts.rs +60 -0
- package/deps/blake3/src/hazmat.rs +704 -0
- package/deps/blake3/src/io.rs +64 -0
- package/deps/blake3/src/join.rs +92 -0
- package/deps/blake3/src/lib.rs +1835 -0
- package/deps/blake3/src/platform.rs +587 -0
- package/deps/blake3/src/portable.rs +198 -0
- package/deps/blake3/src/rust_avx2.rs +474 -0
- package/deps/blake3/src/rust_sse2.rs +775 -0
- package/deps/blake3/src/rust_sse41.rs +766 -0
- package/deps/blake3/src/test.rs +1049 -0
- package/deps/blake3/src/traits.rs +227 -0
- package/deps/blake3/src/wasm32_simd.rs +794 -0
- package/deps/blake3/test_vectors/Cargo.toml +19 -0
- package/deps/blake3/test_vectors/cross_test.sh +25 -0
- package/deps/blake3/test_vectors/src/bin/generate.rs +4 -0
- package/deps/blake3/test_vectors/src/lib.rs +350 -0
- package/deps/blake3/test_vectors/test_vectors.json +217 -0
- package/deps/blake3/tools/compiler_version/Cargo.toml +7 -0
- package/deps/blake3/tools/compiler_version/build.rs +6 -0
- package/deps/blake3/tools/compiler_version/src/main.rs +27 -0
- package/deps/blake3/tools/instruction_set_support/Cargo.toml +6 -0
- package/deps/blake3/tools/instruction_set_support/src/main.rs +10 -0
- package/deps/blake3/tools/release.md +16 -0
- package/deps/fastpbkdf2/fastpbkdf2.c +5 -1
- package/deps/ncrypto/.bazelignore +4 -0
- package/deps/ncrypto/.bazelrc +2 -0
- package/deps/ncrypto/.bazelversion +1 -0
- package/deps/ncrypto/.clang-format +111 -0
- package/deps/ncrypto/.github/workflows/bazel.yml +58 -0
- package/deps/ncrypto/.github/workflows/linter.yml +38 -0
- package/deps/ncrypto/.github/workflows/macos.yml +43 -0
- package/deps/ncrypto/.github/workflows/ubuntu.yml +46 -0
- package/deps/ncrypto/.github/workflows/visual-studio.yml +49 -0
- package/deps/ncrypto/.python-version +1 -0
- package/deps/ncrypto/BUILD.bazel +36 -0
- package/deps/ncrypto/CMakeLists.txt +55 -0
- package/deps/ncrypto/LICENSE +21 -0
- package/deps/ncrypto/MODULE.bazel +1 -0
- package/deps/ncrypto/MODULE.bazel.lock +280 -0
- package/deps/ncrypto/README.md +18 -0
- package/deps/ncrypto/WORKSPACE +15 -0
- package/deps/ncrypto/cmake/CPM.cmake +1225 -0
- package/deps/ncrypto/cmake/ncrypto-flags.cmake +16 -0
- package/deps/ncrypto/include/dh-primes.h +67 -0
- package/deps/ncrypto/include/ncrypto.h +1897 -0
- package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +28 -0
- package/deps/ncrypto/pyproject.toml +38 -0
- package/deps/ncrypto/src/CMakeLists.txt +15 -0
- package/deps/ncrypto/src/engine.cpp +93 -0
- package/deps/ncrypto/src/ncrypto.cpp +5613 -0
- package/deps/ncrypto/tests/BUILD.bazel +9 -0
- package/deps/ncrypto/tests/CMakeLists.txt +7 -0
- package/deps/ncrypto/tests/basic.cpp +86 -0
- package/deps/ncrypto/tools/run-clang-format.sh +42 -0
- package/lib/commonjs/blake3.js +98 -0
- package/lib/commonjs/blake3.js.map +1 -0
- package/lib/commonjs/cipher.js +180 -0
- package/lib/commonjs/cipher.js.map +1 -0
- package/lib/commonjs/constants.js +32 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/ec.js +480 -0
- package/lib/commonjs/ec.js.map +1 -0
- package/lib/commonjs/ed.js +214 -2
- package/lib/commonjs/ed.js.map +1 -1
- package/lib/commonjs/expo-plugin/@types.js +2 -0
- package/lib/commonjs/expo-plugin/@types.js.map +1 -0
- package/lib/commonjs/expo-plugin/withRNQC.js +25 -0
- package/lib/commonjs/expo-plugin/withRNQC.js.map +1 -0
- package/lib/commonjs/expo-plugin/withSodiumAndroid.js +25 -0
- package/lib/commonjs/expo-plugin/withSodiumAndroid.js.map +1 -0
- package/lib/commonjs/expo-plugin/withSodiumIos.js +26 -0
- package/lib/commonjs/expo-plugin/withSodiumIos.js.map +1 -0
- package/lib/commonjs/expo-plugin/withXCode.js +51 -0
- package/lib/commonjs/expo-plugin/withXCode.js.map +1 -0
- package/lib/commonjs/hash.js +215 -0
- package/lib/commonjs/hash.js.map +1 -0
- package/lib/commonjs/hmac.js +109 -0
- package/lib/commonjs/hmac.js.map +1 -0
- package/lib/commonjs/index.js +102 -24
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/keys/classes.js +115 -52
- package/lib/commonjs/keys/classes.js.map +1 -1
- package/lib/commonjs/keys/generateKeyPair.js +141 -144
- package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
- package/lib/commonjs/keys/index.js +229 -0
- package/lib/commonjs/keys/index.js.map +1 -1
- package/lib/commonjs/keys/publicCipher.js +152 -0
- package/lib/commonjs/keys/publicCipher.js.map +1 -0
- package/lib/commonjs/keys/signVerify.js +178 -39
- package/lib/commonjs/keys/signVerify.js.map +1 -1
- package/lib/commonjs/keys/utils.js +18 -13
- package/lib/commonjs/keys/utils.js.map +1 -1
- package/lib/commonjs/mldsa.js +69 -0
- package/lib/commonjs/mldsa.js.map +1 -0
- package/lib/commonjs/pbkdf2.js.map +1 -1
- package/lib/commonjs/random.js +6 -0
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +202 -0
- package/lib/commonjs/rsa.js.map +1 -0
- package/lib/commonjs/specs/blake3.nitro.js +6 -0
- package/lib/commonjs/specs/blake3.nitro.js.map +1 -0
- package/lib/commonjs/specs/cipher.nitro.js +6 -0
- package/lib/commonjs/specs/cipher.nitro.js.map +1 -0
- package/lib/commonjs/specs/ecKeyPair.nitro.js +6 -0
- package/lib/commonjs/specs/ecKeyPair.nitro.js.map +1 -0
- package/lib/commonjs/specs/hash.nitro.js +6 -0
- package/lib/commonjs/specs/hash.nitro.js.map +1 -0
- package/lib/commonjs/specs/hmac.nitro.js +6 -0
- package/lib/commonjs/specs/hmac.nitro.js.map +1 -0
- package/lib/commonjs/specs/mlDsaKeyPair.nitro.js +6 -0
- package/lib/commonjs/specs/mlDsaKeyPair.nitro.js.map +1 -0
- package/lib/commonjs/specs/rsaCipher.nitro.js +6 -0
- package/lib/commonjs/specs/rsaCipher.nitro.js.map +1 -0
- package/lib/commonjs/specs/rsaKeyPair.nitro.js +6 -0
- package/lib/commonjs/specs/rsaKeyPair.nitro.js.map +1 -0
- package/lib/commonjs/specs/sign.nitro.js +6 -0
- package/lib/commonjs/specs/sign.nitro.js.map +1 -0
- package/lib/commonjs/subtle.js +1092 -0
- package/lib/commonjs/subtle.js.map +1 -0
- package/lib/commonjs/utils/cipher.js +64 -0
- package/lib/commonjs/utils/cipher.js.map +1 -0
- package/lib/commonjs/utils/conversion.js +44 -5
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/hashnames.js +2 -1
- package/lib/commonjs/utils/hashnames.js.map +1 -1
- package/lib/commonjs/utils/index.js +11 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/noble.js +82 -0
- package/lib/commonjs/utils/noble.js.map +1 -0
- package/lib/commonjs/utils/types.js +32 -17
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/commonjs/utils/validation.js +74 -1
- package/lib/commonjs/utils/validation.js.map +1 -1
- package/lib/module/blake3.js +90 -0
- package/lib/module/blake3.js.map +1 -0
- package/lib/module/cipher.js +173 -0
- package/lib/module/cipher.js.map +1 -0
- package/lib/module/constants.js +28 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/ec.js +470 -0
- package/lib/module/ec.js.map +1 -0
- package/lib/module/ed.js +212 -3
- package/lib/module/ed.js.map +1 -1
- package/lib/module/expo-plugin/@types.js +2 -0
- package/lib/module/expo-plugin/@types.js.map +1 -0
- package/lib/module/expo-plugin/withRNQC.js +21 -0
- package/lib/module/expo-plugin/withRNQC.js.map +1 -0
- package/lib/module/expo-plugin/withSodiumAndroid.js +20 -0
- package/lib/module/expo-plugin/withSodiumAndroid.js.map +1 -0
- package/lib/module/expo-plugin/withSodiumIos.js +20 -0
- package/lib/module/expo-plugin/withSodiumIos.js.map +1 -0
- package/lib/module/expo-plugin/withXCode.js +46 -0
- package/lib/module/expo-plugin/withXCode.js.map +1 -0
- package/lib/module/hash.js +207 -0
- package/lib/module/hash.js.map +1 -0
- package/lib/module/hmac.js +104 -0
- package/lib/module/hmac.js.map +1 -0
- package/lib/module/index.js +21 -21
- package/lib/module/index.js.map +1 -1
- package/lib/module/keys/classes.js +112 -49
- package/lib/module/keys/classes.js.map +1 -1
- package/lib/module/keys/generateKeyPair.js +134 -143
- package/lib/module/keys/generateKeyPair.js.map +1 -1
- package/lib/module/keys/index.js +161 -22
- package/lib/module/keys/index.js.map +1 -1
- package/lib/module/keys/publicCipher.js +145 -0
- package/lib/module/keys/publicCipher.js.map +1 -0
- package/lib/module/keys/signVerify.js +170 -39
- package/lib/module/keys/signVerify.js.map +1 -1
- package/lib/module/keys/utils.js +16 -12
- package/lib/module/keys/utils.js.map +1 -1
- package/lib/module/mldsa.js +63 -0
- package/lib/module/mldsa.js.map +1 -0
- package/lib/module/pbkdf2.js.map +1 -1
- package/lib/module/random.js +6 -0
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +194 -0
- package/lib/module/rsa.js.map +1 -0
- package/lib/module/specs/blake3.nitro.js +4 -0
- package/lib/module/specs/blake3.nitro.js.map +1 -0
- package/lib/module/specs/cipher.nitro.js +4 -0
- package/lib/module/specs/cipher.nitro.js.map +1 -0
- package/lib/module/specs/ecKeyPair.nitro.js +4 -0
- package/lib/module/specs/ecKeyPair.nitro.js.map +1 -0
- package/lib/module/specs/hash.nitro.js +4 -0
- package/lib/module/specs/hash.nitro.js.map +1 -0
- package/lib/module/specs/hmac.nitro.js +4 -0
- package/lib/module/specs/hmac.nitro.js.map +1 -0
- package/lib/module/specs/mlDsaKeyPair.nitro.js +4 -0
- package/lib/module/specs/mlDsaKeyPair.nitro.js.map +1 -0
- package/lib/module/specs/rsaCipher.nitro.js +4 -0
- package/lib/module/specs/rsaCipher.nitro.js.map +1 -0
- package/lib/module/specs/rsaKeyPair.nitro.js +4 -0
- package/lib/module/specs/rsaKeyPair.nitro.js.map +1 -0
- package/lib/module/specs/sign.nitro.js +4 -0
- package/lib/module/specs/sign.nitro.js.map +1 -0
- package/lib/module/subtle.js +1087 -0
- package/lib/module/subtle.js.map +1 -0
- package/lib/module/utils/cipher.js +56 -0
- package/lib/module/utils/cipher.js.map +1 -0
- package/lib/module/utils/conversion.js +26 -5
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/hashnames.js +2 -1
- package/lib/module/utils/hashnames.js.map +1 -1
- package/lib/module/utils/index.js +1 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/noble.js +76 -0
- package/lib/module/utils/noble.js.map +1 -0
- package/lib/module/utils/types.js +32 -17
- package/lib/module/utils/types.js.map +1 -1
- package/lib/module/utils/validation.js +69 -1
- package/lib/module/utils/validation.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/blake3.d.ts +33 -0
- package/lib/typescript/blake3.d.ts.map +1 -0
- package/lib/typescript/cipher.d.ts +60 -0
- package/lib/typescript/cipher.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +21 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/ec.d.ts +22 -0
- package/lib/typescript/ec.d.ts.map +1 -0
- package/lib/typescript/ed.d.ts +28 -1
- package/lib/typescript/ed.d.ts.map +1 -1
- package/lib/typescript/expo-plugin/@types.d.ts +8 -0
- package/lib/typescript/expo-plugin/@types.d.ts.map +1 -0
- package/lib/typescript/expo-plugin/withRNQC.d.ts +4 -0
- package/lib/typescript/expo-plugin/withRNQC.d.ts.map +1 -0
- package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts +4 -0
- package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts.map +1 -0
- package/lib/typescript/expo-plugin/withSodiumIos.d.ts +4 -0
- package/lib/typescript/expo-plugin/withSodiumIos.d.ts.map +1 -0
- package/lib/typescript/expo-plugin/withXCode.d.ts +9 -0
- package/lib/typescript/expo-plugin/withXCode.d.ts.map +1 -0
- package/lib/typescript/hash.d.ts +122 -0
- package/lib/typescript/hash.d.ts.map +1 -0
- package/lib/typescript/hmac.d.ts +66 -0
- package/lib/typescript/hmac.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +102 -10
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/classes.d.ts +52 -8
- package/lib/typescript/keys/classes.d.ts.map +1 -1
- package/lib/typescript/keys/generateKeyPair.d.ts +5 -0
- package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
- package/lib/typescript/keys/index.d.ts +22 -2
- package/lib/typescript/keys/index.d.ts.map +1 -1
- package/lib/typescript/keys/publicCipher.d.ts +20 -0
- package/lib/typescript/keys/publicCipher.d.ts.map +1 -0
- package/lib/typescript/keys/signVerify.d.ts +28 -0
- package/lib/typescript/keys/signVerify.d.ts.map +1 -1
- package/lib/typescript/keys/utils.d.ts +3 -1
- package/lib/typescript/keys/utils.d.ts.map +1 -1
- package/lib/typescript/mldsa.d.ts +18 -0
- package/lib/typescript/mldsa.d.ts.map +1 -0
- package/lib/typescript/pbkdf2.d.ts +1 -1
- package/lib/typescript/pbkdf2.d.ts.map +1 -1
- package/lib/typescript/random.d.ts +6 -0
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts +19 -0
- package/lib/typescript/rsa.d.ts.map +1 -0
- package/lib/typescript/specs/blake3.nitro.d.ts +15 -0
- package/lib/typescript/specs/blake3.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/cipher.nitro.d.ts +29 -0
- package/lib/typescript/specs/cipher.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/ecKeyPair.nitro.d.ts +20 -0
- package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/edKeyPair.nitro.d.ts +1 -0
- package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/hash.nitro.d.ts +13 -0
- package/lib/typescript/specs/hash.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/hmac.nitro.d.ts +10 -0
- package/lib/typescript/specs/hmac.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +1 -1
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/mlDsaKeyPair.nitro.d.ts +16 -0
- package/lib/typescript/specs/mlDsaKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/rsaCipher.nitro.d.ts +44 -0
- package/lib/typescript/specs/rsaCipher.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/rsaKeyPair.nitro.d.ts +20 -0
- package/lib/typescript/specs/rsaKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/sign.nitro.d.ts +19 -0
- package/lib/typescript/specs/sign.nitro.d.ts.map +1 -0
- package/lib/typescript/subtle.d.ts +17 -0
- package/lib/typescript/subtle.d.ts.map +1 -0
- package/lib/typescript/utils/cipher.d.ts +7 -0
- package/lib/typescript/utils/cipher.d.ts.map +1 -0
- package/lib/typescript/utils/conversion.d.ts +1 -0
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/hashnames.d.ts +3 -1
- package/lib/typescript/utils/hashnames.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +1 -0
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/utils/noble.d.ts +19 -0
- package/lib/typescript/utils/noble.d.ts.map +1 -0
- package/lib/typescript/utils/types.d.ts +129 -25
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/lib/typescript/utils/validation.d.ts +5 -0
- package/lib/typescript/utils/validation.d.ts.map +1 -1
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +31 -1
- package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -1
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +125 -1
- package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +35 -0
- package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +3 -1
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +1 -1
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +3 -3
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +121 -1
- package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +1 -1
- package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +116 -0
- package/nitrogen/generated/shared/c++/CipherArgs.hpp +86 -0
- package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +76 -0
- package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +76 -0
- package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +5 -4
- package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +66 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +8 -8
- package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +3 -3
- package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +3 -3
- package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridSignHandleSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridSignHandleSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/JWK.hpp +17 -18
- package/nitrogen/generated/shared/c++/JWKkty.hpp +12 -14
- package/nitrogen/generated/shared/c++/JWKuse.hpp +8 -10
- package/nitrogen/generated/shared/c++/KFormatType.hpp +14 -16
- package/nitrogen/generated/shared/c++/KeyDetail.hpp +6 -7
- package/nitrogen/generated/shared/c++/KeyEncoding.hpp +15 -17
- package/nitrogen/generated/shared/c++/KeyObject.hpp +67 -0
- package/nitrogen/generated/shared/c++/KeyType.hpp +11 -13
- package/nitrogen/generated/shared/c++/KeyUsage.hpp +38 -24
- package/nitrogen/generated/shared/c++/NamedCurve.hpp +10 -12
- package/package.json +31 -23
- package/src/blake3.ts +123 -0
- package/src/cipher.ts +335 -0
- package/src/constants.ts +32 -0
- package/src/ec.ts +657 -0
- package/src/ed.ts +297 -13
- package/src/expo-plugin/@types.ts +7 -0
- package/src/expo-plugin/withRNQC.ts +23 -0
- package/src/expo-plugin/withSodiumAndroid.ts +24 -0
- package/src/expo-plugin/withSodiumIos.ts +30 -0
- package/src/expo-plugin/withXCode.ts +55 -0
- package/src/hash.ts +274 -0
- package/src/hmac.ts +135 -0
- package/src/index.ts +20 -20
- package/src/keys/classes.ts +157 -55
- package/src/keys/generateKeyPair.ts +177 -134
- package/src/keys/index.ts +226 -14
- package/src/keys/publicCipher.ts +229 -0
- package/src/keys/signVerify.ts +239 -39
- package/src/keys/utils.ts +24 -18
- package/src/mldsa.ts +125 -0
- package/src/pbkdf2.ts +1 -1
- package/src/random.ts +7 -0
- package/src/rsa.ts +310 -0
- package/src/specs/blake3.nitro.ts +12 -0
- package/src/specs/cipher.nitro.ts +25 -0
- package/src/specs/ecKeyPair.nitro.ts +38 -0
- package/src/specs/edKeyPair.nitro.ts +2 -0
- package/src/specs/hash.nitro.ts +10 -0
- package/src/specs/hmac.nitro.ts +7 -0
- package/src/specs/keyObjectHandle.nitro.ts +1 -1
- package/src/specs/mlDsaKeyPair.nitro.ts +29 -0
- package/src/specs/rsaCipher.nitro.ts +65 -0
- package/src/specs/rsaKeyPair.nitro.ts +33 -0
- package/src/specs/sign.nitro.ts +31 -0
- package/src/subtle.ts +1576 -0
- package/src/utils/cipher.ts +60 -0
- package/src/utils/conversion.ts +33 -4
- package/src/utils/hashnames.ts +4 -2
- package/src/utils/index.ts +1 -0
- package/src/utils/noble.ts +85 -0
- package/src/utils/types.ts +219 -31
- package/src/utils/validation.ts +96 -1
- package/lib/module/package.json +0 -1
- package/nitrogen/generated/android/QuickCryptoOnLoad.kt +0 -1
- package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +0 -86
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
/// KFormatType.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#include <cmath>
|
|
11
10
|
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
12
11
|
#include <NitroModules/JSIConverter.hpp>
|
|
13
12
|
#else
|
|
@@ -25,36 +24,35 @@ namespace margelo::nitro::crypto {
|
|
|
25
24
|
* An enum which can be represented as a JavaScript enum (KFormatType).
|
|
26
25
|
*/
|
|
27
26
|
enum class KFormatType {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
DER SWIFT_NAME(der) = 0,
|
|
28
|
+
PEM SWIFT_NAME(pem) = 1,
|
|
29
|
+
JWK SWIFT_NAME(jwk) = 2,
|
|
31
30
|
} CLOSED_ENUM;
|
|
32
31
|
|
|
33
32
|
} // namespace margelo::nitro::crypto
|
|
34
33
|
|
|
35
34
|
namespace margelo::nitro {
|
|
36
35
|
|
|
37
|
-
using namespace margelo::nitro::crypto;
|
|
38
|
-
|
|
39
36
|
// C++ KFormatType <> JS KFormatType (enum)
|
|
40
37
|
template <>
|
|
41
|
-
struct JSIConverter<KFormatType> {
|
|
42
|
-
static inline KFormatType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
38
|
+
struct JSIConverter<margelo::nitro::crypto::KFormatType> final {
|
|
39
|
+
static inline margelo::nitro::crypto::KFormatType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
43
40
|
int enumValue = JSIConverter<int>::fromJSI(runtime, arg);
|
|
44
|
-
return static_cast<KFormatType>(enumValue);
|
|
41
|
+
return static_cast<margelo::nitro::crypto::KFormatType>(enumValue);
|
|
45
42
|
}
|
|
46
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, KFormatType arg) {
|
|
43
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::crypto::KFormatType arg) {
|
|
47
44
|
int enumValue = static_cast<int>(arg);
|
|
48
45
|
return JSIConverter<int>::toJSI(runtime, enumValue);
|
|
49
46
|
}
|
|
50
|
-
static inline bool canConvert(jsi::Runtime
|
|
47
|
+
static inline bool canConvert(jsi::Runtime&, const jsi::Value& value) {
|
|
51
48
|
if (!value.isNumber()) {
|
|
52
49
|
return false;
|
|
53
50
|
}
|
|
54
|
-
double
|
|
55
|
-
|
|
56
|
-
if (
|
|
57
|
-
//
|
|
51
|
+
double number = value.getNumber();
|
|
52
|
+
int integer = static_cast<int>(number);
|
|
53
|
+
if (number != integer) {
|
|
54
|
+
// The integer is not the same value as the double - we truncated floating points.
|
|
55
|
+
// Enums are all integers, so the input floating point number is obviously invalid.
|
|
58
56
|
return false;
|
|
59
57
|
}
|
|
60
58
|
// Check if we are within the bounds of the enum.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// KeyDetail.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -39,6 +39,7 @@ namespace margelo::nitro::crypto {
|
|
|
39
39
|
std::optional<std::string> namedCurve SWIFT_PRIVATE;
|
|
40
40
|
|
|
41
41
|
public:
|
|
42
|
+
KeyDetail() = default;
|
|
42
43
|
explicit KeyDetail(std::optional<double> length, std::optional<double> publicExponent, std::optional<double> modulusLength, std::optional<std::string> hashAlgorithm, std::optional<std::string> mgf1HashAlgorithm, std::optional<double> saltLength, std::optional<std::string> namedCurve): length(length), publicExponent(publicExponent), modulusLength(modulusLength), hashAlgorithm(hashAlgorithm), mgf1HashAlgorithm(mgf1HashAlgorithm), saltLength(saltLength), namedCurve(namedCurve) {}
|
|
43
44
|
};
|
|
44
45
|
|
|
@@ -46,14 +47,12 @@ namespace margelo::nitro::crypto {
|
|
|
46
47
|
|
|
47
48
|
namespace margelo::nitro {
|
|
48
49
|
|
|
49
|
-
using namespace margelo::nitro::crypto;
|
|
50
|
-
|
|
51
50
|
// C++ KeyDetail <> JS KeyDetail (object)
|
|
52
51
|
template <>
|
|
53
|
-
struct JSIConverter<KeyDetail> {
|
|
54
|
-
static inline KeyDetail fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
52
|
+
struct JSIConverter<margelo::nitro::crypto::KeyDetail> final {
|
|
53
|
+
static inline margelo::nitro::crypto::KeyDetail fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
55
54
|
jsi::Object obj = arg.asObject(runtime);
|
|
56
|
-
return KeyDetail(
|
|
55
|
+
return margelo::nitro::crypto::KeyDetail(
|
|
57
56
|
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "length")),
|
|
58
57
|
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "publicExponent")),
|
|
59
58
|
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "modulusLength")),
|
|
@@ -63,7 +62,7 @@ namespace margelo::nitro {
|
|
|
63
62
|
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "namedCurve"))
|
|
64
63
|
);
|
|
65
64
|
}
|
|
66
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, const KeyDetail& arg) {
|
|
65
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::crypto::KeyDetail& arg) {
|
|
67
66
|
jsi::Object obj(runtime);
|
|
68
67
|
obj.setProperty(runtime, "length", JSIConverter<std::optional<double>>::toJSI(runtime, arg.length));
|
|
69
68
|
obj.setProperty(runtime, "publicExponent", JSIConverter<std::optional<double>>::toJSI(runtime, arg.publicExponent));
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
/// KeyEncoding.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#include <cmath>
|
|
11
10
|
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
12
11
|
#include <NitroModules/JSIConverter.hpp>
|
|
13
12
|
#else
|
|
@@ -25,37 +24,36 @@ namespace margelo::nitro::crypto {
|
|
|
25
24
|
* An enum which can be represented as a JavaScript enum (KeyEncoding).
|
|
26
25
|
*/
|
|
27
26
|
enum class KeyEncoding {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
PKCS1 SWIFT_NAME(pkcs1) = 0,
|
|
28
|
+
PKCS8 SWIFT_NAME(pkcs8) = 1,
|
|
29
|
+
SPKI SWIFT_NAME(spki) = 2,
|
|
30
|
+
SEC1 SWIFT_NAME(sec1) = 3,
|
|
32
31
|
} CLOSED_ENUM;
|
|
33
32
|
|
|
34
33
|
} // namespace margelo::nitro::crypto
|
|
35
34
|
|
|
36
35
|
namespace margelo::nitro {
|
|
37
36
|
|
|
38
|
-
using namespace margelo::nitro::crypto;
|
|
39
|
-
|
|
40
37
|
// C++ KeyEncoding <> JS KeyEncoding (enum)
|
|
41
38
|
template <>
|
|
42
|
-
struct JSIConverter<KeyEncoding> {
|
|
43
|
-
static inline KeyEncoding fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
39
|
+
struct JSIConverter<margelo::nitro::crypto::KeyEncoding> final {
|
|
40
|
+
static inline margelo::nitro::crypto::KeyEncoding fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
44
41
|
int enumValue = JSIConverter<int>::fromJSI(runtime, arg);
|
|
45
|
-
return static_cast<KeyEncoding>(enumValue);
|
|
42
|
+
return static_cast<margelo::nitro::crypto::KeyEncoding>(enumValue);
|
|
46
43
|
}
|
|
47
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, KeyEncoding arg) {
|
|
44
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::crypto::KeyEncoding arg) {
|
|
48
45
|
int enumValue = static_cast<int>(arg);
|
|
49
46
|
return JSIConverter<int>::toJSI(runtime, enumValue);
|
|
50
47
|
}
|
|
51
|
-
static inline bool canConvert(jsi::Runtime
|
|
48
|
+
static inline bool canConvert(jsi::Runtime&, const jsi::Value& value) {
|
|
52
49
|
if (!value.isNumber()) {
|
|
53
50
|
return false;
|
|
54
51
|
}
|
|
55
|
-
double
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
//
|
|
52
|
+
double number = value.getNumber();
|
|
53
|
+
int integer = static_cast<int>(number);
|
|
54
|
+
if (number != integer) {
|
|
55
|
+
// The integer is not the same value as the double - we truncated floating points.
|
|
56
|
+
// Enums are all integers, so the input floating point number is obviously invalid.
|
|
59
57
|
return false;
|
|
60
58
|
}
|
|
61
59
|
// Check if we are within the bounds of the enum.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// KeyObject.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::crypto {
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A struct which can be represented as a JavaScript object (KeyObject).
|
|
29
|
+
*/
|
|
30
|
+
struct KeyObject {
|
|
31
|
+
public:
|
|
32
|
+
bool extractable SWIFT_PRIVATE;
|
|
33
|
+
|
|
34
|
+
public:
|
|
35
|
+
KeyObject() = default;
|
|
36
|
+
explicit KeyObject(bool extractable): extractable(extractable) {}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
} // namespace margelo::nitro::crypto
|
|
40
|
+
|
|
41
|
+
namespace margelo::nitro {
|
|
42
|
+
|
|
43
|
+
// C++ KeyObject <> JS KeyObject (object)
|
|
44
|
+
template <>
|
|
45
|
+
struct JSIConverter<margelo::nitro::crypto::KeyObject> final {
|
|
46
|
+
static inline margelo::nitro::crypto::KeyObject fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
47
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
48
|
+
return margelo::nitro::crypto::KeyObject(
|
|
49
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "extractable"))
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::crypto::KeyObject& arg) {
|
|
53
|
+
jsi::Object obj(runtime);
|
|
54
|
+
obj.setProperty(runtime, "extractable", JSIConverter<bool>::toJSI(runtime, arg.extractable));
|
|
55
|
+
return obj;
|
|
56
|
+
}
|
|
57
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
58
|
+
if (!value.isObject()) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
jsi::Object obj = value.getObject(runtime);
|
|
62
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "extractable"))) return false;
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
} // namespace margelo::nitro
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
/// KeyType.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#include <cmath>
|
|
11
10
|
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
12
11
|
#include <NitroModules/JSIConverter.hpp>
|
|
13
12
|
#else
|
|
@@ -34,27 +33,26 @@ namespace margelo::nitro::crypto {
|
|
|
34
33
|
|
|
35
34
|
namespace margelo::nitro {
|
|
36
35
|
|
|
37
|
-
using namespace margelo::nitro::crypto;
|
|
38
|
-
|
|
39
36
|
// C++ KeyType <> JS KeyType (enum)
|
|
40
37
|
template <>
|
|
41
|
-
struct JSIConverter<KeyType> {
|
|
42
|
-
static inline KeyType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
38
|
+
struct JSIConverter<margelo::nitro::crypto::KeyType> final {
|
|
39
|
+
static inline margelo::nitro::crypto::KeyType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
43
40
|
int enumValue = JSIConverter<int>::fromJSI(runtime, arg);
|
|
44
|
-
return static_cast<KeyType>(enumValue);
|
|
41
|
+
return static_cast<margelo::nitro::crypto::KeyType>(enumValue);
|
|
45
42
|
}
|
|
46
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, KeyType arg) {
|
|
43
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::crypto::KeyType arg) {
|
|
47
44
|
int enumValue = static_cast<int>(arg);
|
|
48
45
|
return JSIConverter<int>::toJSI(runtime, enumValue);
|
|
49
46
|
}
|
|
50
|
-
static inline bool canConvert(jsi::Runtime
|
|
47
|
+
static inline bool canConvert(jsi::Runtime&, const jsi::Value& value) {
|
|
51
48
|
if (!value.isNumber()) {
|
|
52
49
|
return false;
|
|
53
50
|
}
|
|
54
|
-
double
|
|
55
|
-
|
|
56
|
-
if (
|
|
57
|
-
//
|
|
51
|
+
double number = value.getNumber();
|
|
52
|
+
int integer = static_cast<int>(number);
|
|
53
|
+
if (number != integer) {
|
|
54
|
+
// The integer is not the same value as the double - we truncated floating points.
|
|
55
|
+
// Enums are all integers, so the input floating point number is obviously invalid.
|
|
58
56
|
return false;
|
|
59
57
|
}
|
|
60
58
|
// Check if we are within the bounds of the enum.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// KeyUsage.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -35,44 +35,54 @@ namespace margelo::nitro::crypto {
|
|
|
35
35
|
VERIFY SWIFT_NAME(verify) = 3,
|
|
36
36
|
DERIVEKEY SWIFT_NAME(derivekey) = 4,
|
|
37
37
|
DERIVEBITS SWIFT_NAME(derivebits) = 5,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
ENCAPSULATEBITS SWIFT_NAME(encapsulatebits) = 6,
|
|
39
|
+
DECAPSULATEBITS SWIFT_NAME(decapsulatebits) = 7,
|
|
40
|
+
ENCAPSULATEKEY SWIFT_NAME(encapsulatekey) = 8,
|
|
41
|
+
DECAPSULATEKEY SWIFT_NAME(decapsulatekey) = 9,
|
|
42
|
+
WRAPKEY SWIFT_NAME(wrapkey) = 10,
|
|
43
|
+
UNWRAPKEY SWIFT_NAME(unwrapkey) = 11,
|
|
40
44
|
} CLOSED_ENUM;
|
|
41
45
|
|
|
42
46
|
} // namespace margelo::nitro::crypto
|
|
43
47
|
|
|
44
48
|
namespace margelo::nitro {
|
|
45
49
|
|
|
46
|
-
using namespace margelo::nitro::crypto;
|
|
47
|
-
|
|
48
50
|
// C++ KeyUsage <> JS KeyUsage (union)
|
|
49
51
|
template <>
|
|
50
|
-
struct JSIConverter<KeyUsage> {
|
|
51
|
-
static inline KeyUsage fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
52
|
+
struct JSIConverter<margelo::nitro::crypto::KeyUsage> final {
|
|
53
|
+
static inline margelo::nitro::crypto::KeyUsage fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
52
54
|
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
53
55
|
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
54
|
-
case hashString("encrypt"): return KeyUsage::ENCRYPT;
|
|
55
|
-
case hashString("decrypt"): return KeyUsage::DECRYPT;
|
|
56
|
-
case hashString("sign"): return KeyUsage::SIGN;
|
|
57
|
-
case hashString("verify"): return KeyUsage::VERIFY;
|
|
58
|
-
case hashString("deriveKey"): return KeyUsage::DERIVEKEY;
|
|
59
|
-
case hashString("deriveBits"): return KeyUsage::DERIVEBITS;
|
|
60
|
-
case hashString("
|
|
61
|
-
case hashString("
|
|
56
|
+
case hashString("encrypt"): return margelo::nitro::crypto::KeyUsage::ENCRYPT;
|
|
57
|
+
case hashString("decrypt"): return margelo::nitro::crypto::KeyUsage::DECRYPT;
|
|
58
|
+
case hashString("sign"): return margelo::nitro::crypto::KeyUsage::SIGN;
|
|
59
|
+
case hashString("verify"): return margelo::nitro::crypto::KeyUsage::VERIFY;
|
|
60
|
+
case hashString("deriveKey"): return margelo::nitro::crypto::KeyUsage::DERIVEKEY;
|
|
61
|
+
case hashString("deriveBits"): return margelo::nitro::crypto::KeyUsage::DERIVEBITS;
|
|
62
|
+
case hashString("encapsulateBits"): return margelo::nitro::crypto::KeyUsage::ENCAPSULATEBITS;
|
|
63
|
+
case hashString("decapsulateBits"): return margelo::nitro::crypto::KeyUsage::DECAPSULATEBITS;
|
|
64
|
+
case hashString("encapsulateKey"): return margelo::nitro::crypto::KeyUsage::ENCAPSULATEKEY;
|
|
65
|
+
case hashString("decapsulateKey"): return margelo::nitro::crypto::KeyUsage::DECAPSULATEKEY;
|
|
66
|
+
case hashString("wrapKey"): return margelo::nitro::crypto::KeyUsage::WRAPKEY;
|
|
67
|
+
case hashString("unwrapKey"): return margelo::nitro::crypto::KeyUsage::UNWRAPKEY;
|
|
62
68
|
default: [[unlikely]]
|
|
63
69
|
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum KeyUsage - invalid value!");
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, KeyUsage arg) {
|
|
72
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::crypto::KeyUsage arg) {
|
|
67
73
|
switch (arg) {
|
|
68
|
-
case KeyUsage::ENCRYPT: return JSIConverter<std::string>::toJSI(runtime, "encrypt");
|
|
69
|
-
case KeyUsage::DECRYPT: return JSIConverter<std::string>::toJSI(runtime, "decrypt");
|
|
70
|
-
case KeyUsage::SIGN: return JSIConverter<std::string>::toJSI(runtime, "sign");
|
|
71
|
-
case KeyUsage::VERIFY: return JSIConverter<std::string>::toJSI(runtime, "verify");
|
|
72
|
-
case KeyUsage::DERIVEKEY: return JSIConverter<std::string>::toJSI(runtime, "deriveKey");
|
|
73
|
-
case KeyUsage::DERIVEBITS: return JSIConverter<std::string>::toJSI(runtime, "deriveBits");
|
|
74
|
-
case KeyUsage::
|
|
75
|
-
case KeyUsage::
|
|
74
|
+
case margelo::nitro::crypto::KeyUsage::ENCRYPT: return JSIConverter<std::string>::toJSI(runtime, "encrypt");
|
|
75
|
+
case margelo::nitro::crypto::KeyUsage::DECRYPT: return JSIConverter<std::string>::toJSI(runtime, "decrypt");
|
|
76
|
+
case margelo::nitro::crypto::KeyUsage::SIGN: return JSIConverter<std::string>::toJSI(runtime, "sign");
|
|
77
|
+
case margelo::nitro::crypto::KeyUsage::VERIFY: return JSIConverter<std::string>::toJSI(runtime, "verify");
|
|
78
|
+
case margelo::nitro::crypto::KeyUsage::DERIVEKEY: return JSIConverter<std::string>::toJSI(runtime, "deriveKey");
|
|
79
|
+
case margelo::nitro::crypto::KeyUsage::DERIVEBITS: return JSIConverter<std::string>::toJSI(runtime, "deriveBits");
|
|
80
|
+
case margelo::nitro::crypto::KeyUsage::ENCAPSULATEBITS: return JSIConverter<std::string>::toJSI(runtime, "encapsulateBits");
|
|
81
|
+
case margelo::nitro::crypto::KeyUsage::DECAPSULATEBITS: return JSIConverter<std::string>::toJSI(runtime, "decapsulateBits");
|
|
82
|
+
case margelo::nitro::crypto::KeyUsage::ENCAPSULATEKEY: return JSIConverter<std::string>::toJSI(runtime, "encapsulateKey");
|
|
83
|
+
case margelo::nitro::crypto::KeyUsage::DECAPSULATEKEY: return JSIConverter<std::string>::toJSI(runtime, "decapsulateKey");
|
|
84
|
+
case margelo::nitro::crypto::KeyUsage::WRAPKEY: return JSIConverter<std::string>::toJSI(runtime, "wrapKey");
|
|
85
|
+
case margelo::nitro::crypto::KeyUsage::UNWRAPKEY: return JSIConverter<std::string>::toJSI(runtime, "unwrapKey");
|
|
76
86
|
default: [[unlikely]]
|
|
77
87
|
throw std::invalid_argument("Cannot convert KeyUsage to JS - invalid value: "
|
|
78
88
|
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
@@ -90,6 +100,10 @@ namespace margelo::nitro {
|
|
|
90
100
|
case hashString("verify"):
|
|
91
101
|
case hashString("deriveKey"):
|
|
92
102
|
case hashString("deriveBits"):
|
|
103
|
+
case hashString("encapsulateBits"):
|
|
104
|
+
case hashString("decapsulateBits"):
|
|
105
|
+
case hashString("encapsulateKey"):
|
|
106
|
+
case hashString("decapsulateKey"):
|
|
93
107
|
case hashString("wrapKey"):
|
|
94
108
|
case hashString("unwrapKey"):
|
|
95
109
|
return true;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// NamedCurve.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -38,26 +38,24 @@ namespace margelo::nitro::crypto {
|
|
|
38
38
|
|
|
39
39
|
namespace margelo::nitro {
|
|
40
40
|
|
|
41
|
-
using namespace margelo::nitro::crypto;
|
|
42
|
-
|
|
43
41
|
// C++ NamedCurve <> JS NamedCurve (union)
|
|
44
42
|
template <>
|
|
45
|
-
struct JSIConverter<NamedCurve> {
|
|
46
|
-
static inline NamedCurve fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
43
|
+
struct JSIConverter<margelo::nitro::crypto::NamedCurve> final {
|
|
44
|
+
static inline margelo::nitro::crypto::NamedCurve fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
47
45
|
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
48
46
|
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
49
|
-
case hashString("P-256"): return NamedCurve::P_256;
|
|
50
|
-
case hashString("P-384"): return NamedCurve::P_384;
|
|
51
|
-
case hashString("P-521"): return NamedCurve::P_521;
|
|
47
|
+
case hashString("P-256"): return margelo::nitro::crypto::NamedCurve::P_256;
|
|
48
|
+
case hashString("P-384"): return margelo::nitro::crypto::NamedCurve::P_384;
|
|
49
|
+
case hashString("P-521"): return margelo::nitro::crypto::NamedCurve::P_521;
|
|
52
50
|
default: [[unlikely]]
|
|
53
51
|
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum NamedCurve - invalid value!");
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, NamedCurve arg) {
|
|
54
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::crypto::NamedCurve arg) {
|
|
57
55
|
switch (arg) {
|
|
58
|
-
case NamedCurve::P_256: return JSIConverter<std::string>::toJSI(runtime, "P-256");
|
|
59
|
-
case NamedCurve::P_384: return JSIConverter<std::string>::toJSI(runtime, "P-384");
|
|
60
|
-
case NamedCurve::P_521: return JSIConverter<std::string>::toJSI(runtime, "P-521");
|
|
56
|
+
case margelo::nitro::crypto::NamedCurve::P_256: return JSIConverter<std::string>::toJSI(runtime, "P-256");
|
|
57
|
+
case margelo::nitro::crypto::NamedCurve::P_384: return JSIConverter<std::string>::toJSI(runtime, "P-384");
|
|
58
|
+
case margelo::nitro::crypto::NamedCurve::P_521: return JSIConverter<std::string>::toJSI(runtime, "P-521");
|
|
61
59
|
default: [[unlikely]]
|
|
62
60
|
throw std::invalid_argument("Cannot convert NamedCurve to JS - invalid value: "
|
|
63
61
|
+ std::to_string(static_cast<int>(arg)) + "!");
|
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-quick-crypto",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "A fast implementation of Node's `crypto` module written in C/C++ JSI",
|
|
5
|
-
"type": "module",
|
|
6
5
|
"main": "lib/commonjs/index",
|
|
7
6
|
"module": "lib/module/index",
|
|
8
7
|
"types": "lib/typescript/index.d.ts",
|
|
@@ -10,6 +9,7 @@
|
|
|
10
9
|
"source": "src/index",
|
|
11
10
|
"scripts": {
|
|
12
11
|
"clean": "del-cli android/build lib",
|
|
12
|
+
"clean:deep": "bun run clean && del-cli node_modules",
|
|
13
13
|
"tsc": "tsc --noEmit",
|
|
14
14
|
"typescript": "tsc --noEmit",
|
|
15
15
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"deps",
|
|
34
34
|
"nitrogen",
|
|
35
35
|
"react-native.config.js",
|
|
36
|
-
"app.plugin.js",
|
|
37
36
|
"*.podspec",
|
|
38
37
|
"README.md",
|
|
38
|
+
"app.plugin.js",
|
|
39
39
|
"!**/__tests__",
|
|
40
40
|
"!**/__fixtures__",
|
|
41
41
|
"!**/__mocks__"
|
|
@@ -45,9 +45,13 @@
|
|
|
45
45
|
"ios",
|
|
46
46
|
"android",
|
|
47
47
|
"jsi",
|
|
48
|
+
"nitro",
|
|
48
49
|
"crypto",
|
|
50
|
+
"cryptography",
|
|
51
|
+
"cryptocurrency",
|
|
49
52
|
"c++",
|
|
50
53
|
"fast",
|
|
54
|
+
"quick",
|
|
51
55
|
"web3"
|
|
52
56
|
],
|
|
53
57
|
"repository": {
|
|
@@ -68,41 +72,45 @@
|
|
|
68
72
|
"registry": "https://registry.npmjs.org/"
|
|
69
73
|
},
|
|
70
74
|
"dependencies": {
|
|
71
|
-
"@craftzdog/react-native-buffer": "6.0
|
|
75
|
+
"@craftzdog/react-native-buffer": "6.1.0",
|
|
72
76
|
"events": "3.3.0",
|
|
73
|
-
"react-native-quick-base64": "2.
|
|
77
|
+
"react-native-quick-base64": "2.2.2",
|
|
74
78
|
"readable-stream": "4.5.2",
|
|
75
|
-
"
|
|
79
|
+
"safe-buffer": "^5.2.1",
|
|
76
80
|
"util": "0.12.5"
|
|
77
81
|
},
|
|
78
82
|
"devDependencies": {
|
|
79
|
-
"@eslint/compat": "^1.1.1",
|
|
80
|
-
"@eslint/js": "9.16.0",
|
|
81
|
-
"@release-it/bumper": "6.0.1",
|
|
82
83
|
"@types/jest": "29.5.11",
|
|
83
|
-
"@types/node": "
|
|
84
|
+
"@types/node": "24.3.0",
|
|
84
85
|
"@types/react": "18.3.3",
|
|
85
|
-
"@types/readable-stream": "4.0.
|
|
86
|
-
"del-cli": "
|
|
87
|
-
"
|
|
88
|
-
"
|
|
86
|
+
"@types/readable-stream": "4.0.18",
|
|
87
|
+
"del-cli": "7.0.0",
|
|
88
|
+
"expo": "^54.0.25",
|
|
89
|
+
"expo-build-properties": "^1.0.0",
|
|
89
90
|
"jest": "29.7.0",
|
|
90
|
-
"nitro-codegen": "0.
|
|
91
|
-
"
|
|
92
|
-
"react-native-
|
|
93
|
-
"react-native-nitro-modules": "0.18.2",
|
|
94
|
-
"release-it": "17.6.0",
|
|
95
|
-
"typescript": "5.1.6",
|
|
96
|
-
"typescript-eslint": "^8.1.0"
|
|
91
|
+
"nitro-codegen": "0.29.1",
|
|
92
|
+
"react-native-builder-bob": "0.40.15",
|
|
93
|
+
"react-native-nitro-modules": "0.29.1"
|
|
97
94
|
},
|
|
98
95
|
"peerDependencies": {
|
|
99
96
|
"react": "*",
|
|
100
97
|
"react-native": "*",
|
|
101
|
-
"react-native-nitro-modules": "
|
|
98
|
+
"react-native-nitro-modules": ">=0.29.1",
|
|
99
|
+
"expo": ">=48.0.0",
|
|
100
|
+
"expo-build-properties": "*"
|
|
101
|
+
},
|
|
102
|
+
"peerDependenciesMeta": {
|
|
103
|
+
"expo": {
|
|
104
|
+
"optional": true
|
|
105
|
+
},
|
|
106
|
+
"expo-build-properties": {
|
|
107
|
+
"optional": true
|
|
108
|
+
}
|
|
102
109
|
},
|
|
103
110
|
"release-it": {
|
|
104
111
|
"npm": {
|
|
105
|
-
"publish": true
|
|
112
|
+
"publish": true,
|
|
113
|
+
"skipChecks": true
|
|
106
114
|
},
|
|
107
115
|
"git": false,
|
|
108
116
|
"github": {
|