vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit 6f0dea1b56238e6b12cd98e29838fce6815e2fa9
parent 439ef44973205aaa7a306b35dd2040e8a6473eb0
Author: BlackDex <black.dex@gmail.com>
Date:   Sun,  6 Nov 2022 18:07:09 +0100

Add `/devices/knowndevice` endpoint

Added a new endpoint which the currently beta client for at least
Android v2022.10.1 seems to be calling, and crashes with the response we
currently provide

Fixes #2890
Fixes #2891
Fixes #2892

Diffstat:
Msrc/api/core/accounts.rs | 14++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/api/core/accounts.rs b/src/api/core/accounts.rs @@ -36,6 +36,7 @@ pub fn routes() -> Vec<rocket::Route> { verify_password, api_key, rotate_api_key, + get_known_device, ] } @@ -739,3 +740,16 @@ async fn api_key(data: JsonUpcase<SecretVerificationRequest>, headers: Headers, async fn rotate_api_key(data: JsonUpcase<SecretVerificationRequest>, headers: Headers, conn: DbConn) -> JsonResult { _api_key(data, true, headers, conn).await } + +#[get("/devices/knowndevice/<email>/<uuid>")] +async fn get_known_device(email: String, uuid: String, mut conn: DbConn) -> String { + // This endpoint doesn't have auth header + if let Some(user) = User::find_by_mail(&email, &mut conn).await { + match Device::find_by_uuid_and_user(&uuid, &user.uuid, &mut conn).await { + Some(_) => String::from("true"), + _ => String::from("false"), + } + } else { + String::from("false") + } +}