1
0
Fork 0
mirror of https://gitlab.redox-os.org/CoffeeCode/redox-ssh.git synced 2025-12-28 13:22: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]
name = "redox-ssh"
version = "0.1.0"
edition = "2021"
authors = ["Thomas Gatzweiler <mail@thomasgatzweiler.com>"]
[lib]

View file

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

View file

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

View file

@ -2,15 +2,16 @@ use std::collections::{BTreeMap, VecDeque};
use std::io::{self, BufReader, Read, Write};
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 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)]
enum ConnectionState {
@ -364,7 +365,7 @@ impl<'a> Connection {
}
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 mut reader = packet.reader();

View file

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

View file

@ -1,13 +1,14 @@
use connection::{Connection, ConnectionType};
use crypto::curve25519;
use crypto::digest::Digest;
use crypto::sha2::Sha256;
use key_exchange::{KexResult, KeyExchange};
use message::MessageType;
use num_bigint::{BigInt, Sign};
use packet::{Packet, ReadPacketExt, WritePacketExt};
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_REPLY: u8 = 31;

View file

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

View file

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

View file

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

View file

@ -2,8 +2,9 @@ use std::io::{self, Read, Write};
use std::io::ErrorKind::InvalidData;
use crypto::ed25519;
use public_key::{CryptoSystem, KeyPair};
use rand::{Rng, RngCore};
use rand::RngCore;
use crate::public_key::{CryptoSystem, KeyPair};
pub static ED25519: CryptoSystem = CryptoSystem {
id: "ed25519",
@ -31,7 +32,7 @@ impl Ed25519KeyPair {
}
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" {
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>> {
use packet::ReadPacketExt;
use crate::packet::ReadPacketExt;
if r.read_uint32()? != 32 {
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, ()> {
use packet::ReadPacketExt;
use crate::packet::ReadPacketExt;
use std::io::Cursor;
let mut reader = Cursor::new(signature);
@ -99,7 +100,7 @@ impl KeyPair for Ed25519KeyPair {
}
fn sign(&self, data: &[u8]) -> Result<Vec<u8>, ()> {
use packet::WritePacketExt;
use crate::packet::WritePacketExt;
if let Some(private_key) = self.private {
let mut result = Vec::new();
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<()> {
use packet::WritePacketExt;
use crate::packet::WritePacketExt;
w.write_string("ssh-ed25519")?;
w.write_bytes(&self.public)
}
fn export(&self, w: &mut dyn Write) -> io::Result<()> {
use packet::WritePacketExt;
use crate::packet::WritePacketExt;
w.write_string("ssh-ed25519")?;
w.write_bytes(&self.public)?;
if let Some(private_key) = self.private {

View file

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