rsa_export
allows you to export your RSA key, generated via the rsa crate, with PKCS#1 or PKCS#8 encoding
Reference: https://tools.ietf.org/html/rfc3447#appendix-A.1
Note: Multi-prime keys are not supported
The keys can also be exported into the PEM format by enabling the feature pem
Example:
```rust use rsa::RSAPrivateKey; use rand::rngs::OsRng;
let mut rng = OsRng; let key = RSAPrivateKey::new(&mut rng, 2048).unwrap(); let privatekey = rsaexport::RsaKey::new(key); let publickey = privatekey.public_key();
let pkcs1encodedprivate = privatekey.aspkcs1().unwrap(); let pkcs1encodedpublic = publickey.aspkcs1().unwrap();
let pkcs8encodedprivate = privatekey.aspkcs8().unwrap(); let pkcs8encodedpublic = publickey.aspkcs8().unwrap(); ```
Encode PKCS#1 or PKCS#8 encoded keys into the PEM format (with the pem
feature enabled)
```rust use rsa::RSAPrivateKey; use rand::rngs::OsRng;
let mut rng = OsRng; let key = RSAPrivateKey::new(&mut rng, 2048).unwrap(); let privatekey = rsaexport::RsaKey::new(key); let publickey = privatekey.public_key();
let pkcs1encodedprivatepem = privatekey.aspkcs1pem().unwrap(); let pkcs1encodedpublicpem = publickey.aspkcs1pem().unwrap();
let pkcs8encodedprivatepem = privatekey.aspkcs8pem().unwrap(); let pkcs8encodedpublicpem = publickey.aspkcs8pem().unwrap(); ```