more work on establishing credentials

This commit is contained in:
2022-12-14 14:52:16 -08:00
parent 67705aa2d1
commit 10fd1d6028
4 changed files with 17 additions and 12 deletions

View File

@ -17,23 +17,18 @@ use crate::errors::*;
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(untagged)]
pub enum Credentials {
#[serde(rename_all = "PascalCase")]
LongLived {
#[serde(rename = "AccessKeyId")]
access_key_id: String,
#[serde(rename = "SecretAccessKey")]
secret_access_key: String,
},
#[serde(rename_all = "PascalCase")]
ShortLived {
#[serde(rename = "AccessKeyId")]
access_key_id: String,
#[serde(rename = "SecretAccessKey")]
secret_access_key: String,
#[serde(rename = "Token")]
token: String,
#[serde(rename = "Expiration")]
expiration: String,
},
}
@ -130,7 +125,16 @@ impl AppState {
// fresh salt every time we encrypt, but better safe than sorry
let nonce = secretbox::gen_nonce();
let key_enc = secretbox::seal(secret_key.as_bytes(), &nonce, &key);
// insert into database
// eventually replace this with a temporary session
let mut session = self.session.write().unwrap();
*session = Session::Unlocked(Credentials::LongLived {
access_key_id: key_id,
secret_access_key: secret_key,
});
Ok(())
}