#include <stddef.h>
#include "common.h"
#include "usb_cmd.h"
- #include "hitag2.h"
#include "hitagS.h"
#include "mifare.h"
#include "../common/crc32.h"
extern int rsamples; // = 0;
extern uint8_t trigger;
-// This may be used (sparingly) to declare a function to be copied to
-// and executed from RAM
-#define RAMFUNC __attribute((long_call, section(".ramfunc")))
-
/// appmain.h
void ReadMem(int addr);
void __attribute__((noreturn)) AppMain(void);
void EPA_PACE_Collect_Nonce(UsbCommand * c);
void EPA_PACE_Replay(UsbCommand *c);
- // mifarecmd.h
- void MifareReadBlock(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *data);
- void MifareUReadBlock(uint8_t arg0, uint8_t arg1, uint8_t *datain);
- void MifareUC_Auth(uint8_t arg0, uint8_t *datain);
- void MifareUReadCard(uint8_t arg0, uint16_t arg1, uint8_t arg2, uint8_t *datain);
- void MifareReadSector(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain);
- void MifareWriteBlock(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain);
- //void MifareUWriteBlockCompat(uint8_t arg0,uint8_t *datain);
- void MifareUWriteBlock(uint8_t arg0, uint8_t arg1, uint8_t *datain);
- void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareAcquireEncryptedNonces(uint32_t arg0, uint32_t arg1, uint32_t flags, uint8_t *datain);
- void MifareChkKeys(uint16_t arg0, uint16_t arg1, uint8_t arg2, uint8_t *datain);
- void MifareSetDbgLvl(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareEMemClr(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareEMemSet(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareEMemGet(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareECardLoad(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareCWipe(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain); // Work with "magic Chinese" card
- void MifareCSetBlock(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareCGetBlock(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
- void MifareCIdent(); // is "magic chinese" card?
- void MifareUSetPwd(uint8_t arg0, uint8_t *datain);
-
- //desfire
- void Mifare_DES_Auth1(uint8_t arg0,uint8_t *datain);
- void Mifare_DES_Auth2(uint32_t arg0, uint8_t *datain);
-
// mifaredesfire.h
- bool InitDesfireCard();
- void MifareSendCommand(uint8_t arg0,uint8_t arg1, uint8_t *datain);
- void MifareDesfireGetInformation();
- void MifareDES_Auth1(uint8_t arg0,uint8_t arg1,uint8_t arg2, uint8_t *datain);
- void ReaderMifareDES(uint32_t param, uint32_t param2, uint8_t * datain);
- int DesfireAPDU(uint8_t *cmd, size_t cmd_len, uint8_t *dataout);
- size_t CreateAPDU( uint8_t *datain, size_t len, uint8_t *dataout);
+ bool InitDesfireCard();
+ void MifareSendCommand(uint8_t arg0,uint8_t arg1, uint8_t *datain);
+ void MifareDesfireGetInformation();
+ void MifareDES_Auth1(uint8_t arg0,uint8_t arg1,uint8_t arg2, uint8_t *datain);
+ void ReaderMifareDES(uint32_t param, uint32_t param2, uint8_t * datain);
+ int DesfireAPDU(uint8_t *cmd, size_t cmd_len, uint8_t *dataout);
+ size_t CreateAPDU( uint8_t *datain, size_t len, uint8_t *dataout);
-
-/// iclass.h
-void RAMFUNC SnoopIClass(void);
-void SimulateIClass(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
-void ReaderIClass(uint8_t arg0);
-void ReaderIClass_Replay(uint8_t arg0,uint8_t *MAC);
-void IClass_iso14443A_GetPublic(uint8_t arg0);
-void iClass_Authentication(uint8_t *MAC);
-void iClass_WriteBlock(uint8_t blockNo, uint8_t *data);
-void iClass_ReadBlk(uint8_t blockNo);
-bool iClass_ReadBlock(uint8_t blockNo, uint8_t *readdata);
-void iClass_Dump(uint8_t blockno, uint8_t numblks);
-void iClass_Clone(uint8_t startblock, uint8_t endblock, uint8_t *data);
-void iClass_ReadCheck(uint8_t blockNo, uint8_t keyType);
-
// cmd.h
bool cmd_receive(UsbCommand* cmd);
bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);