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
f97b8f9424
feat(grpc): governance contract
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
e4db36f145
docs: move to folder and update to new challenge payload
2026-08-26 13:00:40 +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
d8a03fcdbe
Merge pull request 'refactor-integrity-check' ( #90 ) from refactor-integrity-check into main
...
Reviewed-on: #90
2026-08-26 13:00:40 +02:00
CleverWild
d4084ded35
feat: rustc and clippy linting
2026-08-26 13:00:40 +02:00
6221debd84
Merge pull request 'housekeeping(server): dependencies upgrade' ( #89 ) from push-zmvtzuwrnyyv into main
...
Reviewed-on: #89
2026-08-26 13:00:40 +02:00
Skipper
8392f27ce4
housekeeping(server): clippy warns fix
2026-08-26 13:00:40 +02:00
96b4eb1d98
Merge pull request 'refactor(hashing): introduce Hashable derive macro and migrate server types' ( #82 ) from hashing-proc-macro into main
...
Reviewed-on: #82
Reviewed-by: Stas <business@jexter.tech >
2026-08-26 13:00:40 +02:00
Skipper
d7ca0b4fc8
housekeeping(server): dependencies upgrade
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
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
100c257e95
Merge pull request 'Post-quantum crypto and better useragent security' ( #80 ) from push-xrxykvkuxpsv into main
...
Reviewed-on: #80
2026-08-26 13:00:39 +02:00
CleverWild
247cb90fbf
refactor(hashing): introduce Hashable derive macro and migrate server types
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
a49baf7386
housekeeping(server): fixed clippy warns
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
6b814f4869
refactor(server): moved shared module crypto into arbiter-crypto
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
97b7b483ff
docs: ml-dsa scheme everywhere
2026-08-26 13:00:39 +02:00
307822187c
Merge pull request 'fix(server): replaced postcard-based integrity fingerprint with custom trait providing order-independent hashing' ( #77 ) from push-opwuyuwxknyo into main
...
Reviewed-on: #77
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
dcf42b0e4e
fix(server): added chain_id check and covered check_shared_constraints with unit tests
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