diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cccc8e2..1ea9c5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: pull_request: branches: [master] +permissions: + contents: read + jobs: build: runs-on: ubuntu-latest diff --git a/package.json b/package.json index af45947..cb32b79 100644 --- a/package.json +++ b/package.json @@ -46,9 +46,10 @@ "@pezkuwi/dev": "^0.86.0", "@pezkuwi/util": "^14.0.1", "@types/node": "^20.16.1", - "fflate": "^0.8.2" + "fflate": "^0.8.3" }, "resolutions": { + "braces": "npm:@pezkuwi/braces@^3.0.4", "typescript": "^5.5.4" } } diff --git a/packages/wasm-bridge/package.json b/packages/wasm-bridge/package.json index de4951d..2a5d65d 100644 --- a/packages/wasm-bridge/package.json +++ b/packages/wasm-bridge/package.json @@ -18,10 +18,10 @@ "./packageDetect.cjs" ], "type": "module", - "version": "7.5.20", + "version": "7.5.21", "main": "index.js", "dependencies": { - "@pezkuwi/wasm-util": "7.5.20", + "@pezkuwi/wasm-util": "7.5.21", "tslib": "^2.7.0" }, "devDependencies": { diff --git a/packages/wasm-bridge/src/packageInfo.ts b/packages/wasm-bridge/src/packageInfo.ts index 4309225..7a8f52e 100644 --- a/packages/wasm-bridge/src/packageInfo.ts +++ b/packages/wasm-bridge/src/packageInfo.ts @@ -3,4 +3,4 @@ // Do not edit, auto-generated by @pezkuwi/dev -export const packageInfo = { name: '@pezkuwi/wasm-bridge', path: 'auto', type: 'auto', version: '7.5.20' }; +export const packageInfo = { name: '@pezkuwi/wasm-bridge', path: 'auto', type: 'auto', version: '7.5.21' }; diff --git a/packages/wasm-bridge/src/wbg.ts b/packages/wasm-bridge/src/wbg.ts index 4fdcbff..faedb71 100644 --- a/packages/wasm-bridge/src/wbg.ts +++ b/packages/wasm-bridge/src/wbg.ts @@ -31,6 +31,15 @@ export class Wbg { throw new Error('abort'); }; + /** + * @internal - the one randomness import of wasm-crypto from 7.5.21 on: fill + * len bytes at ptr in wasm memory. A fixed name, not a wasm-bindgen hash, so + * it survives crate and bindgen upgrades. + */ + ext_fill_random = (ptr: number, len: number): void => { + DEFAULT_CRYPTO.getRandomValues(this.#bridge.getU8a(ptr, len)); + }; + /** @internal - new hash */ __wbg___wbindgen_is_undefined_9e4d92534c42d778 = (idx: number): boolean => { return this.#bridge.getObject(idx) === undefined; diff --git a/packages/wasm-crypto-asmjs/package.json b/packages/wasm-crypto-asmjs/package.json index 5f4203a..cb4e814 100644 --- a/packages/wasm-crypto-asmjs/package.json +++ b/packages/wasm-crypto-asmjs/package.json @@ -18,7 +18,7 @@ "./packageDetect.cjs" ], "type": "module", - "version": "7.5.20", + "version": "7.5.21", "main": "index.js", "dependencies": { "tslib": "^2.7.0" diff --git a/packages/wasm-crypto-asmjs/src/packageInfo.ts b/packages/wasm-crypto-asmjs/src/packageInfo.ts index ee1b757..dbd2d6f 100644 --- a/packages/wasm-crypto-asmjs/src/packageInfo.ts +++ b/packages/wasm-crypto-asmjs/src/packageInfo.ts @@ -3,4 +3,4 @@ // Do not edit, auto-generated by @pezkuwi/dev -export const packageInfo = { name: '@pezkuwi/wasm-crypto-asmjs', path: 'auto', type: 'auto', version: '7.5.20' }; +export const packageInfo = { name: '@pezkuwi/wasm-crypto-asmjs', path: 'auto', type: 'auto', version: '7.5.21' }; diff --git a/packages/wasm-crypto-init/package.json b/packages/wasm-crypto-init/package.json index 68407db..67f30b4 100644 --- a/packages/wasm-crypto-init/package.json +++ b/packages/wasm-crypto-init/package.json @@ -18,15 +18,15 @@ "./packageDetect.cjs" ], "type": "module", - "version": "7.5.20", + "version": "7.5.21", "browser": "wasm.js", "main": "wasm.js", "react-native": "asm.js", "dependencies": { - "@pezkuwi/wasm-bridge": "7.5.20", - "@pezkuwi/wasm-crypto-asmjs": "7.5.20", - "@pezkuwi/wasm-crypto-wasm": "7.5.20", - "@pezkuwi/wasm-util": "7.5.20", + "@pezkuwi/wasm-bridge": "7.5.21", + "@pezkuwi/wasm-crypto-asmjs": "7.5.21", + "@pezkuwi/wasm-crypto-wasm": "7.5.21", + "@pezkuwi/wasm-util": "7.5.21", "tslib": "^2.7.0" }, "devDependencies": { diff --git a/packages/wasm-crypto-init/src/packageInfo.ts b/packages/wasm-crypto-init/src/packageInfo.ts index fcb0766..bf84088 100644 --- a/packages/wasm-crypto-init/src/packageInfo.ts +++ b/packages/wasm-crypto-init/src/packageInfo.ts @@ -3,4 +3,4 @@ // Do not edit, auto-generated by @pezkuwi/dev -export const packageInfo = { name: '@pezkuwi/wasm-crypto-init', path: 'auto', type: 'auto', version: '7.5.20' }; +export const packageInfo = { name: '@pezkuwi/wasm-crypto-init', path: 'auto', type: 'auto', version: '7.5.21' }; diff --git a/packages/wasm-crypto-wasm/package.json b/packages/wasm-crypto-wasm/package.json index c97df95..c467264 100644 --- a/packages/wasm-crypto-wasm/package.json +++ b/packages/wasm-crypto-wasm/package.json @@ -18,10 +18,10 @@ "./packageDetect.cjs" ], "type": "module", - "version": "7.5.20", + "version": "7.5.21", "main": "index.js", "dependencies": { - "@pezkuwi/wasm-util": "7.5.20", + "@pezkuwi/wasm-util": "7.5.21", "tslib": "^2.7.0" }, "devDependencies": { diff --git a/packages/wasm-crypto-wasm/src/packageInfo.ts b/packages/wasm-crypto-wasm/src/packageInfo.ts index 3b68d65..9bcd7a8 100644 --- a/packages/wasm-crypto-wasm/src/packageInfo.ts +++ b/packages/wasm-crypto-wasm/src/packageInfo.ts @@ -3,4 +3,4 @@ // Do not edit, auto-generated by @pezkuwi/dev -export const packageInfo = { name: '@pezkuwi/wasm-crypto-wasm', path: 'auto', type: 'auto', version: '7.5.20' }; +export const packageInfo = { name: '@pezkuwi/wasm-crypto-wasm', path: 'auto', type: 'auto', version: '7.5.21' }; diff --git a/packages/wasm-crypto/Cargo.lock b/packages/wasm-crypto/Cargo.lock index e18d31c..2c742c7 100644 --- a/packages/wasm-crypto/Cargo.lock +++ b/packages/wasm-crypto/Cargo.lock @@ -1,21 +1,22 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] -name = "addr2line" -version = "0.25.1" +name = "aead" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "gimli", + "crypto-common", + "generic-array 0.14.7", ] [[package]] -name = "adler2" -version = "2.0.1" +name = "anyhow" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "arrayref" @@ -34,30 +35,15 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" [[package]] -name = "backtrace" -version = "0.3.76" +name = "base64ct" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" -dependencies = [ - "addr2line", - "cfg-if 1.0.4", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-link", -] - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "blake2-rfc" @@ -83,11 +69,11 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.9", + "generic-array 0.14.7", ] [[package]] @@ -127,18 +113,18 @@ dependencies = [ "shlex", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -160,6 +146,17 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array 0.14.7", + "rand_core", + "typenum", +] + [[package]] name = "crypto-mac" version = "0.7.0" @@ -172,27 +169,38 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "2.1.3" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version", "subtle 2.6.1", "zeroize", ] [[package]] -name = "curve25519-dalek" -version = "3.2.1" +name = "curve25519-dalek-derive" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.6.1", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", "zeroize", ] @@ -207,64 +215,51 @@ dependencies = [ [[package]] name = "digest" -version = "0.9.0" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "generic-array 0.14.9", + "block-buffer 0.10.4", + "crypto-common", + "subtle 2.6.1", ] [[package]] name = "ed25519" -version = "1.5.3" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ + "pkcs8", "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ - "curve25519-dalek 3.2.1", + "curve25519-dalek", "ed25519", - "rand 0.7.3", "serde", - "sha2 0.9.9", + "sha2 0.10.9", + "subtle 2.6.1", "zeroize", ] -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - [[package]] name = "fake-simd" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -282,45 +277,34 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.4", - "js-sys", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - [[package]] name = "getrandom" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ - "cfg-if 1.0.4", - "js-sys", + "cfg-if", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", + "wasi", ] [[package]] -name = "gimli" -version = "0.32.3" +name = "getrandom_or_panic" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +dependencies = [ + "rand", + "rand_core", +] [[package]] name = "hex-literal" @@ -352,19 +336,19 @@ dependencies = [ ] [[package]] -name = "js-sys" -version = "0.3.67" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "wasm-bindgen", + "digest 0.10.7", ] [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -381,62 +365,29 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - [[package]] name = "merlin" -version = "2.0.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.5.1", + "rand_core", "zeroize", ] -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - [[package]] name = "nodrop" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "parking_lot_core", -] [[package]] name = "opaque-debug" @@ -444,25 +395,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - [[package]] name = "pbkdf2" version = "0.3.0" @@ -473,6 +405,25 @@ dependencies = [ "crypto-mac", ] +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -508,36 +459,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.7.3" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -547,16 +475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -565,33 +484,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.17", + "getrandom", ] -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -599,19 +494,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] -name = "schnorrkel" -version = "0.9.1" +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ + "semver", +] + +[[package]] +name = "schnorrkel" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9fcb6c2e176e86ec703e22560d99d65a5ee9056ae45a08e13e84ebf796296f" +dependencies = [ + "aead", "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", + "arrayvec 0.7.8", + "curve25519-dalek", + "getrandom_or_panic", "merlin", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", + "rand_core", + "serde_bytes", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -624,29 +529,35 @@ checksum = "656c79d0e90d0ab28ac86bf3c3d10bfbbac91450d3f190113b4e76d9fec3cfdd" dependencies = [ "byte-tools", "byteorder", - "hmac", - "pbkdf2", + "hmac 0.7.1", + "pbkdf2 0.3.0", "sha2 0.8.2", ] [[package]] name = "secp256k1" -version = "0.21.3" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.4.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + [[package]] name = "serde" version = "1.0.228" @@ -656,6 +567,16 @@ dependencies = [ "serde_core", ] +[[package]] +name = "serde_bytes" +version = "0.11.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +dependencies = [ + "serde", + "serde_core", +] + [[package]] name = "serde_core" version = "1.0.228" @@ -673,7 +594,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] @@ -685,20 +606,18 @@ dependencies = [ "block-buffer 0.7.3", "digest 0.8.1", "fake-simd", - "opaque-debug 0.2.3", + "opaque-debug", ] [[package]] name = "sha2" -version = "0.9.9" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.1", + "digest 0.10.7", ] [[package]] @@ -709,15 +628,22 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signature" -version = "1.6.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core", +] [[package]] -name = "smallvec" -version = "1.15.1" +name = "spki" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] [[package]] name = "static_assertions" @@ -737,17 +663,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.114" @@ -760,31 +675,42 @@ dependencies = [ ] [[package]] -name = "synstructure" -version = "0.12.6" +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "unicode-xid", + "syn", ] [[package]] name = "tiny-bip39" -version = "0.7.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" dependencies = [ - "failure", - "hmac", + "anyhow", + "hmac 0.12.1", "once_cell", - "pbkdf2", - "rand 0.7.3", + "pbkdf2 0.11.0", + "rand", "rustc-hash", - "sha2 0.8.2", + "sha2 0.10.9", + "thiserror", "unicode-normalization", + "wasm-bindgen", + "zeroize", ] [[package]] @@ -817,8 +743,8 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 1.0.4", - "rand 0.8.5", + "cfg-if", + "rand", "static_assertions", ] @@ -843,24 +769,12 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -873,14 +787,14 @@ version = "0.0.0" dependencies = [ "blake2-rfc", "byteorder", - "curve25519-dalek 2.1.3", + "curve25519-dalek", "ed25519-dalek", - "getrandom 0.2.17", + "getrandom", "hex-literal", - "hmac", + "hmac 0.7.1", "merlin", - "pbkdf2", - "rand 0.7.3", + "pbkdf2 0.3.0", + "rand", "schnorrkel", "scrypt", "secp256k1", @@ -889,7 +803,6 @@ dependencies = [ "tiny-keccak", "twox-hash", "wasm-bindgen", - "wee_alloc", ] [[package]] @@ -898,7 +811,7 @@ version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "wasm-bindgen-macro", ] @@ -913,7 +826,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.114", + "syn", "wasm-bindgen-shared", ] @@ -935,7 +848,7 @@ checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -946,46 +859,6 @@ version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" -[[package]] -name = "wee_alloc" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "memory_units", - "winapi", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - [[package]] name = "zerocopy" version = "0.8.37" @@ -1003,25 +876,25 @@ checksum = "1328722bbf2115db7e19d69ebcc15e795719e2d66b60827c6a69a117365e37a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] name = "zeroize" -version = "1.3.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "e13084392c5e4bc371903e2935a5eaeed24905a7511356b883835e18a78f6879" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] diff --git a/packages/wasm-crypto/Cargo.toml b/packages/wasm-crypto/Cargo.toml index 5407d1a..10d10ad 100644 --- a/packages/wasm-crypto/Cargo.toml +++ b/packages/wasm-crypto/Cargo.toml @@ -18,26 +18,24 @@ crate-type = ["cdylib"] [dependencies] blake2-rfc = "0.2.18" byteorder = "1.3.1" -curve25519-dalek = { version = "2.1.0", default-features = false } -ed25519-dalek = { version = "1.0.0-pre.4", features = [] } -getrandom = { version="0.2.3", features = ["js"] } +curve25519-dalek = { version = "4.1.3", default-features = false } +ed25519-dalek = "2.1" +getrandom = { version = "0.2.17", features = ["custom"] } hmac = "0.7.0" -secp256k1 = { version = "0.21.2", default-features = false, features = ["recovery", "global-context"] } -merlin = { version = "2.0", default-features = false } +secp256k1 = { version = "0.29.1", default-features = false, features = ["recovery", "global-context", "lowmemory"] } +merlin = { version = "3.0", default-features = false } pbkdf2 = { version = "0.3.0", default-features = false } -rand = { version="0.7.3", default-features = false, features = ["wasm-bindgen"] } -schnorrkel = { version = "0.9.1", features = ["preaudit_deprecated", "u64_backend"] } +schnorrkel = "0.11.4" scrypt = { version = "0.2", default-features = false } sha2 = "0.8.1" -tiny-bip39 = { version = "0.7", default-features = false } +tiny-bip39 = { version = "1.0", default-features = false } tiny-keccak = { version = "2.0.1", features = ["keccak"] } twox-hash = "1.5.0" wasm-bindgen = "=0.2.90" -wee_alloc = "0.4.3" [dev-dependencies] hex-literal = "0.2.0" -rand = { version = "0.7.3", features = ["wasm-bindgen"] } +rand = "0.8.5" [profile.release] codegen-units = 1 diff --git a/packages/wasm-crypto/package.json b/packages/wasm-crypto/package.json index 9a7897b..5b695af 100644 --- a/packages/wasm-crypto/package.json +++ b/packages/wasm-crypto/package.json @@ -26,15 +26,15 @@ "./packageDetect.cjs" ], "type": "module", - "version": "7.5.20", + "version": "7.5.21", "main": "index.js", "dependencies": { "@noble/hashes": "^1.3.3", - "@pezkuwi/wasm-bridge": "7.5.20", - "@pezkuwi/wasm-crypto-asmjs": "7.5.20", - "@pezkuwi/wasm-crypto-init": "7.5.20", - "@pezkuwi/wasm-crypto-wasm": "7.5.20", - "@pezkuwi/wasm-util": "7.5.20", + "@pezkuwi/wasm-bridge": "7.5.21", + "@pezkuwi/wasm-crypto-asmjs": "7.5.21", + "@pezkuwi/wasm-crypto-init": "7.5.21", + "@pezkuwi/wasm-crypto-wasm": "7.5.21", + "@pezkuwi/wasm-util": "7.5.21", "tslib": "^2.7.0" }, "devDependencies": { diff --git a/packages/wasm-crypto/src/lib.rs b/packages/wasm-crypto/src/lib.rs index d5eb7d8..9afe63c 100644 --- a/packages/wasm-crypto/src/lib.rs +++ b/packages/wasm-crypto/src/lib.rs @@ -1,9 +1,28 @@ // Copyright 2019-2025 @pezkuwi/wasm-crypto authors & contributors // SPDX-License-Identifier: Apache-2.0 -// Use `wee_alloc` as the global allocator. -#[global_allocator] -static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; +// Randomness comes from the host: the bridge fills the buffer with +// getRandomValues from @pezkuwi/x-randomvalues. It is one import with a fixed +// name, so the bridge does not have to track the hashed names wasm-bindgen +// gives the getrandom "js" backend. +#[cfg(target_arch = "wasm32")] +mod random { + #[link(wasm_import_module = "wbg")] + extern "C" { + fn ext_fill_random(ptr: *mut u8, len: usize); + } + + fn fill(buf: &mut [u8]) -> Result<(), getrandom::Error> { + // getRandomValues fills at most 65536 bytes per call + for chunk in buf.chunks_mut(65536) { + unsafe { ext_fill_random(chunk.as_mut_ptr(), chunk.len()) }; + } + + Ok(()) + } + + getrandom::register_custom_getrandom!(fill); +} #[path = "rs/bip39.rs"] pub mod bip39; @@ -22,3 +41,6 @@ pub mod sr25519; #[path = "rs/vrf.rs"] pub mod vrf; + +#[path = "rs/kat.rs"] +pub mod kat; diff --git a/packages/wasm-crypto/src/packageInfo.ts b/packages/wasm-crypto/src/packageInfo.ts index f823fbd..628716f 100644 --- a/packages/wasm-crypto/src/packageInfo.ts +++ b/packages/wasm-crypto/src/packageInfo.ts @@ -3,4 +3,4 @@ // Do not edit, auto-generated by @pezkuwi/dev -export const packageInfo = { name: '@pezkuwi/wasm-crypto', path: 'auto', type: 'auto', version: '7.5.20' }; +export const packageInfo = { name: '@pezkuwi/wasm-crypto', path: 'auto', type: 'auto', version: '7.5.21' }; diff --git a/packages/wasm-crypto/src/rs/ed25519.rs b/packages/wasm-crypto/src/rs/ed25519.rs index 988e956..38c374e 100644 --- a/packages/wasm-crypto/src/rs/ed25519.rs +++ b/packages/wasm-crypto/src/rs/ed25519.rs @@ -1,32 +1,21 @@ // Copyright 2019-2025 @pezkuwi/wasm-crypto authors & contributors // SPDX-License-Identifier: Apache-2.0 -use std::convert::TryFrom; -use ed25519_dalek::{Keypair, PublicKey, SecretKey, Signature, Signer as _, Verifier as _}; +use std::convert::TryInto; +use ed25519_dalek::{Signature, Signer as _, SigningKey, Verifier as _, VerifyingKey}; use wasm_bindgen::prelude::*; -/// Keypair helper function -fn new_from_seed(seed: &[u8]) -> Keypair { - match SecretKey::from_bytes(seed) { - Ok(secret) => { - let public: PublicKey = (&secret).into(); - - Keypair { secret: secret, public: public } - }, +fn new_from_seed(seed: &[u8]) -> SigningKey { + match seed.try_into() { + Ok(secret) => SigningKey::from_bytes(secret), _ => panic!("Invalid seed provided.") } } -/// Generate a key pair. -/// -/// * seed: UIntArray with 32 element -/// -/// returned vector is the concatenation of first the seed (32 bytes) -/// followed by the public key (32) bytes, as the full secret keys. #[wasm_bindgen] pub fn ext_ed_from_seed(seed: &[u8]) -> Vec { new_from_seed(seed) - .to_bytes() + .to_keypair_bytes() .to_vec() } @@ -57,8 +46,8 @@ pub fn ext_ed_sign(_: &[u8], seckey: &[u8], message: &[u8]) -> Vec { /// * pubkey: UIntArray with 32 element #[wasm_bindgen] pub fn ext_ed_verify(signature: &[u8], message: &[u8], pubkey: &[u8]) -> bool { - match (Signature::try_from(signature), PublicKey::from_bytes(pubkey)) { - (Ok(s), Ok(k)) => k + match (Signature::from_slice(signature), pubkey.try_into().map(VerifyingKey::from_bytes)) { + (Ok(s), Ok(Ok(k))) => k .verify(message, &s) .is_ok(), _ => false diff --git a/packages/wasm-crypto/src/rs/kat.rs b/packages/wasm-crypto/src/rs/kat.rs new file mode 100644 index 0000000..b107f2f --- /dev/null +++ b/packages/wasm-crypto/src/rs/kat.rs @@ -0,0 +1,221 @@ +// Copyright 2019-2025 @pezkuwi/wasm-crypto authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +//! Known-answer vectors for every exported function. +//! +//! `kat.txt` was produced by an earlier build and is checked in. Any change to +//! the crypto crates must leave every deterministic output byte-equal, and the +//! randomised signatures (sr25519, VRF proofs) recorded there must still +//! verify. Regenerate only on purpose: +//! +//! KAT_WRITE=src/rs/kat.txt cargo test --release kat_ -- --nocapture + +#[cfg(test)] +pub mod tests { + use crate::bip39::*; + use crate::ed25519::*; + use crate::hashing::*; + use crate::secp256k1::*; + use crate::sr25519::*; + use crate::vrf::*; + + const VECTORS: &str = include_str!("kat.txt"); + + const PHRASES: [&str; 3] = [ + "bottom drive obey lake curtain smoke basket hold race lonely fit walk", + "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about", + "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title", + ]; + + fn to_hex(data: &[u8]) -> String { + data.iter().map(|b| format!("{:02x}", b)).collect() + } + + fn from_hex(s: &str) -> Vec { + (0..s.len()).step_by(2).map(|i| u8::from_str_radix(&s[i..i + 2], 16).unwrap()).collect() + } + + fn pattern(len: usize, mul: usize) -> Vec { + (0..len).map(|i| ((i * mul + 7) % 251) as u8).collect() + } + + fn datas() -> Vec> { + vec![vec![], b"abc".to_vec(), pattern(1000, 31)] + } + + fn seeds() -> Vec> { + vec![vec![0u8; 32], pattern(32, 1), pattern(32, 97), b"12345678901234567890123456789012".to_vec()] + } + + fn chain_codes() -> Vec> { + // "Alice" as a SCALE-encoded string, zero padded, as util-crypto builds it + let mut alice = vec![0u8; 32]; + + alice[0] = 5 << 2; + alice[1..6].copy_from_slice(b"Alice"); + + vec![alice, pattern(32, 13)] + } + + fn messages() -> Vec> { + vec![vec![], b"this is a message".to_vec(), pattern(300, 7)] + } + + /// Every deterministic output, as `name hex` lines. + fn deterministic() -> Vec<(String, Vec)> { + let mut out: Vec<(String, Vec)> = Vec::new(); + + for (d, data) in datas().iter().enumerate() { + for size in [32u32, 64] { + out.push((format!("blake2b/{}/{}", d, size), ext_blake2b(data, &[], size))); + out.push((format!("blake2b-key/{}/{}", d, size), ext_blake2b(data, b"key", size))); + } + + out.push((format!("keccak256/{}", d), ext_keccak256(data))); + out.push((format!("keccak512/{}", d), ext_keccak512(data))); + out.push((format!("sha256/{}", d), ext_sha256(data))); + out.push((format!("sha512/{}", d), ext_sha512(data))); + out.push((format!("hmac256/{}", d), ext_hmac_sha256(b"key", data))); + out.push((format!("hmac512/{}", d), ext_hmac_sha512(b"key", data))); + + for rounds in [1u32, 2, 4] { + out.push((format!("twox/{}/{}", d, rounds), ext_twox(data, rounds))); + } + + for rounds in [1u32, 2048] { + out.push((format!("pbkdf2/{}/{}", d, rounds), ext_pbkdf2(data, b"salt", rounds))); + } + + out.push((format!("scrypt/{}", d), ext_scrypt(data, b"salt", 10, 8, 1))); + } + + for (p, phrase) in PHRASES.iter().enumerate() { + out.push((format!("bip39-valid/{}", p), vec![ext_bip39_validate(phrase) as u8])); + out.push((format!("bip39-entropy/{}", p), ext_bip39_to_entropy(phrase))); + + for (w, password) in ["", "password"].iter().enumerate() { + out.push((format!("bip39-mini/{}/{}", p, w), ext_bip39_to_mini_secret(phrase, password))); + out.push((format!("bip39-seed/{}/{}", p, w), ext_bip39_to_seed(phrase, password))); + } + } + + out.push(("bip39-valid/bad-checksum".into(), vec![ext_bip39_validate(&PHRASES[1].replace("about", "abandon")) as u8])); + + let pairs: Vec> = seeds().iter().map(|s| ext_sr_from_seed(s)).collect(); + + for (s, pair) in pairs.iter().enumerate() { + out.push((format!("sr-from-seed/{}", s), pair.clone())); + + for (c, cc) in chain_codes().iter().enumerate() { + let soft = ext_sr_derive_keypair_soft(pair, cc); + + out.push((format!("sr-derive-hard/{}/{}", s, c), ext_sr_derive_keypair_hard(pair, cc))); + // schnorrkel draws the nonce half of a soft-derived secret at random + out.push((format!("sr-derive-soft/{}/{}", s, c), [&soft[..32], &soft[64..]].concat())); + out.push((format!("sr-derive-public-soft/{}/{}", s, c), ext_sr_derive_public_soft(&pair[64..], cc))); + + // the public derivation must land on the public half of the soft pair + assert_eq!(ext_sr_derive_public_soft(&pair[64..], cc), soft[64..].to_vec()); + } + + for (o, other) in pairs.iter().enumerate() { + out.push((format!("sr-agree/{}/{}", s, o), ext_sr_agree(&other[64..], &pair[..64]))); + } + + for (m, msg) in messages().iter().enumerate() { + // the VRF output (not the proof) is a function of key and input only + out.push((format!("vrf-output/{}/{}", s, m), ext_vrf_sign(&pair[..64], b"ctx", msg, b"extra")[..32].to_vec())); + } + } + + for (s, seed) in seeds().iter().enumerate() { + let ed = ext_ed_from_seed(seed); + + out.push((format!("ed-from-seed/{}", s), ed.clone())); + + for (m, msg) in messages().iter().enumerate() { + out.push((format!("ed-sign/{}/{}", s, m), ext_ed_sign(&ed[32..], &ed[..32], msg))); + } + } + + // a zero scalar is not a secp256k1 secret key + for (s, seed) in seeds().iter().enumerate().skip(1) { + let secp = ext_secp_from_seed(seed); + + out.push((format!("secp-from-seed/{}", s), secp.clone())); + out.push((format!("secp-expand/{}", s), ext_secp_pub_expand(&secp[32..]))); + out.push((format!("secp-compress/{}", s), ext_secp_pub_compress(&ext_secp_pub_expand(&secp[32..])))); + + for (m, msg) in messages().iter().enumerate() { + let hash = ext_keccak256(msg); + let sig = ext_secp_sign(&hash, &secp[..32]); + + out.push((format!("secp-sign/{}/{}", s, m), sig.clone())); + out.push((format!("secp-recover/{}/{}", s, m), ext_secp_recover(&hash, &sig[..64], sig[64] as i32))); + } + } + + out + } + + /// Randomised signatures: `kind pubkey msg sig` lines that any later build must verify. + fn randomised() -> Vec { + let mut out = Vec::new(); + + for seed in seeds().iter() { + let pair = ext_sr_from_seed(seed); + + for msg in messages().iter() { + out.push(format!("sr-sig {} {} {}", to_hex(&pair[64..]), to_hex(msg), to_hex(&ext_sr_sign(&pair[64..], &pair[..64], msg)))); + out.push(format!("vrf-sig {} {} {}", to_hex(&pair[64..]), to_hex(msg), to_hex(&ext_vrf_sign(&pair[..64], b"ctx", msg, b"extra")))); + } + } + + out + } + + #[test] + fn kat_vectors() { + if let Ok(path) = std::env::var("KAT_WRITE") { + let mut lines: Vec = deterministic().iter().map(|(n, v)| format!("{} {}", n, to_hex(v))).collect(); + + lines.extend(randomised()); + std::fs::write(&path, lines.join("\n") + "\n").unwrap(); + println!("wrote {} vectors to {}", lines.len(), path); + + return; + } + + let mut expected = std::collections::HashMap::new(); + let mut signatures = 0; + + for line in VECTORS.lines() { + let parts: Vec<&str> = line.split(' ').collect(); + + match parts[0] { + "sr-sig" => { + assert!(ext_sr_verify(&from_hex(parts[3]), &from_hex(parts[2]), &from_hex(parts[1])), "{}", line); + signatures += 1; + }, + "vrf-sig" => { + assert!(ext_vrf_verify(&from_hex(parts[1]), b"ctx", &from_hex(parts[2]), b"extra", &from_hex(parts[3])), "{}", line); + signatures += 1; + }, + name => { + expected.insert(name.to_string(), parts[1].to_string()); + }, + } + } + + let actual = deterministic(); + + assert_eq!(actual.len(), expected.len(), "vector count"); + + for (name, value) in actual.iter() { + assert_eq!(&to_hex(value), expected.get(name).expect(name), "{}", name); + } + + assert!(signatures > 0); + println!("{} deterministic vectors equal, {} recorded signatures verify", actual.len(), signatures); + } +} diff --git a/packages/wasm-crypto/src/rs/kat.txt b/packages/wasm-crypto/src/rs/kat.txt new file mode 100644 index 0000000..6d94e3f --- /dev/null +++ b/packages/wasm-crypto/src/rs/kat.txt @@ -0,0 +1,190 @@ +blake2b/0/32 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 +blake2b-key/0/32 e65edfce5a36261cd824cb0f0da736b1109dcf20d2b831d598f337bb3552a3e4 +blake2b/0/64 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce +blake2b-key/0/64 5b3cfd8f422b490b764b55eceb330b500c79cbefa9a928ad00202b8b3c5dd778a81122570434a2e3b8bfd028d105dfefd0a9576e88ed66de742ca9fbb5f8d2b6 +keccak256/0 c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +keccak512/0 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e +sha256/0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha512/0 cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e +hmac256/0 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0 +hmac512/0 84fa5aa0279bbc473267d05a53ea03310a987cecc4c1535ff29b6d76b8f1444a728df3aadb89d4a9a6709e1998f373566e8f824a8ca93b1821f0b69bc2a2f65e +twox/0/1 99e9d85137db46ef +twox/0/2 99e9d85137db46ef4bbea33613baafd5 +twox/0/4 99e9d85137db46ef4bbea33613baafd56f963c64b1f3685a4eb4abd67ff6203a +pbkdf2/0/1 00ef42cdbfc98d29db20976608e455567fdddf141f6eb03b5a85addd25974f5d2375bd5082b803e8f4cfa88ae1bd25256fcbddd2318676566ff2797792302aee +pbkdf2/0/2048 35f714d09fc952c6a401e07081ac644e1e090de3c8744c28af0dd19396faee9de002d4eb6dbc1d09f1ffb96652d8a24680349622bed48aba991cd81436b3702a +scrypt/0 8356b146b42af574e460300b44136b284c796d7e73d81b1e5069b265f9da1439b3577a0604829f1223e68820075799a47b37bb86f0ca88aded76c4e97a7e9f1c +blake2b/1/32 bddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319 +blake2b-key/1/32 0330531d097355a3f72e80d55c1245ccf79f1704431c6e3887938320442c23c0 +blake2b/1/64 ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923 +blake2b-key/1/64 5c6a9a4ae911c02fb7e71a991eb9aea371ae993d4842d206e6020d46f5e41358c6d5c277c110ef86c959ed63e6ecaaaceaaff38019a43264ae06acf73b9550b1 +keccak256/1 4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45 +keccak512/1 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96 +sha256/1 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +sha512/1 ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f +hmac256/1 9c196e32dc0175f86f4b1cb89289d6619de6bee699e4c378e68309ed97a1a6ab +hmac512/1 3926a207c8c42b0c41792cbd3e1a1aaaf5f7a25704f62dfc939c4987dd7ce060009c5bb1c2447355b3216f10b537e9afa7b64a4e5391b0d631172d07939e087a +twox/1/1 990977adf52cbc44 +twox/1/2 990977adf52cbc440889329981caa9be +twox/1/4 990977adf52cbc440889329981caa9bef7da5770b2b8a05303b75d95360dd62b +pbkdf2/1/1 ed5eaa90fc29599df803befca3c4305baac330ee54dc648a8850eb233c0edd5c835b721009aefa870e81bbb026fd265fe7316096998299dce1689e8942651223 +pbkdf2/1/2048 a81678b52a3db3a13e307c5ec8e2d0c77b4be2fb3eaecde640acd14ca6b7f94da769cbd3391aa9221f8c90221eaa21916e455cd67c1818c4f3023a2e3fb42ede +scrypt/1 057f3a65a87ea4d7358e38387ed115ccd48329f3860aa2a038af4669fabb2a0e3ad24b499cfa1f99eb9b62e180039aa4210e5735793807689642c13a95c2113e +blake2b/2/32 a1442fdad4d4e5214e4086836e6accd66cc62d4cf3445dae60006ba025c070d7 +blake2b-key/2/32 7d866f7bcac37163a15a32a822d6ad569c8429a994e12ff94b80780a09bf9718 +blake2b/2/64 d9d6d77e0408eef086662db306f66af8852e2c70cebbf2e43ccb33c99499687b7a43897b49716c13096986f090042091052ff2c30a095c246fd4c56f16dd1ee8 +blake2b-key/2/64 9d42ae2a54bf6638b443c5f1c9935c74e5f894501cdc46cae9cd0cc19f536c3996d53cd993449519bba88f95c9be66d833c103c5f36e8b6d076886540628eefe +keccak256/2 d9317789b18e31eda7f125c541e8eca191f4b6f429970b2e23def6bebc9000d2 +keccak512/2 5345c3dadf2c61016fbb23a14ce532d75dd6ae3d7112ebaec258680acc8f70b7591ed4b66688e5501b7126182be2ef48f560ca451c60451d3d480a7c7edd92f6 +sha256/2 008549d94fa71e7a0a483d84380d05a923a4b18e79ba1f8a8ddac923956d32ef +sha512/2 6e980832aa820e5fe6c6ce011c36cd3cbe95596c9069c6067fab48bade8bbeb4e6413acb61bb1286c67c28a07e3f4099f1805a2b199cc0fe51aa5cfb1b66a40e +hmac256/2 df667edcc6df9bb665b74643b50a7a7bddc394e8acc2a0bf16d000330d39db73 +hmac512/2 7df02b56487c0448f88d6e44c729dc6ded0b0a3add5e7e97e2b5fb8981416fbaea03e991f3c779cfa790eb69ca6c08f596b7e3b9af36b293fe68fadfd5d3b70c +twox/2/1 8dc5e3cdc100339e +twox/2/2 8dc5e3cdc100339e6e7ef29bc88dfcd7 +twox/2/4 8dc5e3cdc100339e6e7ef29bc88dfcd7c877b13a6b38c137d269ec9a21c100ce +pbkdf2/2/1 3f4ed9a95e4b71232c3746d036eb7df2e3e469e2a78f7b4fb593c1a766805dba0bdbbfd349b63438c9dd4c555d36e9d3ce91f3d709d7d7d2d499a2b263da4f63 +pbkdf2/2/2048 5275d2231e2fe9ec731f790a679641fec34b2e92806d8aca37b6c87e4b8049579c6e6eae5cf2679280617f2480f81e39f9c4ddf1e4d7292117eaca48af422838 +scrypt/2 4ec391c472568d379316c8a14a69128a2aaa27d5d66635e7c682a90af07be9a2ec09d618f6dbf222bbe676883c8b2bf52a3f3600b6bea403ce04f9c123de166d +bip39-valid/0 01 +bip39-entropy/0 1a486a5fbe53639984cb64b070755f7b +bip39-mini/0/0 fac7959dbfe72f052e5a0c3c8d6530f202b02fd8f9f5ca3580ec8deb7797479e +bip39-seed/0/0 02d5cd1db85b4d1397d78978062a1160e76e94cc5aaad3089644846865bb18fc +bip39-mini/0/1 7093ab08d7abbb67ff41479a98ef998e4be773901f13668a012f51d207577a88 +bip39-seed/0/1 a6a63e14e4aab9ea6d031a84fd49650b337cc06916f8c8e7bb1e6b3a47024867 +bip39-valid/1 01 +bip39-entropy/1 00000000000000000000000000000000 +bip39-mini/1/0 4ed8d4b17698ddeaa1f1559f152f87b5d472f725ca86d341bd0276f1b61197e2 +bip39-seed/1/0 5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc1 +bip39-mini/1/1 452cf529afdeea38864bda6a771ec77c165498e57c8b53270a918e2a95d6e384 +bip39-seed/1/1 319a85221b9c4ce9a2896ed8cb2c0ea205c44c512d9214c9d80e663b8aa97f09 +bip39-valid/2 01 +bip39-entropy/2 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f +bip39-mini/2/0 f02cdc109954e34cd3f0c60fdb0c97ffb3a934ad1cc9a4df87b8417024b8bdbe +bip39-seed/2/0 761914478ebf6fe16185749372e91549361af22b386de46322cf8b1ba7e92e80 +bip39-mini/2/1 91ae31651bbded60d4abbd2aaeada3fc32dc4883aa42bf74aaba714a7cc370b6 +bip39-seed/2/1 78eb30f9eb2e381142f81fb2f91af8009a7bae045353c81d41b9965e79753042 +bip39-valid/bad-checksum 00 +sr-from-seed/0 5046adc1dba838867b2bbbfdd0c3423e58b57970b5267a90f57960924a87f1560a6a85eaa642dac835424b5d7c8d637c00408c7a73da672b7f498521420b6dd3def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 +sr-derive-hard/0/0 5044f1b94dc23e1422b8ff1d16e5c185acd6b1ab0b045edaf52da481e6060f4aeba185d47626304c56ce22f661d7e04bc060bf92367a240487ad3368dfa4f0587eb473cf3ffb7f799a5e7e8a3d864bc9fb558ad77ffd45354f5a64733a8dcc5b +sr-derive-soft/0/0 90a1831445febebaa7ad670736e7e1a7bc7a40c860d11a0d45a834552241e70182cbd8a1cbc65ae31b6606f759c2774846b051c4ec605652d96c39525fbcfd14 +sr-derive-public-soft/0/0 82cbd8a1cbc65ae31b6606f759c2774846b051c4ec605652d96c39525fbcfd14 +sr-derive-hard/0/1 f028af100e19eb2d977031a7a119d61b3b74d230566da8047b5dfab057d199605ba3dce88aad5127a2d9c2d9e15fffb12cf00a6539b4c5a8ab1f6cf1193028ddeef10a01961b20f466467b28afd462be66cc747df9dd2a5c932eb7a05bc1af41 +sr-derive-soft/0/1 d06e1aab2adca5772c61a9b1b290aa850ceda6c68dddb7cea89cccece53eac0cac99e7d9f2b492a0f87a976817f6608b24aaf14206b5e7d5dfd7713a10795620 +sr-derive-public-soft/0/1 ac99e7d9f2b492a0f87a976817f6608b24aaf14206b5e7d5dfd7713a10795620 +sr-agree/0/0 167b3784188f948efda66d3e08b71354f258db1665b4e63abf903b6319372668 +sr-agree/0/1 6cae5cd4b5ed7f11ddb9a0c20d3acbb51c6027ec291fa2f8b9b23e86a4903112 +sr-agree/0/2 eec62f77e9c050cc1da6920441ec7fd30fc2471c5633ecc0151265068fa2021d +sr-agree/0/3 dc75f9d7da57ff15e65def295e1a416a53577701b15b3de904c38031297b8d7d +vrf-output/0/0 8034451570f66a23cd631f06a53a32683eb187aa00545bfe9653a255a0e36b49 +vrf-output/0/1 301103529195cb77dc71efdcf5247817d40fb3d17c2a66a433a98e8a005e155e +vrf-output/0/2 74bed1f7eede4ac3f11ccd72094732987b897994e31f106dc42844bd1146d112 +sr-from-seed/1 10174084cbded240bf5356f2f95f5dde0f8db69ccad7d59e70b871887e597a628b9567dc8368839e2346f9553b4968c6fe856d5a7669f1c54e96f65cfda4b039de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f +sr-derive-hard/1/0 e03363daba6aa72fcf612b75fa6332c0293f23eb7fc3867832f1ff6dc00500525f2be6935ae55cd6ab40e1c4f278972b31e2331cb15193ae01c58b61545077fff0af6c7273314323ecd59b7751f6af00535e91be0c706a55c7e171706ec4d006 +sr-derive-soft/1/0 28b95df54828b985d5e0097049bd347fcc711b44fe0850d4db84c14d5ad27d17f66f661828ec788ca585703c0a14cc13a4d385299cfdfb148f4f554a1791f12e +sr-derive-public-soft/1/0 f66f661828ec788ca585703c0a14cc13a4d385299cfdfb148f4f554a1791f12e +sr-derive-hard/1/1 2881967aef71dc5c5385863b7ae78d901f2c48dcc0a6d3a0d1d3aaf62e2e935429943d0a1042cf3392ed094bbedb495c988401d753de3d67f8359513243a0b9d6ec838a4b1373518b303544d098c0636dbabc63703c8bb5b24e5f36ba5cc527c +sr-derive-soft/1/1 087a06cb2153ded6faf219db4aa987b36beeaa1b7fa0602bca6e5eec92b098627454f8850f657d7d6ce095fd95cf960b5a3805746269e7ebb04d346bfb850208 +sr-derive-public-soft/1/1 7454f8850f657d7d6ce095fd95cf960b5a3805746269e7ebb04d346bfb850208 +sr-agree/1/0 6cae5cd4b5ed7f11ddb9a0c20d3acbb51c6027ec291fa2f8b9b23e86a4903112 +sr-agree/1/1 924c672d1fab64258297edf443ca56d08c214cff4a01f42a1386ea5ec7a56133 +sr-agree/1/2 2a799825b0bedcacc2b612057beb92d27ce3373fc98e90a6fae94e61ab0a656b +sr-agree/1/3 66d68f1a30ddc58cec6c823c6d9508bb2dd9e48ffc892aee4236d9f1d2646807 +vrf-output/1/0 82efcfd875532dd24499defd3ffd0c1d4940111cd5e780b96027c799ef390648 +vrf-output/1/1 7c6d026b220fb01a1301bb704d0c30c6e640a69ef52e0d35ef442670e26fc97b +vrf-output/1/2 3084beefb7ac40f766731657c5e776f4a15e20beca9eef8842121e2b3910dd22 +sr-from-seed/2 18b5f3e9309e299a29105131170fa7be75d1dd8b3a89074a3ee24e564deb6b5b433878ae7fe6b5e12e48d14574ef972534a02797c5f4a4ae4bde996256f619b16203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d +sr-derive-hard/2/0 407f24ae017ce772e36bf577ab705547658cfed7b34d4afe3734be5476119a69f8fcdaff281ff8c13cc1419d7c841028c1ce21b55f2ba51dc646154356cf6cf894e23f5a2546a3a1a2677ff796b0e0e920da3cecc952ab1a8021519775352d5e +sr-derive-soft/2/0 282441e695a327a73028d4ca68749bfa995887f9fc8b73826efef7cf627ec07542581161e52bd1f724155363bffe777eecc177bf1fdbf26b592708a4db4f902e +sr-derive-public-soft/2/0 42581161e52bd1f724155363bffe777eecc177bf1fdbf26b592708a4db4f902e +sr-derive-hard/2/1 6893644ead32fee42054765cfdfd6782dd05fe71aa42e5f2a0b3a72818e04c5d4dde56050f646d29415387517e9b3408887e86cede78b5ce83e303255f20e994dc824fcc74ce2b393e73f5f18cd2e29dba66d5411da3860399d74f8556eccb71 +sr-derive-soft/2/1 5807278a18c2e1a4507293abe3fd236e519375e4e624555e787ea34596917a74362e7c82958a3a5cae8a8cd990164988b51a4cfde7003de403c98602fa878d4f +sr-derive-public-soft/2/1 362e7c82958a3a5cae8a8cd990164988b51a4cfde7003de403c98602fa878d4f +sr-agree/2/0 eec62f77e9c050cc1da6920441ec7fd30fc2471c5633ecc0151265068fa2021d +sr-agree/2/1 2a799825b0bedcacc2b612057beb92d27ce3373fc98e90a6fae94e61ab0a656b +sr-agree/2/2 1a6103aa0dcb2e6bcc500b2a15a4e7523e831e61d85daa30630c25241e74187e +sr-agree/2/3 f4ba4a535cb371f26f1abc39d0b02911f9fc70daee91f7c12fcfa3113adcf033 +vrf-output/2/0 60976686251d496cacbb2f4e0659aa4fd056b29fed678528d08f6535b1edf469 +vrf-output/2/1 94ba6bcd758ccfae3808ecea73d5c490e9c5c114dfcb5264a5190d808e3d600f +vrf-output/2/2 c467f93dbc5f425b6a506e2749dc8b29851587f7611aaff248ee291c65c48a35 +sr-from-seed/3 f0106660c3dda23f16daa9ac5b811b963077f5bc0af89f85804f0de8e424f050f98d66f39442506ff947fd911f18c7a7a5da639a63e8d3b4e233f74143d951c1741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 +sr-derive-hard/3/0 30db0fea8835bd5baf649a7bcefe3896b1155771d3e1a7629137d9c679fe4a43f53fe39df0fbcda94acf7386ebf8311c286559864c03f4379d2d40ffc874a87a0460ff03efdc8f3eeae36ad282d41a8398e20703c5504fbc18ec238df4b9855b +sr-derive-soft/3/0 78e2c707b9a946a6afe82cee0bef0c7db1983f5e050de868337f62eb978e492a68d447f32488ba7a1a65e3a0ffa11e747dae52aea4a18b789980f23477c52356 +sr-derive-public-soft/3/0 68d447f32488ba7a1a65e3a0ffa11e747dae52aea4a18b789980f23477c52356 +sr-derive-hard/3/1 a8bf865205c69ebcdb1efe9edec3b96ea65dd9a071f01e76c91c2af940645f44e96cf7443b19c1866b66535cbcff7afc4b135971ab2ce3bac1ab5e4e4b0e9640106bf4e2d66af916c7b893c7f377ee7c55bc7b63dbbf86f0b65696fe71afcc26 +sr-derive-soft/3/1 00223435066f51ece75129f67ba4ec74bc86dfdc951d43f93164d061d3ba7a53f869cd2226b3e1d4648e90c2ab8ed9db5243e23e9d12a814f060b5c447fda835 +sr-derive-public-soft/3/1 f869cd2226b3e1d4648e90c2ab8ed9db5243e23e9d12a814f060b5c447fda835 +sr-agree/3/0 dc75f9d7da57ff15e65def295e1a416a53577701b15b3de904c38031297b8d7d +sr-agree/3/1 66d68f1a30ddc58cec6c823c6d9508bb2dd9e48ffc892aee4236d9f1d2646807 +sr-agree/3/2 f4ba4a535cb371f26f1abc39d0b02911f9fc70daee91f7c12fcfa3113adcf033 +sr-agree/3/3 12769eae8157152c1a69e4459a7fd7b1c4ce55d8a5eb68aaac9324df08c7dd1f +vrf-output/3/0 148beca7e06f7af6b57afaede17362acfc6ffe64a341274428daec2673391023 +vrf-output/3/1 de4cb325ffb4c4b4f71c2992dddc16822614ab8095e30c5abe22b125ac480110 +vrf-output/3/2 ccda5008c43516b79733d6d8eb3634f0450d1b9ccfca0b205420dd78bcb32d66 +ed-from-seed/0 00000000000000000000000000000000000000000000000000000000000000003b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29 +ed-sign/0/0 8f895b3cafe2c9506039d0e2a66382568004674fe8d237785092e40d6aaf483e4fc60168705f31f101596138ce21aa357c0d32a064f423dc3ee4aa3abf53f803 +ed-sign/0/1 b17a3d196768eb182c746cdc592ecd5ba54b815a300a08efaf08893a0fcaf7bb2c2d0b9e7f108f0e257d79db7a79786445db8631c42ee7693cd75477737f0c00 +ed-sign/0/2 8b7e54ff43aa6385f57ded8b5a903549c7c6783d28b3492ed542f29dd8a2ab387542ddc24b770758c5909ec56caa4901ed90013e338d28fe753f2b1f6b601908 +ed-from-seed/1 0708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252600d05a1d1ea251396d557afbd4588b3c6d99dbeb972fed10a32562ea26dcdcfa +ed-sign/1/0 26caf293a0b11c2c88f2f9e98efdb42e32374943589bfa449998a1738f93a3d4773ecf386def504ff8f5febd5118a28ae5747ac92c656609d0a3631d5d59a90b +ed-sign/1/1 1317bf325ad62aba070e8fb9cfb3886e31750c6865b78355fcc4d75a6b810041fdcf756d5bc6e144f7f9cad4b893719af6432233acf7c8daf21414ef72b9b703 +ed-sign/1/2 fc354b2898a0d700924879de329b5ab6f6fc2d0c3d2579633b7ee8c0e81897e1eee10efd7e7d0b98ce889cdeb266ccaf837d20b4aa82dfa3ed73bc38820b4805 +ed-from-seed/2 0768c92f90f157b81e7fe046a70d6ecf3596f75dbe2485e64cad1374d53b9c029ab3e3b7fabda8a899c3a93b711ce3e9c092793491a49ab3f93331db7a1a0f8c +ed-sign/2/0 dacab8d76acb5a01d013adf2ddd496e40219c6bfbd900de355eb15acb4bce2ae0b7430fe49f710415b392d6280f2490ee7a58c775d661796fe79adc1b6dd1e0e +ed-sign/2/1 c590b0f69cd4249904292ccd6730a454dd51bafcafa1844a01c5ea64ac162c17b9bd7041faa0eec85f92674c86cb3cda027634c6c4e17837991135865be03901 +ed-sign/2/2 9f115cbe6ff1829400c2ed3cc90a325d0a48cf180fde0cb148064800911d6b81e0a38a62b4c7e12fd630c5588e2fb90814c33e1ca2fade665da245e2251e6200 +ed-from-seed/3 31323334353637383930313233343536373839303132333435363738393031322f8c6129d816cf51c374bc7f08c3e63ed156cf78aefb4a6550d97b87997977ee +ed-sign/3/0 9307490e912de0ee8eba762e2dab214b142d9943469db0698274ccb3a091a5df24dc0bed309a808c4cd7ba1addd17a5ede576283566f22915884d3c361db400d +ed-sign/3/1 90588f3f512496f2dd40571d162e8182860081c74e2085316e7c4396918f07da412ee029978e4dd714057fe973bd9e7d645148bf7b66680d67c93227cde95202 +ed-sign/3/2 e5d1b0dfa9cf77a5a36e6d67c65ae9241d4fa08dcda94da4d294870bae05561f2a78f7053f5082d2b4a889307eff3dc909e36edfc05656806d4594542e5f9c0f +secp-from-seed/1 0708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526029fc3f04c2c6e14d06fe30048fb902506d674f5f7543dfde498b1d26e1a6c1f55 +secp-expand/1 049fc3f04c2c6e14d06fe30048fb902506d674f5f7543dfde498b1d26e1a6c1f55f0ca1d755158126236856b08e5ef1c7f58953fa09c681d33fe63f02e07d0af26 +secp-compress/1 029fc3f04c2c6e14d06fe30048fb902506d674f5f7543dfde498b1d26e1a6c1f55 +secp-sign/1/0 f835e88462a652882078de1c490788ef2bcf5c3654f46ab2dd57d75732420ffa1e345a225a4f6b4159344e96179390e50ec2deda161f0c21a80aa45880cf5fdc01 +secp-recover/1/0 029fc3f04c2c6e14d06fe30048fb902506d674f5f7543dfde498b1d26e1a6c1f55 +secp-sign/1/1 20d00d17b9beb4920f1f2b868ff4f97f37d81305bfdd5251c4ad1166f8b1f74303f816436197dc2d0548a188224f20515e19d1214a2eb84acb660fd797925b6800 +secp-recover/1/1 029fc3f04c2c6e14d06fe30048fb902506d674f5f7543dfde498b1d26e1a6c1f55 +secp-sign/1/2 6b5e6b28801042beb245714ae0e637b6f9eecda27872eedb89662f3a9eb7a7f877323adbd8630226700325f379db189ae11abf7f701e25899f11d9d93203315e01 +secp-recover/1/2 029fc3f04c2c6e14d06fe30048fb902506d674f5f7543dfde498b1d26e1a6c1f55 +secp-from-seed/2 0768c92f90f157b81e7fe046a70d6ecf3596f75dbe2485e64cad1374d53b9c02027854493edced8484912d36f6b8ac3aaf28fe5b7db24341ff5b489b84679fc535 +secp-expand/2 047854493edced8484912d36f6b8ac3aaf28fe5b7db24341ff5b489b84679fc5350d083efb4c1199c119862d8d48741a4e471778b892e929e61d083494790b7f16 +secp-compress/2 027854493edced8484912d36f6b8ac3aaf28fe5b7db24341ff5b489b84679fc535 +secp-sign/2/0 a4ce55a43e3483b38cb0c3423e16caab5d3c4ef754a22dd57de2488ea06a8d4c3be5ea6c3a17ac80f44bc6fb16d42983fb1903a7c762ba2bd97a771e5258b03101 +secp-recover/2/0 027854493edced8484912d36f6b8ac3aaf28fe5b7db24341ff5b489b84679fc535 +secp-sign/2/1 6a2fc029d7732e9a4c148f06456493552ae117f2a9bc16362b204a11541cff202b7bb6fa926d3f2060a1d01c43c1ec194deb7dd397161ef16c11a906147c16ee01 +secp-recover/2/1 027854493edced8484912d36f6b8ac3aaf28fe5b7db24341ff5b489b84679fc535 +secp-sign/2/2 61013addf85a6c17db744c01806151eba601c78f94676116684f8f18503c68822a6bfc7fe4bac84f1327d067d1e412a1c752961f9cd3f172010d9f035e43157f01 +secp-recover/2/2 027854493edced8484912d36f6b8ac3aaf28fe5b7db24341ff5b489b84679fc535 +secp-from-seed/3 3132333435363738393031323334353637383930313233343536373839303132035676109c54b9a16d271abeb4954316a40a32bcce023ac14c8e26e958aa68fba9 +secp-expand/3 045676109c54b9a16d271abeb4954316a40a32bcce023ac14c8e26e958aa68fba995840f3de562156558efbfdac3f16af0065e5f66795f4dd8262a228ef8c6d813 +secp-compress/3 035676109c54b9a16d271abeb4954316a40a32bcce023ac14c8e26e958aa68fba9 +secp-sign/3/0 c4d4c1a10f58684a3e3c7fb67a8548bd590f80af64dfd48bcc6536e2154e4d3e70723a81f9632f374e695cecdb8a0fe0454b1ff286eae33718de64bb5e356ba501 +secp-recover/3/0 035676109c54b9a16d271abeb4954316a40a32bcce023ac14c8e26e958aa68fba9 +secp-sign/3/1 ffe654ea46d9d27cd83ea6910975ed177f02e9a18638faf42dde95d62bd37c387b91c7eba9c5f13f1c57ca1b58eb1af0d5a82838d75b1661c444db6cd367696201 +secp-recover/3/1 035676109c54b9a16d271abeb4954316a40a32bcce023ac14c8e26e958aa68fba9 +secp-sign/3/2 531bb640dae78253cd466cd851e6d7a9b4354b37113916b5c3c3e2574bb3e58e6008c7a5eed95d50619b7b6b2a79218edc23a96379228d6d40be9038701614a700 +secp-recover/3/2 035676109c54b9a16d271abeb4954316a40a32bcce023ac14c8e26e958aa68fba9 +sr-sig def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 489ef0f010a64a29fe278249fdf508a2ce10343c870d355b3924808dd578105ac62a7d03c0bddcc4ce18a37ef11c3f8e9c368359ed5651a6cbc158045e55e38f +vrf-sig def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 8034451570f66a23cd631f06a53a32683eb187aa00545bfe9653a255a0e36b4966c32822d053d2b22d117e93ed487dff3e87fd0f5a24f4b1819689e4ad105805e816caa25dee6b2a5cdfbf0f0a729e4b1eb13ef68fbaaafcddbaf28cb6e13d02 +sr-sig def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 746869732069732061206d657373616765 6227fc211d63e52f0c503c9e83b6cb08dc4b425549ff1353a278ec96bf8e092adf00d9abc61bc5813b5c51c0b880962c9dd090432fd6a50d8169bdb449c54f84 +vrf-sig def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 746869732069732061206d657373616765 301103529195cb77dc71efdcf5247817d40fb3d17c2a66a433a98e8a005e155ec45289f04e912c7fe023aa8de6bd18ca1c6a4503f4cba42e28b9b347d3d04b0d0467674d5bb81a64e61bb76dc8faf0d329503bee350f9c11eae39b50cfcbb10a +sr-sig def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c 92c5e8af927f2a6f05f4d0c2e98216fec55be4ef04d3056713518bc92d9cb930ebc461d3856268f0f5ce309a0f253d331b04140a8b86f32820d1ff14a9888f8a +vrf-sig def12e42f3e487e9b14095aa8d5cc16a33491f1b50dadcf8811d1480f3fa8627 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c 74bed1f7eede4ac3f11ccd72094732987b897994e31f106dc42844bd1146d1120eccdb5e58fbd8670f34994b1799d1abbac05a94c71acbcd9307028647289e0c31099af1dbe439980a9ceb9ec13d0d02697cbfba563e9821d5f92ecd2cf7c007 +sr-sig de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f 80ebf0b599bbd01d981b56f80b79ab85a31fc1b055f839d8b10d5bf67d9e3d21316161bf3f1898160960e94d2cd174f4dff9f42b4bc35dc29c7059480b47ab85 +vrf-sig de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f 82efcfd875532dd24499defd3ffd0c1d4940111cd5e780b96027c799ef390648d88bfa89260ecd557638dfe76d1c4c94b908c7a31464595e912f889ace79c30f77b14188af3d46dc57efbe09a7852ecfb62bfcdcf119c3657a23fa899a3f4508 +sr-sig de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f 746869732069732061206d657373616765 a8f97775d5a0576cf5530a8eb6baa63e2d2ecf610c9db682cb06c52d40931f323e446a5284e9966ccd2643dc6e91341adf6a097733904704feb0c517108ca38a +vrf-sig de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f 746869732069732061206d657373616765 7c6d026b220fb01a1301bb704d0c30c6e640a69ef52e0d35ef442670e26fc97b8a8e371e84fd521267123a09fad8ac4d872dfa422d8aaa3336ac8a181b1c3a0dcf2b60ecdec3ae5ef4d173dd18bc5af5f7d6567f78a709e1294c1f59e2d81f06 +sr-sig de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c e82217ad07422ca25fb31f55d4d5cf42bee685805d6df610b80e1a3a8a1db34b3ce20bafeba409f16897796ccf003c49d180b4c0385c268eef708246eead2183 +vrf-sig de4ffab050e3f3f1f982b872c5ec0455294fd16afd9075f75e9379a3bbde725f 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c 3084beefb7ac40f766731657c5e776f4a15e20beca9eef8842121e2b3910dd224a56473e60302b2d75debce2ee9c58a96d4aa51a925a5fa9b329a2a017821e00df68f265212c530894ca79f7e34645b2e6231f988556079eaf42c917d9a48309 +sr-sig 6203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d 5a26f5322c87182853d2dd53efe8ebf99e5af4f91eec877b70a04480a461c87f4f5dca4524ed4a402f44d3f7df25e9d7b774d3faf72e55aa4b1f21434ed43283 +vrf-sig 6203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d 60976686251d496cacbb2f4e0659aa4fd056b29fed678528d08f6535b1edf46917918ece5448de5c785e68fd87c55a51479c8c73b924993beb7ab3e5df0d9c048438dc24fa5e55a5d5da664352200abdabf24c9ff2c48c30ee96ea068a62090b +sr-sig 6203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d 746869732069732061206d657373616765 fca168d5fbd24de746a8355bd7b7ccf63be6004d409f57cbd5cbc4417d7cd62a1744ab46e8727f07d97d4c3d365c45a1fdea956c3ee8cb06ef2c76bd7f1a5185 +vrf-sig 6203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d 746869732069732061206d657373616765 94ba6bcd758ccfae3808ecea73d5c490e9c5c114dfcb5264a5190d808e3d600f84f43f5e35779d0b1e7d0a7363bdd956bc2fd307a2848ec453ee1f4c24363a042c1089a2384872bf1bad1150836275e6c46d33d6c0c5212b2db4ca123e14e703 +sr-sig 6203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c 8cae0772e5b1a61f20b470b4ad6c1e39ae7a0b6c1df91ec2a2400c266260233211ce9642733d8dcea1c379a7bf7fae26ad61b08010f403293999885c329dbd82 +vrf-sig 6203b67c5d1c658dee4b31a11cfe03d92552b2797c2a133c8a19682cf24b190d 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c c467f93dbc5f425b6a506e2749dc8b29851587f7611aaff248ee291c65c48a350e013366e544e139aaaed170e8e6f0d286e0da524e63113e4833101bf8d2320b34734ec4aaa25bec04efccc58769c7025e6206be845e6d1e31e4d694c4f8b308 +sr-sig 741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 06ca2e9488b09c7c04da6aa1c76d21d9a8d46b76e6aa9de90fdd0fce5a631b480e17f117b91a40078b860187c1f73a826a990307e6274964b3c56a48a86d6d83 +vrf-sig 741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 148beca7e06f7af6b57afaede17362acfc6ffe64a341274428daec2673391023156cd7ab6b592e06b7db0730a03087daf1db0b2cca53a8003b4320808167ac07832d70afe11d94053a5e4797bdda84e0648d36cea531f6106fe7959a47bcc20d +sr-sig 741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 746869732069732061206d657373616765 04702b7b88ae806032fb95a8d8e9ad49dda9cc0750e75b44ee5693b0869be64108454fc72fc7344aa32663f369c6bc6a916a0b82910ad6c56ef4a15d25ce1b83 +vrf-sig 741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 746869732069732061206d657373616765 de4cb325ffb4c4b4f71c2992dddc16822614ab8095e30c5abe22b125ac48011075ac32720223d70f2b89b8fa95f94851dd14f14bf1baca89431895f4cf12fd0ef6176912c3d8a5d526fe33adc0dac19a974d3205eba3f9415e4e2e05d554e807 +sr-sig 741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c 3afa41b7c10ae063c807fd2cbe8eaf63a25bd8a3af26a1f6685b0896190f5b481a29aa6ab2a2560ebdb3792739aa609c8cf183a77b3d9c81bc8be8c716916e8c +vrf-sig 741c08a06f41c596608f6774259bd9043304adfa5d3eea62760bd9be97634d63 070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f9050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf400070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef501080f161d242b323940474e555c ccda5008c43516b79733d6d8eb3634f0450d1b9ccfca0b205420dd78bcb32d665bb235b82980d7913df4bc52d257a08d4b4affc3273e8f10dc9840561a5be7003ba4937bed0d3e124dfe2047f11b91422c7578ac727904f53402bec72d44b00e diff --git a/packages/wasm-crypto/src/rs/secp256k1.rs b/packages/wasm-crypto/src/rs/secp256k1.rs index b697ab9..ebec204 100644 --- a/packages/wasm-crypto/src/rs/secp256k1.rs +++ b/packages/wasm-crypto/src/rs/secp256k1.rs @@ -30,7 +30,7 @@ pub fn ext_secp_from_seed(seed: &[u8]) -> Vec { let mut res = vec![]; let pubkey = PublicKey::from_secret_key(SECP256K1, &s); - res.extend_from_slice(&s.serialize_secret()); + res.extend_from_slice(&s.secret_bytes()); res.extend_from_slice(&pubkey.serialize()); res @@ -43,7 +43,7 @@ pub fn ext_secp_from_seed(seed: &[u8]) -> Vec { pub fn ext_secp_recover(hash: &[u8], sig: &[u8], rec: i32) -> Vec { match RecoveryId::from_i32(rec) { Ok(r) => match ( - Message::from_slice(hash), + Message::from_digest_slice(hash), RecoverableSignature::from_compact(&sig, r), ) { (Ok(m), Ok(s)) => { @@ -69,7 +69,7 @@ pub fn ext_secp_recover(hash: &[u8], sig: &[u8], rec: i32) -> Vec { #[wasm_bindgen] pub fn ext_secp_sign(hash: &[u8], seckey: &[u8]) -> Vec { - match (Message::from_slice(hash), SecretKey::from_slice(seckey)) { + match (Message::from_digest_slice(hash), SecretKey::from_slice(seckey)) { (Ok(m), Ok(s)) => { let mut res = vec![]; let (rec, sig) = SECP256K1.sign_ecdsa_recoverable(&m, &s).serialize_compact(); diff --git a/packages/wasm-crypto/src/rs/sr25519.rs b/packages/wasm-crypto/src/rs/sr25519.rs index 4aead05..1b76ac9 100644 --- a/packages/wasm-crypto/src/rs/sr25519.rs +++ b/packages/wasm-crypto/src/rs/sr25519.rs @@ -160,7 +160,7 @@ pub fn ext_sr_agree(pubkey: &[u8], secret: &[u8]) -> Vec { key.copy_from_slice(&s.to_bytes()[0..32]); - match (Scalar::from_canonical_bytes(key), PublicKey::from_bytes(pubkey)) { + match (Option::::from(Scalar::from_canonical_bytes(key)), PublicKey::from_bytes(pubkey)) { (Some(n), Ok(k)) => (&n * k.as_point()) .compress().0 .to_vec(), diff --git a/packages/wasm-crypto/src/rs/vrf.rs b/packages/wasm-crypto/src/rs/vrf.rs index a083001..75fc5db 100644 --- a/packages/wasm-crypto/src/rs/vrf.rs +++ b/packages/wasm-crypto/src/rs/vrf.rs @@ -8,7 +8,7 @@ // forked at commit eff430ddc3090f56317c80654208b8298ef7ab3f use merlin::Transcript; -use schnorrkel::{signing_context, vrf::{VRFOutput, VRFProof}, PublicKey, SecretKey}; +use schnorrkel::{signing_context, vrf::{VRFPreOut, VRFProof}, PublicKey, SecretKey}; use wasm_bindgen::prelude::*; /// Size of VRF output, bytes @@ -80,7 +80,7 @@ pub fn ext_vrf_sign(secret: &[u8], ctx: &[u8], msg: &[u8], extra: &[u8]) -> Vec< /// * out_and_proof: 96-byte output & proof array from the ext_sign function. #[wasm_bindgen] pub fn ext_vrf_verify(pubkey: &[u8], ctx: &[u8], msg: &[u8], extra: &[u8], out: &[u8]) -> bool { - match (PublicKey::from_bytes(pubkey), VRFOutput::from_bytes(&out[..OUTPUT_SIZE]), VRFProof::from_bytes(&out[OUTPUT_SIZE..RESULT_SIZE])) { + match (PublicKey::from_bytes(pubkey), VRFPreOut::from_bytes(&out[..OUTPUT_SIZE]), VRFProof::from_bytes(&out[OUTPUT_SIZE..RESULT_SIZE])) { (Ok(k), Ok(o), Ok(p)) => k .vrf_verify_extra(signing_context(ctx).bytes(msg), &o, &p, new_transcript(extra)) .is_ok(), diff --git a/packages/wasm-util/package.json b/packages/wasm-util/package.json index b70f27e..a78861d 100644 --- a/packages/wasm-util/package.json +++ b/packages/wasm-util/package.json @@ -18,7 +18,7 @@ "./packageDetect.cjs" ], "type": "module", - "version": "7.5.20", + "version": "7.5.21", "main": "index.js", "dependencies": { "tslib": "^2.7.0" diff --git a/packages/wasm-util/src/packageInfo.ts b/packages/wasm-util/src/packageInfo.ts index f5dd6e8..15440cc 100644 --- a/packages/wasm-util/src/packageInfo.ts +++ b/packages/wasm-util/src/packageInfo.ts @@ -3,4 +3,4 @@ // Do not edit, auto-generated by @pezkuwi/dev -export const packageInfo = { name: '@pezkuwi/wasm-util', path: 'auto', type: 'auto', version: '7.5.20' }; +export const packageInfo = { name: '@pezkuwi/wasm-util', path: 'auto', type: 'auto', version: '7.5.21' }; diff --git a/scripts/build-wasm.sh b/scripts/build-wasm.sh index 7b99b78..cee2196 100755 --- a/scripts/build-wasm.sh +++ b/scripts/build-wasm.sh @@ -16,6 +16,11 @@ DENO_ASM=$DENO_DIR/data.js # build new via wasm-pack echo "*** Building Rust sources" cd $PKG_NAME + +# Panic messages carry source paths. Without this the published wasm names the +# home directory of whoever built it; with it the bytes no longer depend on +# where the toolchain, the registry or the checkout live. +export RUSTFLAGS="${RUSTFLAGS:-} --remap-path-prefix=$(rustc --print sysroot)=/rustc --remap-path-prefix=${CARGO_HOME:-$HOME/.cargo}=/cargo --remap-path-prefix=$PWD=/build" if [ "$RUST_VER" == "stable" ]; then RUSTC_BOOTSTRAP=1 cargo build --target wasm32-unknown-unknown --release -Z build-std=std,panic_abort else diff --git a/yarn.lock b/yarn.lock index cf5eb9f..2cc7111 100644 --- a/yarn.lock +++ b/yarn.lock @@ -448,22 +448,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10/102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.0 - resolution: "@isaacs/brace-expansion@npm:5.0.0" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10/cf3b7f206aff12128214a1df764ac8cdbc517c110db85249b945282407e3dfc5c6e66286383a7c9391a059fc8e6e6a8ca82262fc9d2590bd615376141fbebd2d - languageName: node - linkType: hard - "@isaacs/fs-minipass@npm:^4.0.0": version: 4.0.1 resolution: "@isaacs/fs-minipass@npm:4.0.1" @@ -794,6 +778,13 @@ __metadata: languageName: node linkType: hard +"@napi-rs/lzma-linux-x64-gnu@npm:1.5.1": + version: 1.5.1 + resolution: "@napi-rs/lzma-linux-x64-gnu@npm:1.5.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@napi-rs/wasm-runtime@npm:^1.1.4": version: 1.2.5 resolution: "@napi-rs/wasm-runtime@npm:1.2.5" @@ -1272,26 +1263,26 @@ __metadata: linkType: soft "@pezkuwi/util@npm:^14.0.1": - version: 14.0.19 - resolution: "@pezkuwi/util@npm:14.0.19" + version: 14.0.26 + resolution: "@pezkuwi/util@npm:14.0.26" dependencies: - "@pezkuwi/x-bigint": "npm:14.0.19" - "@pezkuwi/x-global": "npm:14.0.19" - "@pezkuwi/x-textdecoder": "npm:14.0.19" - "@pezkuwi/x-textencoder": "npm:14.0.19" + "@pezkuwi/x-bigint": "npm:14.0.26" + "@pezkuwi/x-global": "npm:14.0.26" + "@pezkuwi/x-textdecoder": "npm:14.0.26" + "@pezkuwi/x-textencoder": "npm:14.0.26" "@types/bn.js": "npm:^5.1.6" bn.js: "npm:^5.2.1" tslib: "npm:^2.8.0" - checksum: 10/77c06788c819f6024b21a198e31da6ba0b940a1609c75a141366810e3e418a6a3dfb8c072e4fc3bee6cd66eec4fb18f98a3be2e979fafb4d73160c697a8142f6 + checksum: 10/e06dbc39c134f384acbbd1e82272ec1416d6404637feb187680983dfa8d55844db550ed7482bc3045545cc09193825b5b8a7ba3f3dab7c46e913f81160daeda4 languageName: node linkType: hard -"@pezkuwi/wasm-bridge@npm:7.5.20, @pezkuwi/wasm-bridge@workspace:packages/wasm-bridge": +"@pezkuwi/wasm-bridge@npm:7.5.21, @pezkuwi/wasm-bridge@workspace:packages/wasm-bridge": version: 0.0.0-use.local resolution: "@pezkuwi/wasm-bridge@workspace:packages/wasm-bridge" dependencies: "@pezkuwi/util": "npm:^14.0.1" - "@pezkuwi/wasm-util": "npm:7.5.20" + "@pezkuwi/wasm-util": "npm:7.5.21" "@pezkuwi/x-randomvalues": "npm:^14.0.1" tslib: "npm:^2.7.0" peerDependencies: @@ -1300,7 +1291,7 @@ __metadata: languageName: unknown linkType: soft -"@pezkuwi/wasm-crypto-asmjs@npm:7.5.20, @pezkuwi/wasm-crypto-asmjs@workspace:packages/wasm-crypto-asmjs": +"@pezkuwi/wasm-crypto-asmjs@npm:7.5.21, @pezkuwi/wasm-crypto-asmjs@workspace:packages/wasm-crypto-asmjs": version: 0.0.0-use.local resolution: "@pezkuwi/wasm-crypto-asmjs@workspace:packages/wasm-crypto-asmjs" dependencies: @@ -1311,15 +1302,15 @@ __metadata: languageName: unknown linkType: soft -"@pezkuwi/wasm-crypto-init@npm:7.5.20, @pezkuwi/wasm-crypto-init@workspace:packages/wasm-crypto-init": +"@pezkuwi/wasm-crypto-init@npm:7.5.21, @pezkuwi/wasm-crypto-init@workspace:packages/wasm-crypto-init": version: 0.0.0-use.local resolution: "@pezkuwi/wasm-crypto-init@workspace:packages/wasm-crypto-init" dependencies: "@pezkuwi/util": "npm:^14.0.1" - "@pezkuwi/wasm-bridge": "npm:7.5.20" - "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.20" - "@pezkuwi/wasm-crypto-wasm": "npm:7.5.20" - "@pezkuwi/wasm-util": "npm:7.5.20" + "@pezkuwi/wasm-bridge": "npm:7.5.21" + "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.21" + "@pezkuwi/wasm-crypto-wasm": "npm:7.5.21" + "@pezkuwi/wasm-util": "npm:7.5.21" "@pezkuwi/x-randomvalues": "npm:^14.0.1" tslib: "npm:^2.7.0" peerDependencies: @@ -1328,12 +1319,12 @@ __metadata: languageName: unknown linkType: soft -"@pezkuwi/wasm-crypto-wasm@npm:7.5.20, @pezkuwi/wasm-crypto-wasm@workspace:packages/wasm-crypto-wasm": +"@pezkuwi/wasm-crypto-wasm@npm:7.5.21, @pezkuwi/wasm-crypto-wasm@workspace:packages/wasm-crypto-wasm": version: 0.0.0-use.local resolution: "@pezkuwi/wasm-crypto-wasm@workspace:packages/wasm-crypto-wasm" dependencies: "@pezkuwi/util": "npm:^14.0.1" - "@pezkuwi/wasm-util": "npm:7.5.20" + "@pezkuwi/wasm-util": "npm:7.5.21" tslib: "npm:^2.7.0" peerDependencies: "@pezkuwi/util": "*" @@ -1346,11 +1337,11 @@ __metadata: dependencies: "@noble/hashes": "npm:^1.3.3" "@pezkuwi/util": "npm:^14.0.1" - "@pezkuwi/wasm-bridge": "npm:7.5.20" - "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.20" - "@pezkuwi/wasm-crypto-init": "npm:7.5.20" - "@pezkuwi/wasm-crypto-wasm": "npm:7.5.20" - "@pezkuwi/wasm-util": "npm:7.5.20" + "@pezkuwi/wasm-bridge": "npm:7.5.21" + "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.21" + "@pezkuwi/wasm-crypto-init": "npm:7.5.21" + "@pezkuwi/wasm-crypto-wasm": "npm:7.5.21" + "@pezkuwi/wasm-util": "npm:7.5.21" "@pezkuwi/x-randomvalues": "npm:^14.0.1" tslib: "npm:^2.7.0" peerDependencies: @@ -1359,7 +1350,7 @@ __metadata: languageName: unknown linkType: soft -"@pezkuwi/wasm-util@npm:7.5.20, @pezkuwi/wasm-util@workspace:packages/wasm-util": +"@pezkuwi/wasm-util@npm:7.5.21, @pezkuwi/wasm-util@workspace:packages/wasm-util": version: 0.0.0-use.local resolution: "@pezkuwi/wasm-util@workspace:packages/wasm-util" dependencies: @@ -1370,55 +1361,55 @@ __metadata: languageName: unknown linkType: soft -"@pezkuwi/x-bigint@npm:14.0.19": - version: 14.0.19 - resolution: "@pezkuwi/x-bigint@npm:14.0.19" +"@pezkuwi/x-bigint@npm:14.0.26": + version: 14.0.26 + resolution: "@pezkuwi/x-bigint@npm:14.0.26" dependencies: - "@pezkuwi/x-global": "npm:14.0.19" + "@pezkuwi/x-global": "npm:14.0.26" tslib: "npm:^2.8.0" - checksum: 10/81fd446f1f2369cb4aafd2a8e77f0ff608a2477f84d393974f4fd16e54492a8c27e14dfb95d618623ed60540d90dbc762f209268d0db9ffc3356d4f46ec9d5b3 + checksum: 10/555b92a5a18f72361b18ff2521051a050bfef593ffdebb59bec24f7d5864b808e012e8d04ed59837c218bf2ece228428d63c16b87f2b8bedcb885c425daaa83c languageName: node linkType: hard -"@pezkuwi/x-global@npm:14.0.19": - version: 14.0.19 - resolution: "@pezkuwi/x-global@npm:14.0.19" +"@pezkuwi/x-global@npm:14.0.26": + version: 14.0.26 + resolution: "@pezkuwi/x-global@npm:14.0.26" dependencies: tslib: "npm:^2.8.0" - checksum: 10/277e2a442f3e54ab5a66047e716038acfbf6f7215ab21bc3140aa8d891b2e5743842d63dc3d3bf63f291de62cc6ae74a5c569b8aceceef2a4887dbb69dfdb36e + checksum: 10/d526065deecaccdce472a7a6d3c2e73a9b4ab132457c39c5899565626be00a1260e277872db6f2ede5903a0d101cdeed5adf2106f7bd76f0ef53d66d95e54bcf languageName: node linkType: hard "@pezkuwi/x-randomvalues@npm:^14.0.1": - version: 14.0.19 - resolution: "@pezkuwi/x-randomvalues@npm:14.0.19" + version: 14.0.26 + resolution: "@pezkuwi/x-randomvalues@npm:14.0.26" dependencies: - "@pezkuwi/x-global": "npm:14.0.19" + "@pezkuwi/x-global": "npm:14.0.26" tslib: "npm:^2.8.0" peerDependencies: - "@pezkuwi/util": 14.0.19 + "@pezkuwi/util": 14.0.26 "@pezkuwi/wasm-util": "*" - checksum: 10/502e56f0a352d334479055397ca268130bdaac107c57601fa0fe18df1ba2e6b88abd9fa527fcae27249e3e53c75b94ccf05d2e8e5d7d0dbb9013f8f8afca0344 + checksum: 10/a5426268cd57ae81389f3f4b4aa214b4e4f08666e77805f3f329d4589ec5cf14f3b562955039a81717cb1b8f9339374b645f9e8b0b5f61e47078a2eb117841bb languageName: node linkType: hard -"@pezkuwi/x-textdecoder@npm:14.0.19": - version: 14.0.19 - resolution: "@pezkuwi/x-textdecoder@npm:14.0.19" +"@pezkuwi/x-textdecoder@npm:14.0.26": + version: 14.0.26 + resolution: "@pezkuwi/x-textdecoder@npm:14.0.26" dependencies: - "@pezkuwi/x-global": "npm:14.0.19" + "@pezkuwi/x-global": "npm:14.0.26" tslib: "npm:^2.8.0" - checksum: 10/9fb187addddcc05f02cb51d47f0ad8b61941cfe86da0595e5b0a5d4d18c22ed68bcdf334309aa339b46dee3d5fb3380a82b0f2fbdc7582f39722b70333be76c1 + checksum: 10/fd30940de6e0edd20a3c1080fa6e574859017003b507e27437efbc95f5c4590b3fd27489e7189c2fe1c8f587e822c038be156aa6b75853aab0df627c4194ad9b languageName: node linkType: hard -"@pezkuwi/x-textencoder@npm:14.0.19": - version: 14.0.19 - resolution: "@pezkuwi/x-textencoder@npm:14.0.19" +"@pezkuwi/x-textencoder@npm:14.0.26": + version: 14.0.26 + resolution: "@pezkuwi/x-textencoder@npm:14.0.26" dependencies: - "@pezkuwi/x-global": "npm:14.0.19" + "@pezkuwi/x-global": "npm:14.0.26" tslib: "npm:^2.8.0" - checksum: 10/636f58904cf69353dc919709a15340cc42a1120908d9d5038087833f85050350f900e11fefb52400f9f6af08f3e874b34fd3344397b637ab1d34964c4e0f81a9 + checksum: 10/f64ac10276624ebdbf7e84908675f5f1a630c19ed43efcff3de4992c13d76f13fcce0a5996d30ec9379430117e208570ea40f6cc7f5b089135a92a3882363a8b languageName: node linkType: hard @@ -1536,177 +1527,177 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.57.1" +"@rollup/rollup-android-arm-eabi@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.64.5" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-android-arm64@npm:4.57.1" +"@rollup/rollup-android-arm64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-android-arm64@npm:4.64.5" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.57.1" +"@rollup/rollup-darwin-arm64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-darwin-arm64@npm:4.64.5" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-darwin-x64@npm:4.57.1" +"@rollup/rollup-darwin-x64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-darwin-x64@npm:4.64.5" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.57.1" +"@rollup/rollup-freebsd-arm64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.64.5" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-freebsd-x64@npm:4.57.1" +"@rollup/rollup-freebsd-x64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-freebsd-x64@npm:4.64.5" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.57.1" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.64.5" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.57.1" +"@rollup/rollup-linux-arm-musleabihf@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.64.5" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.57.1" +"@rollup/rollup-linux-arm64-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.64.5" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.57.1" +"@rollup/rollup-linux-arm64-musl@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.64.5" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.57.1" +"@rollup/rollup-linux-loong64-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.64.5" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-loong64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-loong64-musl@npm:4.57.1" +"@rollup/rollup-linux-loong64-musl@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.64.5" conditions: os=linux & cpu=loong64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.57.1" +"@rollup/rollup-linux-ppc64-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.64.5" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.57.1" +"@rollup/rollup-linux-ppc64-musl@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.64.5" conditions: os=linux & cpu=ppc64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.57.1" +"@rollup/rollup-linux-riscv64-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.64.5" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.57.1" +"@rollup/rollup-linux-riscv64-musl@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.64.5" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.57.1" +"@rollup/rollup-linux-s390x-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.64.5" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.57.1" +"@rollup/rollup-linux-x64-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.64.5" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.57.1" +"@rollup/rollup-linux-x64-musl@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.64.5" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-openbsd-x64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-openbsd-x64@npm:4.57.1" +"@rollup/rollup-openbsd-x64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-openbsd-x64@npm:4.64.5" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.57.1" +"@rollup/rollup-openharmony-arm64@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.64.5" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.57.1" +"@rollup/rollup-win32-arm64-msvc@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.64.5" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.57.1" +"@rollup/rollup-win32-ia32-msvc@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.64.5" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.57.1" +"@rollup/rollup-win32-x64-gnu@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.64.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.57.1" +"@rollup/rollup-win32-x64-msvc@npm:4.64.5": + version: 4.64.5 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.64.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1852,14 +1843,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.8": +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.8": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10/25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099 languageName: node linkType: hard -"@types/estree@npm:^1.0.6": +"@types/estree@npm:1.0.9, @types/estree@npm:^1.0.6": version: 1.0.9 resolution: "@types/estree@npm:1.0.9" checksum: 10/16aabfa703b5bdac83f719b07ce92a11b2d3c9b8628eacc92889d8af46cab2d78fc45c7b5378de383d0500585cea5c2f79125eeddfe5fbc6bd6a27eb0c8ccee5 @@ -2614,14 +2605,14 @@ __metadata: linkType: hard "ajv@npm:^8.0.0, ajv@npm:^8.9.0": - version: 8.17.1 - resolution: "ajv@npm:8.17.1" + version: 8.20.0 + resolution: "ajv@npm:8.20.0" dependencies: fast-deep-equal: "npm:^3.1.3" fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33 + checksum: 10/5ce59c0537f4c2aca9a758b412659ec70acb4d5dde971c10ecf21d2e3d799f99acdb4a08e1f5fb2e067c8542930398aae793bb996bb07d3feb81dae22fe2ada9 languageName: node linkType: hard @@ -2864,15 +2855,6 @@ __metadata: languageName: node linkType: hard -"baseline-browser-mapping@npm:^2.9.0": - version: 2.9.19 - resolution: "baseline-browser-mapping@npm:2.9.19" - bin: - baseline-browser-mapping: dist/cli.js - checksum: 10/8d7bbb7fe3d1ad50e04b127c819ba6d059c01ed0d2a7a5fc3327e23a8c42855fa3a8b510550c1fe1e37916147e6a390243566d3ef85bf6130c8ddfe5cc3db530 - languageName: node - linkType: hard - "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -2899,9 +2881,9 @@ __metadata: linkType: hard "bn.js@npm:^5.2.1": - version: 5.2.2 - resolution: "bn.js@npm:5.2.2" - checksum: 10/51ebb2df83b33e5d8581165206e260d5e9c873752954616e5bf3758952b84d7399a9c6d00852815a0aeefb1150a7f34451b62d4287342d457fa432eee869e83e + version: 5.2.5 + resolution: "bn.js@npm:5.2.5" + checksum: 10/10b1ac91e76fd828c1187cf65a9f1a0374e7afb9acd167e19c2d7c4108f6216841007c1e3aef145fa95cc7b3d07f705236a707184af1537667362b3a842d01ac languageName: node linkType: hard @@ -2933,12 +2915,12 @@ __metadata: linkType: hard "brace-expansion@npm:^1.1.7": - version: 1.1.12 - resolution: "brace-expansion@npm:1.1.12" + version: 1.1.21 + resolution: "brace-expansion@npm:1.1.21" dependencies: balanced-match: "npm:^1.0.0" concat-map: "npm:0.0.1" - checksum: 10/12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562 + checksum: 10/6c0ed34107cb3bd3f44c01d90ec8c01baa3ed75b7755617e2e5797b5908bbf20b313edf575612b200a783b84c7d1826aec2f7a2f03de9905bbfae5dc3dea6a95 languageName: node linkType: hard @@ -2951,16 +2933,16 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.3": - version: 3.0.3 - resolution: "braces@npm:3.0.3" +"braces@npm:@pezkuwi/braces@^3.0.4": + version: 3.0.4 + resolution: "@pezkuwi/braces@npm:3.0.4" dependencies: fill-range: "npm:^7.1.1" - checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 + checksum: 10/2f40d440686f51e9d6537900d5a34907e4a40143be6ed74c1de0a700388217352f1ea73c19af6f7cc379c0e62f887c23679430494c1fc974ff865e584aa26eea languageName: node linkType: hard -"browserslist@npm:^4.24.0": +"browserslist@npm:^4.24.0, browserslist@npm:^4.28.1": version: 4.29.3 resolution: "browserslist@npm:4.29.3" dependencies: @@ -2975,21 +2957,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.28.1": - version: 4.28.1 - resolution: "browserslist@npm:4.28.1" - dependencies: - baseline-browser-mapping: "npm:^2.9.0" - caniuse-lite: "npm:^1.0.30001759" - electron-to-chromium: "npm:^1.5.263" - node-releases: "npm:^2.0.27" - update-browserslist-db: "npm:^1.2.0" - bin: - browserslist: cli.js - checksum: 10/64f2a97de4bce8473c0e5ae0af8d76d1ead07a5b05fc6bc87b848678bb9c3a91ae787b27aa98cdd33fc00779607e6c156000bed58fefb9cf8e4c5a183b994cdb - languageName: node - linkType: hard - "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -3094,13 +3061,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001759": - version: 1.0.30001766 - resolution: "caniuse-lite@npm:1.0.30001766" - checksum: 10/0edeb69bdb741c98deda609b75e35e5c31e944537e9873ea89a4cf9e9baa3e158675b224951a6f3a212d1f0c328a8494ace323c551ca1fa58ce4915562c4e4d3 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001813": version: 1.0.30001815 resolution: "caniuse-lite@npm:1.0.30001815" @@ -3726,13 +3686,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.263": - version: 1.5.283 - resolution: "electron-to-chromium@npm:1.5.283" - checksum: 10/3fcede119d5af48372f18c446051909c392e1f85a3823469d5ab9f40a9b1500ae9edfb4c13ff3b9d7d69b925b9a64d06eefd1d5e2d9b16066ff185eb90491158 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.5.439": version: 1.5.452 resolution: "electron-to-chromium@npm:1.5.452" @@ -4527,9 +4480,9 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.1.0 - resolution: "fast-uri@npm:3.1.0" - checksum: 10/818b2c96dc913bcf8511d844c3d2420e2c70b325c0653633f51821e4e29013c2015387944435cd0ef5322c36c9beecc31e44f71b257aeb8e0b333c1d62bb17c2 + version: 3.1.8 + resolution: "fast-uri@npm:3.1.8" + checksum: 10/d3dfa29fd2e5fa2371833699f3f78c975b79f65e52e0ce37604db10dffb85b5b448b5075e93453272cb95fb1c6a759495164e60649ffd69e59ec43f20d44f791 languageName: node linkType: hard @@ -4554,10 +4507,10 @@ __metadata: languageName: node linkType: hard -"fflate@npm:^0.8.2": - version: 0.8.2 - resolution: "fflate@npm:0.8.2" - checksum: 10/2bd26ba6d235d428de793c6a0cd1aaa96a06269ebd4e21b46c8fd1bd136abc631acf27e188d47c3936db090bf3e1ede11d15ce9eae9bffdc4bfe1b9dc66ca9cb +"fflate@npm:^0.8.3": + version: 0.8.3 + resolution: "fflate@npm:0.8.3" + checksum: 10/6ebf528dc9c56e78e715eac615b009b25dc33e15c1920b11ebba44e6d76181c647756a81a23e19247907496b93aa99928514c53090579a65109e026ac2824aa7 languageName: node linkType: hard @@ -4700,15 +4653,15 @@ __metadata: linkType: hard "form-data@npm:^4.0.0": - version: 4.0.5 - resolution: "form-data@npm:4.0.5" + version: 4.0.6 + resolution: "form-data@npm:4.0.6" dependencies: asynckit: "npm:^0.4.0" combined-stream: "npm:^1.0.8" es-set-tostringtag: "npm:^2.1.0" - hasown: "npm:^2.0.2" - mime-types: "npm:^2.1.12" - checksum: 10/52ecd6e927c8c4e215e68a7ad5e0f7c1031397439672fd9741654b4a94722c4182e74cc815b225dcb5be3f4180f36428f67c6dd39eaa98af0dcfdd26c00c19cd + hasown: "npm:^2.0.4" + mime-types: "npm:^2.1.35" + checksum: 10/de6614c8537c92fa5fa3ee7e827758f98f5a9c033f348b7de81855ef36e5cb867e75d9f405d9483ab8d724a4a20d4e79926a299fa8dbba38f530eb659f0884e4 languageName: node linkType: hard @@ -5154,9 +5107,9 @@ __metadata: linkType: hard "http-cache-semantics@npm:^4.1.1": - version: 4.2.0 - resolution: "http-cache-semantics@npm:4.2.0" - checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693 + version: 4.3.0 + resolution: "http-cache-semantics@npm:4.3.0" + checksum: 10/3f7b17565d3a046f069ecfc220d790ccfbef4a94a486502c5d1a23c50d71880393175416845579487a91bfefca393614d16a99bd566d474807a4ebb1139da9cd languageName: node linkType: hard @@ -5324,9 +5277,9 @@ __metadata: linkType: hard "ip-address@npm:^10.0.1": - version: 10.1.0 - resolution: "ip-address@npm:10.1.0" - checksum: 10/a6979629d1ad9c1fb424bc25182203fad739b40225aebc55ec6243bbff5035faf7b9ed6efab3a097de6e713acbbfde944baacfa73e11852bb43989c45a68d79e + version: 10.7.4 + resolution: "ip-address@npm:10.7.4" + checksum: 10/89375f1fa00e5bb4e724498886e06d870c1cc0abbfa9df8cb5ce80f3f179ee49feb0ca96ec54a1512c2303302719975a2ad96e3a8fcc13b4fd836d7f461d3d95 languageName: node linkType: hard @@ -6179,7 +6132,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.34, mime-types@npm:~2.1.35": +"mime-types@npm:^2.1.27, mime-types@npm:^2.1.35, mime-types@npm:~2.1.34, mime-types@npm:~2.1.35": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -6213,16 +6166,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.1": - version: 10.1.1 - resolution: "minimatch@npm:10.1.1" - dependencies: - "@isaacs/brace-expansion": "npm:^5.0.0" - checksum: 10/110f38921ea527022e90f7a5f43721838ac740d0a0c26881c03b57c261354fb9a0430e40b2c56dfcea2ef3c773768f27210d1106f1f2be19cde3eea93f26f45e - languageName: node - linkType: hard - -"minimatch@npm:^10.2.2, minimatch@npm:^10.2.4, minimatch@npm:^10.2.5, minimatch@npm:^9.0.3 || ^10.1.2": +"minimatch@npm:^10.1.1, minimatch@npm:^10.2.2, minimatch@npm:^10.2.4, minimatch@npm:^10.2.5, minimatch@npm:^9.0.3 || ^10.1.2": version: 10.2.6 resolution: "minimatch@npm:10.2.6" dependencies: @@ -6232,11 +6176,11 @@ __metadata: linkType: hard "minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 + checksum: 10/b11a7ee5773cd34c1a0c8436cdbe910901018fb4b6cb47aa508a18d567f6efd2148507959e35fba798389b161b8604a2d704ccef751ea36bd4582f9852b7d63f languageName: node linkType: hard @@ -6454,13 +6398,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.27": - version: 2.0.27 - resolution: "node-releases@npm:2.0.27" - checksum: 10/f6c78ddb392ae500719644afcbe68a9ea533242c02312eb6a34e8478506eb7482a3fb709c70235b01c32fe65625b68dfa9665113f816d87f163bc3819b62b106 - languageName: node - linkType: hard - "node-releases@npm:^2.0.57": version: 2.0.58 resolution: "node-releases@npm:2.0.58" @@ -6798,20 +6735,13 @@ __metadata: linkType: hard "picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc + version: 2.3.2 + resolution: "picomatch@npm:2.3.2" + checksum: 10/b788ef8148a2415b9dec12f0bb350ae6a5830f8f1950e472abc2f5225494debf7d1b75eb031df0ceaea9e8ec3e7bad599e8dbf3c60d61b42be429ba41bff4426 languageName: node linkType: hard -"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5 - languageName: node - linkType: hard - -"picomatch@npm:^4.0.4": +"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3, picomatch@npm:^4.0.4": version: 4.0.7 resolution: "picomatch@npm:4.0.7" checksum: 10/66e1df34bc39c72fa3756be4069f7887ea3e35e94bba1c3f6167763007698cb04b8a0a365161d186fda6e9571a2d3efb606b2966eb6a7dea6252911224dc2f48 @@ -7037,15 +6967,6 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: "npm:^5.1.0" - checksum: 10/4efd1ad3d88db77c2d16588dc54c2b52fd2461e70fe5724611f38d283857094fe09040fa2c9776366803c3152cf133171b452ef717592b65631ce5dc3a2bdafc - languageName: node - linkType: hard - "range-parser@npm:^1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" @@ -7361,37 +7282,40 @@ __metadata: linkType: hard "rollup@npm:^4.9.6": - version: 4.57.1 - resolution: "rollup@npm:4.57.1" + version: 4.64.5 + resolution: "rollup@npm:4.64.5" dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.57.1" - "@rollup/rollup-android-arm64": "npm:4.57.1" - "@rollup/rollup-darwin-arm64": "npm:4.57.1" - "@rollup/rollup-darwin-x64": "npm:4.57.1" - "@rollup/rollup-freebsd-arm64": "npm:4.57.1" - "@rollup/rollup-freebsd-x64": "npm:4.57.1" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.57.1" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.57.1" - "@rollup/rollup-linux-arm64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-arm64-musl": "npm:4.57.1" - "@rollup/rollup-linux-loong64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-loong64-musl": "npm:4.57.1" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-ppc64-musl": "npm:4.57.1" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-riscv64-musl": "npm:4.57.1" - "@rollup/rollup-linux-s390x-gnu": "npm:4.57.1" - "@rollup/rollup-linux-x64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-x64-musl": "npm:4.57.1" - "@rollup/rollup-openbsd-x64": "npm:4.57.1" - "@rollup/rollup-openharmony-arm64": "npm:4.57.1" - "@rollup/rollup-win32-arm64-msvc": "npm:4.57.1" - "@rollup/rollup-win32-ia32-msvc": "npm:4.57.1" - "@rollup/rollup-win32-x64-gnu": "npm:4.57.1" - "@rollup/rollup-win32-x64-msvc": "npm:4.57.1" - "@types/estree": "npm:1.0.8" + "@napi-rs/lzma-linux-x64-gnu": "npm:1.5.1" + "@rollup/rollup-android-arm-eabi": "npm:4.64.5" + "@rollup/rollup-android-arm64": "npm:4.64.5" + "@rollup/rollup-darwin-arm64": "npm:4.64.5" + "@rollup/rollup-darwin-x64": "npm:4.64.5" + "@rollup/rollup-freebsd-arm64": "npm:4.64.5" + "@rollup/rollup-freebsd-x64": "npm:4.64.5" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.64.5" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.64.5" + "@rollup/rollup-linux-arm64-gnu": "npm:4.64.5" + "@rollup/rollup-linux-arm64-musl": "npm:4.64.5" + "@rollup/rollup-linux-loong64-gnu": "npm:4.64.5" + "@rollup/rollup-linux-loong64-musl": "npm:4.64.5" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.64.5" + "@rollup/rollup-linux-ppc64-musl": "npm:4.64.5" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.64.5" + "@rollup/rollup-linux-riscv64-musl": "npm:4.64.5" + "@rollup/rollup-linux-s390x-gnu": "npm:4.64.5" + "@rollup/rollup-linux-x64-gnu": "npm:4.64.5" + "@rollup/rollup-linux-x64-musl": "npm:4.64.5" + "@rollup/rollup-openbsd-x64": "npm:4.64.5" + "@rollup/rollup-openharmony-arm64": "npm:4.64.5" + "@rollup/rollup-win32-arm64-msvc": "npm:4.64.5" + "@rollup/rollup-win32-ia32-msvc": "npm:4.64.5" + "@rollup/rollup-win32-x64-gnu": "npm:4.64.5" + "@rollup/rollup-win32-x64-msvc": "npm:4.64.5" + "@types/estree": "npm:1.0.9" fsevents: "npm:~2.3.2" dependenciesMeta: + "@napi-rs/lzma-linux-x64-gnu": + optional: true "@rollup/rollup-android-arm-eabi": optional: true "@rollup/rollup-android-arm64": @@ -7446,7 +7370,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/0451371339e593967c979e498fac4dfd0ba15fadf0dac96875940796307a00d62ab68460366a65f4872ae8edd9339e3d9501e8e5764c1f23e25e0951f75047c6 + checksum: 10/f2e7d4641a30e29b0ae33bdbae4c063b08a540df098b78c0db6ea8a21495871b61534d2800c50fb0282bc7c24b03df53b410c836a6a04d0fd4ddf1cb06c81200 languageName: node linkType: hard @@ -7457,7 +7381,7 @@ __metadata: "@pezkuwi/dev": "npm:^0.86.0" "@pezkuwi/util": "npm:^14.0.1" "@types/node": "npm:^20.16.1" - fflate: "npm:^0.8.2" + fflate: "npm:^0.8.3" languageName: unknown linkType: soft @@ -7517,7 +7441,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 @@ -7641,15 +7565,6 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.2": - version: 6.0.2 - resolution: "serialize-javascript@npm:6.0.2" - dependencies: - randombytes: "npm:^2.1.0" - checksum: 10/445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58 - languageName: node - linkType: hard - "serve-index@npm:^1.9.2": version: 1.9.2 resolution: "serve-index@npm:1.9.2" @@ -7873,14 +7788,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.2.1": - version: 1.2.1 - resolution: "source-map-js@npm:1.2.1" - checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3 - languageName: node - linkType: hard - -"source-map-js@npm:^1.2.2": +"source-map-js@npm:^1.2.1, source-map-js@npm:^1.2.2": version: 1.2.2 resolution: "source-map-js@npm:1.2.2" checksum: 10/4807c894bb6280c8b84886159b96080e3996f42c6e8015e647881edfd4f955f6024ceebb8bb40d33ce8b106e24b2e29c133575e1c60c01c8aae57a05fdf17761 @@ -8150,37 +8058,54 @@ __metadata: linkType: hard "tar@npm:^7.5.4": - version: 7.5.7 - resolution: "tar@npm:7.5.7" + version: 7.5.22 + resolution: "tar@npm:7.5.22" dependencies: "@isaacs/fs-minipass": "npm:^4.0.0" chownr: "npm:^3.0.0" minipass: "npm:^7.1.2" minizlib: "npm:^3.1.0" yallist: "npm:^5.0.0" - checksum: 10/0d6938dd32fe5c0f17c8098d92bd9889ee0ed9d11f12381b8146b6e8c87bb5aa49feec7abc42463f0597503d8e89e4c4c0b42bff1a5a38444e918b4878b7fd21 + checksum: 10/129606384b3c895f422aaca48bf316357be6dc7aa35c1066c3f06c28acfff0be5b356e1b0a0be7c53a7a8945534ac06cec6d8e296d170d8a09c8bff67b29300e languageName: node linkType: hard "terser-webpack-plugin@npm:^5.3.16": - version: 5.3.16 - resolution: "terser-webpack-plugin@npm:5.3.16" + version: 5.6.1 + resolution: "terser-webpack-plugin@npm:5.6.1" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" jest-worker: "npm:^27.4.5" schema-utils: "npm:^4.3.0" - serialize-javascript: "npm:^6.0.2" terser: "npm:^5.31.1" peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: + "@minify-html/node": + optional: true "@swc/core": optional: true + "@swc/css": + optional: true + "@swc/html": + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true esbuild: optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true uglify-js: optional: true - checksum: 10/09dfbff602acfa114cdd174254b69a04adbc47856021ab351e37982202fd1ec85e0b62ffd5864c98beb8e96aef2f43da490b3448b4541db539c2cff6607394a6 + checksum: 10/75e5ebb6759ccd85f34a5af04c2f1693f61d7691a4a1614f0892a1d2caf29c12395d1d04d4f4014d4c4a77b63f9f7f36ac9241fcbcc24085a7575d4a4310d70f languageName: node linkType: hard @@ -8585,20 +8510,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.2.0": - version: 1.2.3 - resolution: "update-browserslist-db@npm:1.2.3" - dependencies: - escalade: "npm:^3.2.0" - picocolors: "npm:^1.1.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10/059f774300efb4b084a49293143c511f3ae946d40397b5c30914e900cd5691a12b8e61b41dd54ed73d3b56c8204165a0333107dd784ccf8f8c81790bcc423175 - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.3.3": version: 1.3.4 resolution: "update-browserslist-db@npm:1.3.4" @@ -8994,22 +8905,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0": - version: 8.19.0 - resolution: "ws@npm:8.19.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10/26e4901e93abaf73af9f26a93707c95b4845e91a7a347ec8c569e6e9be7f9df066f6c2b817b2d685544e208207898a750b78461e6e8d810c11a370771450c31b - languageName: node - linkType: hard - -"ws@npm:^8.20.0": +"ws@npm:^8.18.0, ws@npm:^8.20.0": version: 8.22.0 resolution: "ws@npm:8.22.0" peerDependencies: