Smart Reader Operation NFC Templates Mifare UltraLight AES Data
January 28, 2026 at 12:08 AMMifare UltraLight AES Data Template
Description
Use the Mifare UltraLight AES Data Template either to read data from a Mifare UltraLight AES card.
Registers
This Template uses 6 configuration registers:
| Alias | Offset | Name | Description |
|---|---|---|---|
| LKL | 0 |
Lookup List | Set to 65 to use this Template |
| LOC | 3 |
Location of Data | See details below |
| TOF | 1 |
Output Size and Format | See details below |
| AUT | 5 |
Authentication | See details below |
| OPT | 4 |
Options | Template-specific Options |
| PFX | 2 |
Prefix | Template-specific Prefix |
LOC - Location of Data
Offset : 3
Size : 3
Byte 0 : Address
This is the Address of the 1st page to read.
Byte 1 : Shift Bytes
Leading bytes to suppress; valid range is 0 to 48 (in decimal).
Byte 2 : Shift Bits
Leading bits to suppress; valid range is 0 to 7.
TOF - Output Size and Format
Offset : 1
Size : 2
Byte 0 : RAW Mode
Condition : When RAW Mode is selected (Bit 6 in Byte 0 is 0)
| Bit | Role | Values |
|---|---|---|
| 7 | Invert Data? | 0 : Transmit the sequence of bytes as is1 : Transmit the sequence of bytes in reverse order |
| 6 | Mode | 0 : RAW Mode (Data is a numerical value)1 : String Mode (Data is an ASCII string) |
| 5 | Padding if Data is shorted than specified length | 0 : Padd with 0 on the left1 : Padd with F on the right |
| 4 | Remove leading zeroes? | 0 : Keep all digits1 : Suppress 0 digits on the left of the Data |
| 3-0 | Length and Format | 0 : Decimal, 10 digits (truncation on 4-B)1 : Raw (hex), 4 bytes (32 bits)2 : Raw (hex), 8 bytes (64 bits)3 : Raw (hex), 5 bytes (40 bits)4 : Raw (hex), 10 bytes (80 bits)5 : Raw (hex), 7 bytes (56 bits)6 : Raw (hex), 11 bytes (88 bits)7 : RFU8 : Raw (hex), 16 bytes (128 bits)9 : Raw (hex), 20 bytes (160 bits)10 : Raw (hex), 24 bytes (196 bits)11 : Raw (hex), 32 bytes (256 bits)12 : Decimal, 12 digits (truncation on 5-B)13 : Decimal, 13 digits (truncation on 5-B)14 : Decimal, variable length15 : Raw (hex), variable length |
Byte 0 : String Mode
Condition : When String Mode is selected (Bit 6 in Byte 0 is 1)
| Bit | Role | Values |
|---|---|---|
| 7 | Invert Data? | 0 : Transmit the sequence of characters as is1 : Transmit the sequence of characters in reverse order |
| 6 | Mode | 0 : RAW Mode (Data is a numerical value)1 : String Mode (Data is an ASCII string) |
| 5 | Padding if Data is shorted than specified length | 0 : Variable length (no padding)1 : Padd with (space characters) on the right until the specified length |
| 4 | Short string or Long string? | 0 : Short string (truncate to 16 characters or less)1 : Long string (more than 16 characters) |
| 3-0 | Length | 0 : 16 characters1 : 1 character2 : 2 characters3 : 3 characters4 : 4 characters5 : 5 characters6 : 6 characters7 : 7 characters8 : 8 characters9 : 9 characters10 : 10 characters11 : 11 characters12 : 12 characters13 : 13 characters14 : 14 characters15 : 15 characters |
Byte 1 : Options for Long String
Condition : When Long String Mode is selected (Bit 6 in Byte 0 is 1 and Bit 4 is 1)
Use this byte to specify the exact length to read from the card. Valid range is 1 to 255.
AUT - Authentication
Offset : 5
Size : 18
Byte 0 : Authentication Key
| Bit | Role | Values |
|---|---|---|
| 7-2 | RFU | |
| 0-1 | Key Index inside the Mifare UltraLight AES | According to datasheet, 0=DataProtKey, 1=UIDRetrKey, 2=OriginalityKey |
Byte 1 : rfu0
Bytes 2-17 : Value of AES Secret Key
OPT - Options
Offset : 4
Size : 1
If this register is set, the Reader adds a token to its output to tell the receiver what kind of credential has been read.
| Bit | Role | Values |
|---|---|---|
| 7 | Shall the Reader keep on trying other Templates if this one succeeds? | 0 : Exit the Template loop if the Card has been read by this Template1 : Continue with the next Template |
| 6-4 | RFU | |
| 3-2 | Position of the Card Type Token | 0 : Before the Prefix1 : After the Prefix, before the Data2 : After the Data (before the Suffix)3 : RFU |
| 1-0 | Add a Card Type Token to the output stream? | 0 : Do not add a Card Type Token1 : Add Card Type Token in hex (65)2 : Add Card Type Token as char (U)3 : RFU |
PFX - Prefix
Offset : 2
Size : 8
A Template-specific Prefix, that is added after the Reader’s global Prefix.
Remark : Use \t for a Tab, \n for Enter, \b for Back space, \v for Vertical space.