From 9fc8792939934b171c920f97303a254b060997e6 Mon Sep 17 00:00:00 2001 From: Linus Gasser Date: Mon, 24 Feb 2025 21:34:20 +0100 Subject: [PATCH] Fixing things and removing typetag --- Cargo.lock | 112 +++++++++--------- Makefile | 6 +- cli/fledger/src/main.rs | 1 - devbox.json | 3 +- devbox.lock | 48 -------- examples/ping-pong/wasm/Cargo.lock | 2 - flarch/src/broker.rs | 4 +- flbrowser/Cargo.lock | 101 +++++++--------- flcrypto/Cargo.toml | 1 - flcrypto/src/access.rs | 46 +++---- flcrypto/src/signer.rs | 58 +++++---- flcrypto/src/signer_ed25519.rs | 42 ++----- flmacro/src/lib.rs | 22 ++-- flmodules/Cargo.toml | 1 - flmodules/src/dht_storage/broker.rs | 4 +- flmodules/src/dht_storage/realm_view.rs | 8 +- flmodules/src/flo/blob.rs | 4 +- flmodules/src/flo/crypto.rs | 2 +- flmodules/src/flo/flo.rs | 8 +- flmodules/src/flo/storage.rs | 10 +- flmodules/src/network/signal.rs | 1 - flmodules/src/testing/flo.rs | 12 +- flmodules/tests/webpage.rs | 6 +- test/webrtc-libc-wasm/wasm/Cargo.lock | 2 - .../wasm/run/package-lock.json | 15 +-- test/webrtc-libc-wasm/wasm/run/package.json | 2 +- 26 files changed, 224 insertions(+), 297 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eb989986..5872d48e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,7 +73,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "libc 0.2.169", + "libc 0.2.170", ] [[package]] @@ -273,7 +273,7 @@ checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", "cfg-if", - "libc 0.2.169", + "libc 0.2.170", "miniz_oxide", "object", "rustc-demangle", @@ -390,9 +390,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.14" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ "shlex", ] @@ -448,9 +448,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" dependencies = [ "clap_builder", "clap_derive", @@ -468,9 +468,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" dependencies = [ "anstream", "anstyle", @@ -515,7 +515,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", - "libc 0.2.169", + "libc 0.2.170", ] [[package]] @@ -530,7 +530,7 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ - "libc 0.2.169", + "libc 0.2.170", ] [[package]] @@ -803,9 +803,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" [[package]] name = "elliptic-curve" @@ -931,7 +931,6 @@ dependencies = [ "serde_with", "sha2", "thiserror 2.0.11", - "typetag", ] [[package]] @@ -969,7 +968,6 @@ dependencies = [ "async-trait", "bimap", "bitflags 2.8.0", - "btparse", "bytes", "ed25519-compact", "ed25519-dalek", @@ -1165,7 +1163,7 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", - "libc 0.2.169", + "libc 0.2.170", "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -1177,7 +1175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", - "libc 0.2.169", + "libc 0.2.170", "wasi 0.13.3+wasi-0.2.2", "windows-targets", ] @@ -1545,9 +1543,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "block-padding", "generic-array", @@ -1627,9 +1625,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libc" @@ -1667,9 +1665,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "md-5" @@ -1720,9 +1718,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] @@ -1733,7 +1731,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "libc 0.2.169", + "libc 0.2.170", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -1755,7 +1753,7 @@ checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if", - "libc 0.2.169", + "libc 0.2.170", "memoffset", "pin-utils", ] @@ -1882,7 +1880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", - "libc 0.2.169", + "libc 0.2.170", "redox_syscall", "smallvec", "windows-targets", @@ -1896,9 +1894,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pem" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", "serde", @@ -1967,9 +1965,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -2049,7 +2047,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" dependencies = [ "cfg_aliases", - "libc 0.2.169", + "libc 0.2.170", "once_cell", "socket2", "tracing", @@ -2071,7 +2069,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "libc 0.2.169", + "libc 0.2.170", "rand_chacha", "rand_core", ] @@ -2131,9 +2129,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ "bitflags 2.8.0", ] @@ -2224,14 +2222,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.9" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", - "libc 0.2.169", + "libc 0.2.170", "untrusted", "windows-sys 0.52.0", ] @@ -2440,7 +2438,7 @@ dependencies = [ "bitflags 2.8.0", "core-foundation", "core-foundation-sys", - "libc 0.2.169", + "libc 0.2.170", "security-framework-sys", ] @@ -2451,7 +2449,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", - "libc 0.2.169", + "libc 0.2.170", ] [[package]] @@ -2462,9 +2460,9 @@ checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] @@ -2482,9 +2480,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", @@ -2493,9 +2491,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ "itoa", "memchr", @@ -2661,7 +2659,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ - "libc 0.2.169", + "libc 0.2.170", "windows-sys 0.52.0", ] @@ -2892,7 +2890,7 @@ checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", - "libc 0.2.169", + "libc 0.2.170", "mio", "parking_lot", "pin-project-lite", @@ -3097,9 +3095,9 @@ checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "typetag" @@ -3127,9 +3125,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-xid" @@ -3190,9 +3188,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" +checksum = "93d59ca99a559661b96bf898d8fce28ed87935fd2bea9f05983c1464dd6c71b1" dependencies = [ "getrandom 0.3.1", ] @@ -3610,7 +3608,7 @@ dependencies = [ "bytes", "ipnet", "lazy_static", - "libc 0.2.169", + "libc 0.2.170", "log", "nix", "portable-atomic", @@ -3774,9 +3772,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" dependencies = [ "memchr", ] diff --git a/Makefile b/Makefile index cfdd3fcd..17eed67e 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CARGOS := cli/{fledger,flsignal} flarch flbrowser flcrypto flmacro \ flmodules flnode test/signal-fledger \ - examples/ping-pong/{shared,libc} -MAKE_TESTS := + examples/ping-pong/{shared,libc,wasm} +MAKE_TESTS := examples/ping-pong test/{fledger-nodejs,signal-fledger,webrtc-libc-wasm} CRATES := flmacro flarch flmodules flnode SHELL := /bin/bash PKILL = @/bin/ps aux | grep "$1" | egrep -v "(grep|vscode|rust-analyzer)" | awk '{print $$2}' | xargs -r kill @@ -91,7 +91,7 @@ serve_two: kill build_cli cargo run --bin fledger -- --config fledger/flnode2 --log-dht-storage -vv -s ws://localhost:8765 & ) ) serve_local: kill build_local_web serve_two - cd flbrowser && trunk serve --features local & + cd flbrowser && RUST_BACKTRACE=1 trunk serve --features local & sleep 2 open http://localhost:8080 diff --git a/cli/fledger/src/main.rs b/cli/fledger/src/main.rs index b7ca5982..f947624d 100644 --- a/cli/fledger/src/main.rs +++ b/cli/fledger/src/main.rs @@ -148,7 +148,6 @@ async fn main() -> Result<(), Box> { Rules::Update(Condition::Verifier( node.crypto_storage .get_signer() - .as_ref() .verifier() .get_id(), )), diff --git a/devbox.json b/devbox.json index 0bb524d8..861c2a9e 100644 --- a/devbox.json +++ b/devbox.json @@ -19,8 +19,7 @@ "openssh": "latest", "trunk": "latest", "wasm-pack": "latest", - "nodejs": "18", - "vscode": "latest" + "nodejs": "18" }, "shell": { "init_hook": [ diff --git a/devbox.lock b/devbox.lock index e6e998b7..7eee324f 100644 --- a/devbox.lock +++ b/devbox.lock @@ -500,54 +500,6 @@ } } }, - "vscode@latest": { - "last_modified": "2025-02-16T00:50:12Z", - "resolved": "github:NixOS/nixpkgs/1dcdd535fef84d4671129a10e7072d56dca9a4d3#vscode", - "source": "devbox-search", - "version": "1.97.2", - "systems": { - "aarch64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/v42413glqkxd9prq6jbzvwxzzb7vq0ps-vscode-1.97.2", - "default": true - } - ], - "store_path": "/nix/store/v42413glqkxd9prq6jbzvwxzzb7vq0ps-vscode-1.97.2" - }, - "aarch64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/nygpcs0h70wa4381l983xx48r0jlzwld-vscode-1.97.2", - "default": true - } - ], - "store_path": "/nix/store/nygpcs0h70wa4381l983xx48r0jlzwld-vscode-1.97.2" - }, - "x86_64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/lc7aslkkymb6sjvj323dcqw7xfjajjhp-vscode-1.97.2", - "default": true - } - ], - "store_path": "/nix/store/lc7aslkkymb6sjvj323dcqw7xfjajjhp-vscode-1.97.2" - }, - "x86_64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/1wsgcydxm34rbg4n4cm7cy138y0jqvhp-vscode-1.97.2", - "default": true - } - ], - "store_path": "/nix/store/1wsgcydxm34rbg4n4cm7cy138y0jqvhp-vscode-1.97.2" - } - } - }, "wasm-pack@latest": { "last_modified": "2025-02-07T11:26:36Z", "resolved": "github:NixOS/nixpkgs/d98abf5cf5914e5e4e9d57205e3af55ca90ffc1d#wasm-pack", diff --git a/examples/ping-pong/wasm/Cargo.lock b/examples/ping-pong/wasm/Cargo.lock index 2a095f85..f4ad4f73 100644 --- a/examples/ping-pong/wasm/Cargo.lock +++ b/examples/ping-pong/wasm/Cargo.lock @@ -894,7 +894,6 @@ dependencies = [ "serde_with", "sha2", "thiserror 2.0.11", - "typetag", ] [[package]] @@ -915,7 +914,6 @@ dependencies = [ "async-trait", "bimap", "bitflags 2.8.0", - "btparse", "bytes", "ed25519-compact", "ed25519-dalek", diff --git a/flarch/src/broker.rs b/flarch/src/broker.rs index c0a41c46..08b513e0 100644 --- a/flarch/src/broker.rs +++ b/flarch/src/broker.rs @@ -48,12 +48,12 @@ use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; use crate::{nodeids::U256, tasks::spawn_local}; use flmacro::{platform_async_trait, target_send}; -#[cfg(any(target_family = "wasm", feature = "node"))] +#[cfg(target_family = "wasm")] pub mod asy { pub trait Async {} impl Async for T {} } -#[cfg(all(target_family = "unix", not(feature="node")))] +#[cfg(target_family = "unix")] pub mod asy { pub trait Async: Sync + Send {} impl Async for T {} diff --git a/flbrowser/Cargo.lock b/flbrowser/Cargo.lock index 460ae1d0..f0b2b85b 100644 --- a/flbrowser/Cargo.lock +++ b/flbrowser/Cargo.lock @@ -128,9 +128,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" [[package]] name = "arc-swap" @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.13" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ "shlex", ] @@ -744,9 +744,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" [[package]] name = "elliptic-curve" @@ -794,9 +794,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" @@ -893,7 +893,6 @@ dependencies = [ "serde_with", "sha2", "thiserror 2.0.11", - "typetag", ] [[package]] @@ -914,7 +913,6 @@ dependencies = [ "async-trait", "bimap", "bitflags 2.8.0", - "btparse", "bytes", "ed25519-compact", "ed25519-dalek", @@ -1472,9 +1470,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "block-padding", "generic-array", @@ -1554,9 +1552,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "linked-hash-map" @@ -1582,9 +1580,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "md-5" @@ -1635,9 +1633,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] @@ -1811,9 +1809,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pem" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", "serde", @@ -1870,9 +1868,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -1947,9 +1945,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" dependencies = [ "cfg_aliases", "libc", @@ -2014,9 +2012,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ "bitflags 2.8.0", ] @@ -2107,15 +2105,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -2199,9 +2196,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.22" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "once_cell", "ring", @@ -2346,9 +2343,9 @@ checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] @@ -2366,9 +2363,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", @@ -2377,9 +2374,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ "itoa", "memchr", @@ -2499,9 +2496,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] name = "smol_str" @@ -2522,12 +2519,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "spki" version = "0.7.3" @@ -2848,9 +2839,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.23" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap 2.7.1", "serde", @@ -2960,9 +2951,9 @@ checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "typetag" @@ -2990,9 +2981,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-xid" @@ -3059,9 +3050,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" +checksum = "93d59ca99a559661b96bf898d8fce28ed87935fd2bea9f05983c1464dd6c71b1" dependencies = [ "getrandom 0.3.1", ] @@ -3642,9 +3633,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" dependencies = [ "memchr", ] diff --git a/flcrypto/Cargo.toml b/flcrypto/Cargo.toml index 9e4a058e..d6d152d6 100644 --- a/flcrypto/Cargo.toml +++ b/flcrypto/Cargo.toml @@ -19,7 +19,6 @@ serde = { version = "1", features = ["derive"] } serde_with = { version = "3", features = ["hex", "json", "base64"] } sha2 = "0.10" thiserror = "2" -typetag = "0.2" [dev-dependencies] flcrypto = { path=".", features = ["testing"]} diff --git a/flcrypto/src/access.rs b/flcrypto/src/access.rs index ef757ea6..7c1fbb6b 100644 --- a/flcrypto/src/access.rs +++ b/flcrypto/src/access.rs @@ -92,7 +92,7 @@ pub struct CalcSignature { msg: U256, condition_hash: Vec, badges: HashMap, Condition>, - signatures: HashMap, Signature)>>, + signatures: HashMap>, } impl CalcSignature { @@ -108,7 +108,7 @@ impl CalcSignature { pub fn from_cond_badges( cond: &Condition, badges: HashMap, Condition>, - signatures: HashMap, Signature)>>, + signatures: HashMap>, msg: Bytes, ) -> Result { let mut cs = Self::new(); @@ -228,7 +228,7 @@ impl BadgeSignature { } } - pub fn sign(&mut self, signer: &dyn Signer) -> Result<(), SignerError> { + pub fn sign(&mut self, signer: &Signer) -> Result<(), SignerError> { let verifier = signer.verifier(); let signature = signer.sign(&self.cs.msg.bytes())?; self.cs @@ -316,8 +316,8 @@ mod test { } struct SVID { - signer: Box, - _verifier: Box, + signer: Signer, + _verifier: Verifier, condition: Condition, id: KeyPairID, // badge: Box, @@ -325,7 +325,7 @@ mod test { impl SVID { fn new() -> Self { - let signer = SignerEd25519::new_box(); + let signer = SignerEd25519::new(); let condition = Condition::Verifier(signer.verifier().get_id()); Self { _verifier: signer.verifier(), @@ -340,7 +340,7 @@ mod test { self.condition.clone() } - // fn signer(&self) -> Box { + // fn signer(&self) -> Signer { // self.signer.clone() // } } @@ -396,9 +396,9 @@ mod test { assert_ne!(sig_prep0.cs.msg, sig_prep1.cs.msg); // Wrong and correct signer - sig_prep0.sign(&*svid1.signer)?; + sig_prep0.sign(&svid1.signer)?; assert!(!sig_prep0.is_final()?); - sig_prep0.sign(&*svid0.signer)?; + sig_prep0.sign(&svid0.signer)?; assert!(sig_prep0.is_final()?); // Wrong message @@ -418,14 +418,14 @@ mod test { ); // Signature from different message - sig_prep0_bad.sign(&*svid0.signer)?; + sig_prep0_bad.sign(&svid0.signer)?; assert!(sig_prep0_bad.is_final()?); let mut sig_clone = sig_prep0.clone(); sig_clone.cs.signatures = sig_prep0_bad.cs.signatures.clone(); assert!(!sig_clone.is_final()?); // Signature from different signer - sig_prep1.sign(&*svid1.signer)?; + sig_prep1.sign(&svid1.signer)?; assert!(sig_prep1.is_final()?); let mut sig_clone = sig_prep0.clone(); sig_clone.cs.signatures = sig_prep1.cs.signatures.clone(); @@ -466,42 +466,42 @@ mod test { // Wrong signer vs. correct signer assert!(!sig_prep0.is_final()?); - sig_prep0.sign(&*svid2.signer)?; + sig_prep0.sign(&svid2.signer)?; assert!(!sig_prep0.is_final()?); - sig_prep0.sign(&*svid0.signer)?; + sig_prep0.sign(&svid0.signer)?; assert!(sig_prep0.is_final()?); // Too many signers (is accepted) - sig_prep0.sign(&*svid1.signer)?; + sig_prep0.sign(&svid1.signer)?; assert!(sig_prep0.is_final()?); // Second signer let mut sig_prep0 = badge0.start_signature_no_badge(&msg)?; - sig_prep0.sign(&*svid1.signer)?; + sig_prep0.sign(&svid1.signer)?; assert!(sig_prep0.is_final()?); // Too few signers vs. enough signers - sig_prep1.sign(&*svid0.signer)?; + sig_prep1.sign(&svid0.signer)?; assert!(!sig_prep1.is_final()?); - sig_prep1.sign(&*svid1.signer)?; + sig_prep1.sign(&svid1.signer)?; assert!(sig_prep1.is_final()?); // Different signers - sig_prep2.sign(&*svid0.signer)?; - sig_prep2.sign(&*svid1.signer)?; + sig_prep2.sign(&svid0.signer)?; + sig_prep2.sign(&svid1.signer)?; assert!(sig_prep2.is_final()?); for (_, sig) in &mut sig_prep2.cs.signatures { *sig = None; } assert!(!sig_prep2.is_final()?); - sig_prep2.sign(&*svid0.signer)?; - sig_prep2.sign(&*svid2.signer)?; + sig_prep2.sign(&svid0.signer)?; + sig_prep2.sign(&svid2.signer)?; assert!(sig_prep2.is_final()?); for (_, sig) in &mut sig_prep2.cs.signatures { *sig = None; } - sig_prep2.sign(&*svid1.signer)?; - sig_prep2.sign(&*svid2.signer)?; + sig_prep2.sign(&svid1.signer)?; + sig_prep2.sign(&svid2.signer)?; assert!(sig_prep2.is_final()?); Ok(()) diff --git a/flcrypto/src/signer.rs b/flcrypto/src/signer.rs index f130b721..53c6e0b7 100644 --- a/flcrypto/src/signer.rs +++ b/flcrypto/src/signer.rs @@ -1,9 +1,11 @@ use bytes::Bytes; -use flarch::{broker::asy::Async, nodeids::U256}; +use flarch::nodeids::U256; use flmacro::AsU256; use serde::{Deserialize, Serialize}; use thiserror::Error; +use crate::signer_ed25519::{SignerEd25519, VerifierEd25519}; + pub type Signature = Bytes; #[derive(Debug, Error, PartialEq)] @@ -19,34 +21,46 @@ pub enum SignerError { #[derive(AsU256, Serialize, Deserialize, Clone, PartialEq, Eq, Hash)] pub struct KeyPairID(U256); -#[typetag::serde(tag = "type")] -pub trait Signer: std::fmt::Debug { - fn sign(&self, msg: &Bytes) -> Result; +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] +pub enum Signer { + Ed25519(SignerEd25519), +} - fn verifier(&self) -> Box; +impl Signer { + pub fn sign(&self, msg: &Bytes) -> Result { + match self { + Signer::Ed25519(sig) => sig.sign(msg), + } + } - fn get_id(&self) -> KeyPairID; + pub fn verifier(&self) -> Verifier { + match self { + Signer::Ed25519(sig) => sig.verifier(), + } + } - fn clone(&self) -> Box; + pub fn get_id(&self) -> KeyPairID { + match self { + Signer::Ed25519(sig) => sig.get_id(), + } + } } -#[typetag::serde(tag = "type")] -pub trait Verifier: std::fmt::Debug + Async { - fn verify(&self, msg: &Bytes, sig: &Bytes) -> Result<(), SignerError>; - - fn get_id(&self) -> KeyPairID; - - fn clone_self(&self) -> Box; +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] +pub enum Verifier { + Ed25519(VerifierEd25519), } -impl Clone for Box { - fn clone(&self) -> Self { - self.clone_self() +impl Verifier { + pub fn verify(&self, msg: &Bytes, sig: &Bytes) -> Result<(), SignerError> { + match self { + Verifier::Ed25519(ver) => ver.verify(msg, sig), + } } -} -impl PartialEq for Box{ - fn eq(&self, other: &Self) -> bool { - self.get_id() == other.get_id() + pub fn get_id(&self) -> KeyPairID { + match self { + Verifier::Ed25519(ver) => ver.get_id(), + } } -} \ No newline at end of file +} diff --git a/flcrypto/src/signer_ed25519.rs b/flcrypto/src/signer_ed25519.rs index 7287b51b..05b59d3b 100644 --- a/flcrypto/src/signer_ed25519.rs +++ b/flcrypto/src/signer_ed25519.rs @@ -3,52 +3,42 @@ use ed25519_dalek::ed25519::signature::SignerMut; use rand::rngs::OsRng; use serde::{Deserialize, Serialize}; -use super::signer::{Signature, Signer, SignerError, KeyPairID, Verifier}; +use super::signer::{KeyPairID, Signature, Signer, SignerError, Verifier}; -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] pub struct SignerEd25519 { keypair: ed25519_dalek::SigningKey, } impl SignerEd25519 { - pub fn new_box() -> Box { - Box::new(SignerEd25519 { + pub fn new() -> Signer { + Signer::Ed25519(Self { keypair: ed25519_dalek::SigningKey::generate(&mut OsRng), }) } -} -#[typetag::serde] -impl Signer for SignerEd25519 { - fn sign(&self, msg: &Bytes) -> Result { + pub fn sign(&self, msg: &Bytes) -> Result { Ok(self.keypair.clone().sign(msg).to_bytes().to_vec().into()) } - fn verifier(&self) -> Box { - Box::new(VerifierEd25519 { + pub fn verifier(&self) -> Verifier { + Verifier::Ed25519(VerifierEd25519 { verifier: self.keypair.verifying_key(), }) } - fn get_id(&self) -> KeyPairID { + pub fn get_id(&self) -> KeyPairID { (*self.verifier().get_id()).into() } - - fn clone(&self) -> Box { - Box::new(Self { - keypair: self.keypair.clone(), - }) - } } -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] pub struct VerifierEd25519 { verifier: ed25519_dalek::VerifyingKey, } -#[typetag::serde] -impl Verifier for VerifierEd25519 { - fn verify(&self, msg: &Bytes, sig: &Bytes) -> Result<(), SignerError> { +impl VerifierEd25519 { + pub fn verify(&self, msg: &Bytes, sig: &Bytes) -> Result<(), SignerError> { let s: ed25519_dalek::Signature = TryInto::<[u8; 64]>::try_into(sig.as_ref()).unwrap().into(); match self.verifier.verify_strict(msg, &s) { @@ -57,18 +47,12 @@ impl Verifier for VerifierEd25519 { } } - fn get_id(&self) -> KeyPairID { + pub fn get_id(&self) -> KeyPairID { KeyPairID::hash_domain_parts( "ican.re.fledg.flmodules.crypto.verifier_ed25519", &[self.verifier.as_bytes()], ) } - - fn clone_self(&self) -> Box { - Box::new(VerifierEd25519 { - verifier: self.verifier.clone(), - }) - } } #[cfg(test)] @@ -79,7 +63,7 @@ mod test { #[test] fn test_ed25519() -> Result<(), Box> { - let signer = SignerEd25519::new_box(); + let signer = SignerEd25519::new(); let verifier = signer.verifier(); let msg1 = Bytes::from("message1"); let msg2 = Bytes::from("message2"); diff --git a/flmacro/src/lib.rs b/flmacro/src/lib.rs index 74d6021b..bc768fb9 100644 --- a/flmacro/src/lib.rs +++ b/flmacro/src/lib.rs @@ -314,20 +314,16 @@ pub fn target_send(_attr: TokenStream, input: TokenStream) -> TokenStream { } if let Ok(input_type) = syn::parse::(input.clone()) { - #[cfg(all(target_family = "unix", not(feature = "node")))] - { - let mut type_as_string = quote! {#input_type}.to_string(); - type_as_string.insert_str(type_as_string.len() - 3, " + Send".into()); - let modified_type: syn::ItemType = - syn::parse_str(&type_as_string).expect("Failed to parse modified type"); - - return quote! { - #modified_type - } - .into(); - } - #[cfg(all(any(target_family = "unix"), feature = "node"))] + let mut type_as_string = quote! {#input_type}.to_string(); + type_as_string.insert_str(type_as_string.len() - 3, " + Send".into()); + let modified_type: syn::ItemType = + syn::parse_str(&type_as_string).expect("Failed to parse modified type"); + return quote! { + #[cfg(target_family = "unix")] + #modified_type + + #[cfg(target_family = "wasm")] #input_type } .into(); diff --git a/flmodules/Cargo.toml b/flmodules/Cargo.toml index 4fdd2a66..173e1730 100644 --- a/flmodules/Cargo.toml +++ b/flmodules/Cargo.toml @@ -20,7 +20,6 @@ flmacro = { path = "../flmacro", version = "0.9" } async-recursion = "1" bimap = "0.6" -btparse = "0.2" getrandom = { version = "0.2" } serde = { version = "1", features = ["derive"] } serde_derive = "1" diff --git a/flmodules/src/dht_storage/broker.rs b/flmodules/src/dht_storage/broker.rs index 832d3e8d..8c5b18b8 100644 --- a/flmodules/src/dht_storage/broker.rs +++ b/flmodules/src/dht_storage/broker.rs @@ -219,7 +219,7 @@ impl DHTStorage { async fn send_wait( &mut self, msg_in: DHTStorageIn, - check: &(dyn Fn(DHTStorageOut) -> Option + Send + Sync), + check: &(dyn Fn(DHTStorageOut) -> Option + Sync), ) -> Result { // using the internal broker directly to avoid one conversion. let dur = Duration::from_millis(self.config.timeout); @@ -282,7 +282,7 @@ impl DHTStorage { #[derive(Default, Debug)] struct BadgeSig { badges: HashMap, Condition>, - signatures: HashMap, Signature)>>, + signatures: HashMap>, } #[cfg(test)] diff --git a/flmodules/src/dht_storage/realm_view.rs b/flmodules/src/dht_storage/realm_view.rs index 4f5454a7..d72bdbe4 100644 --- a/flmodules/src/dht_storage/realm_view.rs +++ b/flmodules/src/dht_storage/realm_view.rs @@ -132,7 +132,7 @@ impl RealmView { pub async fn set_realm_http( &mut self, id: FloID, - signers: &[&dyn Signer], + signers: &[Signer], ) -> Result<(), RVError> { self.set_realm_service("http", id, signers).await } @@ -141,14 +141,14 @@ impl RealmView { &mut self, name: &str, id: FloID, - signers: &[&dyn Signer], + signers: &[Signer], ) -> Result<(), RVError> { let update = self.realm.edit(|r| r.set_service(name, id)); let mut u_s = self .dht_storage .get_update_sign(&self.realm, update, None) .await?; - for &signer in signers { + for signer in signers { u_s.sign(signer)?; } self.realm.apply_update(u_s)?; @@ -184,7 +184,7 @@ impl RealmView { pub async fn set_realm_tag( &mut self, id: FloID, - signers: &[&dyn Signer], + signers: &[Signer], ) -> Result<(), RVError> { self.set_realm_service("tag", id, signers).await } diff --git a/flmodules/src/flo/blob.rs b/flmodules/src/flo/blob.rs index 1a75dbda..da3eb355 100644 --- a/flmodules/src/flo/blob.rs +++ b/flmodules/src/flo/blob.rs @@ -224,7 +224,7 @@ mod test { Condition::Verifier(wallet.get_verifier().get_id()), flb.rules().clone(), vec![Box::new(badge.clone())], - &[&*wallet.get_signer()], + &[&mut wallet.get_signer()], )?; assert_eq!(1, flb.version()); @@ -237,7 +237,7 @@ mod test { Condition::Verifier(wallet.get_verifier().get_id()), flb.rules().clone(), vec![Box::new(badge.clone())], - &[&*wallet.get_signer()], + &[&mut wallet.get_signer()], )?; assert_eq!(2, flb.version()); diff --git a/flmodules/src/flo/crypto.rs b/flmodules/src/flo/crypto.rs index d18e0b0e..c1a6b883 100644 --- a/flmodules/src/flo/crypto.rs +++ b/flmodules/src/flo/crypto.rs @@ -14,7 +14,7 @@ use super::flo::FloWrapper; pub struct AceID(U256); /// A Verifier is a public key which can verify a signature from a private key. -pub type FloVerifier = FloWrapper>; +pub type FloVerifier = FloWrapper; /// A badge wraps a Condition with a fixed ID. pub type FloBadge = FloWrapper; diff --git a/flmodules/src/flo/flo.rs b/flmodules/src/flo/flo.rs index c904be83..e574612d 100644 --- a/flmodules/src/flo/flo.rs +++ b/flmodules/src/flo/flo.rs @@ -83,7 +83,7 @@ pub struct HistoryStep { rules: Rules, // It is OK to have the verifiers here, because their IDs are in the hash of the FloID. // So an attacker cannot change the verifiers to create a wrong signature. - verifiers: Vec>, + verifiers: Vec, // All signatures to prove evolution to the next version. signatures: HashMap, } @@ -295,11 +295,11 @@ impl FloWrapper { cond: Condition, rules: Rules, badges: Vec>, - signers: &[&dyn Signer], + signers: &[&mut Signer], ) -> Result { let update = self.edit(edit); let mut u_s = self.start_sign(cond, rules, badges, update)?; - for &signer in signers { + for signer in signers { u_s.sign(signer)?; } self.apply_update(u_s) @@ -325,7 +325,7 @@ impl UpdateSign { } } - pub fn sign(&mut self, signer: &dyn Signer) -> Result<(), SignerError> { + pub fn sign(&mut self, signer: &Signer) -> Result<(), SignerError> { self.signatures.sign(signer) } } diff --git a/flmodules/src/flo/storage.rs b/flmodules/src/flo/storage.rs index b686d296..9b1159d3 100644 --- a/flmodules/src/flo/storage.rs +++ b/flmodules/src/flo/storage.rs @@ -14,7 +14,7 @@ pub struct CryptoStorage { #[serde(skip)] ds: Option>, realm_id: RealmID, - pub signers: Vec>, + pub signers: Vec, pub aces: Vec, } @@ -29,15 +29,15 @@ impl CryptoStorage { } } - pub fn get_signer(&mut self) -> Box { + pub fn get_signer(&mut self) -> Signer { if let Some(signer) = self.signers.first() { return (*signer).clone(); } self.add_signer() } - pub fn add_signer(&mut self) -> Box { - self.signers.push(SignerEd25519::new_box()); + pub fn add_signer(&mut self) -> Signer { + self.signers.push(SignerEd25519::new()); self.store(); self.get_signer() } @@ -51,7 +51,7 @@ impl CryptoStorage { pub fn add_ace(&mut self) -> FloACE { let signer = self.get_signer(); - let cond = Condition::Verifier((*signer).verifier().get_id()); + let cond = Condition::Verifier(signer.verifier().get_id()); let ace = ACE::new(Some(cond.clone()), HashMap::new(), vec![]); self.aces.push( FloACE::from_type(self.realm_id.clone(), Rules::Update(cond), ace) diff --git a/flmodules/src/network/signal.rs b/flmodules/src/network/signal.rs index 8f2145df..d1ff62af 100644 --- a/flmodules/src/network/signal.rs +++ b/flmodules/src/network/signal.rs @@ -221,7 +221,6 @@ impl SignalServer { } fn ws_list_ids(&mut self, id: usize) -> Vec { - log::info!("Current list is: {:?}", self.info.values()); self.send_msg_node( id, WSSignalMessageToNode::ListIDsReply(self.info.values().cloned().collect()), diff --git a/flmodules/src/testing/flo.rs b/flmodules/src/testing/flo.rs index 03eec482..d74964c1 100644 --- a/flmodules/src/testing/flo.rs +++ b/flmodules/src/testing/flo.rs @@ -38,8 +38,8 @@ pub enum WalletError { #[derive(Default)] pub struct Wallet { realm_id: RealmID, - pub signer: Option>, - pub verifier: Option>, + pub signer: Option, + pub verifier: Option, pub verifier_flo: Option, pub badge_condition: Option, pub badge_rules: Option, @@ -59,11 +59,11 @@ impl Wallet { Self::default() } - pub fn get_signer(&mut self) -> Box { - self.signer.get_or_insert(SignerEd25519::new_box()).clone() + pub fn get_signer(&mut self) -> Signer { + self.signer.get_or_insert(SignerEd25519::new()).clone() } - pub fn get_verifier(&mut self) -> Box { + pub fn get_verifier(&mut self) -> Verifier { let signer = self.get_signer(); self.verifier.get_or_insert(signer.verifier()).clone() } @@ -190,7 +190,7 @@ impl Clone for Wallet { fn clone(&self) -> Self { Self { realm_id: self.realm_id.clone(), - signer: self.signer.as_deref().map(|s| s.clone()), + signer: self.signer.clone(), verifier: self.verifier.clone(), verifier_flo: self.verifier_flo.clone(), badge_condition: self.badge_condition.clone(), diff --git a/flmodules/tests/webpage.rs b/flmodules/tests/webpage.rs index 49922fa7..1c0dbc21 100644 --- a/flmodules/tests/webpage.rs +++ b/flmodules/tests/webpage.rs @@ -271,7 +271,7 @@ async fn run_test() -> Result<(), Box> { root_wallet.get_badge_condition(), realm.rules().clone(), vec![], - &[&*root_nodes[0].wallet.get_signer()], + &[&mut root_nodes[0].wallet.get_signer()], )?; root_nodes[0].dht_storage.store_flo(realm.flo().clone())?; @@ -296,7 +296,7 @@ async fn run_test() -> Result<(), Box> { root_wallet.get_badge_condition(), realm.rules().clone(), vec![], - &[&*root_nodes[0].wallet.get_signer()], + &[&mut root_nodes[0].wallet.get_signer()], )?; node_4.dht_storage.store_flo(homepage.clone().into())?; node_4.dht_storage.store_flo(realm.clone().into())?; @@ -340,7 +340,7 @@ async fn test_realm_view() -> Result<(), Box> { .await?; let root_http = rv_root.create_http("fledger", INDEX_HTML.to_string(), None, None)?; - let signers = vec![&*(root_nodes[0].wallet.signer.as_deref().unwrap())]; + let signers = vec![root_nodes[0].wallet.signer.clone().unwrap()]; rv_root.set_realm_http(root_http.flo_id(), &signers).await?; let root_tag = rv_root.create_tag("fledger", None, None)?; rv_root.set_realm_tag(root_tag.flo_id(), &signers).await?; diff --git a/test/webrtc-libc-wasm/wasm/Cargo.lock b/test/webrtc-libc-wasm/wasm/Cargo.lock index 177c245b..edd5169c 100644 --- a/test/webrtc-libc-wasm/wasm/Cargo.lock +++ b/test/webrtc-libc-wasm/wasm/Cargo.lock @@ -865,7 +865,6 @@ dependencies = [ "serde_with", "sha2", "thiserror 2.0.11", - "typetag", ] [[package]] @@ -886,7 +885,6 @@ dependencies = [ "async-trait", "bimap", "bitflags 2.8.0", - "btparse", "bytes", "ed25519-compact", "ed25519-dalek", diff --git a/test/webrtc-libc-wasm/wasm/run/package-lock.json b/test/webrtc-libc-wasm/wasm/run/package-lock.json index 4d9d830c..30ce772c 100644 --- a/test/webrtc-libc-wasm/wasm/run/package-lock.json +++ b/test/webrtc-libc-wasm/wasm/run/package-lock.json @@ -9,15 +9,16 @@ "version": "0.1.0", "license": "AGPLv3", "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.9", + "@mapbox/node-pre-gyp": "^1.0.11", "@roamhq/wrtc": "^0.8.0", "ws": "^7.4.3" } }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -723,9 +724,9 @@ }, "dependencies": { "@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "requires": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", diff --git a/test/webrtc-libc-wasm/wasm/run/package.json b/test/webrtc-libc-wasm/wasm/run/package.json index 14bfd746..70491eb7 100644 --- a/test/webrtc-libc-wasm/wasm/run/package.json +++ b/test/webrtc-libc-wasm/wasm/run/package.json @@ -20,7 +20,7 @@ "main": "wasm.js", "types": "wasm.d.ts", "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.9", + "@mapbox/node-pre-gyp": "^1.0.11", "@roamhq/wrtc": "^0.8.0", "ws": "^7.4.3" }