1
0
Fork 0
mirror of https://gitlab.redox-os.org/CoffeeCode/redox-ssh.git synced 2025-12-28 19:02:19 +01:00

Update to Rust Edition 2021 and fix compilation errors

This commit is contained in:
Laurenz 2024-09-26 13:43:01 +02:00
parent 1103eb0eec
commit 86f0cc82c3
Signed by: C0ffeeCode
SSH key fingerprint: SHA256:jnEltBNftC3wUZESLSMvM9zVPOkkevGRzqqoW2k2ORI
11 changed files with 38 additions and 32 deletions

View file

@ -1,6 +1,7 @@
[package] [package]
name = "redox-ssh" name = "redox-ssh"
version = "0.1.0" version = "0.1.0"
edition = "2021"
authors = ["Thomas Gatzweiler <mail@thomasgatzweiler.com>"] authors = ["Thomas Gatzweiler <mail@thomasgatzweiler.com>"]
[lib] [lib]

View file

@ -1,8 +1,8 @@
use std::fmt; use std::fmt;
use std::str::FromStr; use std::str::FromStr;
use error::{ConnectionError, ConnectionResult}; use crate::error::{ConnectionError, ConnectionResult};
use key_exchange::{self, KeyExchange}; use crate::key_exchange::{self, KeyExchange};
/// Slice of implemented key exchange algorithms, ordered by preference /// Slice of implemented key exchange algorithms, ordered by preference
pub static KEY_EXCHANGE: &[KeyExchangeAlgorithm] = pub static KEY_EXCHANGE: &[KeyExchangeAlgorithm] =

View file

@ -5,7 +5,8 @@ use std::os::unix::process::CommandExt;
use std::path::PathBuf; use std::path::PathBuf;
use std::process::{self, Stdio}; use std::process::{self, Stdio};
use std::thread::{self, JoinHandle}; use std::thread::{self, JoinHandle};
use sys;
use crate::sys;
pub type ChannelId = u32; pub type ChannelId = u32;

View file

@ -2,15 +2,16 @@ use std::collections::{BTreeMap, VecDeque};
use std::io::{self, BufReader, Read, Write}; use std::io::{self, BufReader, Read, Write};
use std::sync::Arc; use std::sync::Arc;
use channel::{Channel, ChannelId, ChannelRequest};
use encryption::{AesCtr, Decryptor, Encryption};
use error::{ConnectionError, ConnectionResult as Result};
use key_exchange::{KexResult, KeyExchange};
use mac::{Hmac, MacAlgorithm};
use message::MessageType;
use packet::{Packet, ReadPacketExt, WritePacketExt};
use rand::distributions::Standard; use rand::distributions::Standard;
use server::ServerConfig;
use crate::channel::{Channel, ChannelId, ChannelRequest};
use crate::encryption::{AesCtr, Decryptor, Encryption};
use crate::error::{ConnectionError, ConnectionResult as Result};
use crate::key_exchange::{KexResult, KeyExchange};
use crate::mac::{Hmac, MacAlgorithm};
use crate::message::MessageType;
use crate::packet::{Packet, ReadPacketExt, WritePacketExt};
use crate::server::ServerConfig;
#[derive(PartialEq)] #[derive(PartialEq)]
enum ConnectionState { enum ConnectionState {
@ -364,7 +365,7 @@ impl<'a> Connection {
} }
fn kex_init(&mut self, packet: Packet) -> Result<Option<Packet>> { fn kex_init(&mut self, packet: Packet) -> Result<Option<Packet>> {
use algorithm::*; use crate::algorithm::*;
let (kex_algo, srv_host_key_algo, enc_algo, mac_algo, comp_algo) = { let (kex_algo, srv_host_key_algo, enc_algo, mac_algo, comp_algo) = {
let mut reader = packet.reader(); let mut reader = packet.reader();

View file

@ -1,7 +1,7 @@
use crypto::aes::{KeySize, ctr}; use crypto::aes::{KeySize, ctr};
use crypto::symmetriccipher::SynchronousStreamCipher; use crypto::symmetriccipher::SynchronousStreamCipher;
use encryption::Encryption; use crate::encryption::Encryption;
pub struct AesCtr { pub struct AesCtr {
cipher: Box<dyn SynchronousStreamCipher + 'static>, cipher: Box<dyn SynchronousStreamCipher + 'static>,

View file

@ -1,13 +1,14 @@
use connection::{Connection, ConnectionType};
use crypto::curve25519; use crypto::curve25519;
use crypto::digest::Digest; use crypto::digest::Digest;
use crypto::sha2::Sha256; use crypto::sha2::Sha256;
use key_exchange::{KexResult, KeyExchange};
use message::MessageType;
use num_bigint::{BigInt, Sign}; use num_bigint::{BigInt, Sign};
use packet::{Packet, ReadPacketExt, WritePacketExt};
use rand::RngCore; use rand::RngCore;
use crate::connection::{Connection, ConnectionType};
use crate::key_exchange::{KexResult, KeyExchange};
use crate::message::MessageType;
use crate::packet::{Packet, ReadPacketExt, WritePacketExt};
const ECDH_KEX_INIT: u8 = 30; const ECDH_KEX_INIT: u8 = 30;
const ECDH_KEX_REPLY: u8 = 31; const ECDH_KEX_REPLY: u8 = 31;

View file

@ -4,8 +4,8 @@ mod curve25519;
pub use self::curve25519::Curve25519; pub use self::curve25519::Curve25519;
// pub use self::dh_group_sha1::DhGroupSha1; // pub use self::dh_group_sha1::DhGroupSha1;
use connection::Connection; use crate::connection::Connection;
use packet::Packet; use crate::packet::Packet;
pub enum KexResult { pub enum KexResult {
Ok(Packet), Ok(Packet),

View file

@ -1,7 +1,8 @@
use crypto::hmac::Hmac as rcHmac; use crypto::hmac::Hmac as rcHmac;
use crypto::mac::Mac; use crypto::mac::Mac;
use crypto::sha2::Sha256; use crypto::sha2::Sha256;
use mac::MacAlgorithm;
use crate::mac::MacAlgorithm;
pub struct Hmac { pub struct Hmac {
hmac: Box<rcHmac<Sha256>>, hmac: Box<rcHmac<Sha256>>,

View file

@ -3,10 +3,10 @@ use std::io::{self, BufReader, Read, Result, Write};
use std::str::{self, FromStr}; use std::str::{self, FromStr};
use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt};
use message::MessageType;
use num_bigint::BigInt; use num_bigint::BigInt;
use crate::message::MessageType;
pub enum Packet { pub enum Packet {
Raw(Vec<u8>, usize), Raw(Vec<u8>, usize),
Payload(Vec<u8>), Payload(Vec<u8>),

View file

@ -2,8 +2,9 @@ use std::io::{self, Read, Write};
use std::io::ErrorKind::InvalidData; use std::io::ErrorKind::InvalidData;
use crypto::ed25519; use crypto::ed25519;
use public_key::{CryptoSystem, KeyPair}; use rand::RngCore;
use rand::{Rng, RngCore};
use crate::public_key::{CryptoSystem, KeyPair};
pub static ED25519: CryptoSystem = CryptoSystem { pub static ED25519: CryptoSystem = CryptoSystem {
id: "ed25519", id: "ed25519",
@ -31,7 +32,7 @@ impl Ed25519KeyPair {
} }
fn import(mut r: &mut dyn Read) -> io::Result<Box<dyn KeyPair>> { fn import(mut r: &mut dyn Read) -> io::Result<Box<dyn KeyPair>> {
use packet::ReadPacketExt; use crate::packet::ReadPacketExt;
if r.read_utf8()? != "ssh-ed25519" { if r.read_utf8()? != "ssh-ed25519" {
return Err(io::Error::new(InvalidData, "not a ED25519 key")); return Err(io::Error::new(InvalidData, "not a ED25519 key"));
@ -58,7 +59,7 @@ impl Ed25519KeyPair {
} }
fn read_public(mut r: &mut dyn Read) -> io::Result<Box<dyn KeyPair>> { fn read_public(mut r: &mut dyn Read) -> io::Result<Box<dyn KeyPair>> {
use packet::ReadPacketExt; use crate::packet::ReadPacketExt;
if r.read_uint32()? != 32 { if r.read_uint32()? != 32 {
return Err(io::Error::new(InvalidData, "invalid ED25519 key")); return Err(io::Error::new(InvalidData, "invalid ED25519 key"));
@ -84,7 +85,7 @@ impl KeyPair for Ed25519KeyPair {
} }
fn verify(&self, data: &[u8], signature: &[u8]) -> Result<bool, ()> { fn verify(&self, data: &[u8], signature: &[u8]) -> Result<bool, ()> {
use packet::ReadPacketExt; use crate::packet::ReadPacketExt;
use std::io::Cursor; use std::io::Cursor;
let mut reader = Cursor::new(signature); let mut reader = Cursor::new(signature);
@ -99,7 +100,7 @@ impl KeyPair for Ed25519KeyPair {
} }
fn sign(&self, data: &[u8]) -> Result<Vec<u8>, ()> { fn sign(&self, data: &[u8]) -> Result<Vec<u8>, ()> {
use packet::WritePacketExt; use crate::packet::WritePacketExt;
if let Some(private_key) = self.private { if let Some(private_key) = self.private {
let mut result = Vec::new(); let mut result = Vec::new();
let sig = ed25519::signature(data, &private_key); let sig = ed25519::signature(data, &private_key);
@ -113,13 +114,13 @@ impl KeyPair for Ed25519KeyPair {
} }
fn write_public(&self, w: &mut dyn Write) -> io::Result<()> { fn write_public(&self, w: &mut dyn Write) -> io::Result<()> {
use packet::WritePacketExt; use crate::packet::WritePacketExt;
w.write_string("ssh-ed25519")?; w.write_string("ssh-ed25519")?;
w.write_bytes(&self.public) w.write_bytes(&self.public)
} }
fn export(&self, w: &mut dyn Write) -> io::Result<()> { fn export(&self, w: &mut dyn Write) -> io::Result<()> {
use packet::WritePacketExt; use crate::packet::WritePacketExt;
w.write_string("ssh-ed25519")?; w.write_string("ssh-ed25519")?;
w.write_bytes(&self.public)?; w.write_bytes(&self.public)?;
if let Some(private_key) = self.private { if let Some(private_key) = self.private {

View file

@ -3,8 +3,8 @@ use std::net::TcpListener;
use std::sync::Arc; use std::sync::Arc;
use std::thread; use std::thread;
use connection::{Connection, ConnectionType}; use crate::connection::{Connection, ConnectionType};
use public_key::KeyPair; use crate::public_key::KeyPair;
pub struct ServerConfig { pub struct ServerConfig {
pub host: String, pub host: String,