]> git.zerfleddert.de Git - proxmark3-svn/blame - include/mifare.h
Merge pull request #81 from mdp/fixguard
[proxmark3-svn] / include / mifare.h
CommitLineData
ecab772e 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
22e24700 14#include "common.h"
ecab772e 15
16//-----------------------------------------------------------------------------
17// ISO 14443A
18//-----------------------------------------------------------------------------
19typedef struct {
20 byte_t uid[10];
21 byte_t uidlen;
22 byte_t atqa[2];
23 byte_t sak;
24 byte_t ats_len;
25 byte_t ats[256];
26} __attribute__((__packed__)) iso14a_card_select_t;
27
28typedef enum ISO14A_COMMAND {
0ec548dc 29 ISO14A_CONNECT = (1 << 0),
30 ISO14A_NO_DISCONNECT = (1 << 1),
31 ISO14A_APDU = (1 << 2),
32 ISO14A_RAW = (1 << 3),
33 ISO14A_REQUEST_TRIGGER = (1 << 4),
34 ISO14A_APPEND_CRC = (1 << 5),
35 ISO14A_SET_TIMEOUT = (1 << 6),
36 ISO14A_NO_SELECT = (1 << 7),
37 ISO14A_TOPAZMODE = (1 << 8)
ecab772e 38} iso14a_command_t;
39
6fc68747 40
41//-----------------------------------------------------------------------------
42// ISO 14443B
43//-----------------------------------------------------------------------------
44typedef struct {
45 byte_t uid[10];
46 byte_t uidlen;
47 byte_t atqb[7];
48 byte_t chipid;
49 byte_t cid;
50} __attribute__((__packed__)) iso14b_card_select_t;
51
52
53typedef enum ISO14B_COMMAND {
54 ISO14B_CONNECT = (1 << 0),
55 ISO14B_DISCONNECT = (1 << 1),
56 ISO14B_APDU = (1 << 2),
57 ISO14B_RAW = (1 << 3),
58 ISO14B_REQUEST_TRIGGER = (1 << 4),
59 ISO14B_APPEND_CRC = (1 << 5),
60 ISO14B_SELECT_STD = (1 << 6),
61 ISO14B_SELECT_SR = (1 << 7)
62} iso14b_command_t;
63
e7470660 64//-----------------------------------------------------------------------------
65// "hf 14a sim x", "hf mf sim x" attacks
66//-----------------------------------------------------------------------------
67typedef struct {
68 uint32_t cuid;
e7470660 69 uint32_t nonce;
70 uint32_t ar;
71 uint32_t nr;
72 uint32_t nonce2;
73 uint32_t ar2;
74 uint32_t nr2;
bf5d7992 75 uint8_t sector;
76 uint8_t keytype;
84bdbc19 77 enum {
78 EMPTY,
79 FIRST,
80 SECOND,
81 } state;
e7470660 82} nonces_t;
6fc68747 83
ecab772e 84#endif // _MIFARE_H_
Impressum, Datenschutz