]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - common/protocols.c
aa80491b58f2b94d61313e01e1b4b4a2f64ac6a5
   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_config(const picopass_hdr 
*hdr
) 
  79         uint8_t mem 
= hdr
->conf
.mem_config
; 
  80         if( isset (mem
, 0x80)) prnt("   Mem: 16KBits (255 * 8 bytes)"); 
  81         else prnt("     Mem: 2 KBits ( 32 * 8 bytes)"); 
  84 void applimit_config(const picopass_hdr 
*hdr
) 
  86         uint8_t applimit 
= hdr
->conf
.app_limit
; 
  87         prnt("  AA1: blocks 6-%d", applimit
); 
  88         prnt("  AA2: blocks %d-", (applimit
+1)); 
  90 void print_picopass_info(const picopass_hdr 
*hdr
) 
  96 void printIclassDumpInfo(uint8_t* iclass_dump
) 
  99 //      memcpy(&hdr, iclass_dump, sizeof(picopass_hdr)); 
 100         print_picopass_info((picopass_hdr 
*) iclass_dump
); 
 106         picopass_hdr hdr = {0x27,0xaf,0x48,0x01,0xf9,0xff,0x12,0xe0,0x12,0xff,0xff,0xff,0x7f,0x1f,0xff,0x3c}; 
 107         prnt("Picopass configuration:"); 
 108         print_picopass_info(&hdr); 
 110 int main(int argc, char *argv[])