Commit Graph

  • 62fb83469f refactor(custody): drop the single-implementation CustodyStore trait cleverwild/sznwsuou CleverWild 2026-09-11 15:05:28 +02:00
  • d49c39130a fix(vault): apply Shamir custody review feedback feat-shamir-custody CleverWild 2026-09-11 14:13:08 +02:00
  • c722712166 feat(vault)!: add multi-operator Shamir custody CleverWild 2026-09-09 16:42:11 +02:00
  • a80cd39695 fix(mise): migrate from unix only asdf backend to a universal one feat-shamir CleverWild 2026-09-08 12:40:09 +02:00
  • 23183efd0c fix(evm): revoke dependent grants when wallet access is revoked CleverWild 2026-09-08 11:26:37 +02:00
  • 8402691514 fix(vault): derive the recovery operator id from the authenticated peer CleverWild 2026-09-08 10:27:58 +02:00
  • 8d25d6640b feat(operator): authenticate recovery operators as a distinct peer type CleverWild 2026-09-07 18:54:00 +02:00
  • 2b02d4a9b1 fix(bootstrap): keep the token valid until the vault is bootstrapped CleverWild 2026-09-07 17:40:15 +02:00
  • 5ade05d475 fix(vault): require an elapsed wake-up before a recovery share can unseal CleverWild 2026-09-07 17:00:43 +02:00
  • e80dc53b0e fix(vault): read the unseal threshold from the recorded split parameters CleverWild 2026-09-07 16:22:33 +02:00
  • e10cc762d6 fix(proposal): count recovery operators only in electorates they can vote in CleverWild 2026-09-07 15:51:43 +02:00
  • 6e21505a7f fix(operator): soft-revoke wallet access instead of deleting the row CleverWild 2026-09-07 15:18:31 +02:00
  • a37af6bc1c fix(db): enable foreign key enforcement on pooled connections CleverWild 2026-09-07 14:40:34 +02:00
  • 5d811f2ee9 fix(evm): reject unrepresentable grant timestamps instead of dropping the bound CleverWild 2026-09-07 14:35:10 +02:00
  • 5937ae8112 fix(operator): revoke wallet access by access id instead of wallet id CleverWild 2026-09-07 14:35:04 +02:00
  • a9bc533129 test(vault): pin attestation validity across a re-key CleverWild 2026-09-07 13:50:24 +02:00
  • 3907241644 fix(vault): keep the root key row identity across a seal-key re-key CleverWild 2026-09-07 13:33:09 +02:00
  • d916997ef3 fix(crypto): return None from shamir_threshold for an empty committee CleverWild 2026-09-07 13:03:57 +02:00
  • f32da65467 refactor(proposal): put DB access behind a mockable ProposalStore trait CleverWild 2026-08-27 17:58:26 +02:00
  • 0677695b16 Merge pull request 'feat(proto)!: Shamir re-key, governance and bootstrapping vault state' (#102) from feat-shamir-protos into main main feat-shamir-v2 Stas 2026-09-05 12:13:20 +00:00
  • 558910621b merge: rebase on main Skipper 2026-09-05 14:09:46 +02:00
  • d7fe3a6377 housekeeping: actualize AGENTS.md CleverWild 2026-08-28 22:03:11 +02:00
  • 6730534187 deps(server): version bump push-zvwxtnqkumlx Skipper 2026-06-26 12:10:29 +02:00
  • fa2df36fbe refactor(proposal): publish approved proposals on the bus instead of executing them CleverWild 2026-08-27 16:57:22 +02:00
  • 2b2c225b35 chore: normalize line endings to LF CleverWild 2026-08-27 16:49:58 +02:00
  • 9e9672a1b1 refactor(crypto): extract governance vote message and verification helpers CleverWild 2026-08-27 16:44:22 +02:00
  • 0d29d0d532 refactor(db): declare unixepoch instead of formatting a SQL fragment CleverWild 2026-08-27 14:08:48 +02:00
  • e9496da78c perf(proposal): replace the per-proposal tally loop with one grouped query CleverWild 2026-08-27 14:00:14 +02:00
  • c0546fa17f refactor(db): use diesel exists() instead of counting rows CleverWild 2026-08-27 13:50:02 +02:00
  • 71081b6ee7 refactor(proposal): use id newtypes across the governance path CleverWild 2026-08-27 13:42:14 +02:00
  • 8421a09d9f refactor(db!: store the one-off transaction signature by component CleverWild 2026-08-27 12:46:40 +02:00
  • 15b826310b refactor(db): replace the proposal payload blob with typed child tables CleverWild 2026-08-27 00:45:35 +02:00
  • 5698d1cfb3 feat(proposal): reject proposals with an excessive TTL CleverWild 2026-08-26 16:47:12 +02:00
  • 6884a59325 refactor(proposal): type ProposalSummary::kind as ProposalKindTag CleverWild 2026-08-26 16:32:43 +02:00
  • b364d95489 refactor(proposal): drop the Quorum prefix from VoteOutcome variants CleverWild 2026-08-26 15:30:48 +02:00
  • d64478b301 refactor(proposal): replace UpdateShamirParameters with parameterless TriggerRekey CleverWild 2026-08-26 15:26:17 +02:00
  • aa884339f7 refactor(proposal): remove the ApproveServerUpdate proposal kind CleverWild 2026-08-26 14:53:38 +02:00
  • 180f93c1a7 refactor(proposal): derive ProposalKindTag from ProposalKind with strum CleverWild 2026-08-26 14:36:41 +02:00
  • a501283b0c refactor(crypto): replace byte-slice signing contexts with SigningContext enum CleverWild 2026-08-26 13:06:59 +02:00
  • 27925a67ad merge: custom db ids for entities Skipper 2026-08-25 14:50:43 +02:00
  • f881102f0a refactor(proposal): drop the expired status, enforce expiry on every vote CleverWild 2026-08-26 12:49:11 +02:00
  • a0ac63f05c Merge pull request 'security: batch of fixes' (#95) from zeroized-bootstrap-token into main Stas 2026-06-29 18:00:14 +00:00
  • f13c1cf9d1 fix(db): require share_salt to be supplied by the daemon CleverWild 2026-08-25 20:36:19 +02:00
  • 3d4bba3584 test(client-auth): update metadata test to reflect frozen-metadata behavior Clippy Bot 2026-06-28 12:06:06 +02:00
  • f03997ea56 chore(lints): fix regression caused by rust 1.98.0 CleverWild 2026-08-25 20:35:45 +02:00
  • 7cc745182f Merge branch 'main' into zeroized-bootstrap-token Clippy Bot 2026-06-27 13:25:27 +02:00
  • 957c5096df chore(deps): bump kameo version CleverWild 2026-08-24 15:03:10 +02:00
  • 95799e5da8 fix: lints Clippy Bot 2026-06-25 20:09:18 +02:00
  • 8dabec893e fix(user-agent): zombie sessions #74 CleverWild 2026-06-18 16:29:43 +02:00
  • 36249129d1 feat(vault)!: implement full Shamir re-key flow and governance execution (§3.3–§3.5) CleverWild 2026-06-14 15:11:11 +02:00
  • 00426e597d fix!: protect evm_wallet integrity and bind key ciphertext to wallet address CleverWild 2026-06-22 17:53:34 +02:00
  • 3817a080c9 refactor(proposal): replace string kind dispatch with ProposalKindTag enum (strum) CleverWild 2026-06-14 15:02:25 +02:00
  • 10486e6a32 fix(client-auth): freeze client metadata after initial operator approval CleverWild 2026-06-22 16:07:58 +02:00
  • e1d060dd06 feat(vault): add recovery passphrase handling for bootstrap and unseal processes CleverWild 2026-06-13 23:09:49 +02:00
  • 55b5b9361f fix(operator): bind sign-transaction to operator-approved client set CleverWild 2026-06-22 15:58:40 +02:00
  • e121708d28 fix(crypto): handle 1-of-N Shamir split when ordinary_count=1 CleverWild 2026-06-13 23:08:53 +02:00
  • 5824df16b1 fix(integrity): return AttestationStatus::Unavailable for key version mismatch CleverWild 2026-06-22 15:50:43 +02:00
  • 6e3fa736e0 feat(server): recovery operators with sleeping/wakeup mechanism (§3.5/§3.6) CleverWild 2026-06-13 22:31:10 +02:00
  • 39d5dfd2e8 fix(wallet): delete access entries by entry ID instead of wallet ID CleverWild 2026-06-22 14:55:32 +02:00
  • 19a62e7195 feat(server): key-rotation proposals require full quorum (§3.3) CleverWild 2026-06-13 22:20:48 +02:00
  • add058f1d5 security(bootstrap): use SafeCell for token storage instead of zeroize CleverWild 2026-06-19 22:53:28 +02:00
  • 57200cbc50 feat(server): two-operator vault requires at least one recovery share CleverWild 2026-06-13 22:13:07 +02:00
  • 5ecf3508d6 fix(UA): signing endpoint accepts arbitrary client_id CleverWild 2026-06-19 22:21:48 +02:00
  • 291ef2e831 refactor(server): typed pubkey len via u32::try_from in ReplaceOperator CleverWild 2026-06-13 21:53:46 +02:00
  • 2b53023234 security: feat unseal and bootstrap handshake brute-force protection CleverWild 2026-06-18 21:16:38 +02:00
  • d12109c2c9 feat(server): ProposalKind::ApproveOneOffTransaction CleverWild 2026-06-13 21:32:23 +02:00
  • 850e2b8669 fix(bootstrap): token persists on disk with weak file permissions #59 CleverWild 2026-06-18 20:59:24 +02:00
  • 277fb3c92d feat(server): ProposalKind::ApprovePersistentGrant CleverWild 2026-06-13 21:27:41 +02:00
  • 4e11c27129 security(server): use SysRng directly for bootstrap token generation CleverWild 2026-06-18 19:30:31 +02:00
  • 9e42097683 feat(server): ProposalKind::UpdateShamirParameters CleverWild 2026-06-13 21:20:06 +02:00
  • 84e1ef7c85 security(memory): zeroization of bootstrap token CleverWild 2026-06-18 17:16:06 +02:00
  • 25b86b14e9 feat(server): ProposalKind::ReplaceOperator CleverWild 2026-06-13 16:46:04 +02:00
  • 3ff0875c48 Merge pull request 'security(server): bind grant revocation state (revoked_at) to integrity hash' (#83) from security-hash-revoke_at into main Stas 2026-06-11 09:44:28 +00:00
  • ba8748a17b feat(server): ProposalKind ::GrantWalletAccess and ::ApproveServerUpdate CleverWild 2026-06-13 15:51:22 +02:00
  • 2b8acad415 fix: lints CleverWild 2026-06-09 21:07:01 +02:00
  • 3e61d807b4 test(server): governance integration tests CleverWild 2026-06-13 15:06:57 +02:00
  • 49e5f2c7f6 Merge branch 'main' into security-hash-revoke_at CleverWild 2026-06-09 20:58:07 +02:00
  • e6459aade8 feat(server::grpc): wire governance RPCs through operator session CleverWild 2026-06-13 15:06:51 +02:00
  • 7de235f144 fix(smlang::statemachine): macro invocation requires inner types to be public CleverWild 2026-06-08 18:00:52 +02:00
  • f16d0a26e2 feat(server): introduce ProposalManager actor with quorum voting logic CleverWild 2026-06-13 15:06:43 +02:00
  • 074e6501ec feat(crypto): expose governance signing context and make shamir_threshold pub const CleverWild 2026-06-13 15:06:36 +02:00
  • b2632661f8 feat(db): add proposal and proposal_vote tables CleverWild 2026-06-13 15:06:30 +02:00
  • 966b4c8828 feat(proto): add governance proposal/vote RPC definitions CleverWild 2026-06-13 15:06:23 +02:00
  • b6c91c56eb housekepping: add fixme for start_bootstrap's operator_id CleverWild 2026-06-12 22:01:17 +02:00
  • 240fd3eb63 refactor(server::crypto): use fixed-size [u8; 32] and KeyCell throughout seal key API CleverWild 2026-06-12 21:15:07 +02:00
  • 80ba30d430 fix(server::tests): tighten unseal test seal_key params to &[u8; 32] CleverWild 2026-06-12 21:11:48 +02:00
  • 59cb65f3e1 feat(server::grpc): wire Shamir committee bootstrap and unseal proto messages CleverWild 2026-06-12 19:43:17 +02:00
  • 83075e9df7 feat(server): introduce VaultCoordinator for multi-operator Shamir bootstrap/unseal CleverWild 2026-06-12 19:43:09 +02:00
  • fc7f2b1a03 refactor(server::actors::vault): clean up Bootstrap/TryUnseal, remove Bootstrapping state CleverWild 2026-06-12 19:43:02 +02:00
  • 0695ec96a8 feat(server::crypto): add Shamir secret sharing utilities CleverWild 2026-06-12 19:42:56 +02:00
  • 8159902027 feat(server::db): add share_salt column to operator table CleverWild 2026-06-12 19:42:49 +02:00
  • 928799fa07 feat(server::actors::evm): implement operator_delete_grant CleverWild 2026-06-12 19:42:43 +02:00
  • 3d3a4be806 fix(server::peers::operator::auth): make ChallengeContext pub for smlang state machine CleverWild 2026-06-12 19:42:37 +02:00
  • 28b7276e11 WIP: some things Skipper 2026-05-01 10:58:10 +02:00
  • f97b8f9424 feat(grpc): governance contract Skipper 2026-06-26 12:09:37 +02:00
  • 9ca2c4ed64 refactor(server::db): introduced newtype wrappers for entity id's in database Skipper 2026-04-27 13:07:12 +02:00
  • ab79959dce housekeeping(server): deps upgrade + diesel migration to AsyncFnOnce Skipper 2026-05-01 11:00:58 +02:00
  • 853a038363 fix(server): MacOS build version Skipper 2026-04-19 13:47:38 +02:00
  • a31ef99338 housekeeping(server): removed unused deps Skipper 2026-04-19 13:44:09 +02:00
  • ec5a8143fb refactor: rename to to better reflect meaning Skipper 2026-04-19 13:35:18 +02:00