qssh 0.2.1

Post-quantum secure shell with NIST PQC algorithms (Falcon, SPHINCS+, ML-KEM), configurable security tiers, and quantum-resistant protocol design
Documentation
[package]
name = "qssh"
version = "0.2.1"
edition = "2021"
authors = ["Paraxiom"]
license = "MIT OR Apache-2.0"
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"

[workspace]

[dependencies]
# Async runtime
tokio = { version = "1.40", features = ["full"] }

# Post-quantum cryptography
pqcrypto = "0.17"
pqcrypto-traits = "0.3"
pqcrypto-sphincsplus = "0.5"
pqcrypto-falcon = "0.2"
pqcrypto-dilithium = "0.5"

# ML-KEM (FIPS 203) - replaces vulnerable Kyber
ml-kem = "0.2"
kem = "0.3.0-pre.0"

# Classical crypto for hybrid mode (optional)
x25519-dalek = { version = "2.0", features = ["static_secrets"], optional = true }

# Encryption
aes-gcm = "0.10"
rand = "0.8"
rand_chacha = "0.3"
sha3 = "0.10"
sha2 = "0.10"
hkdf = "0.12"
hmac = "0.12"
zeroize = { version = "1.6", features = ["zeroize_derive"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3"
base64 = "0.22"
hex = "0.4"

# CLI
clap = { version = "4.5", features = ["derive"] }
rpassword = "7.3"
whoami = "1.5"
chrono = { version = "0.4", features = ["serde"] }

# Logging
log = "0.4"
env_logger = "0.11"

# Error handling
anyhow = "1.0"
thiserror = "1.0"

# SFTP dependencies
async-trait = "0.1"
byteorder = "1.5"

# Network
libp2p = { version = "0.54", optional = true }
reqwest = { version = "0.12", features = ["json", "native-tls"] }

# Compression
flate2 = "1.0"
zstd = "0.13"
lz4 = "1.24"

# QKD integration (disabled for now - path doesn't exist)
# qkd_client = { path = "../qkd_client", optional = true }
winterfell = { version = "0.12.0", optional = true }

# Terminal handling
termios = "0.3"
libc = "0.2"
atty = "0.2"

# Utilities
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-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 = []  # Experimental - NOT IMPLEMENTED, returns errors
multiplex = []  # Incomplete
libp2p-transport = ["libp2p"]
qkd = ["winterfell"]  # qkd_client disabled until path exists
quantum-native = []  # Experimental 768-byte indistinguishable frames
hybrid-kex = ["x25519-dalek"]  # X25519+ML-KEM hybrid key exchange

[[example]]
name = "quantum_harmony_validator"