diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 81bf353..0adc854 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -11,6 +11,7 @@ jobs: node: - 18 - 20 + - 22 steps: - uses: actions/checkout@1e31de5234b9f8995739874a8ce0492dc87873e2 # v4 - name: Use Node.js ${{ matrix.node }} diff --git a/build/package-lock.json b/build/package-lock.json index d6d43b9..f8db49e 100644 --- a/build/package-lock.json +++ b/build/package-lock.json @@ -13,6 +13,7 @@ } }, "..": { + "name": "@noble/curves", "version": "1.4.0", "dev": true, "license": "MIT", diff --git a/build/package.json b/build/package.json index 8cc0e35..bcbc817 100644 --- a/build/package.json +++ b/build/package.json @@ -9,6 +9,7 @@ "esbuild": "0.20.1" }, "scripts": { - "build:release": "npx esbuild --bundle input.js --outfile=`npx jsbt outfile` --global-name=`npx jsbt global`" + "build:release": "npx esbuild --bundle input.js --outfile=`npx jsbt outfile` --global-name=`npx jsbt global`", + "build:min": "npx esbuild --bundle input.js --minify --outfile=`npx jsbt outfile` --global-name=`npx jsbt global`; gzip -9 `npx jsbt outfile`" } } diff --git a/test/basic.test.js b/test/basic.test.js index 44aedf9..67e21bb 100644 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -15,7 +15,7 @@ import { pallas, vesta } from '../esm/pasta.js'; import { bn254 } from '../esm/bn254.js'; import { jubjub } from '../esm/jubjub.js'; import { bls12_381 } from '../esm/bls12-381.js'; -import { default as wyche_curves } from './wycheproof/ec_prime_order_curves_test.json' assert { type: 'json' }; +import { default as wyche_curves } from './wycheproof/ec_prime_order_curves_test.json' with { type: 'json' }; import { createCurve } from '../esm/_shortw_utils.js'; import { Field } from '../esm/abstract/modular.js'; import { sha256 } from '@noble/hashes/sha256'; diff --git a/test/bls12-381.test.js b/test/bls12-381.test.js index ed3ac5c..dd75235 100644 --- a/test/bls12-381.test.js +++ b/test/bls12-381.test.js @@ -9,8 +9,8 @@ import { bls12_381 as bls, bls12_381 } from '../esm/bls12-381.js'; import * as utils from '../esm/abstract/utils.js'; -import zkVectors from './bls12-381/zkcrypto/converted.json' assert { type: 'json' }; -import pairingVectors from './bls12-381/go_pairing_vectors/pairing.json' assert { type: 'json' }; +import zkVectors from './bls12-381/zkcrypto/converted.json' with { type: 'json' }; +import pairingVectors from './bls12-381/go_pairing_vectors/pairing.json' with { type: 'json' }; const G1_VECTORS = readFileSync('./test/bls12-381/bls12-381-g1-test-vectors.txt', 'utf-8') .trim() .split('\n') diff --git a/test/ed25519-addons.test.js b/test/ed25519-addons.test.js index 2eac266..7744a9b 100644 --- a/test/ed25519-addons.test.js +++ b/test/ed25519-addons.test.js @@ -3,7 +3,7 @@ import { bytesToHex as hex, hexToBytes } from '@noble/hashes/utils'; import { deepStrictEqual, throws } from 'assert'; import { describe, should } from 'micro-should'; import { bytesToNumberLE, numberToBytesLE } from '../esm/abstract/utils.js'; -import { default as x25519vectors } from './wycheproof/x25519_test.json' assert { type: 'json' }; +import { default as x25519vectors } from './wycheproof/x25519_test.json' with { type: 'json' }; import { ed25519, ed25519ctx, diff --git a/test/ed25519.test.js b/test/ed25519.test.js index f034ff8..b9c9255 100644 --- a/test/ed25519.test.js +++ b/test/ed25519.test.js @@ -5,10 +5,10 @@ import * as fc from 'fast-check'; import { describe, should } from 'micro-should'; import { ed25519 as ed, ED25519_TORSION_SUBGROUP, numberToBytesLE } from './ed25519.helpers.js'; // Old vectors allow to test sign() because they include private key -import { default as ed25519vectors_OLD } from './ed25519/ed25519_test_OLD.json' assert { type: 'json' }; -import { default as ed25519vectors } from './wycheproof/ed25519_test.json' assert { type: 'json' }; -import { default as zip215 } from './ed25519/zip215.json' assert { type: 'json' }; -import { default as edgeCases } from './ed25519/edge-cases.json' assert { type: 'json' }; +import { default as ed25519vectors_OLD } from './ed25519/ed25519_test_OLD.json' with { type: 'json' }; +import { default as ed25519vectors } from './wycheproof/ed25519_test.json' with { type: 'json' }; +import { default as zip215 } from './ed25519/zip215.json' with { type: 'json' }; +import { default as edgeCases } from './ed25519/edge-cases.json' with { type: 'json' }; // Any changes to the file will need to be aware of the fact // the file is shared between noble-curves and noble-ed25519. diff --git a/test/ed448.test.js b/test/ed448.test.js index 54a981e..935a424 100644 --- a/test/ed448.test.js +++ b/test/ed448.test.js @@ -5,9 +5,9 @@ import { ed448, ed448ph, x448 } from '../esm/ed448.js'; import { bytesToHex, concatBytes, hexToBytes, randomBytes } from '@noble/hashes/utils'; import { numberToBytesLE } from '../esm/abstract/utils.js'; // Old vectors allow to test sign() because they include private key -import { default as ed448vectorsOld } from './ed448/ed448_test_OLD.json' assert { type: 'json' }; -import { default as ed448vectors } from './wycheproof/ed448_test.json' assert { type: 'json' }; -import { default as x448vectors } from './wycheproof/x448_test.json' assert { type: 'json' }; +import { default as ed448vectorsOld } from './ed448/ed448_test_OLD.json' with { type: 'json' }; +import { default as ed448vectors } from './wycheproof/ed448_test.json' with { type: 'json' }; +import { default as x448vectors } from './wycheproof/x448_test.json' with { type: 'json' }; describe('ed448', () => { const ed = ed448; diff --git a/test/hash-to-curve.test.js b/test/hash-to-curve.test.js index a77a52a..44a9645 100644 --- a/test/hash-to-curve.test.js +++ b/test/hash-to-curve.test.js @@ -15,37 +15,37 @@ import { bls12_381 } from '../esm/bls12-381.js'; import { expand_message_xmd, expand_message_xof } from '../esm/abstract/hash-to-curve.js'; import { utf8ToBytes } from '../esm/abstract/utils.js'; // XMD -import { default as xmd_sha256_38 } from './hash-to-curve/expand_message_xmd_SHA256_38.json' assert { type: 'json' }; -import { default as xmd_sha256_256 } from './hash-to-curve/expand_message_xmd_SHA256_256.json' assert { type: 'json' }; -import { default as xmd_sha512_38 } from './hash-to-curve/expand_message_xmd_SHA512_38.json' assert { type: 'json' }; +import { default as xmd_sha256_38 } from './hash-to-curve/expand_message_xmd_SHA256_38.json' with { type: 'json' }; +import { default as xmd_sha256_256 } from './hash-to-curve/expand_message_xmd_SHA256_256.json' with { type: 'json' }; +import { default as xmd_sha512_38 } from './hash-to-curve/expand_message_xmd_SHA512_38.json' with { type: 'json' }; // XOF -import { default as xof_shake128_36 } from './hash-to-curve/expand_message_xof_SHAKE128_36.json' assert { type: 'json' }; -import { default as xof_shake128_256 } from './hash-to-curve/expand_message_xof_SHAKE128_256.json' assert { type: 'json' }; -import { default as xof_shake256_36 } from './hash-to-curve/expand_message_xof_SHAKE256_36.json' assert { type: 'json' }; +import { default as xof_shake128_36 } from './hash-to-curve/expand_message_xof_SHAKE128_36.json' with { type: 'json' }; +import { default as xof_shake128_256 } from './hash-to-curve/expand_message_xof_SHAKE128_256.json' with { type: 'json' }; +import { default as xof_shake256_36 } from './hash-to-curve/expand_message_xof_SHAKE256_36.json' with { type: 'json' }; // P256 -import { default as p256_ro } from './hash-to-curve/P256_XMD_SHA-256_SSWU_RO_.json' assert { type: 'json' }; -import { default as p256_nu } from './hash-to-curve/P256_XMD_SHA-256_SSWU_NU_.json' assert { type: 'json' }; +import { default as p256_ro } from './hash-to-curve/P256_XMD_SHA-256_SSWU_RO_.json' with { type: 'json' }; +import { default as p256_nu } from './hash-to-curve/P256_XMD_SHA-256_SSWU_NU_.json' with { type: 'json' }; // P384 -import { default as p384_ro } from './hash-to-curve/P384_XMD_SHA-384_SSWU_RO_.json' assert { type: 'json' }; -import { default as p384_nu } from './hash-to-curve/P384_XMD_SHA-384_SSWU_NU_.json' assert { type: 'json' }; +import { default as p384_ro } from './hash-to-curve/P384_XMD_SHA-384_SSWU_RO_.json' with { type: 'json' }; +import { default as p384_nu } from './hash-to-curve/P384_XMD_SHA-384_SSWU_NU_.json' with { type: 'json' }; // P521 -import { default as p521_ro } from './hash-to-curve/P521_XMD_SHA-512_SSWU_RO_.json' assert { type: 'json' }; -import { default as p521_nu } from './hash-to-curve/P521_XMD_SHA-512_SSWU_NU_.json' assert { type: 'json' }; +import { default as p521_ro } from './hash-to-curve/P521_XMD_SHA-512_SSWU_RO_.json' with { type: 'json' }; +import { default as p521_nu } from './hash-to-curve/P521_XMD_SHA-512_SSWU_NU_.json' with { type: 'json' }; // secp256k1 -import { default as secp256k1_ro } from './hash-to-curve/secp256k1_XMD_SHA-256_SSWU_RO_.json' assert { type: 'json' }; -import { default as secp256k1_nu } from './hash-to-curve/secp256k1_XMD_SHA-256_SSWU_NU_.json' assert { type: 'json' }; +import { default as secp256k1_ro } from './hash-to-curve/secp256k1_XMD_SHA-256_SSWU_RO_.json' with { type: 'json' }; +import { default as secp256k1_nu } from './hash-to-curve/secp256k1_XMD_SHA-256_SSWU_NU_.json' with { type: 'json' }; // bls-G1 -import { default as g1_ro } from './hash-to-curve/BLS12381G1_XMD_SHA-256_SSWU_RO_.json' assert { type: 'json' }; -import { default as g1_nu } from './hash-to-curve/BLS12381G1_XMD_SHA-256_SSWU_NU_.json' assert { type: 'json' }; +import { default as g1_ro } from './hash-to-curve/BLS12381G1_XMD_SHA-256_SSWU_RO_.json' with { type: 'json' }; +import { default as g1_nu } from './hash-to-curve/BLS12381G1_XMD_SHA-256_SSWU_NU_.json' with { type: 'json' }; // bls-G2 -import { default as g2_ro } from './hash-to-curve/BLS12381G2_XMD_SHA-256_SSWU_RO_.json' assert { type: 'json' }; -import { default as g2_nu } from './hash-to-curve/BLS12381G2_XMD_SHA-256_SSWU_NU_.json' assert { type: 'json' }; +import { default as g2_ro } from './hash-to-curve/BLS12381G2_XMD_SHA-256_SSWU_RO_.json' with { type: 'json' }; +import { default as g2_nu } from './hash-to-curve/BLS12381G2_XMD_SHA-256_SSWU_NU_.json' with { type: 'json' }; // ed25519 -import { default as ed25519_ro } from './hash-to-curve/edwards25519_XMD_SHA-512_ELL2_RO_.json' assert { type: 'json' }; -import { default as ed25519_nu } from './hash-to-curve/edwards25519_XMD_SHA-512_ELL2_NU_.json' assert { type: 'json' }; +import { default as ed25519_ro } from './hash-to-curve/edwards25519_XMD_SHA-512_ELL2_RO_.json' with { type: 'json' }; +import { default as ed25519_nu } from './hash-to-curve/edwards25519_XMD_SHA-512_ELL2_NU_.json' with { type: 'json' }; // ed448 -import { default as ed448_ro } from './hash-to-curve/edwards448_XOF_SHAKE256_ELL2_RO_.json' assert { type: 'json' }; -import { default as ed448_nu } from './hash-to-curve/edwards448_XOF_SHAKE256_ELL2_NU_.json' assert { type: 'json' }; +import { default as ed448_ro } from './hash-to-curve/edwards448_XOF_SHAKE256_ELL2_RO_.json' with { type: 'json' }; +import { default as ed448_nu } from './hash-to-curve/edwards448_XOF_SHAKE256_ELL2_NU_.json' with { type: 'json' }; function testExpandXMD(hash, vectors) { describe(`${vectors.hash}/${vectors.DST.length}`, () => { diff --git a/test/nist.test.js b/test/nist.test.js index 8d9ec0e..0dce493 100644 --- a/test/nist.test.js +++ b/test/nist.test.js @@ -7,48 +7,48 @@ import { secp384r1, p384 } from '../esm/p384.js'; import { secp521r1, p521 } from '../esm/p521.js'; import { secp256k1 } from '../esm/secp256k1.js'; import { hexToBytes, bytesToHex } from '../esm/abstract/utils.js'; -import { default as ecdsa } from './wycheproof/ecdsa_test.json' assert { type: 'json' }; -import { default as ecdh } from './wycheproof/ecdh_test.json' assert { type: 'json' }; -import { default as rfc6979 } from './vectors/rfc6979.json' assert { type: 'json' }; -import { default as endoVectors } from './vectors/secp256k1/endomorphism.json' assert { type: 'json' }; +import { default as ecdsa } from './wycheproof/ecdsa_test.json' with { type: 'json' }; +import { default as ecdh } from './wycheproof/ecdh_test.json' with { type: 'json' }; +import { default as rfc6979 } from './vectors/rfc6979.json' with { type: 'json' }; +import { default as endoVectors } from './vectors/secp256k1/endomorphism.json' with { type: 'json' }; -import { default as ecdh_secp224r1_test } from './wycheproof/ecdh_secp224r1_test.json' assert { type: 'json' }; -import { default as ecdh_secp256r1_test } from './wycheproof/ecdh_secp256r1_test.json' assert { type: 'json' }; -import { default as ecdh_secp256k1_test } from './wycheproof/ecdh_secp256k1_test.json' assert { type: 'json' }; -import { default as ecdh_secp384r1_test } from './wycheproof/ecdh_secp384r1_test.json' assert { type: 'json' }; -import { default as ecdh_secp521r1_test } from './wycheproof/ecdh_secp521r1_test.json' assert { type: 'json' }; +import { default as ecdh_secp224r1_test } from './wycheproof/ecdh_secp224r1_test.json' with { type: 'json' }; +import { default as ecdh_secp256r1_test } from './wycheproof/ecdh_secp256r1_test.json' with { type: 'json' }; +import { default as ecdh_secp256k1_test } from './wycheproof/ecdh_secp256k1_test.json' with { type: 'json' }; +import { default as ecdh_secp384r1_test } from './wycheproof/ecdh_secp384r1_test.json' with { type: 'json' }; +import { default as ecdh_secp521r1_test } from './wycheproof/ecdh_secp521r1_test.json' with { type: 'json' }; // Tests with custom hashes -import { default as secp224r1_sha224_test } from './wycheproof/ecdsa_secp224r1_sha224_test.json' assert { type: 'json' }; -import { default as secp224r1_sha256_test } from './wycheproof/ecdsa_secp224r1_sha256_test.json' assert { type: 'json' }; -import { default as secp224r1_sha3_224_test } from './wycheproof/ecdsa_secp224r1_sha3_224_test.json' assert { type: 'json' }; -import { default as secp224r1_sha3_256_test } from './wycheproof/ecdsa_secp224r1_sha3_256_test.json' assert { type: 'json' }; -import { default as secp224r1_sha3_512_test } from './wycheproof/ecdsa_secp224r1_sha3_512_test.json' assert { type: 'json' }; -import { default as secp224r1_sha512_test } from './wycheproof/ecdsa_secp224r1_sha512_test.json' assert { type: 'json' }; -import { default as secp224r1_shake128_test } from './wycheproof/ecdsa_secp224r1_shake128_test.json' assert { type: 'json' }; +import { default as secp224r1_sha224_test } from './wycheproof/ecdsa_secp224r1_sha224_test.json' with { type: 'json' }; +import { default as secp224r1_sha256_test } from './wycheproof/ecdsa_secp224r1_sha256_test.json' with { type: 'json' }; +import { default as secp224r1_sha3_224_test } from './wycheproof/ecdsa_secp224r1_sha3_224_test.json' with { type: 'json' }; +import { default as secp224r1_sha3_256_test } from './wycheproof/ecdsa_secp224r1_sha3_256_test.json' with { type: 'json' }; +import { default as secp224r1_sha3_512_test } from './wycheproof/ecdsa_secp224r1_sha3_512_test.json' with { type: 'json' }; +import { default as secp224r1_sha512_test } from './wycheproof/ecdsa_secp224r1_sha512_test.json' with { type: 'json' }; +import { default as secp224r1_shake128_test } from './wycheproof/ecdsa_secp224r1_shake128_test.json' with { type: 'json' }; -import { default as secp256k1_sha256_bitcoin_test } from './wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json' assert { type: 'json' }; -import { default as secp256k1_sha256_test } from './wycheproof/ecdsa_secp256k1_sha256_test.json' assert { type: 'json' }; -import { default as secp256k1_sha3_256_test } from './wycheproof/ecdsa_secp256k1_sha3_256_test.json' assert { type: 'json' }; -import { default as secp256k1_sha3_512_test } from './wycheproof/ecdsa_secp256k1_sha3_512_test.json' assert { type: 'json' }; -import { default as secp256k1_sha512_test } from './wycheproof/ecdsa_secp256k1_sha512_test.json' assert { type: 'json' }; -import { default as secp256k1_shake128_test } from './wycheproof/ecdsa_secp256k1_shake128_test.json' assert { type: 'json' }; -import { default as secp256k1_shake256_test } from './wycheproof/ecdsa_secp256k1_shake256_test.json' assert { type: 'json' }; +import { default as secp256k1_sha256_bitcoin_test } from './wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json' with { type: 'json' }; +import { default as secp256k1_sha256_test } from './wycheproof/ecdsa_secp256k1_sha256_test.json' with { type: 'json' }; +import { default as secp256k1_sha3_256_test } from './wycheproof/ecdsa_secp256k1_sha3_256_test.json' with { type: 'json' }; +import { default as secp256k1_sha3_512_test } from './wycheproof/ecdsa_secp256k1_sha3_512_test.json' with { type: 'json' }; +import { default as secp256k1_sha512_test } from './wycheproof/ecdsa_secp256k1_sha512_test.json' with { type: 'json' }; +import { default as secp256k1_shake128_test } from './wycheproof/ecdsa_secp256k1_shake128_test.json' with { type: 'json' }; +import { default as secp256k1_shake256_test } from './wycheproof/ecdsa_secp256k1_shake256_test.json' with { type: 'json' }; -import { default as secp256r1_sha256_test } from './wycheproof/ecdsa_secp256r1_sha256_test.json' assert { type: 'json' }; -import { default as secp256r1_sha3_256_test } from './wycheproof/ecdsa_secp256r1_sha3_256_test.json' assert { type: 'json' }; -import { default as secp256r1_sha3_512_test } from './wycheproof/ecdsa_secp256r1_sha3_512_test.json' assert { type: 'json' }; -import { default as secp256r1_sha512_test } from './wycheproof/ecdsa_secp256r1_sha512_test.json' assert { type: 'json' }; -import { default as secp256r1_shake128_test } from './wycheproof/ecdsa_secp256r1_shake128_test.json' assert { type: 'json' }; +import { default as secp256r1_sha256_test } from './wycheproof/ecdsa_secp256r1_sha256_test.json' with { type: 'json' }; +import { default as secp256r1_sha3_256_test } from './wycheproof/ecdsa_secp256r1_sha3_256_test.json' with { type: 'json' }; +import { default as secp256r1_sha3_512_test } from './wycheproof/ecdsa_secp256r1_sha3_512_test.json' with { type: 'json' }; +import { default as secp256r1_sha512_test } from './wycheproof/ecdsa_secp256r1_sha512_test.json' with { type: 'json' }; +import { default as secp256r1_shake128_test } from './wycheproof/ecdsa_secp256r1_shake128_test.json' with { type: 'json' }; -import { default as secp384r1_sha384_test } from './wycheproof/ecdsa_secp384r1_sha384_test.json' assert { type: 'json' }; -import { default as secp384r1_sha3_384_test } from './wycheproof/ecdsa_secp384r1_sha3_384_test.json' assert { type: 'json' }; -import { default as secp384r1_sha3_512_test } from './wycheproof/ecdsa_secp384r1_sha3_512_test.json' assert { type: 'json' }; -import { default as secp384r1_sha512_test } from './wycheproof/ecdsa_secp384r1_sha512_test.json' assert { type: 'json' }; -import { default as secp384r1_shake256_test } from './wycheproof/ecdsa_secp384r1_shake256_test.json' assert { type: 'json' }; +import { default as secp384r1_sha384_test } from './wycheproof/ecdsa_secp384r1_sha384_test.json' with { type: 'json' }; +import { default as secp384r1_sha3_384_test } from './wycheproof/ecdsa_secp384r1_sha3_384_test.json' with { type: 'json' }; +import { default as secp384r1_sha3_512_test } from './wycheproof/ecdsa_secp384r1_sha3_512_test.json' with { type: 'json' }; +import { default as secp384r1_sha512_test } from './wycheproof/ecdsa_secp384r1_sha512_test.json' with { type: 'json' }; +import { default as secp384r1_shake256_test } from './wycheproof/ecdsa_secp384r1_shake256_test.json' with { type: 'json' }; -import { default as secp521r1_sha3_512_test } from './wycheproof/ecdsa_secp521r1_sha3_512_test.json' assert { type: 'json' }; -import { default as secp521r1_sha512_test } from './wycheproof/ecdsa_secp521r1_sha512_test.json' assert { type: 'json' }; -import { default as secp521r1_shake256_test } from './wycheproof/ecdsa_secp521r1_shake256_test.json' assert { type: 'json' }; +import { default as secp521r1_sha3_512_test } from './wycheproof/ecdsa_secp521r1_sha3_512_test.json' with { type: 'json' }; +import { default as secp521r1_sha512_test } from './wycheproof/ecdsa_secp521r1_sha512_test.json' with { type: 'json' }; +import { default as secp521r1_shake256_test } from './wycheproof/ecdsa_secp521r1_shake256_test.json' with { type: 'json' }; import { sha3_224, sha3_256, sha3_384, sha3_512, shake128, shake256 } from '@noble/hashes/sha3'; import { sha512, sha384 } from '@noble/hashes/sha512'; diff --git a/test/poseidon.test.js b/test/poseidon.test.js index 38a2249..a06c068 100644 --- a/test/poseidon.test.js +++ b/test/poseidon.test.js @@ -3,7 +3,7 @@ import { should, describe } from 'micro-should'; import * as poseidon from '../esm/abstract/poseidon.js'; import * as stark from './_poseidon.helpers.js'; import * as mod from '../esm/abstract/modular.js'; -import { default as pvectors } from './vectors/poseidon.json' assert { type: 'json' }; +import { default as pvectors } from './vectors/poseidon.json' with { type: 'json' }; const { st1, st2, st3, st4 } = pvectors; describe('Stark', () => { diff --git a/test/secp256k1.test.js b/test/secp256k1.test.js index 2c80808..649d7ba 100644 --- a/test/secp256k1.test.js +++ b/test/secp256k1.test.js @@ -8,11 +8,11 @@ import { secp, sigFromDER, sigToDER, selectHash, normVerifySig, mod, bytesToNumberBE, numberToBytesBE } from './secp256k1.helpers.js'; -import { default as ecdsa } from './vectors/secp256k1/ecdsa.json' assert { type: 'json' }; -import { default as ecdh } from './wycheproof/ecdh_secp256k1_test.json' assert { type: 'json' }; -import { default as privates } from './vectors/secp256k1/privates.json' assert { type: 'json' }; -import { default as points } from './vectors/secp256k1/points.json' assert { type: 'json' }; -import { default as wp } from './wycheproof/ecdsa_secp256k1_sha256_test.json' assert { type: 'json' }; +import { default as ecdsa } from './vectors/secp256k1/ecdsa.json' with { type: 'json' }; +import { default as ecdh } from './wycheproof/ecdh_secp256k1_test.json' with { type: 'json' }; +import { default as privates } from './vectors/secp256k1/privates.json' with { type: 'json' }; +import { default as points } from './vectors/secp256k1/points.json' with { type: 'json' }; +import { default as wp } from './wycheproof/ecdsa_secp256k1_sha256_test.json' with { type: 'json' }; // Any changes to the file will need to be aware of the fact // the file is shared between noble-curves and noble-secp256k1.