[package]
name = "qssh"
version = "0.4.4"
edition = "2021"
authors = ["Paraxiom"]
license = "GPL-3.0-only"
description = "Post-quantum secure shell with NIST PQC algorithms (Falcon, SPHINCS+, ML-KEM), configurable security tiers, and quantum-resistant protocol design"
repository = "https://github.com/Paraxiom/qssh"
readme = "README.md"
exclude = ["lean/", "target/package/"]
[workspace]
[dependencies]
tokio = { version = "1.40", features = ["full"] }
fn-dsa = "0.3"
slh-dsa = "0.0.3"
signature = "2"
ml-kem = "0.2"
kem = "0.3.0-pre.0"
x25519-dalek = { version = "2.0", features = [
"static_secrets",
], optional = true }
aes-gcm = "0.10"
rand = "0.8"
rand_chacha = "0.3"
sha3 = "0.10"
sha1 = "0.10"
sha2 = "0.10"
hkdf = "0.12"
hmac = "0.12"
zeroize = { version = "1.6", features = ["zeroize_derive"] }
argon2 = "0.5"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3"
base64 = "0.22"
hex = "0.4"
clap = { version = "4.5", features = ["derive"] }
rpassword = "7.3"
whoami = "1.5"
chrono = { version = "0.4", features = ["serde"] }
log = "0.4"
env_logger = "0.11"
anyhow = "1.0"
thiserror = "1.0"
async-trait = "0.1"
byteorder = "1.5"
libp2p = { version = "0.54", optional = true }
reqwest = { version = "0.12", features = ["json", "native-tls"] }
flate2 = "1.0"
zstd = "0.13"
lz4 = "1.24"
winterfell = { version = "0.12.0", optional = true }
termios = "0.3"
libc = "0.2"
atty = "0.2"
socket2 = { version = "0.5", features = ["all"] }
hostname = "0.4"
if-addrs = "0.12"
[[bin]]
name = "qssh"
path = "src/bin/qssh.rs"
[[bin]]
name = "qsshd"
path = "src/bin/qsshd.rs"
[[bin]]
name = "qscp"
path = "src/bin/qscp.rs"
[[bin]]
name = "qssh-keygen"
path = "src/bin/qssh-keygen.rs"
[[bin]]
name = "qssh-passwd"
path = "src/bin/qssh-passwd.rs"
[[bin]]
name = "qssh-agent"
path = "src/bin/qssh-agent.rs"
[[bin]]
name = "qssh-sign"
path = "src/bin/qssh-sign.rs"
[[bin]]
name = "qssh-node"
path = "src/bin/qssh-node.rs"
[[bin]]
name = "qssh-add"
path = "src/bin/qssh-add.rs"
[dev-dependencies]
tokio-test = "0.4"
proptest = "1.4"
criterion = "0.5"
tempfile = "3.8"
[features]
default = ["sftp"]
sftp = []
gssapi = [
]
multiplex = []
libp2p-transport = ["libp2p"]
qkd = ["winterfell"]
quantum-native = []
hybrid-kex = ["x25519-dalek"]
[[example]]
name = "quantum_harmony_validator"
[package.metadata.deb]
maintainer = "Paraxiom <sylvain@paraxiom.org>"
copyright = "2026, Paraxiom. GPL-3.0-only, or a Paraxiom commercial licence (see LICENSE.md)."
license-file = ["LICENSE-GPL3", "0"]
section = "net"
priority = "optional"
depends = "$auto"
extended-description = """
QSSH is a post-quantum secure shell: an SSH-style client/server suite using
NIST PQC algorithms (Falcon / FN-DSA, SPHINCS+ / SLH-DSA, ML-KEM) with
configurable security tiers and a quantum-resistant protocol design.
This package installs the qsshd daemon, the qssh client and the supporting
tools (qscp, qssh-keygen, qssh-passwd, qssh-agent, qssh-sign, qssh-add,
qssh-node), plus a systemd service for qsshd.
"""
assets = [
["target/release/qssh", "usr/bin/", "755"],
["target/release/qsshd", "usr/bin/", "755"],
["target/release/qscp", "usr/bin/", "755"],
["target/release/qssh-keygen", "usr/bin/", "755"],
["target/release/qssh-passwd", "usr/bin/", "755"],
["target/release/qssh-agent", "usr/bin/", "755"],
["target/release/qssh-sign", "usr/bin/", "755"],
["target/release/qssh-add", "usr/bin/", "755"],
["target/release/qssh-node", "usr/bin/", "755"],
["qsshd.config.production", "etc/qssh/qsshd.config", "644"],
["packaging/qsshd.env", "etc/qssh/qsshd.env", "644"],
["README.md", "usr/share/doc/qssh/README.md", "644"],
["docs/PACKAGING.md", "usr/share/doc/qssh/PACKAGING.md", "644"],
]
conf-files = ["/etc/qssh/qsshd.config", "/etc/qssh/qsshd.env"]
[package.metadata.deb.systemd-units]
unit-scripts = "packaging"
unit-name = "qsshd"
enable = true
start = false