3#include <lib/nfc/protocols/iso14443_4a/iso14443_4a.h>
11#define MF_DESFIRE_CMD_GET_VERSION (0x60)
12#define MF_DESFIRE_CMD_GET_FREE_MEMORY (0x6E)
13#define MF_DESFIRE_CMD_GET_KEY_SETTINGS (0x45)
14#define MF_DESFIRE_CMD_GET_KEY_VERSION (0x64)
15#define MF_DESFIRE_CMD_GET_APPLICATION_IDS (0x6A)
16#define MF_DESFIRE_CMD_SELECT_APPLICATION (0x5A)
17#define MF_DESFIRE_CMD_GET_FILE_IDS (0x6F)
18#define MF_DESFIRE_CMD_GET_FILE_SETTINGS (0xF5)
20#define MF_DESFIRE_CMD_CREATE_APPLICATION (0xCA)
21#define MF_DESFIRE_CMD_CREATE_STD_DATA_FILE (0xCD)
22#define MF_DESFIRE_CMD_CREATE_BACKUP_DATA_FILE (0xCB)
23#define MF_DESFIRE_CMD_CREATE_VALUE_FILE (0xCC)
24#define MF_DESFIRE_CMD_CREATE_LINEAR_RECORD_FILE (0xC1)
25#define MF_DESFIRE_CMD_CREATE_CYCLIC_RECORD_FILE (0xC0)
27#define MF_DESFIRE_CMD_READ_DATA (0xBD)
28#define MF_DESFIRE_CMD_GET_VALUE (0x6C)
29#define MF_DESFIRE_CMD_READ_RECORDS (0xBB)
31#define MF_DESFIRE_MAX_KEYS (14)
32#define MF_DESFIRE_MAX_FILES (32)
34#define MF_DESFIRE_UID_SIZE (7)
35#define MF_DESFIRE_BATCH_SIZE (5)
36#define MF_DESFIRE_APP_ID_SIZE (3)
37#define MF_DESFIRE_VALUE_SIZE (4)
40 MfDesfireTypeMF3ICD40,
78 uint8_t uid[MF_DESFIRE_UID_SIZE];
79 uint8_t batch[MF_DESFIRE_BATCH_SIZE];
90 bool is_master_key_changeable;
91 bool is_free_directory_list;
92 bool is_free_create_delete;
93 bool is_config_changeable;
94 uint8_t change_key_id;
99typedef uint8_t MfDesfireKeyVersion;
102 MfDesfireFileTypeStandard = 0,
103 MfDesfireFileTypeBackup = 1,
104 MfDesfireFileTypeValue = 2,
105 MfDesfireFileTypeLinearRecord = 3,
106 MfDesfireFileTypeCyclicRecord = 4,
107 MfDesfireFileTypeTransactionMac = 5,
111 MfDesfireFileCommunicationSettingsPlaintext = 0,
112 MfDesfireFileCommunicationSettingsAuthenticated = 1,
113 MfDesfireFileCommunicationSettingsEnciphered = 3,
114} MfDesfireFileCommunicationSettings;
116typedef uint8_t MfDesfireFileId;
117typedef uint16_t MfDesfireFileAccessRights;
120 MfDesfireFileType type;
121 MfDesfireFileCommunicationSettings comm;
122 MfDesfireFileAccessRights access_rights[MF_DESFIRE_MAX_KEYS];
123 uint8_t access_rights_len;
131 uint32_t limited_credit_value;
132 bool limited_credit_enabled;
142 uint32_t counter_limit;
152 uint8_t data[MF_DESFIRE_APP_ID_SIZE];
165 MfDesfireErrorNotPresent,
166 MfDesfireErrorProtocol,
167 MfDesfireErrorTimeout,
168 MfDesfireErrorAuthentication,
169 MfDesfireErrorCommandNotSupported,
205const uint8_t* mf_desfire_get_uid(
const MfDesfireData* data,
size_t* uid_len);
207bool mf_desfire_set_uid(
MfDesfireData* data,
const uint8_t* uid,
size_t uid_len);
NfcDeviceNameType
Verbosity level of the displayed NFC device name.
Definition nfc_device_base.h:14
This file provides a simple (non-type safe) array for elements with (optional) in-place construction ...
Definition iso14443_4a.h:42
Definition mf_desfire.h:155
Definition mf_desfire.h:151
Definition mf_desfire.h:172
Definition mf_desfire.h:147
Definition mf_desfire.h:119
Definition mf_desfire.h:84
Definition mf_desfire.h:89
Definition mf_desfire.h:61
Generic NFC device interface.
Definition nfc_device_base_i.h:142
Definition simple_array.c:5