Stop vault creation when a vault's metadata cannot be read (closes #140)
check / check (push) Waiting to run
check / check (push) Waiting to run
GetNextDerivationIndex passed over a vault whose vault-metadata.json could not be read or parsed, so the next vault made from the same mnemonic could get that vault's derivation index and so the same long-term key. It now returns an error naming the file, so vault create and init stop with that error and leave the state directory as it was. A vault directory with no metadata file is still skipped. The regression test breaks one vault's metadata, once with content that does not parse and once with a test filesystem that fails to open it, and requires CreateVault with the same mnemonic to fail, naming the file, and leave no new vault. Model: opus-5-5
This commit is contained in:
@@ -550,7 +550,11 @@ secret decrypt encryption/mykey --input document.txt.age --output document.txt
|
||||
### Vault Management
|
||||
|
||||
- **Derivation Index**: Each vault uses a unique derivation index from the
|
||||
mnemonic, and thus a unique key pair
|
||||
mnemonic, and thus a unique key pair; creating a vault (`secret init` and
|
||||
`secret vault create`) fails, with an error naming the file, when any vault's
|
||||
`vault-metadata.json` exists but cannot be read or parsed; a vault directory
|
||||
with no `vault-metadata.json` is skipped, so the index it uses can be given to
|
||||
a new vault
|
||||
- **Public Key Hash**: Double SHA-256 hash of the vault's public key; the same
|
||||
hash of the index-0 public key identifies vaults from the same mnemonic
|
||||
- **Automatic Key Derivation**: When creating vaults with a mnemonic, keys are
|
||||
|
||||
Reference in New Issue
Block a user