rsa_export
allows you to export your RSA key, generated via the rsa crate, with PKCS#1 or PKCS#8 encoding
Note: Multi-prime keys are not supported
The keys can also be exported into the PEM format by enabling the feature pem_export
Example:
```rust use rsa::RSAPrivateKey; use rand::rngs::OsRng;
fn main() { let mut rng = OsRng; let key = RSAPrivateKey::new(&mut rng, 2048).unwrap();
let pkcs1_encoded_private = rsa_export::pkcs1::private_key(&key).unwrap();
let pkcs1_encoded_public = rsa_export::pkcs1::public_key(&key.to_public_key()).unwrap();
let pkcs8_encoded_private = rsa_export::pkcs8::private_key(&key).unwrap();
let pkcs8_encoded_public = rsa_export::pkcs8::public_key(&key.to_public_key()).unwrap();
} ```
Encode PKCS#1 or PKCS#8 encoded keys into the PEM format with the pem_export
feature enabled
```rust use rsa::RSAPrivateKey; use rand::rngs::OsRng;
fn main() { let mut rng = OsRng; let key = RSAPrivateKey::new(&mut rng, 2048).unwrap();
let pkcs1_encoded_private = rsa_export::pkcs1::private_key(&key).unwrap();
let pkcs1_encoded_public = rsa_export::pkcs1::public_key(&key.to_public_key()).unwrap();
let pkcs8_encoded_private = rsa_export::pkcs8::private_key(&key).unwrap();
let pkcs8_encoded_public = rsa_export::pkcs8::public_key(&key.to_public_key()).unwrap();
use rsa_export::pem::EncodingScheme;
let pkcs1_pem_encoded_private = rsa_export::pem::encode(EncodingScheme::PKCS1Private, pkcs1_encoded_private);
let pkcs1_pem_encoded_public = rsa_export::pem::encode(EncodingScheme::PKCS1Public, pkcs1_encoded_public);
let pkcs8_pem_encoded_private = rsa_export::pem::encode(EncodingScheme::PKCS8Private, pkcs8_encoded_private);
let pkcs8_pem_encoded_public = rsa_export::pem::encode(EncodingScheme::PKCS8Public, pkcs8_encoded_public);
} ```