osshkeys
Description
A Rust library to handle OpenSSH key and other common SSH key
The main function of this library is to read, write different formats of SSH keys. Also, it provide the ability to generate a key, sign and verify data.
Current Status
The library's basic features are implemented.
Since I don't have too much time to work on the additional features currently, this project may not be as active as usual. But I still maintain the dependencies and release new versions.
It's welcome to submit PRs or issues on this project if you have ideas or questiones.
Example
extern crate hex_literal;
use ;
use FingerprintHash;
Cargo Features
openssl-cipher
: [default] Using OpenSSL as symmetric cipherrustcrypto-cipher
: Using RustCrypto as symmetric cipher- Choicing this does not remove the
openssl
dependency, since many places still require to use OpenSSL.
- Choicing this does not remove the
openssl-vendored
: Build withopenssl/vendored
feature
Roadmap
- Core Features
- Key Types
- RSA
- DSA
- EcDSA
- Ed25519
- Documentation
- Descriptions
- Examples in README
- More examples in
examples/
directory
- Key generation
- Public key formats
- Openssh
- PEM
- Private keys
- PEM (Using OpenSSL)
- PEM (Encrypted) (Using OpenSSL)
- PKCS#8 (Using OpenSSL)
- PKCS#8 (Encrypted) (Using OpenSSL)
- Openssh v2
- Openssh v2 (Encrypted)
- Key Types
- Additional Features
- Supporting XMSS keys
- Supporting read/write Putty key format(.ppk)
- Supporting more ciphers
- AES GCM mode
- ChaCha20-Poly1305
- Supporting keys with certifications
- Draw the ASCII art (the picture shown when you generate a key)
+---[RSA 2048]----+ | .++ | | .+.. .| | . . . . ..| | . . .E.. | | ...S . | | o+. | | +..o | | o B .o. | | . + +.. | +------[MD5]------+
- Without using openssl (Become pure Rust library) (if there exists required cryptography crates and being mature enough)
- Currently missing:
- DSA library
- EcDSA library
- Currently missing: