- Add `rekey.proto` with `ContributePassphrase` / `ContributeRecoveryPassphrase` / `RekeyResult`
- Wire `rekey` as a 4th vault stream payload in `vault.proto` and gRPC dispatch
- Add `RekeyRootKey` message to `Vault` actor: generates new random seal key, re-encrypts root key, writes new `root_key_history` row
- Add `StartRekey`, `ContributeRekey`, `ContributeRecoveryRekey` messages to `VaultCoordinator`; `finalize_rekey` uses threshold-1 fast path identical to bootstrap
- `execute_replace_operator` now UPDATEs `operator_identity.public_key` in-place (avoids FK constraint violation), deletes stale `operator` share row, then triggers `StartRekey`
- `execute_update_shamir_parameters` triggers `StartRekey` instead of warning stub
- `ProposalKind::ReplaceOperator` carries `old_operator_id`; encode/decode updated accordingly
- `GlobalActors::spawn` extracts `vault_coordinator` before `Ok(Self { … })` so it can be cloned into `ProposalManager::new`
- Add `handle_rekey` in session handlers forwarding passphrase contributions to `VaultCoordinator`
- Fix test: rename `replace_operator_inserts_identity_row` → `replace_operator_updates_pubkey_and_starts_rekey`, assert count stays 1 and pubkey is updated
31 lines
1.5 KiB
TOML
31 lines
1.5 KiB
TOML
disallowed-methods = [
|
|
# RSA decryption is forbidden: the rsa crate has RUSTSEC-2023-0071 (Marvin Attack).
|
|
# We only use RSA for Windows Hello (KeyCredentialManager) public-key verification — decryption
|
|
# is never required and must not be introduced.
|
|
{ path = "rsa::RsaPrivateKey::decrypt", reason = "RSA decryption is forbidden (RUSTSEC-2023-0071 Marvin Attack). Only PSS signing/verification is permitted." },
|
|
{ path = "rsa::RsaPrivateKey::decrypt_blinded", reason = "RSA decryption is forbidden (RUSTSEC-2023-0071 Marvin Attack). Only PSS signing/verification is permitted." },
|
|
{ path = "rsa::traits::Decryptor::decrypt", reason = "RSA decryption is forbidden (RUSTSEC-2023-0071 Marvin Attack). This blocks decrypt() on rsa::{pkcs1v15,oaep}::DecryptingKey." },
|
|
{ path = "rsa::traits::RandomizedDecryptor::decrypt_with_rng", reason = "RSA decryption is forbidden (RUSTSEC-2023-0071 Marvin Attack). This blocks decrypt_with_rng() on rsa::{pkcs1v15,oaep}::DecryptingKey." },
|
|
]
|
|
|
|
allow-indexing-slicing-in-tests = true
|
|
allow-panic-in-tests = true
|
|
check-inconsistent-struct-field-initializers = true
|
|
suppress-restriction-lint-in-const = true
|
|
allow-renamed-params-for = [
|
|
"core::convert::From",
|
|
"core::convert::TryFrom",
|
|
"core::str::FromStr",
|
|
"kameo::actor::Actor",
|
|
]
|
|
|
|
module-items-ordered-within-groupings = ["UPPER_SNAKE_CASE"]
|
|
source-item-ordering = ["enum"]
|
|
trait-assoc-item-kinds-order = [
|
|
"const",
|
|
"type",
|
|
"fn",
|
|
] # community tested standard
|
|
|
|
too-many-lines-threshold = 150
|