Skip to content

Latest commit

 

History

History
78 lines (57 loc) · 2.65 KB

File metadata and controls

78 lines (57 loc) · 2.65 KB

RustCrypto: SSH Key Formats

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

Documentation

About

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.

Features

  • Constant-time Base64 decoding/encoding using the base64ct crate
  • no_std support 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)
  • Parsing autorized_keys files
  • Built-in zeroize support for private keys

TODO

  • 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

Minimum Supported Rust Version

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.

License

Licensed under either of:

at your option.

Contribution

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.