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; use rsa_export::Encode;
let mut rng = OsRng; let privatekey = RSAPrivateKey::new(&mut rng, 2048).unwrap(); let publickey = privatekey.topublic_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; use rsa_export::PemEncode;
let mut rng = OsRng; let privatekey = RSAPrivateKey::new(&mut rng, 2048).unwrap(); let publickey = privatekey.topublic_key();
let pkcs1encodedprivatepem = privatekey.aspkcs1pem().unwrap(); let pkcs1encodedpublicpem = publickey.aspkcs1pem().unwrap();
let pkcs8encodedprivatepem = privatekey.aspkcs8pem().unwrap(); let pkcs8encodedpublicpem = publickey.aspkcs8pem().unwrap(); ```