30 lines
683 B
Rust
30 lines
683 B
Rust
use anyhow::Error;
|
|
use rsa::RSAPrivateKey;
|
|
use rsa_pem::KeyExt;
|
|
|
|
#[derive(Clone, Debug, thiserror::Error)]
|
|
#[error("Error generating key")]
|
|
pub struct MyError;
|
|
|
|
fn main() -> Result<(), Error> {
|
|
let mut rng = rand::thread_rng();
|
|
|
|
let key = RSAPrivateKey::new(&mut rng, 2048).map_err(|_| MyError)?;
|
|
|
|
println!("PKCS1 - Private");
|
|
println!("{}", key.to_pem_pkcs1()?);
|
|
println!();
|
|
println!("PKCS8 - Private");
|
|
println!("{}", key.to_pem_pkcs8()?);
|
|
|
|
let key = key.to_public_key();
|
|
|
|
println!("PKCS1 - Public");
|
|
println!("{}", key.to_pem_pkcs1()?);
|
|
println!();
|
|
println!("PKCS8 - Public");
|
|
println!("{}", key.to_pem_pkcs8()?);
|
|
|
|
Ok(())
|
|
}
|