Merge pull request #2057 from kormax/master

Add new DESFire command code and annotation
This commit is contained in:
Iceman 2023-08-02 15:53:44 +02:00 committed by GitHub
commit 37882ed680
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 140 additions and 83 deletions

View file

@ -1023,6 +1023,9 @@ void annotateMfDesfire(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize) {
snprintf(exp, size, "CLEAR RECORD FILE"); snprintf(exp, size, "CLEAR RECORD FILE");
} }
break; break;
case MFDES_NOTIFY_TRANSACTION_SUCCESS:
snprintf(exp, size, "NOTIFY TRANSACTION SUCCESS (ECP)");
break;
case MFDES_COMMIT_TRANSACTION: case MFDES_COMMIT_TRANSACTION:
snprintf(exp, size, "COMMIT TRANSACTION"); snprintf(exp, size, "COMMIT TRANSACTION");
break; break;

View file

@ -588,6 +588,7 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
#define MFDES_DEBIT 0xDC #define MFDES_DEBIT 0xDC
#define MFDES_DELETE_FILE 0xDF #define MFDES_DELETE_FILE 0xDF
#define MFDES_CLEAR_RECORD_FILE 0xEB #define MFDES_CLEAR_RECORD_FILE 0xEB
#define MFDES_NOTIFY_TRANSACTION_SUCCESS 0xEE // New command. Used by Apple-ECP-compliant DESFire readers to signify successful transaction
#define MFDES_PREPARE_PC 0xF0 #define MFDES_PREPARE_PC 0xF0
#define MFDES_PROXIMITY_CHECK 0xF2 #define MFDES_PROXIMITY_CHECK 0xF2
#define MFDES_GET_FILE_SETTINGS 0xF5 #define MFDES_GET_FILE_SETTINGS 0xF5
@ -595,6 +596,7 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
#define MFDES_VERIFY_PC 0xFD #define MFDES_VERIFY_PC 0xFD
#define MFDES_NATIVE_ISO7816_WRAP_CLA 0x90 #define MFDES_NATIVE_ISO7816_WRAP_CLA 0x90
// MIFARE DESFire status & error codes: // MIFARE DESFire status & error codes:
#define MFDES_S_OPERATION_OK 0x00 #define MFDES_S_OPERATION_OK 0x00
#define MFDES_S_NO_CHANGES 0x0C #define MFDES_S_NO_CHANGES 0x0C
@ -673,6 +675,58 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
#define MFP_RESTORENOMAC 0xC2 #define MFP_RESTORENOMAC 0xC2
#define MFP_RESTOREMAC 0xC3 #define MFP_RESTOREMAC 0xC3
// MIFARE PLus EV2 Command set
// source: https://www.nxp.com/docs/en/data-sheet/MF1P(H)x2.pdf in Look-Up Tables
#define MFP_READ_SIG 0x3C // same as DESFIRE
#define MFP_WRITEPERSO 0xA8
#define MFP_COMMITPERSO 0xAA
#define MFP_AUTHENTICATEFIRST 0x70
#define MFP_AUTHENTICATEFIRST_VARIANT 0x73
#define MFP_AUTHENTICATENONFIRST 0x76
#define MFP_AUTHENTICATECONTINUE 0x72
#define MFP_AUTHENTICATESECTORSWITCH 0x7A
#define MFP_RESETAUTH 0x78
#define MFP_VCSUPPORTLASTISOL3 0x4B
#define MFP_ISOSELECT 0xA4
#define MFP_GETVERSION 0x60 // same as DESFIRE
#define MFP_ADDITIONALFRAME 0xAF
#define MFP_SETCONFIGSL1 0x44
#define MFP_MF_PERSONALIZEUIDUSAGE 0x40
// read commands
#define MFP_READENCRYPTEDNOMAC_MACED 0X30
#define MFP_READENCRYPTEDMAC_MACED 0x31
#define MFP_READPLAINNOMAC_MACED 0x32
#define MFP_READPLAINMAC_MACED 0x33
#define MFP_READENCRYPTEDNOMAC_UNMACED 0x34
#define MFP_READENCRYPTEDMAC_UNMACED 0X35
#define MFP_READPLAINNOMAC_UNMACED 0x36
#define MFP_READPLAINMAC_UNMACED 0x37
// write commands
#define MFP_WRITEENCRYPTEDNOMAC 0xA0
#define MFP_WRITEENCRYPTEDMAC 0xA1
#define MFP_WRITEPLAINNOMAC 0xA2
#define MFP_WRITEPLAINMAC 0xA3
// value commands
#define MFP_INCREMENTNOMAC 0xB0
#define MFP_INCREMENTMAC 0xB1
#define MFP_DECREMENTNOMAC 0xB2
#define MFP_DECREMENTMAC 0xB3
#define MFP_TRANSFERNOMAC 0xB4
#define MFP_TRANSFERMAC 0xB5
#define MFP_INCREMENTTRANSFERNOMAC 0xB6
#define MFP_INCREMENTTRANSFERMAC 0xB7
#define MFP_DECREMENTTRANSFERNOMAC 0xB8
#define MFP_DECREMENTTRANSFERMAC 0xB9
#define MFP_RESTORENOMAC 0xC2
#define MFP_RESTOREMAC 0xC3
// LEGIC Commands // LEGIC Commands
#define LEGIC_MIM_22 0x0D #define LEGIC_MIM_22 0x0D