Problem
AuthenticatorDataFlags in libwebauthn/src/fido.rs models bits 0x08 (RFU_2_1) and 0x10 (RFU_2_2) as reserved. Per WebAuthn L3 §6.1, these are Backup Eligibility (BE) and Backup State (BS). CTAP 2.1+ uses the same layout. The bits are already parsed and round-tripped (from_bits_truncate keeps all eight, and to_response_bytes() returns the verbatim raw authData from #249), but no named flag or accessor surfaces them, so callers must read raw bits or re-parse authData by hand.
Why it matters
BE indicates a credential is eligible to be backed up or synced across devices (set once at registration, immutable thereafter). BS indicates it is currently backed up. Integrations use these for backup-aware UX and WebAuthn signal flows. Named flags are also clearer than two meaningful bits called RFU_*.
What needs doing
Problem
AuthenticatorDataFlagsinlibwebauthn/src/fido.rsmodels bits0x08(RFU_2_1) and0x10(RFU_2_2) as reserved. Per WebAuthn L3 §6.1, these are Backup Eligibility (BE) and Backup State (BS). CTAP 2.1+ uses the same layout. The bits are already parsed and round-tripped (from_bits_truncatekeeps all eight, andto_response_bytes()returns the verbatimrawauthData from #249), but no named flag or accessor surfaces them, so callers must read raw bits or re-parse authData by hand.Why it matters
BE indicates a credential is eligible to be backed up or synced across devices (set once at registration, immutable thereafter). BS indicates it is currently backed up. Integrations use these for backup-aware UX and WebAuthn signal flows. Named flags are also clearer than two meaningful bits called
RFU_*.What needs doing
RFU_2_1(0x08) toBACKUP_ELIGIBILITYandRFU_2_2(0x10) toBACKUP_STATEinAuthenticatorDataFlags. Keep the bit values andfrom_bits_truncatepath unchanged. Leave0x02and0x20reserved.backup_eligible()andbacked_up()onAuthenticatorData(and/orMakeCredentialResponse/GetAssertionResponse). This is platform-facing UX/signal state, not agetClientExtensionResults()output, so keep it out of the IDL/JSON response types.rawauthData from fix(ctap2): preserve raw authenticatorData bytes #249.to_response_bytes()must keep returning raw bytes so the flags stay read-only.fido.rs(test_serialize_auth_dataand the verbatim-bytes test) with a case where BE and BS are set.