ezidam: on launch: in testing environment, use premade keys, else generate them
This commit is contained in:
parent
d62cfcd1d9
commit
36fb1cff52
1 changed files with 55 additions and 33 deletions
|
|
@ -61,48 +61,70 @@ impl Database {
|
|||
);
|
||||
}
|
||||
None => {
|
||||
info!("No valid keys are present. Starting generation...");
|
||||
// When running tests, import premade keys to save time
|
||||
// Otherwise, generate keys
|
||||
let (key_id, private, public) = if cfg!(test) {
|
||||
use std::str::FromStr;
|
||||
|
||||
// Generate key id
|
||||
let key_id = match task::spawn_blocking(id::KeyID::default).await {
|
||||
Ok(key_id) => {
|
||||
info!("Generated KeyID {}", key_id);
|
||||
key_id
|
||||
}
|
||||
Err(e) => {
|
||||
error!("Failed to run KeyID generation: {}", e);
|
||||
return Err(rocket);
|
||||
}
|
||||
};
|
||||
info!("Importing testing keys");
|
||||
|
||||
// Generate keys
|
||||
info!("Starting key generation. This should not be long.");
|
||||
let key_id_for_generation = key_id.clone();
|
||||
let new_keys = match task::spawn_blocking(move || {
|
||||
jwt::generate(&key_id_for_generation)
|
||||
})
|
||||
.await
|
||||
{
|
||||
Ok(res) => match res {
|
||||
Ok(keys) => {
|
||||
info!("Generated public and private key! Starting to save in database.");
|
||||
keys
|
||||
let key_id = id::KeyID::from_str("SgTG8ulMHAp5UsGWuCclw36zWsdEo5").unwrap();
|
||||
let private_key = jwt::PrivateKey::from_der(
|
||||
include_bytes!("../../jwt/tests/private_key.der"),
|
||||
&key_id,
|
||||
)
|
||||
.unwrap();
|
||||
let public_key = jwt::PublicKey::from_der(
|
||||
include_bytes!("../../jwt/tests/public_key.der"),
|
||||
&key_id,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
(key_id, private_key, public_key)
|
||||
} else {
|
||||
info!("No valid keys are present. Starting generation...");
|
||||
|
||||
// Generate key id
|
||||
let key_id = match task::spawn_blocking(id::KeyID::default).await {
|
||||
Ok(key_id) => {
|
||||
info!("Generated KeyID {}", key_id);
|
||||
key_id
|
||||
}
|
||||
Err(e) => {
|
||||
error!("Failed to generate keys: {}", e);
|
||||
error!("Failed to run KeyID generation: {}", e);
|
||||
return Err(rocket);
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
error!("Failed to run key generation: {}", e);
|
||||
return Err(rocket);
|
||||
}
|
||||
};
|
||||
|
||||
// Generate keys
|
||||
info!("Starting key generation. This should not be long.");
|
||||
let key_id_for_generation = key_id.clone();
|
||||
let new_keys = match task::spawn_blocking(move || {
|
||||
jwt::generate(&key_id_for_generation)
|
||||
})
|
||||
.await
|
||||
{
|
||||
Ok(res) => match res {
|
||||
Ok(keys) => {
|
||||
info!("Generated public and private key! Starting to save in database.");
|
||||
keys
|
||||
}
|
||||
Err(e) => {
|
||||
error!("Failed to generate keys: {}", e);
|
||||
return Err(rocket);
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
error!("Failed to run key generation: {}", e);
|
||||
return Err(rocket);
|
||||
}
|
||||
};
|
||||
|
||||
(key_id, new_keys.0, new_keys.1)
|
||||
};
|
||||
|
||||
// Insert keys in database
|
||||
match jwt::database::save_new_keys(&db.0, &key_id, &new_keys.0, &new_keys.1)
|
||||
.await
|
||||
{
|
||||
match jwt::database::save_new_keys(&db.0, &key_id, &private, &public).await {
|
||||
Ok(Some(())) => {
|
||||
info!("Saved keys with id {}", key_id);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue