19 lines
476 B
Rust
19 lines
476 B
Rust
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))
|
|
}
|