RustCrypto: SSH Key Formats
Pure Rust implementation of SSH key file format decoders/encoders as described
in RFC4253 and RFC4716 as well as OpenSSH's PROTOCOL.key format specification
and authorized_keys files.
- Constant-time Base64 decoding/encoding using the
base64ctcrate -
no_stdsupport including support for "heapless" (no-alloc) targets - Decoding/encoding OpenSSH-formatted public & private keys:
- DSA (
no_std+alloc) - ECDSA (
no_std"heapless") - Ed25519 (
no_std"heapless") - RSA (
no_std+alloc)
- DSA (
- Parsing
autorized_keysfiles - Built-in zeroize support for private keys
- Encrypted private key support
- SSH certificate support
- Legacy SSH key (pre-OpenSSH) format support
- Integrations with other RustCrypto crates (e.g.
ecdsa,ed25519,rsa) - FIDO2 key support
This crate requires Rust 1.57 at a minimum.
We may change the MSRV in the future, but it will be accompanied by a minor version bump.
Licensed under either of:
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.