Expand description
Cifragem at-rest de segredos no config.toml (GAP-009 / R-SECRETS-DEFAULT).
Ordem de resolução da chave mestra (32 bytes):
SSH_CLI_SECRETS_KEY— 64 hex charsSSH_CLI_SECRETS_KEY_FILE— arquivo com 64 hex chars- OS keyring (
service=ssh-cli,user=secrets-master-key) seSSH_CLI_USE_KEYRING=1 - Arquivo XDG
secrets.key(ao lado doconfig.toml), criado automaticamente na 1ª gravação
Opt-out (testes/debug): SSH_CLI_ALLOW_PLAINTEXT_SECRETS=1 — não auto-cria chave;
serialização permanece em texto se nenhuma fonte 1–3 estiver definida.
Com chave: serialização grava sshcli-enc:v1:<base64(nonce||ciphertext)>.
Nunca logar ou retornar a chave ou o plaintext em erros públicos.
Structs§
- Status
Segredos - Relatório de modo de segredos (sem material sensível).
Enums§
- Fonte
Chave - Fonte da chave mestra (sem expor material).
Constants§
- NOME_
ARQUIVO_ CHAVE - Nome do arquivo de chave mestra no diretório de config.
- PREFIXO_
ENC - Prefixo de blobs cifrados no TOML.
Functions§
- caminho_
secrets_ key - Path canônico do arquivo de chave mestra local.
- carregar_
chave_ mestra - Resolve chave mestra e origem (não auto-cria).
- definir_
diretorio_ config - Define o diretório de config para resolver
secrets.key(one-shot; chamado noexecutar). - deserializar_
segredo - Desserializa de TOML: decifra blobs
sshcli-enc:v1:; senão devolve como está. - diretorio_
config_ segredos - Diretório de config usado para
secrets.key(override > SSH_CLI_HOME > XDG). - eh_
blob_ cifrado - True se a string já é blob cifrado.
- garantir_
chave_ para_ escrita - Garante chave para escrita: carrega existente ou auto-cria
secrets.key(salvo opt-out plaintext). - gerar_
hex_ chave - Gera 32 bytes aleatórios como hex 64.
- gravar_
chave_ arquivo - Grava chave hex em arquivo com 0o600 (quando suportado).
- gravar_
chave_ no_ keyring - Grava chave mestra (hex) no OS keyring. Não imprime a chave.
- init_
master_ key - Inicializa master-key em arquivo XDG ou keyring. Nunca imprime a chave.
- plaintext_
permitido - True se
SSH_CLI_ALLOW_PLAINTEXT_SECRETSpede plaintext. - serializar_
segredo - Serializa um segredo para TOML: cifra se houver (ou auto-criar) chave; senão plaintext.
- status_
segredos - Status atual (sem carregar material em logs).