]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - client/mifarehost.h
f6ffab3f219896c93aaa9ca1e4f6162fd475bdad
   2 // people from mifare@nethemba.com, 2010 
   4 // This code is licensed to you under the terms of the GNU GPL, version 2 or, 
   5 // at your option, any later version. See the LICENSE.txt file for the text of 
   7 //----------------------------------------------------------------------------- 
   8 // High frequency ISO14443A commands 
   9 //----------------------------------------------------------------------------- 
  19 #include "nonce2key/nonce2key.h" 
  20 #include "nonce2key/crapto1.h" 
  21 #include "iso14443crc.h" 
  23 #define MEM_CHUNK               1000000 
  24 #define NESTED_SECTOR_RETRY     10 
  26 // mfCSetBlock work flags 
  27 #define CSETBLOCK_UID                                   0x01 
  28 #define CSETBLOCK_WUPC                                  0x02 
  29 #define CSETBLOCK_HALT                                  0x04 
  30 #define CSETBLOCK_INIT_FIELD            0x08 
  31 #define CSETBLOCK_RESET_FIELD           0x10 
  32 #define CSETBLOCK_SINGLE_OPER           0x1F 
  34 // mifare tracer flags 
  35 #define TRACE_IDLE                                                      0x00 
  36 #define TRACE_AUTH1                                                     0x01 
  37 #define TRACE_AUTH2                                                     0x02 
  38 #define TRACE_AUTH_OK                                           0x03 
  39 #define TRACE_READ_DATA                                 0x04 
  40 #define TRACE_WRITE_OK                                  0x05 
  41 #define TRACE_WRITE_DATA                                0x06 
  43 #define TRACE_ERROR                                                     0xFF 
  50 extern char logHexFileName
[FILE_PATH_SIZE
]; 
  52 int mfnested(uint8_t blockNo
, uint8_t keyType
, uint8_t * key
, uint8_t trgBlockNo
, uint8_t trgKeyType
, uint8_t * ResultKeys
, bool calibrate
); 
  53 int mfCheckKeys (uint8_t blockNo
, uint8_t keyType
, bool clear_trace
, uint8_t keycnt
, uint8_t * keyBlock
, uint64_t * key
); 
  55 int mfEmlGetMem(uint8_t *data
, int blockNum
, int blocksCount
); 
  56 int mfEmlSetMem(uint8_t *data
, int blockNum
, int blocksCount
); 
  58 int mfCSetUID(uint8_t *uid
, uint8_t *atqa
, uint8_t *sak
, uint8_t *oldUID
, bool wantWipe
); 
  59 int mfCSetBlock(uint8_t blockNo
, uint8_t *data
, uint8_t *uid
, bool wantWipe
, uint8_t params
); 
  60 int mfCGetBlock(uint8_t blockNo
, uint8_t *data
, uint8_t params
); 
  62 int mfTraceInit(uint8_t *tuid
, uint8_t *atqa
, uint8_t sak
, bool wantSaveToEmlFile
); 
  63 int mfTraceDecode(uint8_t *data_src
, int len
, bool wantSaveToEmlFile
); 
  65 int isTraceCardEmpty(void); 
  66 int isBlockEmpty(int blockN
); 
  67 int isBlockTrailer(int blockN
); 
  68 int loadTraceCard(uint8_t *tuid
); 
  69 int saveTraceCard(void);