From 3f0b367c3988d871ee304662e17b5c808c366bd9 Mon Sep 17 00:00:00 2001 From: Noratrieb <48135649+Noratrieb@users.noreply.github.com> Date: Thu, 22 Aug 2024 21:07:57 +0200 Subject: [PATCH] signature --- Cargo.lock | 11 +++++++++++ ssh-agentctl/Cargo.toml | 1 + ssh-agentctl/src/main.rs | 5 ++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 5b0b1f0..c11ca60 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -796,6 +796,16 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64", + "serde", +] + [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -1192,6 +1202,7 @@ dependencies = [ "clap", "eyre", "hex", + "pem", "rpassword", "sha2", "ssh-agent-client", diff --git a/ssh-agentctl/Cargo.toml b/ssh-agentctl/Cargo.toml index 28c4e71..4eab105 100644 --- a/ssh-agentctl/Cargo.toml +++ b/ssh-agentctl/Cargo.toml @@ -14,3 +14,4 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } rpassword = "7.3.1" sha2 = "0.10.8" hex = "0.4.3" +pem = "3.0.4" diff --git a/ssh-agentctl/src/main.rs b/ssh-agentctl/src/main.rs index cd001fd..ce40f9a 100644 --- a/ssh-agentctl/src/main.rs +++ b/ssh-agentctl/src/main.rs @@ -1,4 +1,4 @@ -use std::path::PathBuf; +use std::{io::Write, path::PathBuf}; use clap::Parser; use eyre::{bail, Context}; @@ -97,6 +97,9 @@ async fn main() -> eyre::Result<()> { }; let signature = agent.sign(&key.key_blob, &file, 0).await?; + + let signature = pem::encode(&pem::Pem::new("SSH SIGNATURE", signature)); + std::io::stdout().write_all(signature.as_bytes())?; } Subcommand::Lock => { let passphrase =