]> cvs.zerfleddert.de Git - proxmark3-svn/blob - include/mifare.h
Merge branch 'master' into master
[proxmark3-svn] / include / mifare.h
1 //-----------------------------------------------------------------------------
2 // (c) 2012 Roel Verdult
3 //
4 // This code is licensed to you under the terms of the GNU GPL, version 2 or,
5 // at your option, any later version. See the LICENSE.txt file for the text of
6 // the license.
7 //-----------------------------------------------------------------------------
8 // MIFARE type prototyping
9 //-----------------------------------------------------------------------------
10
11 #ifndef _MIFARE_H_
12 #define _MIFARE_H_
13
14 #include "common.h"
15
16 #define MF_KEY_A 0
17 #define MF_KEY_B 1
18
19 #define MF_MAD1_SECTOR 0x00
20 #define MF_MAD2_SECTOR 0x10
21
22 //-----------------------------------------------------------------------------
23 // ISO 14443A
24 //-----------------------------------------------------------------------------
25 typedef struct {
26 byte_t uid[10];
27 byte_t uidlen;
28 byte_t atqa[2];
29 byte_t sak;
30 byte_t ats_len;
31 byte_t ats[256];
32 } __attribute__((__packed__)) iso14a_card_select_t;
33
34 typedef enum ISO14A_COMMAND {
35 ISO14A_CONNECT = (1 << 0),
36 ISO14A_NO_DISCONNECT = (1 << 1),
37 ISO14A_APDU = (1 << 2),
38 ISO14A_RAW = (1 << 3),
39 ISO14A_REQUEST_TRIGGER = (1 << 4),
40 ISO14A_APPEND_CRC = (1 << 5),
41 ISO14A_SET_TIMEOUT = (1 << 6),
42 ISO14A_NO_SELECT = (1 << 7),
43 ISO14A_TOPAZMODE = (1 << 8),
44 ISO14A_NO_RATS = (1 << 9),
45 ISO14A_SEND_CHAINING = (1 << 10),
46 ISO14A_CLEAR_TRACE = (1 << 11)
47 } iso14a_command_t;
48
49 typedef struct {
50 uint32_t cuid;
51 uint8_t sector;
52 uint8_t keytype;
53 uint32_t nonce;
54 uint32_t ar;
55 uint32_t nr;
56 uint32_t at;
57 uint32_t nonce2;
58 uint32_t ar2;
59 uint32_t nr2;
60 } nonces_t;
61
62 #endif // _MIFARE_H_
Impressum, Datenschutz