CleverWild
074e6501ec
feat(crypto): expose governance signing context and make shamir_threshold pub const
2026-08-26 13:01:44 +02:00
CleverWild
b2632661f8
feat(db): add proposal and proposal_vote tables
2026-08-26 13:01:44 +02:00
CleverWild
966b4c8828
feat(proto): add governance proposal/vote RPC definitions
2026-08-26 13:01:44 +02:00
CleverWild
b6c91c56eb
housekepping: add fixme for start_bootstrap's operator_id
2026-08-26 13:01:44 +02:00
CleverWild
240fd3eb63
refactor(server::crypto): use fixed-size [u8; 32] and KeyCell throughout seal key API
2026-08-26 13:01:44 +02:00
CleverWild
80ba30d430
fix(server::tests): tighten unseal test seal_key params to &[u8; 32]
2026-08-26 13:01:44 +02:00
CleverWild
59cb65f3e1
feat(server::grpc): wire Shamir committee bootstrap and unseal proto messages
...
Adds DeclareCommittee and ContributePassphrase variants to bootstrap.proto,
ContributePassphrase to unseal.proto, and AwaitingContributions result codes
to both. Implements corresponding inbound converters and outbound reply
mappings. VaultGate handlers delegate to VaultCoordinator.
2026-08-26 13:01:44 +02:00
CleverWild
83075e9df7
feat(server): introduce VaultCoordinator for multi-operator Shamir bootstrap/unseal
...
VaultCoordinator collects operator passphrases, splits the seal key into
Shamir shares on bootstrap (encrypting each share with the operator's
passphrase via Argon2 + XChaCha20-Poly1305), and reconstructs the seal
key from threshold shares on unseal. Adds vsss-rs 5.4.0 and rand_core 0.6
dependencies.
2026-08-26 13:01:44 +02:00
CleverWild
fc7f2b1a03
refactor(server::actors::vault): clean up Bootstrap/TryUnseal, remove Bootstrapping state
...
Bootstrap and TryUnseal now accept a SafeCell<Vec<u8>> seal key directly.
The Bootstrapping intermediate state is removed — multi-operator coordination
is the responsibility of VaultCoordinator, which calls Bootstrap atomically
once all shares are collected.
2026-08-26 13:01:44 +02:00
CleverWild
0695ec96a8
feat(server::crypto): add Shamir secret sharing utilities
...
Wraps vsss_rs Gf256::split_array / combine_array into thin split_key /
combine_shares helpers. Also widens derive_key salt parameter from &[u8;16]
to &[u8] to accommodate the 32-byte share salts.
2026-08-26 13:01:44 +02:00
CleverWild
8159902027
feat(server::db): add share_salt column to operator table
...
Each operator row now stores a 32-byte random salt used to derive the
per-operator share encryption key from their passphrase (Argon2 KDF).
2026-08-26 13:01:44 +02:00
CleverWild
928799fa07
feat(server::actors::evm): implement operator_delete_grant
...
Sets revoked_at on the evm_basic_grant row; returns NotFound if the grant
does not exist. Wires the handler in OperatorSession replacing the todo!().
2026-08-26 13:01:44 +02:00
CleverWild
3d3a4be806
fix(server::peers::operator::auth): make ChallengeContext pub for smlang state machine
...
smlang generates a public state enum whose variants contain ChallengeContext,
requiring the type itself to be fully public. Also tightens the wildcard arm
in client auth to an exhaustive match.
2026-08-26 13:01:44 +02:00
Skipper
28b7276e11
WIP: some things
2026-08-26 13:01:44 +02:00
Skipper
9ca2c4ed64
refactor(server::db): introduced newtype wrappers for entity id's in database
2026-08-26 13:01:44 +02:00
Skipper
ab79959dce
housekeeping(server): deps upgrade + diesel migration to AsyncFnOnce
2026-08-26 13:01:44 +02:00
Skipper
853a038363
fix(server): MacOS build version
2026-08-26 13:01:44 +02:00
Skipper
a31ef99338
housekeeping(server): removed unused deps
2026-08-26 13:01:44 +02:00
Skipper
ec5a8143fb
refactor: rename to to better reflect meaning
2026-08-26 13:01:44 +02:00
Skipper
602be3aa11
merge: feat-lints into main
2026-08-26 13:00:40 +02:00
CleverWild
1d15e04a6b
fix(lints): remove unstable ones
2026-08-26 13:00:40 +02:00
CleverWild
d4084ded35
feat: rustc and clippy linting
2026-08-26 13:00:40 +02:00
Skipper
8392f27ce4
housekeeping(server): clippy warns fix
2026-08-26 13:00:40 +02:00
Skipper
e6724cb8d3
merge: refactor-integrity-check into main
2026-08-26 13:00:40 +02:00
Skipper
6b572d0c86
housekeeping(server): clean too-broad visibility markers and organize imports
2026-08-26 13:00:40 +02:00
Skipper
d7ca0b4fc8
housekeeping(server): dependencies upgrade
2026-08-26 13:00:40 +02:00
Skipper
bf63279f73
merge: refactor-integrity-check into main
2026-08-26 13:00:40 +02:00
Skipper
539265e3b1
docs: updated to new auth challenge format and removed stale TOCTOU race condition note
2026-08-26 13:00:40 +02:00
Skipper
cddf9e02ba
fix(useragent): now using new challenge format
2026-08-26 13:00:40 +02:00
Skipper
270e843598
fix(server::tests): api surface of auth challenge changed
2026-08-26 13:00:40 +02:00
Skipper
0a48839321
refactor(server::{useragent::auth, client::auth}): use random based + timestamp nonce instead of monotonic counter in database
2026-08-26 13:00:40 +02:00
Skipper
f6151293d4
refactor(server): now keeps track of useragents, instead of
2026-08-26 13:00:40 +02:00
Skipper
3bbf713e67
refactor(server::grpc::vault_gate): standard approach using / traits
2026-08-26 13:00:40 +02:00
Skipper
810656702b
fix(server): sending fixed vault state when on stage
2026-08-26 13:00:40 +02:00
hdbg
4823a291f8
WIP: kameo::messages wiring for transport generalization
2026-08-26 13:00:40 +02:00
hdbg
1d9b572565
feat(user-agent): add VaultGate for sealed vault authentication
2026-08-26 13:00:40 +02:00
hdbg
af7e90dcad
fix(server::integrity): vault now differentias between expected/unexpected states for commands more granularly
2026-08-26 13:00:40 +02:00
hdbg
97e6b1950d
fix(useragent): unsafe, but working implementation of ml-dsa
2026-08-26 13:00:40 +02:00
hdbg
d2f41e693c
fix(server::user_agent): useragents now self-sign themselves on bootstrap
2026-08-26 13:00:40 +02:00
hdbg
9650407093
refactor(server): reorganized client/user_agent actors into separate module peers and added event MessageBus
2026-08-26 13:00:40 +02:00
CleverWild
247cb90fbf
refactor(hashing): introduce Hashable derive macro and migrate server types
2026-08-26 13:00:39 +02:00
hdbg
a49baf7386
housekeeping(server): fixed clippy warns
2026-08-26 13:00:39 +02:00
hdbg
6b814f4869
refactor(server): moved shared module crypto into arbiter-crypto
2026-08-26 13:00:39 +02:00
hdbg
4c2e00b56d
refactor(server): migrated auth to ml-dsa
2026-08-26 13:00:39 +02:00
hdbg
13fb31f841
fix(server::bootsrapper): token compare is now constant-time
2026-08-26 13:00:39 +02:00
hdbg
2df25b8641
tests(server::client::auth): integrity envelope insertion for valid paths
2026-08-26 13:00:39 +02:00
hdbg
11ad5df426
feat(server): add integrity verification for client keys
2026-08-26 13:00:39 +02:00
hdbg
bd0a8f3907
tests(server): property-based testing for ordering independency for hash
2026-08-26 13:00:39 +02:00
hdbg
d482ed37aa
fix(server): replaced postcard-based integrity fingerprint with custom trait providing order-independent hashing
2026-08-26 13:00:39 +02:00
hdbg
dcf42b0e4e
fix(server): added chain_id check and covered check_shared_constraints with unit tests
2026-08-26 13:00:39 +02:00