react-native-quick-crypto 1.1.0 → 1.1.2
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 +1 -0
- package/android/CMakeLists.txt +4 -0
- package/android/build.gradle +5 -1
- package/cpp/argon2/HybridArgon2.cpp +10 -3
- package/cpp/blake3/HybridBlake3.cpp +5 -3
- package/cpp/cipher/CCMCipher.cpp +35 -26
- package/cpp/cipher/CCMCipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Cipher.cpp +19 -27
- package/cpp/cipher/ChaCha20Cipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +41 -36
- package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +2 -4
- package/cpp/cipher/GCMCipher.cpp +17 -20
- package/cpp/cipher/HybridCipher.cpp +44 -47
- package/cpp/cipher/HybridCipher.hpp +17 -1
- package/cpp/cipher/HybridRsaCipher.cpp +93 -56
- package/cpp/cipher/OCBCipher.cpp +5 -5
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +27 -32
- package/cpp/cipher/XSalsa20Cipher.cpp +78 -16
- package/cpp/cipher/XSalsa20Cipher.hpp +25 -3
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +32 -41
- package/cpp/dh/HybridDiffieHellman.cpp +29 -0
- package/cpp/ec/HybridEcKeyPair.cpp +35 -33
- package/cpp/ec/HybridEcKeyPair.hpp +3 -7
- package/cpp/ecdh/HybridECDH.cpp +23 -0
- package/cpp/ed25519/HybridEdKeyPair.cpp +73 -117
- package/cpp/ed25519/HybridEdKeyPair.hpp +5 -9
- package/cpp/hash/HybridHash.cpp +5 -7
- package/cpp/hkdf/HybridHkdf.cpp +6 -4
- package/cpp/hmac/HybridHmac.cpp +4 -6
- package/cpp/keys/HybridKeyObjectHandle.cpp +630 -2
- package/cpp/keys/HybridKeyObjectHandle.hpp +21 -1
- package/cpp/kmac/HybridKmac.cpp +4 -4
- package/cpp/mldsa/HybridMlDsaKeyPair.cpp +37 -49
- package/cpp/mlkem/HybridMlKemKeyPair.cpp +39 -43
- package/cpp/pbkdf2/HybridPbkdf2.cpp +7 -8
- package/cpp/rsa/HybridRsaKeyPair.cpp +5 -8
- package/cpp/rsa/HybridRsaKeyPair.hpp +4 -7
- package/cpp/scrypt/HybridScrypt.cpp +6 -4
- package/cpp/sign/HybridSignHandle.cpp +47 -72
- package/cpp/sign/HybridVerifyHandle.cpp +47 -67
- package/cpp/slhdsa/HybridSlhDsaKeyPair.cpp +245 -0
- package/cpp/slhdsa/HybridSlhDsaKeyPair.hpp +48 -0
- package/cpp/turboshake/HybridTurboShake.cpp +379 -0
- package/cpp/turboshake/HybridTurboShake.hpp +28 -0
- package/cpp/utils/HybridUtils.cpp +195 -43
- package/cpp/utils/HybridUtils.hpp +9 -2
- package/cpp/utils/QuickCryptoUtils.hpp +72 -0
- package/deps/blake3/README.md +6 -7
- package/deps/blake3/c/blake3.c +3 -2
- package/deps/blake3/c/blake3.h +2 -2
- package/deps/blake3/c/blake3_dispatch.c +2 -2
- package/deps/blake3/c/blake3_impl.h +1 -1
- package/deps/blake3/c/blake3_neon.c +5 -4
- package/deps/ncrypto/include/ncrypto/version.h +2 -2
- package/deps/ncrypto/include/ncrypto.h +9 -2
- package/deps/ncrypto/src/ncrypto.cpp +130 -35
- package/lib/commonjs/argon2.js +51 -2
- package/lib/commonjs/argon2.js.map +1 -1
- package/lib/commonjs/cipher.js +109 -11
- package/lib/commonjs/cipher.js.map +1 -1
- package/lib/commonjs/dhKeyPair.js +3 -0
- package/lib/commonjs/dhKeyPair.js.map +1 -1
- package/lib/commonjs/dsa.js +11 -2
- package/lib/commonjs/dsa.js.map +1 -1
- package/lib/commonjs/ec.js +37 -30
- package/lib/commonjs/ec.js.map +1 -1
- package/lib/commonjs/ed.js +60 -6
- package/lib/commonjs/ed.js.map +1 -1
- package/lib/commonjs/hash.js +67 -10
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/hkdf.js +33 -6
- package/lib/commonjs/hkdf.js.map +1 -1
- package/lib/commonjs/hmac.js +15 -5
- package/lib/commonjs/hmac.js.map +1 -1
- package/lib/commonjs/keys/classes.js +33 -7
- package/lib/commonjs/keys/classes.js.map +1 -1
- package/lib/commonjs/keys/generateKeyPair.js +85 -4
- package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
- package/lib/commonjs/keys/index.js +50 -2
- package/lib/commonjs/keys/index.js.map +1 -1
- package/lib/commonjs/keys/publicCipher.js +10 -4
- package/lib/commonjs/keys/publicCipher.js.map +1 -1
- package/lib/commonjs/keys/signVerify.js +9 -2
- package/lib/commonjs/keys/signVerify.js.map +1 -1
- package/lib/commonjs/keys/utils.js +59 -1
- package/lib/commonjs/keys/utils.js.map +1 -1
- package/lib/commonjs/random.js +74 -11
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +15 -5
- package/lib/commonjs/rsa.js.map +1 -1
- package/lib/commonjs/scrypt.js +47 -6
- package/lib/commonjs/scrypt.js.map +1 -1
- package/lib/commonjs/slhdsa.js +70 -0
- package/lib/commonjs/slhdsa.js.map +1 -0
- package/lib/commonjs/specs/slhDsaKeyPair.nitro.js +6 -0
- package/lib/commonjs/specs/slhDsaKeyPair.nitro.js.map +1 -0
- package/lib/commonjs/specs/turboshake.nitro.js +6 -0
- package/lib/commonjs/specs/turboshake.nitro.js.map +1 -0
- package/lib/commonjs/subtle.js +975 -253
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/cipher.js +18 -7
- package/lib/commonjs/utils/cipher.js.map +1 -1
- package/lib/commonjs/utils/conversion.js +86 -28
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/errors.js +63 -4
- package/lib/commonjs/utils/errors.js.map +1 -1
- package/lib/commonjs/utils/timingSafeEqual.js +7 -2
- package/lib/commonjs/utils/timingSafeEqual.js.map +1 -1
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/commonjs/utils/validation.js +46 -0
- package/lib/commonjs/utils/validation.js.map +1 -1
- package/lib/commonjs/x509certificate.js +6 -6
- package/lib/commonjs/x509certificate.js.map +1 -1
- package/lib/module/argon2.js +51 -2
- package/lib/module/argon2.js.map +1 -1
- package/lib/module/cipher.js +109 -11
- package/lib/module/cipher.js.map +1 -1
- package/lib/module/dhKeyPair.js +3 -0
- package/lib/module/dhKeyPair.js.map +1 -1
- package/lib/module/dsa.js +11 -2
- package/lib/module/dsa.js.map +1 -1
- package/lib/module/ec.js +38 -31
- package/lib/module/ec.js.map +1 -1
- package/lib/module/ed.js +61 -7
- package/lib/module/ed.js.map +1 -1
- package/lib/module/hash.js +67 -10
- package/lib/module/hash.js.map +1 -1
- package/lib/module/hkdf.js +33 -6
- package/lib/module/hkdf.js.map +1 -1
- package/lib/module/hmac.js +15 -5
- package/lib/module/hmac.js.map +1 -1
- package/lib/module/keys/classes.js +31 -5
- package/lib/module/keys/classes.js.map +1 -1
- package/lib/module/keys/generateKeyPair.js +86 -5
- package/lib/module/keys/generateKeyPair.js.map +1 -1
- package/lib/module/keys/index.js +50 -2
- package/lib/module/keys/index.js.map +1 -1
- package/lib/module/keys/publicCipher.js +10 -4
- package/lib/module/keys/publicCipher.js.map +1 -1
- package/lib/module/keys/signVerify.js +9 -2
- package/lib/module/keys/signVerify.js.map +1 -1
- package/lib/module/keys/utils.js +57 -1
- package/lib/module/keys/utils.js.map +1 -1
- package/lib/module/random.js +74 -12
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +14 -4
- package/lib/module/rsa.js.map +1 -1
- package/lib/module/scrypt.js +47 -6
- package/lib/module/scrypt.js.map +1 -1
- package/lib/module/slhdsa.js +64 -0
- package/lib/module/slhdsa.js.map +1 -0
- package/lib/module/specs/slhDsaKeyPair.nitro.js +4 -0
- package/lib/module/specs/slhDsaKeyPair.nitro.js.map +1 -0
- package/lib/module/specs/turboshake.nitro.js +4 -0
- package/lib/module/specs/turboshake.nitro.js.map +1 -0
- package/lib/module/subtle.js +976 -254
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/cipher.js +18 -7
- package/lib/module/utils/cipher.js.map +1 -1
- package/lib/module/utils/conversion.js +84 -28
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/errors.js +61 -4
- package/lib/module/utils/errors.js.map +1 -1
- package/lib/module/utils/timingSafeEqual.js +8 -3
- package/lib/module/utils/timingSafeEqual.js.map +1 -1
- package/lib/module/utils/types.js.map +1 -1
- package/lib/module/utils/validation.js +44 -0
- package/lib/module/utils/validation.js.map +1 -1
- package/lib/module/x509certificate.js +6 -6
- package/lib/module/x509certificate.js.map +1 -1
- package/lib/typescript/argon2.d.ts.map +1 -1
- package/lib/typescript/cipher.d.ts +2 -2
- package/lib/typescript/cipher.d.ts.map +1 -1
- package/lib/typescript/dhKeyPair.d.ts.map +1 -1
- package/lib/typescript/dsa.d.ts.map +1 -1
- package/lib/typescript/ec.d.ts.map +1 -1
- package/lib/typescript/ed.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts +2 -2
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/hkdf.d.ts.map +1 -1
- package/lib/typescript/hmac.d.ts +2 -2
- package/lib/typescript/hmac.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +13 -8
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/classes.d.ts +10 -1
- package/lib/typescript/keys/classes.d.ts.map +1 -1
- package/lib/typescript/keys/generateKeyPair.d.ts +12 -1
- package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
- package/lib/typescript/keys/index.d.ts +3 -1
- package/lib/typescript/keys/index.d.ts.map +1 -1
- package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
- package/lib/typescript/keys/signVerify.d.ts.map +1 -1
- package/lib/typescript/keys/utils.d.ts +21 -4
- package/lib/typescript/keys/utils.d.ts.map +1 -1
- package/lib/typescript/random.d.ts +5 -1
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts.map +1 -1
- package/lib/typescript/scrypt.d.ts.map +1 -1
- package/lib/typescript/slhdsa.d.ts +19 -0
- package/lib/typescript/slhdsa.d.ts.map +1 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +9 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/slhDsaKeyPair.nitro.d.ts +16 -0
- package/lib/typescript/specs/slhDsaKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/turboshake.nitro.d.ts +11 -0
- package/lib/typescript/specs/turboshake.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/utils.nitro.d.ts +0 -2
- package/lib/typescript/specs/utils.nitro.d.ts.map +1 -1
- package/lib/typescript/subtle.d.ts +3 -2
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/cipher.d.ts +13 -1
- package/lib/typescript/utils/cipher.d.ts.map +1 -1
- package/lib/typescript/utils/conversion.d.ts +13 -9
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts +12 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +32 -15
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/lib/typescript/utils/validation.d.ts +3 -1
- package/lib/typescript/utils/validation.d.ts.map +1 -1
- package/lib/typescript/x509certificate.d.ts.map +1 -1
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +2 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +20 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +20 -0
- package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +48 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +9 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +9 -0
- package/nitrogen/generated/shared/c++/HybridSlhDsaKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridSlhDsaKeyPairSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridTurboShakeSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridTurboShakeSpec.hpp +70 -0
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +0 -2
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +0 -3
- package/nitrogen/generated/shared/c++/JWK.hpp +9 -1
- package/nitrogen/generated/shared/c++/JWKkty.hpp +4 -0
- package/nitrogen/generated/shared/c++/KangarooTwelveVariant.hpp +76 -0
- package/nitrogen/generated/shared/c++/TurboShakeVariant.hpp +76 -0
- package/package.json +38 -7
- package/src/argon2.ts +80 -2
- package/src/cipher.ts +139 -15
- package/src/dhKeyPair.ts +8 -0
- package/src/dsa.ts +19 -2
- package/src/ec.ts +52 -29
- package/src/ed.ts +95 -16
- package/src/hash.ts +125 -12
- package/src/hkdf.ts +44 -6
- package/src/hmac.ts +17 -7
- package/src/keys/classes.ts +46 -5
- package/src/keys/generateKeyPair.ts +151 -5
- package/src/keys/index.ts +73 -3
- package/src/keys/publicCipher.ts +10 -4
- package/src/keys/signVerify.ts +13 -2
- package/src/keys/utils.ts +78 -5
- package/src/random.ts +104 -11
- package/src/rsa.ts +26 -4
- package/src/scrypt.ts +73 -6
- package/src/slhdsa.ts +146 -0
- package/src/specs/keyObjectHandle.nitro.ts +17 -0
- package/src/specs/slhDsaKeyPair.nitro.ts +29 -0
- package/src/specs/turboshake.nitro.ts +21 -0
- package/src/specs/utils.nitro.ts +0 -2
- package/src/subtle.ts +1246 -333
- package/src/utils/cipher.ts +30 -8
- package/src/utils/conversion.ts +129 -40
- package/src/utils/errors.ts +72 -4
- package/src/utils/timingSafeEqual.ts +8 -3
- package/src/utils/types.ts +80 -15
- package/src/utils/validation.ts +70 -1
- package/src/x509certificate.ts +5 -6
- package/deps/blake3/.cargo/config.toml +0 -2
- package/deps/blake3/.git-blame-ignore-revs +0 -2
- package/deps/blake3/.github/workflows/build_b3sum.py +0 -38
- package/deps/blake3/.github/workflows/ci.yml +0 -491
- package/deps/blake3/.github/workflows/tag.yml +0 -43
- package/deps/blake3/.github/workflows/upload_github_release_asset.py +0 -73
- package/deps/blake3/CONTRIBUTING.md +0 -31
- package/deps/blake3/Cargo.toml +0 -135
- package/deps/blake3/b3sum/Cargo.lock +0 -513
- package/deps/blake3/b3sum/Cargo.toml +0 -26
- package/deps/blake3/b3sum/README.md +0 -72
- package/deps/blake3/b3sum/src/main.rs +0 -564
- package/deps/blake3/b3sum/src/unit_tests.rs +0 -235
- package/deps/blake3/b3sum/tests/cli_tests.rs +0 -680
- package/deps/blake3/b3sum/what_does_check_do.md +0 -176
- package/deps/blake3/benches/bench.rs +0 -623
- package/deps/blake3/build.rs +0 -389
- package/deps/blake3/c/CMakeLists.txt +0 -383
- package/deps/blake3/c/CMakePresets.json +0 -73
- package/deps/blake3/c/Makefile.testing +0 -82
- package/deps/blake3/c/blake3-config.cmake.in +0 -14
- package/deps/blake3/c/blake3_avx2.c +0 -326
- package/deps/blake3/c/blake3_avx2_x86-64_unix.S +0 -1815
- package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +0 -1817
- package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +0 -1828
- package/deps/blake3/c/blake3_avx512.c +0 -1388
- package/deps/blake3/c/blake3_avx512_x86-64_unix.S +0 -4824
- package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +0 -2615
- package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +0 -2634
- package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +0 -32
- package/deps/blake3/c/blake3_c_rust_bindings/README.md +0 -4
- package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +0 -477
- package/deps/blake3/c/blake3_c_rust_bindings/build.rs +0 -253
- package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +0 -31
- package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +0 -333
- package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +0 -696
- package/deps/blake3/c/blake3_sse2.c +0 -566
- package/deps/blake3/c/blake3_sse2_x86-64_unix.S +0 -2291
- package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +0 -2332
- package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +0 -2350
- package/deps/blake3/c/blake3_sse41.c +0 -560
- package/deps/blake3/c/blake3_sse41_x86-64_unix.S +0 -2028
- package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +0 -2069
- package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +0 -2089
- package/deps/blake3/c/blake3_tbb.cpp +0 -37
- package/deps/blake3/c/dependencies/CMakeLists.txt +0 -3
- package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +0 -28
- package/deps/blake3/c/example.c +0 -36
- package/deps/blake3/c/example_tbb.c +0 -57
- package/deps/blake3/c/libblake3.pc.in +0 -12
- package/deps/blake3/c/main.c +0 -166
- package/deps/blake3/c/test.py +0 -97
- package/deps/blake3/media/B3.svg +0 -70
- package/deps/blake3/media/BLAKE3.svg +0 -85
- package/deps/blake3/media/speed.svg +0 -1474
- package/deps/blake3/reference_impl/Cargo.toml +0 -8
- package/deps/blake3/reference_impl/README.md +0 -14
- package/deps/blake3/reference_impl/reference_impl.rs +0 -374
- package/deps/blake3/src/ffi_avx2.rs +0 -65
- package/deps/blake3/src/ffi_avx512.rs +0 -169
- package/deps/blake3/src/ffi_neon.rs +0 -82
- package/deps/blake3/src/ffi_sse2.rs +0 -126
- package/deps/blake3/src/ffi_sse41.rs +0 -126
- package/deps/blake3/src/guts.rs +0 -60
- package/deps/blake3/src/hazmat.rs +0 -704
- package/deps/blake3/src/io.rs +0 -64
- package/deps/blake3/src/join.rs +0 -92
- package/deps/blake3/src/lib.rs +0 -1835
- package/deps/blake3/src/platform.rs +0 -587
- package/deps/blake3/src/portable.rs +0 -198
- package/deps/blake3/src/rust_avx2.rs +0 -474
- package/deps/blake3/src/rust_sse2.rs +0 -775
- package/deps/blake3/src/rust_sse41.rs +0 -766
- package/deps/blake3/src/test.rs +0 -1049
- package/deps/blake3/src/traits.rs +0 -227
- package/deps/blake3/src/wasm32_simd.rs +0 -794
- package/deps/blake3/test_vectors/Cargo.toml +0 -19
- package/deps/blake3/test_vectors/cross_test.sh +0 -25
- package/deps/blake3/test_vectors/src/bin/generate.rs +0 -4
- package/deps/blake3/test_vectors/src/lib.rs +0 -350
- package/deps/blake3/test_vectors/test_vectors.json +0 -217
- package/deps/blake3/tools/compiler_version/Cargo.toml +0 -7
- package/deps/blake3/tools/compiler_version/build.rs +0 -6
- package/deps/blake3/tools/compiler_version/src/main.rs +0 -27
- package/deps/blake3/tools/instruction_set_support/Cargo.toml +0 -6
- package/deps/blake3/tools/instruction_set_support/src/main.rs +0 -10
- package/deps/blake3/tools/release.md +0 -16
- package/deps/ncrypto/.bazelignore +0 -4
- package/deps/ncrypto/.bazelrc +0 -1
- package/deps/ncrypto/.bazelversion +0 -1
- package/deps/ncrypto/.clang-format +0 -111
- package/deps/ncrypto/.github/workflows/bazel.yml +0 -58
- package/deps/ncrypto/.github/workflows/commitlint.yml +0 -16
- package/deps/ncrypto/.github/workflows/linter.yml +0 -38
- package/deps/ncrypto/.github/workflows/macos.yml +0 -43
- package/deps/ncrypto/.github/workflows/release-please.yml +0 -16
- package/deps/ncrypto/.github/workflows/ubuntu.yml +0 -128
- package/deps/ncrypto/.github/workflows/visual-studio.yml +0 -49
- package/deps/ncrypto/.python-version +0 -1
- package/deps/ncrypto/.release-please-manifest.json +0 -3
- package/deps/ncrypto/BUILD.bazel +0 -44
- package/deps/ncrypto/CHANGELOG.md +0 -37
- package/deps/ncrypto/CMakeLists.txt +0 -79
- package/deps/ncrypto/MODULE.bazel +0 -16
- package/deps/ncrypto/MODULE.bazel.lock +0 -461
- package/deps/ncrypto/cmake/CPM.cmake +0 -1225
- package/deps/ncrypto/cmake/ncrypto-flags.cmake +0 -17
- package/deps/ncrypto/ncrypto.pc.in +0 -10
- package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +0 -28
- package/deps/ncrypto/pyproject.toml +0 -38
- package/deps/ncrypto/release-please-config.json +0 -11
- package/deps/ncrypto/src/CMakeLists.txt +0 -40
- package/deps/ncrypto/tests/BUILD.bazel +0 -11
- package/deps/ncrypto/tests/CMakeLists.txt +0 -7
- package/deps/ncrypto/tests/basic.cpp +0 -856
- package/deps/ncrypto/tools/run-clang-format.sh +0 -42
- package/deps/simdutf/.clang-format +0 -4
- package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +0 -62
- package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +0 -1
- package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +0 -35
- package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +0 -29
- package/deps/simdutf/.github/pull_request_template.md +0 -51
- package/deps/simdutf/.github/workflows/aarch64.yml +0 -39
- package/deps/simdutf/.github/workflows/alpine.yml +0 -27
- package/deps/simdutf/.github/workflows/amalgamation_demos.yml +0 -34
- package/deps/simdutf/.github/workflows/armv7.yml +0 -32
- package/deps/simdutf/.github/workflows/atomic_fuzz.yml +0 -25
- package/deps/simdutf/.github/workflows/cifuzz.yml +0 -37
- package/deps/simdutf/.github/workflows/clangformat.yml +0 -36
- package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +0 -40
- package/deps/simdutf/.github/workflows/debian.yml +0 -33
- package/deps/simdutf/.github/workflows/documentation.yml +0 -36
- package/deps/simdutf/.github/workflows/emscripten.yml +0 -19
- package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +0 -39
- package/deps/simdutf/.github/workflows/macos-latest.yml +0 -29
- package/deps/simdutf/.github/workflows/msys2-clang.yml +0 -48
- package/deps/simdutf/.github/workflows/msys2.yml +0 -50
- package/deps/simdutf/.github/workflows/ppc64le.yml +0 -29
- package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +0 -35
- package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +0 -35
- package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +0 -31
- package/deps/simdutf/.github/workflows/s390x.yml +0 -29
- package/deps/simdutf/.github/workflows/selective-amalgamation.yml +0 -29
- package/deps/simdutf/.github/workflows/typos.yml +0 -19
- package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +0 -30
- package/deps/simdutf/.github/workflows/ubuntu22.yml +0 -32
- package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +0 -27
- package/deps/simdutf/.github/workflows/ubuntu22sani.yml +0 -29
- package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +0 -34
- package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +0 -34
- package/deps/simdutf/.github/workflows/ubuntu24.yml +0 -32
- package/deps/simdutf/.github/workflows/ubuntu24sani.yml +0 -36
- package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +0 -29
- package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +0 -21
- package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +0 -41
- package/deps/simdutf/.github/workflows/vs17-ci.yml +0 -41
- package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +0 -41
- package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +0 -36
- package/deps/simdutf/AI_USAGE_POLICY.md +0 -56
- package/deps/simdutf/AUTHORS +0 -6
- package/deps/simdutf/CMakeLists.txt +0 -231
- package/deps/simdutf/CONTRIBUTING.md +0 -214
- package/deps/simdutf/CONTRIBUTORS +0 -1
- package/deps/simdutf/Doxyfile +0 -2584
- package/deps/simdutf/Makefile.crosscompile +0 -54
- package/deps/simdutf/README-RVV.md +0 -16
- package/deps/simdutf/SECURITY.md +0 -8
- package/deps/simdutf/benchmarks/CMakeLists.txt +0 -101
- package/deps/simdutf/benchmarks/alignment.cpp +0 -150
- package/deps/simdutf/benchmarks/base64/CMakeLists.txt +0 -30
- package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +0 -875
- package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +0 -49
- package/deps/simdutf/benchmarks/base64/node_base64.h +0 -227
- package/deps/simdutf/benchmarks/base64/openssl3_base64.h +0 -334
- package/deps/simdutf/benchmarks/benchmark.cpp +0 -65
- package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +0 -347
- package/deps/simdutf/benchmarks/competition/.clang-format-ignore +0 -5
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +0 -1276
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +0 -595
- package/deps/simdutf/benchmarks/competition/README.md +0 -7
- package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +0 -91
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +0 -444
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +0 -13183
- package/deps/simdutf/benchmarks/competition/inoue2008/script.py +0 -73
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +0 -738
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +0 -293
- package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +0 -8
- package/deps/simdutf/benchmarks/competition/u8u16/Makefile +0 -44
- package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +0 -169
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +0 -148
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +0 -45
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +0 -34
- package/deps/simdutf/benchmarks/competition/u8u16/README +0 -56
- package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +0 -43
- package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +0 -27
- package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +0 -16
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +0 -18
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +0 -16
- package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +0 -28
- package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +0 -20
- package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +0 -440
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +0 -121
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +0 -158
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +0 -270
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +0 -141
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +0 -216
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +0 -119
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +0 -2430
- package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +0 -39
- package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +0 -421
- package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +0 -836
- package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +0 -222
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +0 -4
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +0 -5
- package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +0 -390
- package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +0 -18
- package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +0 -448
- package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +0 -284
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +0 -1975
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +0 -2263
- package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +0 -239
- package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +0 -232
- package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +0 -194
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +0 -193
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +0 -167
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +0 -288
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +0 -117
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +0 -3
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +0 -3
- package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +0 -2
- package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +0 -23
- package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +0 -44
- package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +0 -106
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +0 -14
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +0 -8
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +0 -12
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +0 -14
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +0 -8
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +0 -12
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +0 -10
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +0 -9
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +0 -25
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +0 -94
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +0 -20
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +0 -2
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +0 -1
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +0 -75
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +0 -47
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +0 -17
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +0 -76
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +0 -35
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +0 -117
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +0 -210
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +0 -158
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +0 -104
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +0 -334
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +0 -186
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +0 -140
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +0 -42
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +0 -100
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +0 -57
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +0 -85
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +0 -27
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +0 -126
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +0 -108
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +0 -139
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +0 -74
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +0 -65
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +0 -91
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +0 -772
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +0 -12
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +0 -486
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +0 -162
- package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +0 -15
- package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +0 -292
- package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +0 -23
- package/deps/simdutf/benchmarks/competition/utfcpp/README.md +0 -1503
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +0 -335
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +0 -338
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +0 -103
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +0 -103
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +0 -274
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +0 -34
- package/deps/simdutf/benchmarks/dataset/README.md +0 -155
- package/deps/simdutf/benchmarks/dataset/emoji.txt +0 -204
- package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +0 -40
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +0 -80
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +0 -20
- package/deps/simdutf/benchmarks/find/CMakeLists.txt +0 -6
- package/deps/simdutf/benchmarks/find/findbenchmark.cpp +0 -63
- package/deps/simdutf/benchmarks/find/findbenchmarker.h +0 -46
- package/deps/simdutf/benchmarks/shortbench.cpp +0 -555
- package/deps/simdutf/benchmarks/src/CMakeLists.txt +0 -52
- package/deps/simdutf/benchmarks/src/apple_arm_events.h +0 -1104
- package/deps/simdutf/benchmarks/src/benchmark.cpp +0 -3899
- package/deps/simdutf/benchmarks/src/benchmark.h +0 -317
- package/deps/simdutf/benchmarks/src/benchmark_base.cpp +0 -144
- package/deps/simdutf/benchmarks/src/benchmark_base.h +0 -98
- package/deps/simdutf/benchmarks/src/cmdline.cpp +0 -176
- package/deps/simdutf/benchmarks/src/cmdline.h +0 -35
- package/deps/simdutf/benchmarks/src/event_counter.h +0 -162
- package/deps/simdutf/benchmarks/src/linux-perf-events.h +0 -104
- package/deps/simdutf/benchmarks/stream.cpp +0 -209
- package/deps/simdutf/benchmarks/threaded.cpp +0 -123
- package/deps/simdutf/cmake/CPM.cmake +0 -1363
- package/deps/simdutf/cmake/JoinPaths.cmake +0 -23
- package/deps/simdutf/cmake/add_cpp_test.cmake +0 -68
- package/deps/simdutf/cmake/simdutf-config.cmake.in +0 -2
- package/deps/simdutf/cmake/simdutf-flags.cmake +0 -26
- package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +0 -4
- package/deps/simdutf/cmake/toolchains-dev/README.md +0 -32
- package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +0 -14
- package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +0 -22
- package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +0 -16
- package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +0 -16
- package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +0 -16
- package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +0 -38
- package/deps/simdutf/doc/avx512.png +0 -0
- package/deps/simdutf/doc/logo.png +0 -0
- package/deps/simdutf/doc/logo.svg +0 -165
- package/deps/simdutf/doc/node2023.png +0 -0
- package/deps/simdutf/doc/shortinput.md +0 -78
- package/deps/simdutf/doc/utf16utf8.png +0 -0
- package/deps/simdutf/doc/utf8utf16.png +0 -0
- package/deps/simdutf/doc/widelogo.png +0 -0
- package/deps/simdutf/doxygen.py +0 -50
- package/deps/simdutf/fuzz/.clang-format +0 -9
- package/deps/simdutf/fuzz/CMakeLists.txt +0 -45
- package/deps/simdutf/fuzz/README.md +0 -168
- package/deps/simdutf/fuzz/atomic_base64.cpp +0 -448
- package/deps/simdutf/fuzz/base64.cpp +0 -278
- package/deps/simdutf/fuzz/build.sh +0 -83
- package/deps/simdutf/fuzz/conversion.cpp +0 -669
- package/deps/simdutf/fuzz/helpers/.clang-format-ignore +0 -1
- package/deps/simdutf/fuzz/helpers/common.h +0 -135
- package/deps/simdutf/fuzz/helpers/nameof.hpp +0 -1258
- package/deps/simdutf/fuzz/main.cpp +0 -72
- package/deps/simdutf/fuzz/minimize_and_cleanse.sh +0 -87
- package/deps/simdutf/fuzz/misc.cpp +0 -216
- package/deps/simdutf/fuzz/random_fuzz.sh +0 -154
- package/deps/simdutf/fuzz/roundtrip.cpp +0 -588
- package/deps/simdutf/fuzz/safe_conversion.cpp +0 -104
- package/deps/simdutf/riscv/Dockerfile +0 -16
- package/deps/simdutf/riscv/README.md +0 -24
- package/deps/simdutf/riscv/remove-docker-station +0 -8
- package/deps/simdutf/riscv/run-docker-station +0 -31
- package/deps/simdutf/scripts/.flake8 +0 -2
- package/deps/simdutf/scripts/Makefile +0 -2
- package/deps/simdutf/scripts/README_ADD_FUNCTION.md +0 -49
- package/deps/simdutf/scripts/add_function.py +0 -330
- package/deps/simdutf/scripts/amalgamation_tests.py +0 -156
- package/deps/simdutf/scripts/base64/Makefile +0 -2
- package/deps/simdutf/scripts/base64/README.md +0 -2
- package/deps/simdutf/scripts/base64/avx512.py +0 -76
- package/deps/simdutf/scripts/base64/neon_decode.py +0 -143
- package/deps/simdutf/scripts/base64/neon_generate_lut.py +0 -101
- package/deps/simdutf/scripts/base64/sse.py +0 -252
- package/deps/simdutf/scripts/base64/sseregular.py +0 -160
- package/deps/simdutf/scripts/base64/sseurl.py +0 -283
- package/deps/simdutf/scripts/base64/table.py +0 -59
- package/deps/simdutf/scripts/base64bench_print.py +0 -145
- package/deps/simdutf/scripts/benchmark-all.py +0 -119
- package/deps/simdutf/scripts/benchmark_print.py +0 -324
- package/deps/simdutf/scripts/check_feature_macros.py +0 -156
- package/deps/simdutf/scripts/check_typos.sh +0 -13
- package/deps/simdutf/scripts/clang_format.sh +0 -35
- package/deps/simdutf/scripts/clang_format_docker.sh +0 -38
- package/deps/simdutf/scripts/common.py +0 -24
- package/deps/simdutf/scripts/compilation_benchmark.py +0 -55
- package/deps/simdutf/scripts/compile_many_variations.sh +0 -64
- package/deps/simdutf/scripts/create_latex_table.py +0 -62
- package/deps/simdutf/scripts/docker/Dockerfile +0 -14
- package/deps/simdutf/scripts/docker/Makefile +0 -9
- package/deps/simdutf/scripts/docker/README.md +0 -30
- package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
- package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +0 -155
- package/deps/simdutf/scripts/prepare_doxygen.sh +0 -21
- package/deps/simdutf/scripts/release.py +0 -197
- package/deps/simdutf/scripts/shortinputplots.py +0 -97
- package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +0 -422
- package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +0 -105
- package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +0 -186
- package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +0 -137
- package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +0 -129
- package/deps/simdutf/scripts/table.py +0 -207
- package/deps/simdutf/scripts/tests/new.txt +0 -33
- package/deps/simdutf/scripts/tests/old.txt +0 -33
- package/deps/simdutf/scripts/tests/results.txt +0 -272
- package/deps/simdutf/simdutf.pc.in +0 -11
- package/deps/simdutf/singleheader/.flake8 +0 -2
- package/deps/simdutf/singleheader/CMakeLists.txt +0 -64
- package/deps/simdutf/singleheader/README-dev.md +0 -81
- package/deps/simdutf/singleheader/README.md +0 -19
- package/deps/simdutf/singleheader/amalgamate.py +0 -513
- package/deps/simdutf/singleheader/amalgamation_demo.c +0 -59
- package/deps/simdutf/singleheader/amalgamation_demo.cpp +0 -54
- package/deps/simdutf/singleheader/test-features.py +0 -262
- package/deps/simdutf/src/CMakeLists.txt +0 -78
- package/deps/simdutf/tests/CMakeLists.txt +0 -483
- package/deps/simdutf/tests/atomic_base64_tests.cpp +0 -2845
- package/deps/simdutf/tests/base64_tests.cpp +0 -3617
- package/deps/simdutf/tests/basic_fuzzer.cpp +0 -805
- package/deps/simdutf/tests/bele_tests.cpp +0 -182
- package/deps/simdutf/tests/constexpr_base64_tests.cpp +0 -387
- package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +0 -52
- package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +0 -80
- package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +0 -66
- package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +0 -120
- package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +0 -203
- package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +0 -276
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +0 -109
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +0 -136
- package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +0 -193
- package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +0 -381
- package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +0 -259
- package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +0 -266
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +0 -148
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +0 -176
- package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +0 -213
- package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +0 -318
- package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +0 -343
- package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +0 -271
- package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +0 -111
- package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +0 -96
- package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +0 -148
- package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +0 -192
- package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +0 -166
- package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +0 -215
- package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +0 -181
- package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +0 -261
- package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +0 -516
- package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +0 -579
- package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +0 -412
- package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +0 -480
- package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +0 -671
- package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +0 -455
- package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +0 -1204
- package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +0 -337
- package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +0 -37
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +0 -97
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +0 -126
- package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +0 -71
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +0 -122
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +0 -244
- package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +0 -49
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +0 -92
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +0 -114
- package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +0 -109
- package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +0 -84
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +0 -124
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +0 -221
- package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +0 -155
- package/deps/simdutf/tests/count_utf16be.cpp +0 -64
- package/deps/simdutf/tests/count_utf16le.cpp +0 -61
- package/deps/simdutf/tests/count_utf8.cpp +0 -87
- package/deps/simdutf/tests/detect_encodings_tests.cpp +0 -312
- package/deps/simdutf/tests/embed/valid_utf8.txt +0 -1
- package/deps/simdutf/tests/embed_tests.cpp +0 -22
- package/deps/simdutf/tests/find_tests.cpp +0 -77
- package/deps/simdutf/tests/fixed_string_tests.cpp +0 -153
- package/deps/simdutf/tests/helpers/CMakeLists.txt +0 -25
- package/deps/simdutf/tests/helpers/compiletime_conversions.h +0 -222
- package/deps/simdutf/tests/helpers/fixed_string.h +0 -267
- package/deps/simdutf/tests/helpers/random_int.cpp +0 -30
- package/deps/simdutf/tests/helpers/random_int.h +0 -39
- package/deps/simdutf/tests/helpers/random_utf16.cpp +0 -123
- package/deps/simdutf/tests/helpers/random_utf16.h +0 -52
- package/deps/simdutf/tests/helpers/random_utf32.cpp +0 -41
- package/deps/simdutf/tests/helpers/random_utf32.h +0 -40
- package/deps/simdutf/tests/helpers/random_utf8.cpp +0 -93
- package/deps/simdutf/tests/helpers/random_utf8.h +0 -36
- package/deps/simdutf/tests/helpers/test.cpp +0 -231
- package/deps/simdutf/tests/helpers/test.h +0 -193
- package/deps/simdutf/tests/helpers/transcode_test_base.cpp +0 -1257
- package/deps/simdutf/tests/helpers/transcode_test_base.h +0 -683
- package/deps/simdutf/tests/helpers/utf16.h +0 -27
- package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +0 -43
- package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +0 -47
- package/deps/simdutf/tests/internal_tests.cpp +0 -27
- package/deps/simdutf/tests/null_safety_tests.cpp +0 -94
- package/deps/simdutf/tests/random_fuzzer.cpp +0 -779
- package/deps/simdutf/tests/readme_tests.cpp +0 -274
- package/deps/simdutf/tests/reference/CMakeLists.txt +0 -23
- package/deps/simdutf/tests/reference/decode_utf16.h +0 -81
- package/deps/simdutf/tests/reference/decode_utf32.h +0 -47
- package/deps/simdutf/tests/reference/encode_latin1.cpp +0 -1
- package/deps/simdutf/tests/reference/encode_latin1.h +0 -32
- package/deps/simdutf/tests/reference/encode_utf16.cpp +0 -49
- package/deps/simdutf/tests/reference/encode_utf16.h +0 -20
- package/deps/simdutf/tests/reference/encode_utf32.cpp +0 -1
- package/deps/simdutf/tests/reference/encode_utf32.h +0 -36
- package/deps/simdutf/tests/reference/encode_utf8.cpp +0 -1
- package/deps/simdutf/tests/reference/encode_utf8.h +0 -40
- package/deps/simdutf/tests/reference/validate_utf16.cpp +0 -60
- package/deps/simdutf/tests/reference/validate_utf16.h +0 -14
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +0 -35
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +0 -13
- package/deps/simdutf/tests/reference/validate_utf32.cpp +0 -27
- package/deps/simdutf/tests/reference/validate_utf32.h +0 -12
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +0 -27
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +0 -12
- package/deps/simdutf/tests/reference/validate_utf8.cpp +0 -82
- package/deps/simdutf/tests/reference/validate_utf8.h +0 -11
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +0 -43
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +0 -12
- package/deps/simdutf/tests/select_implementation.cpp +0 -43
- package/deps/simdutf/tests/simdutf_c_tests.cpp +0 -244
- package/deps/simdutf/tests/span_tests.cpp +0 -401
- package/deps/simdutf/tests/special_tests.cpp +0 -559
- package/deps/simdutf/tests/straight_c_test.c +0 -187
- package/deps/simdutf/tests/text_encoding_tests.cpp +0 -77
- package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +0 -377
- package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +0 -202
- package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +0 -165
- package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +0 -77
- package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +0 -175
- package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +0 -188
- package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +0 -268
- package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +0 -274
- package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +0 -92
- package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +0 -114
- package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +0 -178
- package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +0 -88
- package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +0 -33
- package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +0 -228
- package/deps/simdutf/tools/CMakeLists.txt +0 -85
- package/deps/simdutf/tools/fastbase64.cpp +0 -250
- package/deps/simdutf/tools/sutf.cpp +0 -556
- package/deps/simdutf/tools/sutf.h +0 -40
- package/lib/tsconfig.tsbuildinfo +0 -1
package/src/ec.ts
CHANGED
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
kNamedCurveAliases,
|
|
28
28
|
lazyDOMException,
|
|
29
29
|
normalizeHashName,
|
|
30
|
+
validateJwkStructure,
|
|
30
31
|
HashContext,
|
|
31
32
|
KeyEncoding,
|
|
32
33
|
KFormatType,
|
|
@@ -93,36 +94,27 @@ export function ecImportKey(
|
|
|
93
94
|
throw lazyDOMException('Unrecognized namedCurve', 'NotSupportedError');
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
// Handle JWK format
|
|
97
97
|
if (format === 'jwk') {
|
|
98
98
|
const jwk = keyData as JWK;
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
if (!jwk || typeof jwk !== 'object') {
|
|
101
|
+
throw lazyDOMException('Invalid keyData', 'DataError');
|
|
102
|
+
}
|
|
101
103
|
if (jwk.kty !== 'EC') {
|
|
102
104
|
throw lazyDOMException('Invalid JWK "kty" Parameter', 'DataError');
|
|
103
105
|
}
|
|
104
|
-
|
|
105
106
|
if (jwk.crv !== namedCurve) {
|
|
106
107
|
throw lazyDOMException(
|
|
107
108
|
'JWK "crv" does not match the requested algorithm',
|
|
108
109
|
'DataError',
|
|
109
110
|
);
|
|
110
111
|
}
|
|
112
|
+
const expectedUse = name === 'ECDH' ? 'enc' : 'sig';
|
|
113
|
+
validateJwkStructure(jwk, extractable, keyUsages, expectedUse);
|
|
111
114
|
|
|
112
|
-
// Check use parameter if present
|
|
113
|
-
if (jwk.use !== undefined) {
|
|
114
|
-
const expectedUse = name === 'ECDH' ? 'enc' : 'sig';
|
|
115
|
-
if (jwk.use !== expectedUse) {
|
|
116
|
-
throw lazyDOMException('Invalid JWK "use" Parameter', 'DataError');
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Check alg parameter if present
|
|
121
115
|
if (jwk.alg !== undefined) {
|
|
122
116
|
let expectedAlg: string | undefined;
|
|
123
|
-
|
|
124
117
|
if (name === 'ECDSA') {
|
|
125
|
-
// Map namedCurve to expected ECDSA algorithm
|
|
126
118
|
expectedAlg =
|
|
127
119
|
namedCurve === 'P-256'
|
|
128
120
|
? 'ES256'
|
|
@@ -132,11 +124,9 @@ export function ecImportKey(
|
|
|
132
124
|
? 'ES512'
|
|
133
125
|
: undefined;
|
|
134
126
|
} else if (name === 'ECDH') {
|
|
135
|
-
// ECDH uses ECDH-ES algorithm
|
|
136
127
|
expectedAlg = 'ECDH-ES';
|
|
137
128
|
}
|
|
138
|
-
|
|
139
|
-
if (expectedAlg && jwk.alg !== undefined && jwk.alg !== expectedAlg) {
|
|
129
|
+
if (expectedAlg && jwk.alg !== expectedAlg) {
|
|
140
130
|
throw lazyDOMException(
|
|
141
131
|
'JWK "alg" does not match the requested algorithm',
|
|
142
132
|
'DataError',
|
|
@@ -144,32 +134,49 @@ export function ecImportKey(
|
|
|
144
134
|
}
|
|
145
135
|
}
|
|
146
136
|
|
|
147
|
-
|
|
137
|
+
const isPublicJwk = jwk.d === undefined;
|
|
138
|
+
const validUsagesJwk: KeyUsage[] =
|
|
139
|
+
name === 'ECDSA'
|
|
140
|
+
? isPublicJwk
|
|
141
|
+
? ['verify']
|
|
142
|
+
: ['sign']
|
|
143
|
+
: isPublicJwk
|
|
144
|
+
? []
|
|
145
|
+
: ['deriveKey', 'deriveBits'];
|
|
146
|
+
if (hasAnyNotIn(keyUsages, validUsagesJwk)) {
|
|
147
|
+
throw lazyDOMException(
|
|
148
|
+
`Unsupported key usage for a ${name} key`,
|
|
149
|
+
'SyntaxError',
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
148
153
|
const handle =
|
|
149
154
|
NitroModules.createHybridObject<KeyObjectHandle>('KeyObjectHandle');
|
|
150
|
-
|
|
151
|
-
|
|
155
|
+
let keyType: number | undefined;
|
|
156
|
+
try {
|
|
157
|
+
keyType = handle.initJwk(jwk, namedCurve as NamedCurve);
|
|
158
|
+
} catch (err) {
|
|
159
|
+
throw lazyDOMException('Invalid keyData', {
|
|
160
|
+
name: 'DataError',
|
|
161
|
+
cause: err,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
152
164
|
if (keyType === undefined) {
|
|
153
|
-
throw lazyDOMException('Invalid
|
|
165
|
+
throw lazyDOMException('Invalid keyData', 'DataError');
|
|
154
166
|
}
|
|
155
167
|
|
|
156
|
-
// Create the appropriate KeyObject based on type
|
|
157
168
|
let keyObject: KeyObject;
|
|
158
169
|
if (keyType === 1) {
|
|
159
170
|
keyObject = new PublicKeyObject(handle);
|
|
160
171
|
} else if (keyType === 2) {
|
|
161
172
|
keyObject = new PrivateKeyObject(handle);
|
|
162
173
|
} else {
|
|
163
|
-
throw lazyDOMException(
|
|
164
|
-
'Unexpected key type from JWK import',
|
|
165
|
-
'DataError',
|
|
166
|
-
);
|
|
174
|
+
throw lazyDOMException('Invalid keyData', 'DataError');
|
|
167
175
|
}
|
|
168
176
|
|
|
169
177
|
return new CryptoKey(keyObject, algorithm, keyUsages, extractable);
|
|
170
178
|
}
|
|
171
179
|
|
|
172
|
-
// Handle binary formats (spki, pkcs8, raw)
|
|
173
180
|
if (format !== 'spki' && format !== 'pkcs8' && format !== 'raw') {
|
|
174
181
|
throw lazyDOMException(
|
|
175
182
|
`Unsupported format: ${format}`,
|
|
@@ -177,11 +184,9 @@ export function ecImportKey(
|
|
|
177
184
|
);
|
|
178
185
|
}
|
|
179
186
|
|
|
180
|
-
// Determine expected key type based on format
|
|
181
187
|
const expectedKeyType =
|
|
182
188
|
format === 'spki' || format === 'raw' ? 'public' : 'private';
|
|
183
189
|
|
|
184
|
-
// Validate usages for the key type
|
|
185
190
|
const isPublicKey = expectedKeyType === 'public';
|
|
186
191
|
let validUsages: KeyUsage[];
|
|
187
192
|
|
|
@@ -225,6 +230,18 @@ export function ecImportKey(
|
|
|
225
230
|
KFormatType.DER,
|
|
226
231
|
format === 'spki' ? KeyEncoding.SPKI : KeyEncoding.PKCS8,
|
|
227
232
|
);
|
|
233
|
+
|
|
234
|
+
// Validate the imported curve matches the requested algorithm.namedCurve.
|
|
235
|
+
const expectedAlias =
|
|
236
|
+
kNamedCurveAliases[namedCurve as keyof typeof kNamedCurveAliases];
|
|
237
|
+
if (keyObject.handle.keyDetail().namedCurve !== expectedAlias) {
|
|
238
|
+
throw lazyDOMException('Named curve mismatch', 'DataError');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// Verify the public/private point lies on the named curve.
|
|
243
|
+
if (!keyObject.handle.checkEcKeyData()) {
|
|
244
|
+
throw lazyDOMException('Invalid keyData', 'DataError');
|
|
228
245
|
}
|
|
229
246
|
|
|
230
247
|
return new CryptoKey(keyObject, algorithm, keyUsages, extractable);
|
|
@@ -433,6 +450,10 @@ function ec_formatKeyPairOutput(
|
|
|
433
450
|
|
|
434
451
|
if (publicFormat === -1) {
|
|
435
452
|
publicKey = pub;
|
|
453
|
+
} else if (publicFormat === 'raw-public') {
|
|
454
|
+
publicKey = Buffer.from(
|
|
455
|
+
pub.handle.exportECPublicRaw(publicType === 'compressed'),
|
|
456
|
+
);
|
|
436
457
|
} else {
|
|
437
458
|
const format =
|
|
438
459
|
publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
|
|
@@ -448,6 +469,8 @@ function ec_formatKeyPairOutput(
|
|
|
448
469
|
|
|
449
470
|
if (privateFormat === -1) {
|
|
450
471
|
privateKey = priv;
|
|
472
|
+
} else if (privateFormat === 'raw-private') {
|
|
473
|
+
privateKey = Buffer.from(priv.handle.exportECPrivateRaw());
|
|
451
474
|
} else {
|
|
452
475
|
const format =
|
|
453
476
|
privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
|
package/src/ed.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
PrivateKeyObject as PrivateKeyObjectClass,
|
|
9
9
|
} from './keys/classes';
|
|
10
10
|
import type { EdKeyPair } from './specs/edKeyPair.nitro';
|
|
11
|
+
import type { KeyObjectHandle as KeyObjectHandleSpec } from './specs/keyObjectHandle.nitro';
|
|
11
12
|
import type {
|
|
12
13
|
BinaryLike,
|
|
13
14
|
CFRGKeyPairType,
|
|
@@ -31,6 +32,10 @@ import {
|
|
|
31
32
|
} from './utils';
|
|
32
33
|
import { ECDH } from './ecdh';
|
|
33
34
|
|
|
35
|
+
function coerceToNumeric(value: unknown): number {
|
|
36
|
+
return typeof value === 'number' ? value : -1;
|
|
37
|
+
}
|
|
38
|
+
|
|
34
39
|
export class Ed {
|
|
35
40
|
type: CFRGKeyPairType;
|
|
36
41
|
config: KeyPairGenConfig;
|
|
@@ -86,10 +91,10 @@ export class Ed {
|
|
|
86
91
|
|
|
87
92
|
async generateKeyPair(): Promise<void> {
|
|
88
93
|
await this.native.generateKeyPair(
|
|
89
|
-
this.config.publicFormat
|
|
90
|
-
this.config.publicType
|
|
91
|
-
this.config.privateFormat
|
|
92
|
-
this.config.privateType
|
|
94
|
+
coerceToNumeric(this.config.publicFormat),
|
|
95
|
+
coerceToNumeric(this.config.publicType),
|
|
96
|
+
coerceToNumeric(this.config.privateFormat),
|
|
97
|
+
coerceToNumeric(this.config.privateType),
|
|
93
98
|
this.config.cipher,
|
|
94
99
|
this.config.passphrase as ArrayBuffer,
|
|
95
100
|
);
|
|
@@ -97,10 +102,10 @@ export class Ed {
|
|
|
97
102
|
|
|
98
103
|
generateKeyPairSync(): void {
|
|
99
104
|
this.native.generateKeyPairSync(
|
|
100
|
-
this.config.publicFormat
|
|
101
|
-
this.config.publicType
|
|
102
|
-
this.config.privateFormat
|
|
103
|
-
this.config.privateType
|
|
105
|
+
coerceToNumeric(this.config.publicFormat),
|
|
106
|
+
coerceToNumeric(this.config.publicType),
|
|
107
|
+
coerceToNumeric(this.config.privateFormat),
|
|
108
|
+
coerceToNumeric(this.config.privateType),
|
|
104
109
|
this.config.cipher,
|
|
105
110
|
this.config.passphrase as ArrayBuffer,
|
|
106
111
|
);
|
|
@@ -166,18 +171,86 @@ export function diffieHellman(
|
|
|
166
171
|
options: DiffieHellmanOptions,
|
|
167
172
|
callback?: DiffieHellmanCallback,
|
|
168
173
|
): Buffer | void {
|
|
169
|
-
|
|
174
|
+
if (!options || typeof options !== 'object') {
|
|
175
|
+
throw new TypeError('options must be an object');
|
|
176
|
+
}
|
|
177
|
+
if (callback !== undefined && typeof callback !== 'function') {
|
|
178
|
+
throw new TypeError('callback must be a function');
|
|
179
|
+
}
|
|
170
180
|
|
|
171
|
-
const
|
|
181
|
+
const resolvedOptions: DiffieHellmanOptions = {
|
|
182
|
+
publicKey: resolveDhKeyInput(options.publicKey, 'publicKey'),
|
|
183
|
+
privateKey: resolveDhKeyInput(options.privateKey, 'privateKey'),
|
|
184
|
+
};
|
|
185
|
+
checkDiffieHellmanOptions(resolvedOptions);
|
|
186
|
+
|
|
187
|
+
const privateKey = resolvedOptions.privateKey as PrivateKeyObject;
|
|
172
188
|
const keyType = privateKey.asymmetricKeyType;
|
|
173
189
|
|
|
174
190
|
if (keyType === 'ec') {
|
|
175
|
-
return ecDiffieHellman(
|
|
191
|
+
return ecDiffieHellman(resolvedOptions, callback);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (keyType === 'dh') {
|
|
195
|
+
throw new Error(
|
|
196
|
+
'crypto.diffieHellman with DH KeyObjects is not supported yet — use the DiffieHellman class for now',
|
|
197
|
+
);
|
|
176
198
|
}
|
|
177
199
|
|
|
178
200
|
const type = keyType as CFRGKeyPairType;
|
|
179
201
|
const ed = new Ed(type, {});
|
|
180
|
-
return ed.diffieHellman(
|
|
202
|
+
return ed.diffieHellman(resolvedOptions, callback);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function isRawKeyInput(value: unknown): value is {
|
|
206
|
+
key: ArrayBuffer | ArrayBufferView | string;
|
|
207
|
+
format: 'raw-public' | 'raw-private' | 'raw-seed';
|
|
208
|
+
asymmetricKeyType: string;
|
|
209
|
+
namedCurve?: string;
|
|
210
|
+
} {
|
|
211
|
+
if (!value || typeof value !== 'object') return false;
|
|
212
|
+
const obj = value as { format?: string };
|
|
213
|
+
return (
|
|
214
|
+
obj.format === 'raw-public' ||
|
|
215
|
+
obj.format === 'raw-private' ||
|
|
216
|
+
obj.format === 'raw-seed'
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function resolveDhKeyInput(
|
|
221
|
+
input: DiffieHellmanOptions['publicKey'],
|
|
222
|
+
name: 'publicKey' | 'privateKey',
|
|
223
|
+
): AsymmetricKeyObject {
|
|
224
|
+
if (isRawKeyInput(input)) {
|
|
225
|
+
const expectedKeyType = name === 'publicKey' ? 'public' : 'private';
|
|
226
|
+
if (input.format === 'raw-public' && expectedKeyType !== 'public') {
|
|
227
|
+
throw new Error(`Invalid format 'raw-public' for ${name}`);
|
|
228
|
+
}
|
|
229
|
+
if (
|
|
230
|
+
(input.format === 'raw-private' || input.format === 'raw-seed') &&
|
|
231
|
+
expectedKeyType !== 'private'
|
|
232
|
+
) {
|
|
233
|
+
throw new Error(`Invalid format '${input.format}' for ${name}`);
|
|
234
|
+
}
|
|
235
|
+
if (input.asymmetricKeyType === 'ec' && !input.namedCurve) {
|
|
236
|
+
throw new Error(`namedCurve is required for EC raw key in ${name}`);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const handle =
|
|
240
|
+
NitroModules.createHybridObject<KeyObjectHandleSpec>('KeyObjectHandle');
|
|
241
|
+
const keyData = toAB(input.key as BinaryLike);
|
|
242
|
+
if (input.format === 'raw-public') {
|
|
243
|
+
handle.initRawPublic(input.asymmetricKeyType, keyData, input.namedCurve);
|
|
244
|
+
return new PublicKeyObject(handle);
|
|
245
|
+
}
|
|
246
|
+
if (input.format === 'raw-seed') {
|
|
247
|
+
handle.initRawSeed(input.asymmetricKeyType, keyData);
|
|
248
|
+
return new PrivateKeyObjectClass(handle);
|
|
249
|
+
}
|
|
250
|
+
handle.initRawPrivate(input.asymmetricKeyType, keyData, input.namedCurve);
|
|
251
|
+
return new PrivateKeyObjectClass(handle);
|
|
252
|
+
}
|
|
253
|
+
return input as AsymmetricKeyObject;
|
|
181
254
|
}
|
|
182
255
|
|
|
183
256
|
function ed_createKeyObjects(ed: Ed): {
|
|
@@ -206,17 +279,19 @@ function ed_formatKeyPairOutput(
|
|
|
206
279
|
ed: Ed,
|
|
207
280
|
encoding: KeyPairGenConfig,
|
|
208
281
|
): {
|
|
209
|
-
publicKey: PublicKeyObject | string | ArrayBuffer;
|
|
210
|
-
privateKey: PrivateKeyObjectClass | string | ArrayBuffer;
|
|
282
|
+
publicKey: PublicKeyObject | string | ArrayBuffer | Buffer;
|
|
283
|
+
privateKey: PrivateKeyObjectClass | string | ArrayBuffer | Buffer;
|
|
211
284
|
} {
|
|
212
285
|
const { publicFormat, privateFormat, cipher, passphrase } = encoding;
|
|
213
286
|
const { pub, priv } = ed_createKeyObjects(ed);
|
|
214
287
|
|
|
215
|
-
let publicKey: PublicKeyObject | string | ArrayBuffer;
|
|
216
|
-
let privateKey: PrivateKeyObjectClass | string | ArrayBuffer;
|
|
288
|
+
let publicKey: PublicKeyObject | string | ArrayBuffer | Buffer;
|
|
289
|
+
let privateKey: PrivateKeyObjectClass | string | ArrayBuffer | Buffer;
|
|
217
290
|
|
|
218
291
|
if (publicFormat == null || publicFormat === -1) {
|
|
219
292
|
publicKey = pub;
|
|
293
|
+
} else if (publicFormat === 'raw-public') {
|
|
294
|
+
publicKey = Buffer.from(pub.handle.exportRawPublic());
|
|
220
295
|
} else {
|
|
221
296
|
const format =
|
|
222
297
|
publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
|
|
@@ -230,6 +305,10 @@ function ed_formatKeyPairOutput(
|
|
|
230
305
|
|
|
231
306
|
if (privateFormat == null || privateFormat === -1) {
|
|
232
307
|
privateKey = priv;
|
|
308
|
+
} else if (privateFormat === 'raw-private') {
|
|
309
|
+
privateKey = Buffer.from(priv.handle.exportRawPrivate());
|
|
310
|
+
} else if (privateFormat === 'raw-seed') {
|
|
311
|
+
privateKey = Buffer.from(priv.handle.exportRawSeed());
|
|
233
312
|
} else {
|
|
234
313
|
const format =
|
|
235
314
|
privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
|
package/src/hash.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { NitroModules } from 'react-native-nitro-modules';
|
|
|
3
3
|
import type { TransformOptions } from 'readable-stream';
|
|
4
4
|
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
5
5
|
import type { Hash as NativeHash } from './specs/hash.nitro';
|
|
6
|
+
import type { TurboShake as NativeTurboShake } from './specs/turboshake.nitro';
|
|
6
7
|
import type {
|
|
7
8
|
BinaryLike,
|
|
8
9
|
Encoding,
|
|
@@ -183,18 +184,28 @@ class Hash extends Stream.Transform {
|
|
|
183
184
|
return this.native.getOpenSSLVersion();
|
|
184
185
|
}
|
|
185
186
|
|
|
186
|
-
//
|
|
187
|
+
// Stream interface — surface synchronous errors via the callback so
|
|
188
|
+
// they emit as stream 'error' events instead of throwing out of the
|
|
189
|
+
// Transform plumbing (which would crash the host pipeline).
|
|
187
190
|
_transform(
|
|
188
191
|
chunk: BinaryLike,
|
|
189
192
|
encoding: BufferEncoding,
|
|
190
|
-
callback: () => void,
|
|
193
|
+
callback: (err?: Error | null) => void,
|
|
191
194
|
) {
|
|
192
|
-
|
|
193
|
-
|
|
195
|
+
try {
|
|
196
|
+
this.update(chunk, encoding as Encoding);
|
|
197
|
+
callback();
|
|
198
|
+
} catch (err) {
|
|
199
|
+
callback(err as Error);
|
|
200
|
+
}
|
|
194
201
|
}
|
|
195
|
-
_flush(callback: () => void) {
|
|
196
|
-
|
|
197
|
-
|
|
202
|
+
_flush(callback: (err?: Error | null) => void) {
|
|
203
|
+
try {
|
|
204
|
+
this.push(this.digest());
|
|
205
|
+
callback();
|
|
206
|
+
} catch (err) {
|
|
207
|
+
callback(err as Error);
|
|
208
|
+
}
|
|
198
209
|
}
|
|
199
210
|
}
|
|
200
211
|
|
|
@@ -257,19 +268,33 @@ export const asyncDigest = async (
|
|
|
257
268
|
}
|
|
258
269
|
|
|
259
270
|
if (name === 'cSHAKE128' || name === 'cSHAKE256') {
|
|
260
|
-
|
|
271
|
+
// CShakeParams.outputLength is required (in bits) per the WICG modern-algos
|
|
272
|
+
// spec, renamed from `length` (commit ab8dc2b84c2). Mirror Node's
|
|
273
|
+
// hash.js:223-228 / webidl.js:570-595.
|
|
274
|
+
if (
|
|
275
|
+
typeof algorithm.outputLength !== 'number' ||
|
|
276
|
+
algorithm.outputLength <= 0
|
|
277
|
+
) {
|
|
261
278
|
throw lazyDOMException(
|
|
262
|
-
'
|
|
279
|
+
'CShakeParams.outputLength is required',
|
|
263
280
|
'OperationError',
|
|
264
281
|
);
|
|
265
282
|
}
|
|
266
|
-
if (algorithm.
|
|
283
|
+
if (algorithm.outputLength % 8) {
|
|
267
284
|
throw lazyDOMException(
|
|
268
|
-
'Unsupported CShakeParams
|
|
285
|
+
'Unsupported CShakeParams outputLength',
|
|
269
286
|
'NotSupportedError',
|
|
270
287
|
);
|
|
271
288
|
}
|
|
272
|
-
return internalDigest(algorithm, data, algorithm.
|
|
289
|
+
return internalDigest(algorithm, data, algorithm.outputLength / 8);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (name === 'TurboSHAKE128' || name === 'TurboSHAKE256') {
|
|
293
|
+
return turboShakeDigest(name, algorithm, data);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (name === 'KT128' || name === 'KT256') {
|
|
297
|
+
return kangarooTwelveDigest(name, algorithm, data);
|
|
273
298
|
}
|
|
274
299
|
|
|
275
300
|
throw lazyDOMException(
|
|
@@ -278,6 +303,94 @@ export const asyncDigest = async (
|
|
|
278
303
|
);
|
|
279
304
|
};
|
|
280
305
|
|
|
306
|
+
// TurboSHAKE / KangarooTwelve are not exposed by OpenSSL EVP, so we route
|
|
307
|
+
// them to a dedicated Nitro module (cpp/turboshake) that ports the Node.js
|
|
308
|
+
// reference implementation. Lazy-load to keep the module out of the hot path
|
|
309
|
+
// for callers that only use SHA-2/SHA-3.
|
|
310
|
+
let nativeTurboShake: NativeTurboShake | undefined;
|
|
311
|
+
const getTurboShake = (): NativeTurboShake => {
|
|
312
|
+
if (!nativeTurboShake) {
|
|
313
|
+
nativeTurboShake =
|
|
314
|
+
NitroModules.createHybridObject<NativeTurboShake>('TurboShake');
|
|
315
|
+
}
|
|
316
|
+
return nativeTurboShake;
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
// RFC 9861 §2.2 default per the WICG Modern Algos draft for TurboSHAKE.
|
|
320
|
+
const kDefaultTurboShakeDomainSeparation = 0x1f;
|
|
321
|
+
|
|
322
|
+
const turboShakeDigest = async (
|
|
323
|
+
name: 'TurboSHAKE128' | 'TurboSHAKE256',
|
|
324
|
+
algorithm: SubtleAlgorithm,
|
|
325
|
+
data: BufferLike,
|
|
326
|
+
): Promise<ArrayBuffer> => {
|
|
327
|
+
if (
|
|
328
|
+
typeof algorithm.outputLength !== 'number' ||
|
|
329
|
+
algorithm.outputLength <= 0
|
|
330
|
+
) {
|
|
331
|
+
throw lazyDOMException(
|
|
332
|
+
'TurboShakeParams.outputLength is required',
|
|
333
|
+
'OperationError',
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
if (algorithm.outputLength % 8) {
|
|
337
|
+
throw lazyDOMException(
|
|
338
|
+
'Invalid TurboShakeParams outputLength',
|
|
339
|
+
'OperationError',
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
const ds = algorithm.domainSeparation ?? kDefaultTurboShakeDomainSeparation;
|
|
343
|
+
if (
|
|
344
|
+
typeof ds !== 'number' ||
|
|
345
|
+
!Number.isInteger(ds) ||
|
|
346
|
+
ds < 0x01 ||
|
|
347
|
+
ds > 0x7f
|
|
348
|
+
) {
|
|
349
|
+
throw lazyDOMException(
|
|
350
|
+
'TurboShakeParams.domainSeparation must be in range 0x01-0x7f',
|
|
351
|
+
'OperationError',
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
return getTurboShake().turboShake(
|
|
355
|
+
name,
|
|
356
|
+
ds,
|
|
357
|
+
algorithm.outputLength / 8,
|
|
358
|
+
bufferLikeToArrayBuffer(data),
|
|
359
|
+
);
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
const kangarooTwelveDigest = async (
|
|
363
|
+
name: 'KT128' | 'KT256',
|
|
364
|
+
algorithm: SubtleAlgorithm,
|
|
365
|
+
data: BufferLike,
|
|
366
|
+
): Promise<ArrayBuffer> => {
|
|
367
|
+
if (
|
|
368
|
+
typeof algorithm.outputLength !== 'number' ||
|
|
369
|
+
algorithm.outputLength <= 0
|
|
370
|
+
) {
|
|
371
|
+
throw lazyDOMException(
|
|
372
|
+
'KangarooTwelveParams.outputLength is required',
|
|
373
|
+
'OperationError',
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
if (algorithm.outputLength % 8) {
|
|
377
|
+
throw lazyDOMException(
|
|
378
|
+
'Invalid KangarooTwelveParams outputLength',
|
|
379
|
+
'OperationError',
|
|
380
|
+
);
|
|
381
|
+
}
|
|
382
|
+
const customization =
|
|
383
|
+
algorithm.customization !== undefined
|
|
384
|
+
? bufferLikeToArrayBuffer(algorithm.customization)
|
|
385
|
+
: undefined;
|
|
386
|
+
return getTurboShake().kangarooTwelve(
|
|
387
|
+
name,
|
|
388
|
+
algorithm.outputLength / 8,
|
|
389
|
+
bufferLikeToArrayBuffer(data),
|
|
390
|
+
customization,
|
|
391
|
+
);
|
|
392
|
+
};
|
|
393
|
+
|
|
281
394
|
const internalDigest = (
|
|
282
395
|
algorithm: SubtleAlgorithm,
|
|
283
396
|
data: BufferLike,
|
package/src/hkdf.ts
CHANGED
|
@@ -45,6 +45,46 @@ function sanitizeInput(input: BinaryLike, name: string): ArrayBuffer {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
// Output byte-length of each fixed-length digest. HKDF requires a fixed-
|
|
49
|
+
// output hash (it builds on HMAC), so XOFs like SHAKE128/256 are not
|
|
50
|
+
// included even though `normalizeHashName` will accept them — passing
|
|
51
|
+
// SHAKE here is a caller bug we surface as `Unsupported HKDF digest`
|
|
52
|
+
// instead of letting the native side return an opaque error.
|
|
53
|
+
const HKDF_HASH_BYTES: Readonly<Record<string, number>> = {
|
|
54
|
+
sha1: 20,
|
|
55
|
+
sha224: 28,
|
|
56
|
+
sha256: 32,
|
|
57
|
+
sha384: 48,
|
|
58
|
+
sha512: 64,
|
|
59
|
+
'sha3-256': 32,
|
|
60
|
+
'sha3-384': 48,
|
|
61
|
+
'sha3-512': 64,
|
|
62
|
+
ripemd160: 20,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
function validateHkdfKeylen(digest: string, keylen: number): void {
|
|
66
|
+
if (
|
|
67
|
+
typeof keylen !== 'number' ||
|
|
68
|
+
!Number.isFinite(keylen) ||
|
|
69
|
+
!Number.isInteger(keylen) ||
|
|
70
|
+
keylen < 0 ||
|
|
71
|
+
keylen > 0x7fff_ffff
|
|
72
|
+
) {
|
|
73
|
+
throw new TypeError('Bad key length');
|
|
74
|
+
}
|
|
75
|
+
const hashLen = HKDF_HASH_BYTES[digest.toLowerCase()];
|
|
76
|
+
if (hashLen === undefined) {
|
|
77
|
+
throw new TypeError(`Unsupported HKDF digest: ${digest}`);
|
|
78
|
+
}
|
|
79
|
+
// RFC 5869 §2.3: L ≤ 255 * HashLen.
|
|
80
|
+
if (keylen > 255 * hashLen) {
|
|
81
|
+
throw new RangeError(
|
|
82
|
+
`HKDF keylen ${keylen} exceeds RFC 5869 ceiling ` +
|
|
83
|
+
`255 * HashLen (${255 * hashLen}) for ${digest}`,
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
48
88
|
export function hkdf(
|
|
49
89
|
digest: string,
|
|
50
90
|
key: KeyMaterial,
|
|
@@ -61,9 +101,7 @@ export function hkdf(
|
|
|
61
101
|
const sanitizedSalt = sanitizeInput(salt, 'Salt');
|
|
62
102
|
const sanitizedInfo = sanitizeInput(info, 'Info');
|
|
63
103
|
|
|
64
|
-
|
|
65
|
-
throw new TypeError('Bad key length');
|
|
66
|
-
}
|
|
104
|
+
validateHkdfKeylen(normalizedDigest, keylen);
|
|
67
105
|
|
|
68
106
|
const nativeMod = getNative();
|
|
69
107
|
nativeMod
|
|
@@ -99,9 +137,7 @@ export function hkdfSync(
|
|
|
99
137
|
const sanitizedSalt = sanitizeInput(salt, 'Salt');
|
|
100
138
|
const sanitizedInfo = sanitizeInput(info, 'Info');
|
|
101
139
|
|
|
102
|
-
|
|
103
|
-
throw new TypeError('Bad key length');
|
|
104
|
-
}
|
|
140
|
+
validateHkdfKeylen(normalizedDigest, keylen);
|
|
105
141
|
|
|
106
142
|
const nativeMod = getNative();
|
|
107
143
|
const result = nativeMod.deriveKeySync(
|
|
@@ -134,6 +170,8 @@ export function hkdfDeriveBits(
|
|
|
134
170
|
const hashName = typeof hash === 'string' ? hash : hash.name;
|
|
135
171
|
const normalizedDigest = normalizeHashName(hashName);
|
|
136
172
|
|
|
173
|
+
validateHkdfKeylen(normalizedDigest, keylen);
|
|
174
|
+
|
|
137
175
|
const nativeMod = getNative();
|
|
138
176
|
const result = nativeMod.deriveKeySync(
|
|
139
177
|
normalizedDigest,
|
package/src/hmac.ts
CHANGED
|
@@ -85,18 +85,28 @@ class Hmac extends Stream.Transform {
|
|
|
85
85
|
return Buffer.from(nativeDigest);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
//
|
|
88
|
+
// Stream interface — surface synchronous errors via the callback so
|
|
89
|
+
// they emit as stream 'error' events instead of throwing out of the
|
|
90
|
+
// Transform plumbing.
|
|
89
91
|
_transform(
|
|
90
92
|
chunk: BinaryLike,
|
|
91
93
|
encoding: BufferEncoding,
|
|
92
|
-
callback: () => void,
|
|
94
|
+
callback: (err?: Error | null) => void,
|
|
93
95
|
) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
try {
|
|
97
|
+
this.update(chunk, encoding as Encoding);
|
|
98
|
+
callback();
|
|
99
|
+
} catch (err) {
|
|
100
|
+
callback(err as Error);
|
|
101
|
+
}
|
|
96
102
|
}
|
|
97
|
-
_flush(callback: () => void) {
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
_flush(callback: (err?: Error | null) => void) {
|
|
104
|
+
try {
|
|
105
|
+
this.push(this.digest());
|
|
106
|
+
callback();
|
|
107
|
+
} catch (err) {
|
|
108
|
+
callback(err as Error);
|
|
109
|
+
}
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
|