VhlCfg / File / MifarePlusKeyAssignment Value

This value primary used for VHL format consists of a 10 byte list which contains the information for the complete sector trailer and according keys A and B (AES and/or Mifare, dependant of the card security level). For each sector in MifareSectorList this information is programmed.

Currently for key A/B only VHL keys can be used.

For VHL-read/write() this value specifies the key to authenticate with - for this purpose ACS bytes will be discarded.

This value is used by Mifare plus firmware only. For Mifare classic firmware use MifareClassicFormatSectorTrailer.

Properties

Format

Name Type/Size Description
- Array (until end of frame) -
FlagByte Bit mask (8 bits) Flag byte (- bit 0: use key B for read - bit 1: use key B for write
RFU Integer (bit mask area 0xFC) Zero padding
WriteWithKeyB Boolean (bit 0x02) -
ReadWithKeyB Boolean (bit 0x01) -
KeyAMemoryType Enumeration (8 bits) This value references a key memory type within the reader. VHL detects the security level (SL0..3) of a Mifare classic/plus card automatically and according to the security level the adequate key memories (AES and/or Mifare keys) are chosen. For some key memory types a card in Mifare plus security level 2 (SL2) needs both keys (AES and Mifare): then the configuration value MifarePlusKeyIdxOffset describes an offset of Mifare keys to AES keys (! signed value).
Values:
  • CryptoKey (0x00)
    References keys within the CryptoKey memory.
    Key offset needed: refer to MifarePlusKeyIdxOffset
  • SamKey (0x01)
    References keys within a SAM, only available on SAM based readers: key index from 0x00 to 0x7F, a SAM key contains up to 3 AES keys with different versions or 3 Mifare key pairs (A and B). VHL uses always the first SAM key.
    Key offset needed: see MifarePlusKeyIdxOffset
  • ReaderChipKey (0x02)
    References keys which are stored in reader chip memory: 32 keys (index 0..31) are available. This memory contains only keys for Mifare classic cards (SL1).
  • VhlKey (0x03)
    References keys which are defined in respective VHL files:
    AES keys in MifarePlusAesKeyList
    Mifare keys in MifareKeyList
KeyAIdx Integer (8 bits) Index to key: first key in list will be accessed with value 0, second with 1...
KeyBMemoryType Enumeration (8 bits) This value references a key memory type within the reader. VHL detects the security level (SL0..3) of a Mifare classic/plus card automatically and according to the security level the adequate key memories (AES and/or Mifare keys) are chosen. For some key memory types a card in Mifare plus security level 2 (SL2) needs both keys (AES and Mifare): then the configuration value MifarePlusKeyIdxOffset describes an offset of Mifare keys to AES keys (! signed value).
Values:
  • CryptoKey (0x00)
    References keys within the CryptoKey memory.
    Key offset needed: refer to MifarePlusKeyIdxOffset
  • SamKey (0x01)
    References keys within a SAM, only available on SAM based readers: key index from 0x00 to 0x7F, a SAM key contains up to 3 AES keys with different versions or 3 Mifare key pairs (A and B). VHL uses always the first SAM key.
    Key offset needed: see MifarePlusKeyIdxOffset
  • ReaderChipKey (0x02)
    References keys which are stored in reader chip memory: 32 keys (index 0..31) are available. This memory contains only keys for Mifare classic cards (SL1).
  • VhlKey (0x03)
    References keys which are defined in respective VHL files:
    AES keys in MifarePlusAesKeyList
    Mifare keys in MifareKeyList
KeyBIdx Integer (8 bits) Index to key: first key in list will be accessed with value 0, second with 1...
ACBytes Raw data (length 5 Bytes) This entry defines 5 bytes access condition for L3 cards, for L1 / L2 cards where only 4 AC bytes are defined the first byte will be discarded.