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