| 1 | //----------------------------------------------------------------------------- |
| 2 | // Merlok - June 2011 |
| 3 | // Gerhard de Koning Gans - May 2008 |
| 4 | // Hagen Fritsch - June 2010 |
| 5 | // |
| 6 | // This code is licensed to you under the terms of the GNU GPL, version 2 or, |
| 7 | // at your option, any later version. See the LICENSE.txt file for the text of |
| 8 | // the license. |
| 9 | //----------------------------------------------------------------------------- |
| 10 | // Routines to support ISO 14443 type B. |
| 11 | //----------------------------------------------------------------------------- |
| 12 | |
| 13 | #ifndef __ISO14443B_H |
| 14 | #define __ISO14443B_H |
| 15 | |
| 16 | #include "proxmark3.h" |
| 17 | #include "apps.h" |
| 18 | #include "util.h" |
| 19 | #include "string.h" |
| 20 | #include "iso14443crc.h" |
| 21 | #include "common.h" |
| 22 | #include "mifare.h" |
| 23 | #include "protocols.h" |
| 24 | #include "mifareutil.h" // access to global variable: MF_DBGLEVEL |
| 25 | |
| 26 | extern void AppendCrc14443b(uint8_t *data, int len); |
| 27 | |
| 28 | void SendRawCommand14443B_Ex(UsbCommand *c); |
| 29 | |
| 30 | void iso14443b_setup(); |
| 31 | uint8_t iso14443b_apdu(uint8_t const *message, size_t message_length, uint8_t *response); |
| 32 | uint8_t iso14443b_select_card(iso14b_card_select_t* card); |
| 33 | uint8_t iso14443b_select_card_srx(iso14b_card_select_t* card); |
| 34 | |
| 35 | // testfunctions |
| 36 | void WaitForFpgaDelayQueueIsEmpty( uint16_t delay ); |
| 37 | void ClearFpgaShiftingRegisters(void); |
| 38 | |
| 39 | // States for 14B SIM command |
| 40 | #define SIM_NOFIELD 0 |
| 41 | #define SIM_IDLE 1 |
| 42 | #define SIM_HALTED 2 |
| 43 | #define SIM_SELECTING 3 |
| 44 | #define SIM_HALTING 4 |
| 45 | #define SIM_ACKNOWLEDGE 5 |
| 46 | #define SIM_WORK 6 |
| 47 | |
| 48 | #endif /* __ISO14443B_H */ |