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 => {
|
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
|
info!("Importing testing keys");
|
||||||
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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Generate keys
|
let key_id = id::KeyID::from_str("SgTG8ulMHAp5UsGWuCclw36zWsdEo5").unwrap();
|
||||||
info!("Starting key generation. This should not be long.");
|
let private_key = jwt::PrivateKey::from_der(
|
||||||
let key_id_for_generation = key_id.clone();
|
include_bytes!("../../jwt/tests/private_key.der"),
|
||||||
let new_keys = match task::spawn_blocking(move || {
|
&key_id,
|
||||||
jwt::generate(&key_id_for_generation)
|
)
|
||||||
})
|
.unwrap();
|
||||||
.await
|
let public_key = jwt::PublicKey::from_der(
|
||||||
{
|
include_bytes!("../../jwt/tests/public_key.der"),
|
||||||
Ok(res) => match res {
|
&key_id,
|
||||||
Ok(keys) => {
|
)
|
||||||
info!("Generated public and private key! Starting to save in database.");
|
.unwrap();
|
||||||
keys
|
|
||||||
|
(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) => {
|
Err(e) => {
|
||||||
error!("Failed to generate keys: {}", e);
|
error!("Failed to run KeyID generation: {}", e);
|
||||||
return Err(rocket);
|
return Err(rocket);
|
||||||
}
|
}
|
||||||
},
|
};
|
||||||
Err(e) => {
|
|
||||||
error!("Failed to run key generation: {}", e);
|
// Generate keys
|
||||||
return Err(rocket);
|
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
|
// Insert keys in database
|
||||||
match jwt::database::save_new_keys(&db.0, &key_id, &new_keys.0, &new_keys.1)
|
match jwt::database::save_new_keys(&db.0, &key_id, &private, &public).await {
|
||||||
.await
|
|
||||||
{
|
|
||||||
Ok(Some(())) => {
|
Ok(Some(())) => {
|
||||||
info!("Saved keys with id {}", key_id);
|
info!("Saved keys with id {}", key_id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue