page / bt-source /panel /class /webauthn /helpers /parse_backup_flags.py
GGSheng's picture
feat: deploy Gemma 4 to hf space
a757bd3 verified
from enum import Enum
from dataclasses import dataclass
from .structs import AuthenticatorDataFlags, CredentialDeviceType
from .exceptions import InvalidBackupFlags
@dataclass
class ParsedBackupFlags:
credential_device_type: CredentialDeviceType
credential_backed_up: bool
def parse_backup_flags(flags: AuthenticatorDataFlags) -> ParsedBackupFlags:
"""Convert backup eligibility and backup state flags into more useful representations
Raises:
`helpers.exceptions.InvalidBackupFlags` if an invalid backup state is detected
"""
credential_device_type = CredentialDeviceType.SINGLE_DEVICE
# A credential that can be backed up can typically be used on multiple devices
if flags.be:
credential_device_type = CredentialDeviceType.MULTI_DEVICE
if credential_device_type == CredentialDeviceType.SINGLE_DEVICE and flags.bs:
raise InvalidBackupFlags(
"Single-device credential indicated that it was backed up, which should be impossible."
)
return ParsedBackupFlags(
credential_device_type=credential_device_type,
credential_backed_up=flags.bs,
)