use crate::Error; use id::KeyID; use jwt_compact::alg::{ModulusBits, Rsa}; mod private; mod public; pub use private::PrivateKey; pub use public::PublicKey; pub fn generate(id: &KeyID) -> Result<(PrivateKey, PublicKey), Error> { let mut rng = rand::thread_rng(); let key_combo = Rsa::generate(&mut rng, ModulusBits::ThreeKibibytes)?; let private = PrivateKey::new(id, key_combo.0); let public = PublicKey::new(id, key_combo.1); Ok((private, public)) }