bitwarden_uniffi/platform/
mod.rs1use bitwarden_core::platform::FingerprintRequest;
2use bitwarden_fido::ClientFido2Ext;
3
4use crate::error::{Error, Result};
5
6mod fido2;
7
8#[derive(uniffi::Object)]
9pub struct PlatformClient(pub(crate) bitwarden_core::Client);
10
11#[uniffi::export]
12impl PlatformClient {
13 pub fn fingerprint(&self, req: FingerprintRequest) -> Result<String> {
15 Ok(self
16 .0
17 .platform()
18 .fingerprint(&req)
19 .map_err(Error::Fingerprint)?)
20 }
21
22 pub fn user_fingerprint(&self, fingerprint_material: String) -> Result<String> {
24 Ok(self
25 .0
26 .platform()
27 .user_fingerprint(fingerprint_material)
28 .map_err(Error::UserFingerprint)?)
29 }
30
31 pub fn load_flags(&self, flags: std::collections::HashMap<String, bool>) -> Result<()> {
33 self.0.internal.load_flags(flags);
34 Ok(())
35 }
36
37 pub fn fido2(&self) -> fido2::ClientFido2 {
39 fido2::ClientFido2(self.0.fido2())
40 }
41}