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}