#define AUTH_FIRST 0\r
#define AUTH_NESTED 2\r
\r
+// mifare 4bit card answers\r
+#define CARD_ACK 0x0A // 1010 - ACK\r
+#define CARD_NACK_NA 0x04 // 0100 - NACK, not allowed (command not allowed)\r
+#define CARD_NACK_TR 0x05 // 0101 - NACK, transmission error\r
+\r
// reader voltage field detector\r
#define MF_MINFIELDV 4000\r
\r
#define MFEMUL_AUTH1 4\r
#define MFEMUL_AUTH2 5\r
#define MFEMUL_WORK 6\r
-#define MFEMUL_HALTED 7\r
+#define MFEMUL_WRITEBL2 7\r
+#define MFEMUL_HALTED 8\r
\r
//functions\r
uint8_t* mifare_get_bigbufptr(void);\r
int mifare_classic_writeblock(struct Crypto1State *pcs, uint32_t uid, uint8_t blockNo, uint8_t *blockData);\r
int mifare_classic_halt(struct Crypto1State *pcs, uint32_t uid); \r
\r
+// crypto functions\r
+void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *receivedCmd, int len);\r
+void mf_crypto1_encrypt(struct Crypto1State *pcs, uint8_t *data, int len, uint32_t *par);\r
+uint8_t mf_crypto1_encrypt4bit(struct Crypto1State *pcs, uint8_t data);\r
+\r
+// memory management\r
+uint8_t* mifare_get_bigbufptr(void);\r
+uint8_t* eml_get_bigbufptr_sendbuf(void);\r
+uint8_t* eml_get_bigbufptr_recbuf(void);\r
+\r
+// emulator functions\r
+void emlClearMem(void);\r
+void emlSetMem(uint8_t *data, int blockNum, int blocksCount);\r
+void emlGetMem(uint8_t *data, int blockNum, int blocksCount);\r
+void emlGetMemBt(uint8_t *data, int bytePtr, int byteCount);\r
+\r
#endif
\ No newline at end of file