mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-22 06:13:51 -07:00
command header via array
This commit is contained in:
parent
e93291e61d
commit
34a5d15bfc
2 changed files with 20 additions and 5 deletions
|
@ -52,6 +52,7 @@ AllowedChannelModesS AllowedChannelModes[] = {
|
|||
|
||||
{MFDES_GET_UID, DACd40, DCCNative, DCMEncrypted},
|
||||
{MFDES_CHANGE_KEY_SETTINGS, DACd40, DCCNative, DCMEncrypted},
|
||||
{MFDES_CHANGE_FILE_SETTINGS, DACd40, DCCNative, DCMEncrypted},
|
||||
{MFDES_READ_DATA, DACd40, DCCNative, DCMEncrypted},
|
||||
{MFDES_WRITE_DATA, DACd40, DCCNative, DCMEncrypted},
|
||||
|
||||
|
@ -73,17 +74,26 @@ AllowedChannelModesS AllowedChannelModes[] = {
|
|||
|
||||
{MFDES_GET_UID, DACEV1, DCCNative, DCMEncrypted},
|
||||
{MFDES_CHANGE_KEY_SETTINGS, DACEV1, DCCNative, DCMEncrypted},
|
||||
{MFDES_CHANGE_FILE_SETTINGS, DACEV1, DCCNative, DCMEncrypted},
|
||||
|
||||
{MFDES_CHANGE_KEY, DACEV1, DCCNative, DCMEncryptedPlain},
|
||||
{MFDES_CHANGE_KEY_EV2, DACEV1, DCCNative, DCMEncryptedPlain},
|
||||
};
|
||||
|
||||
static uint8_t DesfireGetCmdHeaderLen(uint8_t cmd) {
|
||||
if (cmd == MFDES_CHANGE_KEY || cmd == MFDES_CHANGE_CONFIGURATION)
|
||||
return 1;
|
||||
#define CMD_HEADER_LEN_ALL 0xffff
|
||||
CmdHeaderLengthsS CmdHeaderLengths[] = {
|
||||
{MFDES_CREATE_APPLICATION, CMD_HEADER_LEN_ALL},
|
||||
{MFDES_DELETE_APPLICATION, CMD_HEADER_LEN_ALL},
|
||||
{MFDES_CHANGE_KEY, 1},
|
||||
{MFDES_CHANGE_KEY_EV2, 2},
|
||||
{MFDES_CHANGE_CONFIGURATION, 1},
|
||||
{MFDES_CHANGE_FILE_SETTINGS, 1},
|
||||
};
|
||||
|
||||
if (cmd == MFDES_CHANGE_KEY_EV2)
|
||||
return 2;
|
||||
static uint8_t DesfireGetCmdHeaderLen(uint8_t cmd) {
|
||||
for (int i = 0; i < ARRAY_LENGTH(CmdHeaderLengths); i++)
|
||||
if (CmdHeaderLengths[i].cmd == cmd)
|
||||
return CmdHeaderLengths[i].len;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,11 @@ typedef struct {
|
|||
DesfireCommunicationMode commMode;
|
||||
} AllowedChannelModesS;
|
||||
|
||||
typedef struct {
|
||||
uint8_t cmd;
|
||||
uint32_t len;
|
||||
} CmdHeaderLengthsS;
|
||||
|
||||
void DesfireSecureChannelEncode(DesfireContext *ctx, uint8_t cmd, uint8_t *srcdata, size_t srcdatalen, uint8_t *dstdata, size_t *dstdatalen);
|
||||
void DesfireSecureChannelDecode(DesfireContext *ctx, uint8_t *srcdata, size_t srcdatalen, uint8_t respcode, uint8_t *dstdata, size_t *dstdatalen);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue