X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7e08450dcc111649b2f0d32bf9882ece522ea271..1b6cc9746e25e93b9c8d76e193af4796c942b167:/common/protocols.h diff --git a/common/protocols.h b/common/protocols.h index b47a2ae2..96a4b178 100644 --- a/common/protocols.h +++ b/common/protocols.h @@ -1,6 +1,11 @@ #ifndef PROTOCOLS_H #define PROTOCOLS_H +#include +#include +#include + + //The following data is taken from http://www.proxmark.org/forum/viewtopic.php?pid=13501#p13501 /* ISO14443A (usually NFC tags) @@ -246,12 +251,14 @@ ISO 7816-4 Basic interindustry commands. For command APDU's. #define TOPAZ_WRITE_NE8 0x1B // Write-no-erase (eight bytes) +// Definetions of which protocol annotations there are available #define ISO_14443A 0 #define ICLASS 1 #define ISO_14443B 2 #define TOPAZ 3 #define ISO_7816_4 4 #define MFDES 5 +#define LEGIC 6 //-- Picopass fuses #define FUSE_FPERS 0x80 @@ -322,7 +329,16 @@ ISO 7816-4 Basic interindustry commands. For command APDU's. #define MFDES_CHANGE_KEY 0xc4 #define MFDES_GET_KEY_VERSION 0x64 #define MFDES_AUTHENTICATION_FRAME 0xAF - + +// LEGIC Commands +#define LEGIC_MIM_22 0x0D +#define LEGIC_MIM_256 0x1D +#define LEGIC_MIM_1024 0x3D +#define LEGIC_ACK_22 0x19 +#define LEGIC_ACK_256 0x39 +#define LEGIC_READ 0x01 +#define LEGIC_WRITE 0x00 + void printIclassDumpInfo(uint8_t* iclass_dump); void getMemConfig(uint8_t mem_cfg, uint8_t chip_cfg, uint8_t *max_blk, uint8_t *app_areas, uint8_t *kb); @@ -378,5 +394,27 @@ void getMemConfig(uint8_t mem_cfg, uint8_t chip_cfg, uint8_t *max_blk, uint8_t * uint32_t GetT55xxClockBit(uint32_t clock); +// iclass / picopass chip config structures and shared routines +typedef struct { + uint8_t app_limit; //[8] + uint8_t otp[2]; //[9-10] + uint8_t block_writelock;//[11] + uint8_t chip_config; //[12] + uint8_t mem_config; //[13] + uint8_t eas; //[14] + uint8_t fuses; //[15] +} picopass_conf_block; + + +typedef struct { + uint8_t csn[8]; + picopass_conf_block conf; + uint8_t epurse[8]; + uint8_t key_d[8]; + uint8_t key_c[8]; + uint8_t app_issuer_area[8]; +} picopass_hdr; + + #endif // PROTOCOLS_H