ssh-key 0.4.0

Pure Rust implementation of SSH key file format decoders/encoders as described in RFC4251 and RFC4253 as well as the OpenSSH key formats, certificates (including certificate validation and certificate authority support), and the `authorized_keys` file format. Supports `no_std` embedded targets.
Documentation
[package]
name = "ssh-key"
version = "0.4.0"
description = """
Pure Rust implementation of SSH key file format decoders/encoders as described
in RFC4251 and RFC4253 as well as the OpenSSH key formats, certificates
(including certificate validation and certificate authority support), and
the `authorized_keys` file format. Supports `no_std` embedded targets.
"""
authors = ["RustCrypto Developers"]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/RustCrypto/formats/tree/master/ssh-key"
categories = ["authentication", "cryptography", "encoding", "no-std", "parser-implementations"]
keywords = ["crypto", "certificate", "key", "openssh", "ssh"]
readme = "README.md"
edition = "2021"
rust-version = "1.57"

[dependencies]
base64ct = { version = "1.4", path = "../base64ct" }
pem-rfc7468 = { version = "0.5", path = "../pem-rfc7468" }
zeroize = { version = "1", default-features = false }

# optional dependencies
aes = { version = "0.8", optional = true, default-features = false }
ctr = { version = "0.9", optional = true, default-features = false }
bcrypt-pbkdf = { version = "0.9", optional = true, default-features = false }
ed25519-dalek = { version = "1.0.1", optional = true, default-features = false, features = ["u64_backend"] }
p256 = { version = "0.10", optional = true, default-features = false, features = ["ecdsa"] }
rand_core = { version = "0.6", optional = true, default-features = false }
rsa = { version = "0.6.1", optional = true }
sec1 = { version = "0.2", optional = true, default-features = false }
serde = { version = "1", optional = true }
sha2 = { version = "0.10", optional = true, default-features = false }
signature = { version = "1.3.1", optional = true, default-features = false }
subtle = { version = "2", optional = true, default-features = false }

[dev-dependencies]
hex-literal = "0.3"
rand_chacha = "0.3"
tempfile = "3"
zeroize_derive = "1.3" # hack to make minimal-versions lint happy (pulled in by `ed25519-dalek`)

[features]
default = ["ecdsa", "fingerprint", "rand_core", "std"]
alloc = ["signature", "zeroize/alloc"]
ecdsa = ["sec1"]
ed25519 = ["ed25519-dalek", "rand_core"]
encryption = ["aes", "alloc", "bcrypt-pbkdf", "ctr", "rand_core"]
fingerprint = ["sha2"]
getrandom = ["rand_core/getrandom"]
std = ["alloc", "base64ct/std"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]