feat: import passkeys from CXF (FIDO Alliance / Google Password Manager) exports (v2.10.3) Browser parity gap I1/P3 (MEDIUM). CXF is the FIDO Alliance Credential Exchange Format; Google Password Manager exports use it. Android had zero CXF awareness, so passkeys exported from those managers were lost on import. - CsvImport: detect CXF via an accounts sniff placed BEFORE the Bitwarden items sniff (CXF nests items under each account and would otherwise misclassify); parseCxfJson walks accounts->items->credentials and imports type==passkey credentials, requiring the same six fields the browser does - cxfKeyToJwk: decode the base64url PKCS#8 DER key with a minimal DerReader, detect Ed25519 (OID 1.3.101.112 -> alg -8) vs EC P-256 (1.2.840.10045.2.1 -> alg -7), and extract d into the same signing JWK the assertion engine already consumes; unreadable keys skip just that credential - ImportScreen.confirmImport: skip spawning an empty login for passkey-only entries (the browser creates a standalone passkey, not a login+passkey pair) - CxfImportTest: 7 tests with self-assembling PKCS#8 DER vectors

dev · 4 weeks ago · 2026-08-02 · 5.8 MB

$ koh steal kepr.uk/peach-android@d8244eb8a3b9
·
← cf9af01df47c 2d77bd8340ee →
⇓ download .face