]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - common/protocols.c
8 #define prnt PrintAndLog
16 uint8_t block_writelock
;
26 picopass_conf_block conf
;
30 uint8_t app_issuer_area
[8];
36 /*void prnt(char *fmt,...)
39 va_start(argptr, fmt);
41 printf(" "); // cleaning prompt
46 uint8_t isset(uint8_t val
, uint8_t mask
)
51 uint8_t notset(uint8_t val
, uint8_t mask
){
55 void fuse_config(const picopass_hdr
*hdr
)
57 uint8_t fuses
= hdr
->conf
.fuses
;
59 if (isset(fuses
,FUSE_FPERS
))prnt(" Mode: Personalization [Programmable]");
60 else prnt(" Mode: Application [Locked]");
62 if (isset(fuses
, FUSE_CODING1
))
66 if( isset( fuses
, FUSE_CODING0
)) prnt(" Coding: ISO 14443-2 B/ISO 15693");
67 else prnt(" Coding: ISO 14443B only");
69 if( isset (fuses
,FUSE_CRYPT1
| FUSE_CRYPT0
)) prnt(" Crypt: Secured page, keys not locked");
70 if( isset (fuses
,FUSE_CRYPT1
) && notset( fuses
, FUSE_CRYPT0
)) prnt(" Crypt: Secured page, keys not locked");
71 if( notset (fuses
,FUSE_CRYPT1
) && isset( fuses
, FUSE_CRYPT0
)) prnt(" Crypt: Non secured page");
72 if( notset (fuses
,FUSE_CRYPT1
) && notset( fuses
, FUSE_CRYPT0
)) prnt(" Crypt: No auth possible. Read only if RA is enabled");
74 if( isset( fuses
, FUSE_RA
)) prnt(" RA: Read access enabled");
75 else prnt(" RA: Read access not enabled");
77 void mem_app_config(const picopass_hdr
*hdr
)
79 uint8_t mem
= hdr
->conf
.mem_config
;
80 uint8_t applimit
= hdr
->conf
.app_limit
;
81 if (applimit
< 6) applimit
= 26;
84 if( isset(mem
, 0x10) && notset(mem
, 0x80)){
86 } else if( isset(mem
, 0x80) && notset(mem
, 0x10)){
93 prnt(" Mem: %u KBits ( %u * 8 bytes) [%02X]", kb
, maxBlk
, mem
);
94 prnt(" AA1: blocks 06-%02X", applimit
);
95 prnt(" AA2: blocks %02X-%02X", (applimit
+1), (hdr
->conf
.mem_config
));
97 void print_picopass_info(const picopass_hdr
*hdr
)
102 void printIclassDumpInfo(uint8_t* iclass_dump
)
105 // memcpy(&hdr, iclass_dump, sizeof(picopass_hdr));
106 print_picopass_info((picopass_hdr
*) iclass_dump
);
112 picopass_hdr hdr = {0x27,0xaf,0x48,0x01,0xf9,0xff,0x12,0xe0,0x12,0xff,0xff,0xff,0x7f,0x1f,0xff,0x3c};
113 prnt("Picopass configuration:");
114 print_picopass_info(&hdr);
116 int main(int argc, char *argv[])