diff --git a/src/cmd_ssh_agent.rs b/src/cmd_ssh_agent.rs index 1e2cb99..0244e70 100644 --- a/src/cmd_ssh_agent.rs +++ b/src/cmd_ssh_agent.rs @@ -37,9 +37,12 @@ impl Session for MySshAgent { async fn request_identities(&mut self) -> Result, AgentError> { information!("request_identities"); // let p256_private_key_d = ecdsautil::parse_p256_private_key(&self.private_key_pem).unwrap(); - let public_key_point = hex::decode("04\ + let public_key_point = hex::decode( + "04\ f17326c188b9d0cffeddd8ff935f24f2074bbef128ac5b04b9cac05de967df5dbfd065698dce3b8c1f451bb9a1593ace\ -13360bbc49c51f5213777fd873932efa44763bfcc1c764b122a8a8977bcb3e0ad099d652e63db1c5a1bda02120a16dc5").unwrap(); +13360bbc49c51f5213777fd873932efa44763bfcc1c764b122a8a8977bcb3e0ad099d652e63db1c5a1bda02120a16dc5", + ) + .unwrap(); let identity = Identity { pubkey: KeyData::Ecdsa( ssh_key::public::EcdsaPublicKey::from_sec1_bytes(&public_key_point).unwrap(), @@ -57,14 +60,32 @@ f17326c188b9d0cffeddd8ff935f24f2074bbef128ac5b04b9cac05de967df5dbfd065698dce3b8c let algorithm = &request.pubkey.algorithm(); match algorithm { - Algorithm::Dsa => {} Algorithm::Ecdsa { curve: _ } => {} Algorithm::Ed25519 => {} Algorithm::Rsa { hash: _ } => {} - Algorithm::SkEcdsaSha2NistP256 => {} - Algorithm::SkEd25519 => {} - Algorithm::Other(_) => {} - &_ => {} + Algorithm::Dsa => { + debugging!("Algorithm::Dsa not supported"); + return Err(AgentError::Failure); + } + Algorithm::SkEcdsaSha2NistP256 => { + debugging!("Algorithm::SkEcdsaSha2NistP256 not supported"); + return Err(AgentError::Failure); + } + Algorithm::SkEd25519 => { + debugging!("Algorithm::SkEd25519 not supported"); + return Err(AgentError::Failure); + } + Algorithm::Other(algorithm_name) => { + debugging!( + "Algorithm::Other not supported, name: {}", + algorithm_name.as_str() + ); + return Err(AgentError::Failure); + } + &_ => { + debugging!("Algorithm::Unknown not supported"); + return Err(AgentError::Failure); + } } let signature = external_command_rs::external_sign(