bitwarden_auth/login/api/response/webauthn_prf_user_decryption_option_api_response.rs
1use bitwarden_crypto::{EncString, UnsignedSharedKey};
2use serde::{Deserialize, Serialize};
3
4/// WebAuthn PRF User Decryption Option API response.
5/// Contains all required fields for WebAuthn PRF decryption.
6#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
7pub(crate) struct WebAuthnPrfUserDecryptionOptionApiResponse {
8 /// PRF key encrypted private key
9 #[serde(rename = "EncryptedPrivateKey")]
10 pub encrypted_private_key: EncString,
11
12 /// Public Key encrypted user key
13 #[serde(rename = "EncryptedUserKey")]
14 pub encrypted_user_key: UnsignedSharedKey,
15
16 /// Credential ID for this WebAuthn PRF credential.
17 /// TODO: PM-32163 - can remove `Option<T>` after 3 releases from server v2026.1.1
18 #[serde(rename = "CredentialId")]
19 pub credential_id: Option<String>,
20
21 /// Transport methods available for this credential (e.g., "usb", "nfc", "ble", "internal",
22 /// "hybrid").
23 /// TODO: PM-32163 - can remove `Option<T>` after 3 releases from server v2026.1.1
24 #[serde(rename = "Transports")]
25 pub transports: Option<Vec<String>>,
26}