From 07ff1d81874d2e9920c19d45b84396f1f0b6def9 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 30 Apr 2022 19:40:50 +0800 Subject: [PATCH] chore: update generate_ssh_string --- src/sshutil.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/sshutil.rs b/src/sshutil.rs index 149adb0..5e6d7bc 100644 --- a/src/sshutil.rs +++ b/src/sshutil.rs @@ -7,14 +7,13 @@ pub fn with_sign(mut vec: Vec) -> Vec { pub fn generate_ssh_string(e: &[u8], n: &[u8], comment: &str) -> String { let mut ssh_key = vec![]; - let ssh_rsa_bytes = "ssh-rsa".as_bytes(); - ssh_key.extend_from_slice(&(ssh_rsa_bytes.len() as u32).to_be_bytes()[..]); - ssh_key.extend_from_slice(ssh_rsa_bytes); - let e = with_sign(e.to_vec()); - ssh_key.extend_from_slice(&(e.len() as u32).to_be_bytes()[..]); - ssh_key.extend_from_slice(&e); - let n = with_sign(n.to_vec()); - ssh_key.extend_from_slice(&(n.len() as u32).to_be_bytes()[..]); - ssh_key.extend_from_slice(&n); + append_slice_with_len(&mut ssh_key, "ssh-rsa".as_bytes()); + append_slice_with_len(&mut ssh_key, &with_sign(e.to_vec())); + append_slice_with_len(&mut ssh_key, &with_sign(n.to_vec())); format!("ssh-rsa {} {}", base64::encode(&ssh_key), comment) +} + +pub fn append_slice_with_len(v: &mut Vec, s: &[u8]) { + v.extend_from_slice(&(s.len() as u32).to_be_bytes()[..]); + v.extend_from_slice(s); } \ No newline at end of file