kkeyroost

Learn · Device metadata

Device metadata

What the FIDO Alliance publishes about your key — model, icon, certification level and date — looked up by its AAGUID and shown on the Overview tab.

What it shows

Every FIDO2 authenticator model has an AAGUID — a 128-bit identifier shared by all units of that model. The FIDO Alliance's Metadata Service publishes a signed registry mapping each AAGUID to its vendor description, icon and certification status. keyroost reads your key's AAGUID and looks it up to show the model name and logo, certification level (e.g. FIDO Certified L2) and date, protocol family, and the CTAP/U2F versions the key reports.

Where the data comes from

keyroost ships a bundled snapshot of the metadata so the card works offline with no network access at runtime. The snapshot is a slimmed projection of the official MDS3 BLOB.

Updating the metadata

The bundled snapshot is embedded at build time, but keyroost also loads a user-supplied copy at startup if present — so packaged builds (AppImage, signed .exe, .dmg) can be refreshed without rebuilding.

python3 tools/gen_mds_data.py            # downloads the live FIDO BLOB
python3 tools/gen_mds_data.py --blob mds.jwt   # offline, from a local copy

Then place the resulting mds_data.json at any of: $KEYROOST_MDS_FILE, ~/.config/keyroost/mds_data.json (Linux), ~/Library/Application Support/keyroost/mds_data.json (macOS), %APPDATA%\keyroost\mds_data.json (Windows), or next to the executable.

The runtime copy is read for display only and isn't cryptographically verified, so treat it as a convenience cache; the bundled copy is trusted build input.

Why a key might show no metadata

The AAGUID isn't in the bundled snapshot (regenerate with --all to include more vendors), or the key reports an all-zero AAGUID — some U2F-only or privacy modes — which has no MDS entry.

Authoritative resources