43 #ifndef _LIBNFC_MIFARE_H_
44 # define _LIBNFC_MIFARE_H_
63 struct mifare_param_auth {
65 uint8_t abtAuthUid[4];
68 struct mifare_param_data {
72 struct mifare_param_value {
76 struct mifare_param_trailer {
78 uint8_t abtAccessBits[4];
83 struct mifare_param_auth mpa;
84 struct mifare_param_data mpd;
85 struct mifare_param_value mpv;
86 struct mifare_param_trailer mpt;
103 uint8_t abtManufacturer[8];
104 } mifare_classic_block_manufacturer;
108 } mifare_classic_block_data;
112 uint8_t abtAccessBits[4];
114 } mifare_classic_block_trailer;
117 mifare_classic_block_manufacturer mbm;
118 mifare_classic_block_data mbd;
119 mifare_classic_block_trailer mbt;
120 } mifare_classic_block;
123 mifare_classic_block amb[256];
124 } mifare_classic_tag;
135 } mifareul_block_manufacturer;
148 } mifareul_block_config11;
161 } mifareul_block_config21A;
168 } mifareul_block_config21B;
173 } mifarentag_block_manuf21356A;
176 } mifarentag_block_manuf21356B;
181 } mifarentag_block_manuf21356C;
184 } mifarentag_block_manuf21356D;
190 } mifarentag_block_config21356A;
193 } mifarentag_block_config21356B;
196 } mifarentag_block_config21356C;
199 } mifarentag_block_config21356D;
203 } mifarentag_block_config21356E;
207 } mifareul_block_data;
211 } mifarentag_block_data;
214 mifarentag_block_manuf21356A mbm21356a;
215 mifarentag_block_manuf21356B mbm21356b;
216 mifarentag_block_manuf21356C mbm21356c;
217 mifarentag_block_manuf21356D mbm21356d;
218 mifarentag_block_data mbd;
219 mifarentag_block_config21356A mbc21356a;
220 mifarentag_block_config21356B mbc21356b;
221 mifarentag_block_config21356C mbc21356c;
222 mifarentag_block_config21356D mbc21356d;
223 mifarentag_block_config21356E mbc21356e;
227 mifareul_block_manufacturer mbm;
228 mifareul_block_data mbd;
229 mifareul_block_config11 mbc11;
230 mifareul_block_config21A mbc21a;
231 mifareul_block_config21B mbc21b;
236 mifareul_block amb[4];
241 mifareul_block amb[5];
242 } mifareul_ev1_mf0ul11_tag;
247 mifareul_block amb[11];
248 } mifareul_ev1_mf0ul21_tag;
260 mifarentag_block amb[45];
261 } mifarentag_213_tag;
269 mifarentag_block amb[135];
270 } mifarentag_215_tag;
278 mifarentag_block amb[231];
279 } mifarentag_216_tag;
283 mifareul_block ul[58];
284 mifarentag_block nt[232];
bool nfc_initiator_mifare_cmd(nfc_device *pnd, const mifare_cmd mc, const uint8_t ui8Block, mifare_param *pmp)
Execute a MIFARE Classic Command.