[package]
edition = "2024"
rust-version = "1.95"
name = "sunset"
version = "0.5.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A SSH library suitable for embedded and larger programs"
readme = "README.md"
keywords = ["ssh"]
categories = [
"network-programming",
"embedded",
"no-std",
]
license = "0BSD"
repository = "https://github.com/mkj/sunset"
[features]
_ecdsa = [
"dep:ecdsa",
"ssh-key/ecdsa",
]
alloc = ["ssh-key/alloc"]
arbitrary = [
"dep:arbitrary",
"std",
]
backtrace = ["snafu/backtrace"]
default = ["mlkem"]
ecdsa256 = [
"_ecdsa",
"dep:p256",
"ssh-key/p256",
]
embedded-io = ["dep:embedded-io"]
larger = []
mlkem = ["dep:ml-kem"]
openssh-key = ["ssh-key"]
rsa = [
"dep:rsa",
"ssh-key/rsa",
]
std = [
"snafu/std",
"ssh-key/alloc",
"larger",
"mlkem",
"alloc",
]
[lib]
name = "sunset"
path = "src/lib.rs"
[dependencies.aes]
version = "0.8"
features = ["zeroize"]
[dependencies.arbitrary]
version = "1.4"
features = ["derive"]
optional = true
[dependencies.ascii]
version = "1.0"
default-features = false
[dependencies.chacha20]
version = "0.9"
features = ["zeroize"]
[dependencies.cipher]
version = "0.4"
features = ["zeroize"]
[dependencies.ctr]
version = "0.9"
features = ["zeroize"]
[dependencies.curve25519-dalek]
version = "4.1"
features = ["zeroize"]
default-features = false
[dependencies.digest]
version = "0.10"
[dependencies.ecdsa]
version = "0.17.0-rc.17"
features = [
"hazmat",
"algorithm",
]
optional = true
default-features = false
[dependencies.ed25519-dalek]
version = "2.1"
features = [
"zeroize",
"rand_core",
]
default-features = false
[dependencies.embedded-io]
version = "0.7"
optional = true
[dependencies.getrandom]
version = "0.2"
[dependencies.heapless]
version = "0.9"
[dependencies.hmac]
version = "0.12"
[dependencies.log]
version = "0.4"
[dependencies.ml-kem]
version = "0.3.2"
features = ["zeroize"]
optional = true
default-features = false
[dependencies.p256]
version = "0.14.0-rc.9"
features = ["ecdsa"]
optional = true
default-features = false
[dependencies.poly1305]
version = "0.8"
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
default-features = false
[dependencies.rsa]
version = "0.9"
features = ["sha2"]
optional = true
default-features = false
[dependencies.sha2]
version = "0.10"
default-features = false
[dependencies.snafu]
version = "0.9"
features = ["rust_1_81"]
default-features = false
[dependencies.ssh-key]
version = "0.6"
features = ["getrandom"]
optional = true
default-features = false
[dependencies.subtle]
version = "2.4"
default-features = false
[dependencies.sunset-sshwire-derive]
version = "0.2"
[dependencies.x25519-dalek]
version = "2.0"
features = ["zeroize"]
default-features = false
[dependencies.zeroize]
version = "1"
features = ["derive"]
default-features = false
[dev-dependencies.anyhow]
version = "1.0"
[dev-dependencies.simplelog]
version = "0.12"
features = ["test"]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]
[profile.dev]
opt-level = 1
debug = 2
debug-assertions = true
overflow-checks = true
[profile.dev.build-override]
opt-level = 0
codegen-units = 8
debug = 0
debug-assertions = false
overflow-checks = false
[profile.fuzz]
opt-level = 3
lto = "fat"
debug-assertions = true
panic = "abort"
overflow-checks = true
inherits = "release"
[profile.release]
opt-level = "z"
lto = "fat"
codegen-units = 1
debug = 2
debug-assertions = false
panic = "abort"
overflow-checks = false
incremental = false
[profile.release.build-override]
opt-level = 0
codegen-units = 8
debug = 0
debug-assertions = false
overflow-checks = false