read-accessgrid-credential

Implement NFC reader firmware that reads AccessGrid wallet credentials over Apple ECP2/DESFire and Google SmartTap.

Updated May 9, 2026
One-click install
npx skills add https://github.com/Access-Grid/skills --skill read-accessgrid-credential-access-grid
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: read-accessgrid-credential
Source: https://github.com/Access-Grid/skills/tree/main/skills/read-accessgrid-credential
Command: npx skills add https://github.com/Access-Grid/skills --skill read-accessgrid-credential-access-grid

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building an NFC access-control reader that accepts AccessGrid mobile wallet credentials requires implementing two distinct cryptographic transports — Apple Wallet's ECP2/DESFire flow and Google Wallet's SmartTap 2.0 flow — plus secure key handling, and getting any byte, IV, or status word wrong breaks the tap. ## Core Features & Use Cases - Dual-transport protocol guidance: Step-by-step implementation of Apple ECP2 polling, HCE preflight, DESFire EV1 AES three-pass authentication, AN10922 key diversification, and encrypted ReadData, plus Google SmartTap NEGOTIATE, ECDH + HKDF-SHA256 session keys, and AES-CTR/HMAC record-bundle decryption. - Config-driven key management: Enforces the rule that TCI, AIDs, AES keys, collector IDs, and long-term EC private keys load at runtime via OSDP, config files, config apps, or BLE provisioning — never baked into firmware — with schema, storage-tier, and rotation guidance. - C-shaped pseudo-code reference: A language-neutral reference implementation covering the full read loop, dispatch, both transports, and a verification checklist for bench and field testing. - Use Case: A firmware engineer building a door reader on an NXP PN5180 uses the skill to wire config plumbing first, then implement both wallet transports, route feedback cues over OSDP, and pass the field-test checklist before shipping. ## Quick Start Use the read-accessgrid-credential skill to walk me through implementing an NFC reader firmware that accepts AccessGrid credentials from both Apple Wallet and Google Wallet devices.

Frequently Asked Questions about read-accessgrid-credential

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build an NFC reader that accepts AccessGrid wallet credentials?

Implement both transports: Apple ECP2/DESFire (ECP2 polling frame, HCE preflight, AES three-pass auth, encrypted ReadData) and Google SmartTap (SELECT, NEGOTIATE with ECDH, encrypted record bundle). Load all keys and AIDs from runtime configuration, never hard-code them in firmware.

What NFC frontend chips support Apple ECP2 and DESFire EV1?

The NXP PN5180 and PN7160 are recommended for new builds since they support ECP2 polling frames and DESFire EV1 native commands natively. Older PN532 or MFRC522 parts can work but require you to handle ECP2 frame construction and DESFire crypto yourself.

Can I hard-code AccessGrid AES keys or AIDs in firmware?

No. TCI bytes, AIDs, AES keys, the SmartTap collector ID, and the long-term EC private key must be loadable at runtime via OSDP, a config file, a config app, or BLE provisioning. Hard-coded keys force a fleet-wide firmware rollout whenever rotation is needed.

Why does Apple Wallet not respond to my DESFire SELECT command?

Apple Wallet requires two prerequisites: an ECP2 polling frame with the correct TCI to wake the wallet, and the HCE preflight SELECT BY NAME APDUs for OSE.VAS.01 and D2760000850100. Without both, the DESFire applet is never exposed.

What is the difference between Simple and Key Diversified DESFire structures?

Simple uses AID F56401 with a static read key shared across passes. Key Diversified uses AID ACCE55 and derives a per-card read key via AN10922 AES-CMAC from a privacy key and the card UID. A production reader should support both.

Which crypto libraries should I use for SmartTap and DESFire in embedded firmware?

Use vetted libraries such as mbedTLS or wolfSSL, or your silicon vendor's hardware crypto API, for AES-CBC/CTR, AES-CMAC, HMAC-SHA256, HKDF, and ECDH/ECDSA on P-256. Never implement cryptographic primitives yourself.