ssh_vault/vault/ssh/
mod.rs1pub mod ed25519;
2pub mod rsa;
3
4use anyhow::{Context, Result};
5use secrecy::{ExposeSecret, SecretString};
6use ssh_key::PrivateKey;
7
8pub fn decrypt_private_key(key: &PrivateKey, password: Option<SecretString>) -> Result<PrivateKey> {
15 let password = match password {
16 Some(password) => password,
17 None => SecretString::from(rpassword::prompt_password("Enter ssh key passphrase: ")?),
18 };
19
20 key.decrypt(password.expose_secret())
22 .context("Failed to decrypt private key, wrong password?")
23}