[package] name = "bascule-core" version.workspace = true edition.workspace = true license.workspace = true description = "Identity-aware SSH proxy — library crate" [lib] name = "bascule_core" path = "src/lib.rs" [dependencies] russh = { workspace = true } russh-keys = { workspace = true } tokio = { workspace = true } async-trait = { workspace = true } anyhow = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } serde = { workspace = true } toml = { workspace = true } chrono = { workspace = true } uuid = { workspace = true } rand = { workspace = true } portable-pty = { workspace = true } substrate-proto = { workspace = true } sha2 = "0.10" hex = "0.4" # Post-M6 optional HFL dispatch path. hfl-types = { workspace = true, optional = true } substrate-hfl = { workspace = true, optional = true } # Needed only with `hfl` for prost::Message::encode_to_vec / decode # on substrate-proto's generated SatBundle types. prost = { version = "0.13", optional = true } [features] default = [] # Post-M6: route SAT composition through the HFL kernel module's # attestation::SAT_BUNDLE call when /dev/substrate-hfl is present. # Without this feature, bascule-core composes SATs locally (M1 path, # unchanged). With this feature, the local path becomes the fallback # and the kernel path is preferred when reachable. hfl = ["dep:hfl-types", "dep:substrate-hfl", "dep:prost"] [dev-dependencies] tempfile = "3"