add public/private keys for users
parent
888caba1d1
commit
4be3bdda0c
@ -0,0 +1,20 @@
|
||||
use openssl::pkey::{Private, Public};
|
||||
use openssl::rsa::Rsa;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::core::*;
|
||||
|
||||
#[derive(sqlx::Type, Clone, Serialize, Deserialize)]
|
||||
#[sqlx(transparent)]
|
||||
pub struct PublicKeyDer(Vec<u8>);
|
||||
|
||||
#[derive(sqlx::Type, Clone, Serialize, Deserialize)]
|
||||
#[sqlx(transparent)]
|
||||
pub struct PrivateKeyDer(Vec<u8>);
|
||||
|
||||
pub fn generate_keypair() -> Result<(PublicKeyDer, PrivateKeyDer)> {
|
||||
let private = Rsa::generate(4096)?;
|
||||
let public_key = PublicKeyDer(private.public_key_to_der()?);
|
||||
let private_key = PrivateKeyDer(private.private_key_to_der()?);
|
||||
Ok((public_key, private_key))
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
pub mod bear;
|
||||
pub mod http;
|
||||
pub mod keys;
|
||||
pub mod password;
|
||||
pub mod token;
|
||||
pub mod validate;
|
||||
|
Loading…
Reference in New Issue