diff options
author | Bernd Schoolmann <mail@quexten.com> | 2023-03-15 16:40:49 +0100 |
---|---|---|
committer | Bernd Schoolmann <mail@quexten.com> | 2023-03-26 04:28:03 +0200 |
commit | 9645a4636f6f4b04f4e6aba84e3c77fa0f2f6961 (patch) | |
tree | cfaf219d625c1dc73991e225bafce8949e5d16be /src/api.rs | |
parent | 2f9bd4eb45c57ce8e8d3011d7660223c05b50f98 (diff) | |
download | rbw-9645a4636f6f4b04f4e6aba84e3c77fa0f2f6961.tar.gz rbw-9645a4636f6f4b04f4e6aba84e3c77fa0f2f6961.zip |
Implement argon2 kdf
Diffstat (limited to 'src/api.rs')
-rw-r--r-- | src/api.rs | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -169,8 +169,14 @@ struct PreloginReq { #[derive(serde::Deserialize, Debug)] struct PreloginRes { + #[serde(rename = "Kdf", alias = "kdf")] + kdf: u32, #[serde(rename = "KdfIterations", alias = "kdfIterations")] kdf_iterations: u32, + #[serde(rename = "KdfMemory", alias = "kdfMemory")] + kdf_memory: Option<u32>, + #[serde(rename = "KdfParallelism", alias = "kdfParallelism")] + kdf_parallelism: Option<u32>, } #[derive(serde::Serialize, Debug)] @@ -628,7 +634,7 @@ impl Client { } } - pub async fn prelogin(&self, email: &str) -> Result<u32> { + pub async fn prelogin(&self, email: &str) -> Result<(u32, u32, Option<u32>, Option<u32>)> { let prelogin = PreloginReq { email: email.to_string(), }; @@ -640,7 +646,7 @@ impl Client { .await .map_err(|source| Error::Reqwest { source })?; let prelogin_res: PreloginRes = res.json_with_path().await?; - Ok(prelogin_res.kdf_iterations) + Ok((prelogin_res.kdf, prelogin_res.kdf_iterations, prelogin_res.kdf_memory, prelogin_res.kdf_parallelism)) } pub async fn register( |