Implement SSH identity authentication
This commit is contained in:
@@ -5,12 +5,13 @@ password-store repositories, Git configuration, command arguments, and logs
|
||||
contain only opaque identifiers; passphrases, tokens, and HTTPS passwords are
|
||||
stored by the operating system.
|
||||
|
||||
`SecretReference` has two validated forms. OpenPGP passphrases are keyed by the
|
||||
`SecretReference` has three validated forms. OpenPGP passphrases are keyed by the
|
||||
primary fingerprint. HTTPS Git credentials are keyed by purpose, server ID,
|
||||
application ID, and account. The account is kept inside the protected record,
|
||||
so a configured server/application pair can retrieve it without adding an
|
||||
account or secret value to TOML. References, locators, store state, and errors
|
||||
all use redacted `Debug` output.
|
||||
account or secret value to TOML. SSH private-key passphrases are keyed by the
|
||||
key's SHA-256 fingerprint. References, locators, store state, and errors all use
|
||||
redacted `Debug` output.
|
||||
|
||||
Stored values use a small versioned binary envelope containing their reference
|
||||
and secret bytes. Retrieval validates the envelope and exact reference before
|
||||
@@ -47,8 +48,8 @@ if the platform lock operation reports an error. Caching is disabled unless a
|
||||
caller explicitly selects `SecretCachePolicy::Timed`. Timed policies are capped
|
||||
at 128 entries and 15 minutes, expire lazily, and are always cleared on lock.
|
||||
|
||||
The same unlocked store implements the OpenPGP `SecretProvider` and HTTPS Git
|
||||
`GitCredentialProvider`. The CLI uses it for terminal `show` and embedded `git
|
||||
fetch`, proving that protected keys and remote authentication are resolved only
|
||||
through opaque references. Tests inject a memory backend and never access a
|
||||
developer or CI user keyring.
|
||||
The same unlocked store implements the OpenPGP `SecretProvider`, HTTPS Git
|
||||
`GitCredentialProvider`, and SSH `SshPassphraseProvider`. The CLI uses it for
|
||||
terminal `show` and embedded Git, proving that protected keys and remote
|
||||
authentication are resolved only through opaque references. Tests inject a
|
||||
memory backend and never access a developer or CI user keyring.
|
||||
|
||||
Reference in New Issue
Block a user