]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - client/cmdhfmfdes.h
   1 //----------------------------------------------------------------------------- 
   2 // Copyright (C) 2014 Iceman 
   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 MIFARE Desfire commands 
   9 //----------------------------------------------------------------------------- 
  11 int CmdHFMFDes(const char *Cmd
); 
  12 int CmdHF14ADesAuth(const char* cmd
); 
  13 int CmdHF14ADesRb(const char* cmd
); 
  14 int CmdHF14ADesWb(const char* cmd
); 
  15 int CmdHF14ADesInfo(const char *Cmd
); 
  16 int CmdHF14ADesEnumApplications(const char *Cmd
); 
  18 char * GetCardSizeStr( uint8_t fsize 
); 
  19 char * GetProtocolStr( uint8_t id 
); 
  20 char * GetVersionStr( uint8_t major
, uint8_t minor 
); 
  21 void GetKeySettings( uint8_t * aid 
); 
  23 // Command options for Desfire behavior. 
  33 #define  CREATE_APPLICATION                      0xca 
  34 #define  DELETE_APPLICATION                      0xda 
  35 #define  GET_APPLICATION_IDS                     0x6a 
  36 #define      SELECT_APPLICATION                  0x5a 
  37 #define      FORMAT_PICC                                 0xfc 
  38 #define      GET_VERSION                                 0x60 
  39 #define      READ_DATA                                   0xbd 
  40 #define      WRITE_DATA                                  0x3d 
  41 #define      GET_VALUE                                   0x6c 
  44 #define      LIMITED_CREDIT                      0x1c 
  45 #define      WRITE_RECORD                                0x3b 
  46 #define      READ_RECORDS                                0xbb 
  47 #define     CLEAR_RECORD_FILE                    0xeb 
  48 #define      COMMIT_TRANSACTION                  0xc7 
  49 #define      ABORT_TRANSACTION                   0xa7 
  50 #define      GET_FREE_MEMORY             0x6e 
  51 #define         GET_FILE_IDS                             0x6f 
  52 #define         GET_ISOFILE_IDS                          0x61 
  53 #define     GET_FILE_SETTINGS                    0xf5 
  54 #define     CHANGE_FILE_SETTINGS                 0x5f 
  55 #define     CREATE_STD_DATA_FILE                 0xcd 
  56 #define     CREATE_BACKUP_DATA_FILE      0xcb 
  57 #define     CREATE_VALUE_FILE                    0xcc 
  58 #define     CREATE_LINEAR_RECORD_FILE    0xc1 
  59 #define     CREATE_CYCLIC_RECORD_FILE    0xc0 
  60 #define     DELETE_FILE                                  0xdf 
  61 #define     AUTHENTICATE                                 0x0a  // AUTHENTICATE_NATIVE 
  62 #define         AUTHENTICATE_ISO                         0x1a  // AUTHENTICATE_STANDARD 
  63 #define         AUTHENTICATE_AES                         0xaa 
  64 #define     CHANGE_KEY_SETTINGS                  0x54 
  65 #define     GET_KEY_SETTINGS                     0x45 
  66 #define     CHANGE_KEY                                   0xc4 
  67 #define     GET_KEY_VERSION                      0x64 
  68 #define     AUTHENTICATION_FRAME                 0xAF 
  70 #define MAX_NUM_KEYS 0x0F 
  71 #define MAX_APPLICATION_COUNT 28 
  72 #define MAX_FILE_COUNT 32 
  73 #define MAX_FRAME_SIZE 60 
  74 #define NOT_YET_AUTHENTICATED 255 
  75 #define FRAME_PAYLOAD_SIZE (MAX_FRAME_SIZE - 5) 
  78 // status- and error codes                                                     | 
  79 #define OPERATION_OK                    0x00            // Successful operation 
  80 #define NO_CHANGES                              0x0C            //  No changes done to backup files 
  81                                                                                         //  ,CommitTransaction/ 
  82                                                                                         //  AbortTransaction not necessary 
  83 #define OUT_OF_EEPROM_ERROR             0x0E            // Insufficient NV-Memory to  
  85 #define ILLEGAL_COMMAND_CODE    0x1C            // Command code not supported 
  86 #define INTEGRITY_ERROR                 0x1E            // CRC or MAC does not match data 
  87                                                                                         //  Padding bytes not valid 
  88 #define NO_SUCH_KEY                             0x40            // Invalid key number specified 
  89 #define LENGTH_ERROR                    0x7E            // Length of command string invalid 
  90 #define PERMISSION_DENIED               0x9D            // Current configuration status 
  91                                                                                         //  does not allow the requested 
  93 #define PARAMETER_ERROR                 0x9E            // Value of the parameter(s) inval. 
  94 #define APPLICATION_NOT_FOUND   0xA0            // Requested AID not present on PIC 
  95 #define APPL_INTEGRITY_ERROR    0xA1 // [1] // Unrecoverable error within app- 
  96                                                                                         //  lication, app will be disabled 
  97 #define AUTHENTICATION_ERROR    0xAE            // Current authentication status 
  98                                                                                         //  does not allow the requested 
 100 #define ADDITIONAL_FRAME                0xAF            // Additional data frame is 
 101                                                                                         //  expected to be sent 
 102 #define BOUNDARY_ERROR                  0xBE            // Attempt to read/write data from/ 
 103                                                                                         //  to beyond the file's/record's 
 104                                                                                         //  limits. Attempt to exceed the 
 105                                                                                         //  limits of a value file. 
 106 #define PICC_INTEGRITY_ERROR    0xC1 // [1] // Unrecoverable error within PICC 
 107                                                                                         //  ,PICC will be disabled 
 108 #define COMMAND_ABORTED                 0xCA            // Previous Command was not fully 
 109                                                                                         //  completed Not all Frames were 
 110                                                                                         //  requested or provided by PCD 
 111 #define PICC_DISABLED_ERROR             0xCD // [1] // PICC was disabled by an unre- 
 113 #define COUNT_ERROR                             0xCE            // Number of Applications limited 
 114                                                                                         //  to 28, no additional 
 115                                                                                         //  CreateApplication possible 
 116 #define DUPLICATE_ERROR                 0xDE            // Creation of file/application 
 117                                                                                         //  failed because file/application 
 118                                                                                         //  with same number already exists 
 119 #define EEPROM_ERROR                    0xEE // [1]     // Could not complete NV-write 
 120                                                                                         //  operation due to loss of power, 
 121                                                                                         //  internal backup/rollback  
 122                                                                                         //  mechanism activated 
 123 #define FILE_NOT_FOUND_ERROR    0xF0            // Specified file number does not 
 125 #define FILE_INTEGRITY_ERROR    0xF1 // [1]     // Unrecoverable error within file, 
 126                                                                                         //  file will be disabled 
 128 // [1] These errors are not expected to appear during normal operation.        |