Expand description
rustls TLS stack (SSH-over-TLS, mTLS, ACME) — feature tls (default).
Product TLS via rustls (aws_lc_rs only): SSH-over-TLS, mTLS, ACME.
§Design (Rules Rust — rustls)
| Concern | Rule |
|---|---|
| Provider | CryptoProvider::install_default once in binary main |
| Libraries | use ClientConfig::builder / get_default — never reinstall |
| Stack | rustls ≥ 0.23.18 only; no native-tls / OpenSSL / ring |
| Storage | XDG under tls/ — no product env vars for cert material |
| Secrets | PEM keys 0o600; never log private key material |
§Workload
I/O-bound (TCP + TLS handshake). No Rayon. Multi-host fan-out stays in callers.
Modules§
- commands
tls - CLI handlers for
ssh-cli tls …(featuretls).
Structs§
- Mtls
Identity tls - Named mTLS client identity on disk.
- TlsClient
Options tls - Inputs for building a shared
ClientConfig. - TlsConnect
Options - Options for wrapping the SSH TCP path in TLS (SSH-over-TLS).
Enums§
- Acme
Directory tls - ACME directory selection.
Functions§
- acme_
account_ path tls …/tls/acme/account.json- acme_
complete tls - Completes ACME after DNS TXT is published: resume order → set_ready → finalize.
- acme_
domain_ dir tls …/tls/acme/<domain>/— domain leaf is NFC-normalized validated name.- acme_
issue_ print_ challenge tls - Starts DNS-01 order and returns challenge details (does not wait for DNS).
- acme_
list tls - Lists all domain directories under ACME storage.
- acme_
status tls - Status for one domain or all under ACME dir.
- build_
client_ config tls - Builds an
Arc<ClientConfig>with webpki-roots and optional mTLS. - create_
account tls - Creates (or refuses if exists unless
force) an ACME account under XDG. - dial_
tls tls - Dials
host:port, completes TLS with SNI/TlsConnectOptions, returns the stream. - install_
default_ provider tls - Installs
aws_lc_rs::default_provideronce for the process. - load_
account_ status tls - Loads account presence / path without contacting ACME.
- mtls_
identity_ dir tls …/tls/mtls/<name>/- mtls_
import tls - Imports PEM cert+key into XDG as identity
name(overwrites). - mtls_
list tls - Lists imported mTLS identity names.
- mtls_
remove tls - Removes an identity directory.
- mtls_
show tls - Shows paths for one identity.
- provider_
is_ installed tls - Returns
truewhen a process default provider is available. - provider_
name tls - Static provider name string (
aws_lc_rs). - resolve_
mtls_ paths tls - Resolves mTLS paths: either explicit paths or an XDG identity name.
- resolve_
tls_ root tls - Resolves the TLS root directory under the active config dir.
- tls_
root_ dir tls - Same as
resolve_tls_root(alias for call-site clarity).
Type Aliases§
- TlsStream
tls - Product TLS stream type (client half over TCP).