mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-26 08:05:27 -07:00
communication mode to file mode and vice versa
This commit is contained in:
parent
41ed6534a1
commit
2ed139bfc3
2 changed files with 41 additions and 0 deletions
|
@ -345,6 +345,44 @@ uint8_t DesfireDESKeyGetVersion(uint8_t *key) {
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DesfireCommunicationMode DesfireFileCommModeToCommMode(uint8_t file_comm_mode) {
|
||||||
|
DesfireCommunicationMode mode = DCMNone;
|
||||||
|
switch (file_comm_mode & 0x03) {
|
||||||
|
case 0x00:
|
||||||
|
case 0x02:
|
||||||
|
mode = DCMPlain;
|
||||||
|
break;
|
||||||
|
case 0x01:
|
||||||
|
mode = DCMMACed;
|
||||||
|
break;
|
||||||
|
case 0x03:
|
||||||
|
mode = DCMEncrypted;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t DesfireCommModeToFileCommMode(DesfireCommunicationMode comm_mode) {
|
||||||
|
uint8_t fmode = DCMNone;
|
||||||
|
switch (comm_mode) {
|
||||||
|
case DCMPlain:
|
||||||
|
fmode = 0x00;
|
||||||
|
break;
|
||||||
|
case DCMMACed:
|
||||||
|
fmode = 0x01;
|
||||||
|
break;
|
||||||
|
case DCMEncrypted:
|
||||||
|
case DCMEncryptedPlain:
|
||||||
|
fmode = 0x11;
|
||||||
|
break;
|
||||||
|
case DCMNone:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return fmode;
|
||||||
|
}
|
||||||
|
|
||||||
void desfire_crc32(const uint8_t *data, const size_t len, uint8_t *crc) {
|
void desfire_crc32(const uint8_t *data, const size_t len, uint8_t *crc) {
|
||||||
crc32_ex(data, len, crc);
|
crc32_ex(data, len, crc);
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,6 +105,9 @@ void DesfireCryptoCMAC(DesfireContext *ctx, uint8_t *srcdata, size_t srcdatalen,
|
||||||
void DesfireDESKeySetVersion(uint8_t *key, DesfireCryptoAlgorythm keytype, uint8_t version);
|
void DesfireDESKeySetVersion(uint8_t *key, DesfireCryptoAlgorythm keytype, uint8_t version);
|
||||||
uint8_t DesfireDESKeyGetVersion(uint8_t *key);
|
uint8_t DesfireDESKeyGetVersion(uint8_t *key);
|
||||||
|
|
||||||
|
DesfireCommunicationMode DesfireFileCommModeToCommMode(uint8_t file_comm_mode);
|
||||||
|
uint8_t DesfireCommModeToFileCommMode(DesfireCommunicationMode comm_mode);
|
||||||
|
|
||||||
void desfire_crc32(const uint8_t *data, const size_t len, uint8_t *crc);
|
void desfire_crc32(const uint8_t *data, const size_t len, uint8_t *crc);
|
||||||
void desfire_crc32_append(uint8_t *data, const size_t len);
|
void desfire_crc32_append(uint8_t *data, const size_t len);
|
||||||
bool desfire_crc32_check(uint8_t *data, const size_t len, uint8_t *crc);
|
bool desfire_crc32_check(uint8_t *data, const size_t len, uint8_t *crc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue