| 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 A. |
| 11 | //----------------------------------------------------------------------------- |
| 12 | |
| 13 | #ifndef __ISO14443A_H |
| 14 | #define __ISO14443A_H |
| 15 | |
| 16 | #include <stdint.h> |
| 17 | #include <stdbool.h> |
| 18 | #include "mifare.h" |
| 19 | |
| 20 | extern void GetParity(const uint8_t *pbtCmd, uint16_t len, uint8_t *par); |
| 21 | extern void AppendCrc14443a(uint8_t *data, int len); |
| 22 | |
| 23 | extern void ReaderTransmit(uint8_t *frame, uint16_t len, uint32_t *timing); |
| 24 | extern void ReaderTransmitBitsPar(uint8_t *frame, uint16_t bits, uint8_t *par, uint32_t *timing); |
| 25 | extern void ReaderTransmitPar(uint8_t *frame, uint16_t len, uint8_t *par, uint32_t *timing); |
| 26 | extern int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par); |
| 27 | |
| 28 | extern void iso14443a_setup(uint8_t fpga_minor_mode); |
| 29 | extern int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, void *data); |
| 30 | extern int iso14443a_select_card(uint8_t *uid_ptr, iso14a_card_select_t *resp_data, uint32_t *cuid_ptr, bool anticollision, uint8_t num_cascades); |
| 31 | extern void iso14a_set_trigger(bool enable); |
| 32 | #endif /* __ISO14443A_H */ |