aboutsummaryrefslogtreecommitdiffstats
path: root/src/api.rs
diff options
context:
space:
mode:
authorBernd Schoolmann <mail@quexten.com>2023-03-15 16:40:49 +0100
committerBernd Schoolmann <mail@quexten.com>2023-03-26 04:28:03 +0200
commit9645a4636f6f4b04f4e6aba84e3c77fa0f2f6961 (patch)
treecfaf219d625c1dc73991e225bafce8949e5d16be /src/api.rs
parent2f9bd4eb45c57ce8e8d3011d7660223c05b50f98 (diff)
downloadrbw-9645a4636f6f4b04f4e6aba84e3c77fa0f2f6961.tar.gz
rbw-9645a4636f6f4b04f4e6aba84e3c77fa0f2f6961.zip
Implement argon2 kdf
Diffstat (limited to 'src/api.rs')
-rw-r--r--src/api.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/api.rs b/src/api.rs
index f2c853d..6c8545c 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -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(