[package]
authors = ["Pierre-Étienne Meunier <pe@pijul.org>"]
description = "A client and server SSH library."
documentation = "https://docs.rs/russh"
edition = "2024"
homepage = "https://github.com/warp-tech/russh"
keywords = ["ssh"]
license = "Apache-2.0"
name = "rustssh2"
readme = "../README.md"
repository = "https://github.com/warp-tech/russh"
version = "8.0.0"
rust-version = "1.85"
[features]
default = ["flate2", "aws-lc-rs", "rsa"]
aws-lc-rs = ["dep:aws-lc-rs"]
async-trait = ["dep:async-trait"]
legacy-ed25519-pkcs8-parser = ["yasna"]
des = ["dep:des"]
dsa = ["ssh-key/dsa"]
ring = ["dep:ring"]
rsa = ["dep:rsa", "dep:pkcs1", "ssh-key/rsa", "ssh-key/rsa-sha1"]
_bench = ["dep:criterion"]
[dependencies]
aes.workspace = true
async-trait = { workspace = true, optional = true }
aws-lc-rs = { version = "1.13.1", optional = true }
bitflags = "2.0"
block-padding = { version = "0.3", features = ["std"] }
byteorder.workspace = true
bytes.workspace = true
cbc = { version = "0.1" }
ctr = "0.9"
curve25519-dalek = "4.1.3"
data-encoding = "2.3"
delegate.workspace = true
digest.workspace = true
der = "0.7"
des = { version = "0.8.1", optional = true }
ecdsa = "0.16"
ed25519-dalek = { version = "2.0", features = ["rand_core", "pkcs8"] }
elliptic-curve = { version = "0.13", features = ["ecdh"] }
enum_dispatch = "0.3.13"
flate2 = { version = "1.0.15", optional = true }
futures.workspace = true
generic-array = { version = "1.3.3", features = ["compat-0_14"] }
getrandom = { version = "0.2.15", features = ["js"] }
hex-literal = "0.4"
hmac.workspace = true
inout = { version = "0.1", features = ["std"] }
libcrux-ml-kem = { version = "0.0.4" }
log.workspace = true
md5 = "0.7"
num-bigint = { version = "0.4.2", features = ["rand"] }
p256 = { version = "0.13", features = ["ecdh"] }
p384 = { version = "0.13", features = ["ecdh"] }
p521 = { version = "0.13", features = ["ecdh"] }
pbkdf2 = "0.12"
pkcs1 = { version = "0.8.0-rc.4", optional = true }
pkcs5 = "0.7"
pkcs8 = { version = "0.10", features = ["pkcs5", "encryption", "std"] }
rand_core = { version = "=0.10.0-rc-3" }
rand.workspace = true
ring = { version = "0.17.14", optional = true }
rsa = { version = "0.10.0-rc.10", optional = true }
russh-cryptovec = { version = "0.52.0", path = "../cryptovec", features = [
"ssh-encoding",
] }
russh-util = { version = "0.52.0", path = "../russh-util" }
sec1 = { version = "0.7", features = ["pkcs8", "der"] }
sha1.workspace = true
sha2.workspace = true
signature.workspace = true
spki = "0.7"
ssh-encoding.workspace = true
ssh-key.workspace = true
subtle = "2.4"
thiserror.workspace = true
tokio = { workspace = true, features = ["io-util", "sync", "time"] }
typenum = "1.17"
yasna = { version = "0.5.0", features = [
"bit-vec",
"num-bigint",
], optional = true }
zeroize = "1.7"
criterion = { version = "0.3", optional = true, features = ["html_reports"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { workspace = true, features = [
"io-util",
"rt-multi-thread",
"time",
"net",
] }
home.workspace = true
[target.'cfg(windows)'.dependencies]
pageant = { version = "0.2", path = "../pageant" }
[dev-dependencies]
anyhow = "1.0.4"
env_logger.workspace = true
clap = { version = "3.2.3", features = ["derive"] }
tokio = { workspace = true, features = [
"io-std",
"io-util",
"rt-multi-thread",
"time",
"net",
"sync",
"macros",
"process",
] }
rand.workspace = true
shell-escape = "0.1"
tokio-fd = "0.3"
termion = "2"
ratatui = "0.29.0"
tempfile = "3.14.0"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
russh-sftp = "2.1.0"
tokio.workspace = true
tokio-stream.workspace = true
[package.metadata.docs.rs]
all-features = true
[[bench]]
name = "ciphers"
harness = false