Clean up duplicated picopass command definitions.

This commit is contained in:
Tiernan Messmer
2023-06-12 19:13:47 +10:00
parent 7b22576db9
commit aa747cd8bf
11 changed files with 186 additions and 181 deletions

View File

@@ -3,16 +3,41 @@
#include <furi_hal_nfc.h>
#define RFAL_PICOPASS_UID_LEN 8
#define RFAL_PICOPASS_MAX_BLOCK_LEN 8
#define RFAL_PICOPASS_BLOCK_LEN 8
enum {
RFAL_PICOPASS_CMD_ACTALL = 0x0A,
RFAL_PICOPASS_CMD_IDENTIFY = 0x0C,
RFAL_PICOPASS_CMD_SELECT = 0x81,
RFAL_PICOPASS_CMD_READCHECK = 0x88,
// PicoPass command bytes:
// Low nibble used for command
// High nibble used for options and checksum (MSB)
// The only option we care about in 15693 mode is the key
// which is only used by READCHECK, so for simplicity we
// don't bother breaking down the command and flags into parts
// READ: ADDRESS(1) CRC16(2) -> DATA(8) CRC16(2)
// IDENTIFY: No args -> ASNB(8) CRC16(2)
RFAL_PICOPASS_CMD_READ_OR_IDENTIFY = 0x0C,
// ADDRESS(1) CRC16(2) -> DATA(32) CRC16(2)
RFAL_PICOPASS_CMD_READ4 = 0x06,
// ADDRESS(1) DATA(8) SIGN(4)|CRC16(2) -> DATA(8) CRC16(2)
RFAL_PICOPASS_CMD_UPDATE = 0x87,
// ADDRESS(1) -> DATA(8)
RFAL_PICOPASS_CMD_READCHECK_KD = 0x88,
// ADDRESS(1) -> DATA(8)
RFAL_PICOPASS_CMD_READCHECK_KC = 0x18,
// CHALLENGE(4) READERSIGNATURE(4) -> CHIPRESPONSE(4)
RFAL_PICOPASS_CMD_CHECK = 0x05,
RFAL_PICOPASS_CMD_READ = 0x0C,
RFAL_PICOPASS_CMD_WRITE = 0x87,
// No args -> SOF
RFAL_PICOPASS_CMD_ACTALL = 0x0A,
// No args -> SOF
RFAL_PICOPASS_CMD_ACT = 0x8E,
// ASNB(8)|SERIALNB(8) -> SERIALNB(8) CRC16(2)
RFAL_PICOPASS_CMD_SELECT = 0x81,
// No args -> SERIALNB(8) CRC16(2)
RFAL_PICOPASS_CMD_DETECT = 0x0F,
// No args -> SOF
RFAL_PICOPASS_CMD_HALT = 0x00,
// PAGE(1) CRC16(2) -> BLOCK1(8) CRC16(2)
RFAL_PICOPASS_CMD_PAGESEL = 0x84,
};
typedef struct {
@@ -34,7 +59,7 @@ typedef struct {
} rfalPicoPassCheckRes;
typedef struct {
uint8_t data[RFAL_PICOPASS_MAX_BLOCK_LEN];
uint8_t data[RFAL_PICOPASS_BLOCK_LEN];
uint8_t crc[2];
} rfalPicoPassReadBlockRes;