Merge branch 'master' into hf_mf_sim

This commit is contained in:
Philippe Teuwen 2019-04-06 01:22:15 +02:00 committed by GitHub
commit b666c27f3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
99 changed files with 948 additions and 948 deletions

View file

@ -25,22 +25,22 @@
#define CARD_MEMORY_SIZE 4096 #define CARD_MEMORY_SIZE 4096
#define DMA_BUFFER_SIZE 256 //128 (how big is the dma?!? #define DMA_BUFFER_SIZE 256 //128 (how big is the dma?!?
extern uint8_t *BigBuf_get_addr(void); uint8_t *BigBuf_get_addr(void);
extern uint8_t *BigBuf_get_EM_addr(void); uint8_t *BigBuf_get_EM_addr(void);
extern uint16_t BigBuf_max_traceLen(void); uint16_t BigBuf_max_traceLen(void);
extern void BigBuf_Clear(void); void BigBuf_Clear(void);
extern void BigBuf_Clear_ext(bool verbose); void BigBuf_Clear_ext(bool verbose);
extern void BigBuf_Clear_keep_EM(void); void BigBuf_Clear_keep_EM(void);
extern void BigBuf_Clear_EM(void); void BigBuf_Clear_EM(void);
extern uint8_t *BigBuf_malloc(uint16_t); uint8_t *BigBuf_malloc(uint16_t);
extern void BigBuf_free(void); void BigBuf_free(void);
extern void BigBuf_free_keep_EM(void); void BigBuf_free_keep_EM(void);
extern void BigBuf_print_status(void); void BigBuf_print_status(void);
extern uint32_t BigBuf_get_traceLen(void); uint32_t BigBuf_get_traceLen(void);
extern void clear_trace(void); void clear_trace(void);
extern void set_tracing(bool enable); void set_tracing(bool enable);
extern void set_tracelen(uint32_t value); void set_tracelen(uint32_t value);
extern bool get_tracing(void); bool get_tracing(void);
extern bool RAMFUNC LogTrace(const uint8_t *btBytes, uint16_t iLen, uint32_t timestamp_start, uint32_t timestamp_end, uint8_t *parity, bool readerToTag); bool RAMFUNC LogTrace(const uint8_t *btBytes, uint16_t iLen, uint32_t timestamp_start, uint32_t timestamp_end, uint8_t *parity, bool readerToTag);
extern uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length); uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length);
#endif /* __BIGBUF_H */ #endif /* __BIGBUF_H */

View file

@ -14,6 +14,6 @@
#include <stdbool.h> // for bool #include <stdbool.h> // for bool
#include <inttypes.h> // PRIu64 #include <inttypes.h> // PRIu64
extern void RunMod(); void RunMod();
#endif /* __STANDALONE_H */ #endif /* __STANDALONE_H */

View file

@ -65,8 +65,8 @@ void ListenReaderField(int limit);
extern int ToSendMax; extern int ToSendMax;
extern uint8_t ToSend[]; extern uint8_t ToSend[];
extern void StandAloneMode(void); void StandAloneMode(void);
extern void printStandAloneModes(void); void printStandAloneModes(void);
/// lfops.h /// lfops.h
extern uint8_t decimation; extern uint8_t decimation;
@ -230,10 +230,10 @@ uint8_t cmd_send(uint64_t cmd, uint64_t arg0, uint64_t arg1, uint64_t arg2, void
void HfSniff(int, int); void HfSniff(int, int);
//felica.c //felica.c
extern void felica_sendraw(UsbCommand *c); void felica_sendraw(UsbCommand *c);
extern void felica_sniff(uint32_t samplesToSkip, uint32_t triggersToSkip); void felica_sniff(uint32_t samplesToSkip, uint32_t triggersToSkip);
extern void felica_sim_lite(uint64_t uid); void felica_sim_lite(uint64_t uid);
extern void felica_dump_lite_s(); void felica_dump_lite_s();
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -20,11 +20,11 @@
#define note_7 506 #define note_7 506
#define note_8 0 #define note_8 0
extern void Ring_BEE_ONCE(uint16_t music_note); void Ring_BEE_ONCE(uint16_t music_note);
extern void Ring_BEE_TIME(uint16_t music_note, uint16_t count); void Ring_BEE_TIME(uint16_t music_note, uint16_t count);
extern void ring_2_7khz(uint16_t count); void ring_2_7khz(uint16_t count);
extern void Ring_ALL(uint16_t count); void Ring_ALL(uint16_t count);
extern void Ring_Little_Star(uint16_t count); void Ring_Little_Star(uint16_t count);
#endif #endif

View file

@ -115,7 +115,7 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
extern void Dbprintf(const char *fmt, ...); void Dbprintf(const char *fmt, ...);
void FlashmemSetSpiBaudrate(uint32_t baudrate); void FlashmemSetSpiBaudrate(uint32_t baudrate);
bool FlashInit(); bool FlashInit();

View file

@ -37,7 +37,7 @@ int FpgaGetCurrent(void);
void SetAdcMuxFor(uint32_t whichGpio); void SetAdcMuxFor(uint32_t whichGpio);
// extern and generel turn off the antenna method // extern and generel turn off the antenna method
extern void switch_off(void); void switch_off(void);
// definitions for multiple FPGA config files support // definitions for multiple FPGA config files support
#define FPGA_BITSTREAM_LF 1 #define FPGA_BITSTREAM_LF 1

View file

@ -22,13 +22,13 @@ struct hitag2_tag {
uint8_t sectors[12][4]; uint8_t sectors[12][4];
}; };
extern uint32_t _f20(const uint64_t x); uint32_t _f20(const uint64_t x);
extern uint64_t _hitag2_init(const uint64_t key, const uint32_t serial, const uint32_t IV); uint64_t _hitag2_init(const uint64_t key, const uint32_t serial, const uint32_t IV);
extern uint64_t _hitag2_round(uint64_t *state); uint64_t _hitag2_round(uint64_t *state);
extern uint32_t _hitag2_byte(uint64_t *x); uint32_t _hitag2_byte(uint64_t *x);
extern void hitag2_cipher_reset(struct hitag2_tag *tag, const uint8_t *iv); void hitag2_cipher_reset(struct hitag2_tag *tag, const uint8_t *iv);
extern int hitag2_cipher_authenticate(uint64_t *cs, const uint8_t *authenticator_is); int hitag2_cipher_authenticate(uint64_t *cs, const uint8_t *authenticator_is);
extern int hitag2_cipher_transcrypt(uint64_t *cs, uint8_t *data, uint16_t bytes, uint16_t bits) ; int hitag2_cipher_transcrypt(uint64_t *cs, uint8_t *data, uint16_t bytes, uint16_t bits) ;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -108,45 +108,45 @@ typedef struct {
# define CheckCrc14A(data, len) check_crc(CRC_14443_A, (data), (len)) # define CheckCrc14A(data, len) check_crc(CRC_14443_A, (data), (len))
#endif #endif
extern void GetParity(const uint8_t *pbtCmd, uint16_t len, uint8_t *par); void GetParity(const uint8_t *pbtCmd, uint16_t len, uint8_t *par);
extern tDemod *GetDemod(void); tDemod *GetDemod(void);
extern void DemodReset(void); void DemodReset(void);
extern void DemodInit(uint8_t *data, uint8_t *parity); void DemodInit(uint8_t *data, uint8_t *parity);
extern tUart *GetUart(void); tUart *GetUart(void);
extern void UartReset(void); void UartReset(void);
extern void UartInit(uint8_t *data, uint8_t *parity); void UartInit(uint8_t *data, uint8_t *parity);
extern RAMFUNC bool MillerDecoding(uint8_t bit, uint32_t non_real_time); RAMFUNC bool MillerDecoding(uint8_t bit, uint32_t non_real_time);
extern RAMFUNC int ManchesterDecoding(uint8_t bit, uint16_t offset, uint32_t non_real_time); RAMFUNC int ManchesterDecoding(uint8_t bit, uint16_t offset, uint32_t non_real_time);
extern void RAMFUNC SniffIso14443a(uint8_t param); void RAMFUNC SniffIso14443a(uint8_t param);
extern void SimulateIso14443aTag(int tagType, int flags, uint8_t *data); void SimulateIso14443aTag(int tagType, int flags, uint8_t *data);
extern void iso14443a_antifuzz(uint32_t flags); void iso14443a_antifuzz(uint32_t flags);
extern void ReaderIso14443a(UsbCommand *c); void ReaderIso14443a(UsbCommand *c);
extern void ReaderTransmit(uint8_t *frame, uint16_t len, uint32_t *timing); void ReaderTransmit(uint8_t *frame, uint16_t len, uint32_t *timing);
extern void ReaderTransmitBitsPar(uint8_t *frame, uint16_t bits, uint8_t *par, uint32_t *timing); void ReaderTransmitBitsPar(uint8_t *frame, uint16_t bits, uint8_t *par, uint32_t *timing);
extern void ReaderTransmitPar(uint8_t *frame, uint16_t len, uint8_t *par, uint32_t *timing); void ReaderTransmitPar(uint8_t *frame, uint16_t len, uint8_t *par, uint32_t *timing);
extern int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par); int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par);
extern void iso14443a_setup(uint8_t fpga_minor_mode); void iso14443a_setup(uint8_t fpga_minor_mode);
extern int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, bool send_chaining, void *data, uint8_t *res); int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, bool send_chaining, void *data, uint8_t *res);
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, bool no_rats); int iso14443a_select_card(uint8_t *uid_ptr, iso14a_card_select_t *resp_data, uint32_t *cuid_ptr, bool anticollision, uint8_t num_cascades, bool no_rats);
extern int iso14443a_fast_select_card(uint8_t *uid_ptr, uint8_t num_cascades); int iso14443a_fast_select_card(uint8_t *uid_ptr, uint8_t num_cascades);
extern void iso14a_set_trigger(bool enable); void iso14a_set_trigger(bool enable);
extern int EmSendPrecompiledCmd(tag_response_info_t *response_info); int EmSendPrecompiledCmd(tag_response_info_t *response_info);
extern int EmSendCmd14443aRaw(uint8_t *resp, uint16_t respLen); int EmSendCmd14443aRaw(uint8_t *resp, uint16_t respLen);
extern int EmSend4bit(uint8_t resp); int EmSend4bit(uint8_t resp);
extern int EmSendCmd(uint8_t *resp, uint16_t respLen); int EmSendCmd(uint8_t *resp, uint16_t respLen);
extern int EmSendCmdEx(uint8_t *resp, uint16_t respLen, bool collision); int EmSendCmdEx(uint8_t *resp, uint16_t respLen, bool collision);
extern int EmGetCmd(uint8_t *received, uint16_t *len, uint8_t *parity); int EmGetCmd(uint8_t *received, uint16_t *len, uint8_t *parity);
extern int EmSendCmdPar(uint8_t *resp, uint16_t respLen, uint8_t *par); int EmSendCmdPar(uint8_t *resp, uint16_t respLen, uint8_t *par);
extern int EmSendCmdParEx(uint8_t *resp, uint16_t respLen, uint8_t *par, bool collision); int EmSendCmdParEx(uint8_t *resp, uint16_t respLen, uint8_t *par, bool collision);
extern int EmSendPrecompiledCmd(tag_response_info_t *response_info); int EmSendPrecompiledCmd(tag_response_info_t *response_info);
extern void EmLogTraceReader(void); void EmLogTraceReader(void);
extern bool prepare_allocated_tag_modulation(tag_response_info_t *response_info, uint8_t **buffer, size_t *max_buffer_size); bool prepare_allocated_tag_modulation(tag_response_info_t *response_info, uint8_t **buffer, size_t *max_buffer_size);
bool EmLogTrace(uint8_t *reader_data, uint16_t reader_len, uint32_t reader_StartTime, uint32_t reader_EndTime, uint8_t *reader_Parity, bool EmLogTrace(uint8_t *reader_data, uint16_t reader_len, uint32_t reader_StartTime, uint32_t reader_EndTime, uint8_t *reader_Parity,
uint8_t *tag_data, uint16_t tag_len, uint32_t tag_StartTime, uint32_t tag_EndTime, uint8_t *tag_Parity); uint8_t *tag_data, uint16_t tag_len, uint32_t tag_StartTime, uint32_t tag_EndTime, uint8_t *tag_Parity);
@ -154,7 +154,7 @@ bool EmLogTrace(uint8_t *reader_data, uint16_t reader_len, uint32_t reader_Start
void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype); void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype);
void DetectNACKbug(); void DetectNACKbug();
extern void AppendCrc14443a(uint8_t *data, int len); void AppendCrc14443a(uint8_t *data, int len);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -34,15 +34,15 @@ extern "C" {
# define AddCrc14B(data, len) compute_crc(CRC_14443_B, (data), (len), (data)+(len), (data)+(len)+1) # define AddCrc14B(data, len) compute_crc(CRC_14443_B, (data), (len), (data)+(len), (data)+(len)+1)
#endif #endif
extern void SendRawCommand14443B_Ex(UsbCommand *c); void SendRawCommand14443B_Ex(UsbCommand *c);
extern void iso14443b_setup(); void iso14443b_setup();
extern uint8_t iso14443b_apdu(uint8_t const *message, size_t message_length, uint8_t *response); uint8_t iso14443b_apdu(uint8_t const *message, size_t message_length, uint8_t *response);
extern uint8_t iso14443b_select_card(iso14b_card_select_t *card); uint8_t iso14443b_select_card(iso14b_card_select_t *card);
extern uint8_t iso14443b_select_card_srx(iso14b_card_select_t *card); uint8_t iso14443b_select_card_srx(iso14b_card_select_t *card);
// testfunctions // testfunctions
extern void WaitForFpgaDelayQueueIsEmpty(uint16_t delay); void WaitForFpgaDelayQueueIsEmpty(uint16_t delay);
extern void ClearFpgaShiftingRegisters(void); void ClearFpgaShiftingRegisters(void);
// States for 14B SIM command // States for 14B SIM command
#define SIM_NOFIELD 0 #define SIM_NOFIELD 0

View file

@ -14,8 +14,8 @@
#include "proxmark3.h" #include "proxmark3.h"
extern void LegicRfInfo(void); void LegicRfInfo(void);
extern void LegicRfReader(uint16_t offset, uint16_t len, uint8_t iv); void LegicRfReader(uint16_t offset, uint16_t len, uint8_t iv);
extern void LegicRfWriter(uint16_t offset, uint16_t byte, uint8_t iv, uint8_t *data); void LegicRfWriter(uint16_t offset, uint16_t byte, uint8_t iv, uint8_t *data);
#endif /* __LEGICRF_H */ #endif /* __LEGICRF_H */

View file

@ -14,6 +14,6 @@
#include "proxmark3.h" #include "proxmark3.h"
extern void LegicRfSimulate(uint8_t tagtype); void LegicRfSimulate(uint8_t tagtype);
#endif /* __LEGICRFSIM_H */ #endif /* __LEGICRFSIM_H */

View file

@ -37,11 +37,11 @@ void StartCountSspClk();
void ResetSspClk(void); void ResetSspClk(void);
uint32_t RAMFUNC GetCountSspClk(); uint32_t RAMFUNC GetCountSspClk();
extern void StartTicks(void); void StartTicks(void);
extern uint32_t GetTicks(void); uint32_t GetTicks(void);
extern void WaitTicks(uint32_t ticks); void WaitTicks(uint32_t ticks);
extern void WaitUS(uint16_t us); void WaitUS(uint16_t us);
extern void WaitMS(uint16_t ms); void WaitMS(uint16_t ms);
extern void StopTicks(void); void StopTicks(void);
#endif #endif

View file

@ -84,9 +84,9 @@
size_t nbytes(size_t nbits); size_t nbytes(size_t nbits);
extern uint32_t reflect(uint32_t v, int b); // used in crc.c ... uint32_t reflect(uint32_t v, int b); // used in crc.c ...
extern uint8_t reflect8(uint8_t b); // dedicated 8bit reversal uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
extern uint16_t reflect16(uint16_t b); // dedicated 16bit reversal uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
void num_to_bytes(uint64_t n, size_t len, uint8_t *dest); void num_to_bytes(uint64_t n, size_t len, uint8_t *dest);
uint64_t bytes_to_num(uint8_t *src, size_t len); uint64_t bytes_to_num(uint8_t *src, size_t len);

View file

@ -31,11 +31,11 @@
#define CLIGetHexWithReturn(paramnum, data, datalen) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;} #define CLIGetHexWithReturn(paramnum, data, datalen) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;}
#define CLIGetStrWithReturn(paramnum, data, datalen) if (CLIParamStrToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;} #define CLIGetStrWithReturn(paramnum, data, datalen) if (CLIParamStrToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;}
extern int CLIParserInit(char *vprogramName, char *vprogramHint, char *vprogramHelp); int CLIParserInit(char *vprogramName, char *vprogramHint, char *vprogramHelp);
extern int CLIParserParseString(const char *str, void *argtable[], size_t vargtableLen, bool allowEmptyExec); int CLIParserParseString(const char *str, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
extern int CLIParserParseStringEx(const char *str, void *vargtable[], size_t vargtableLen, bool allowEmptyExec, bool clueData); int CLIParserParseStringEx(const char *str, void *vargtable[], size_t vargtableLen, bool allowEmptyExec, bool clueData);
extern int CLIParserParseArg(int argc, char **argv, void *argtable[], size_t vargtableLen, bool allowEmptyExec); int CLIParserParseArg(int argc, char **argv, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
extern void CLIParserFree(); void CLIParserFree();
extern int CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen); int CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
extern int CLIParamStrToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen); int CLIParamStrToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);

View file

@ -28,9 +28,9 @@
#include "ui.h" #include "ui.h"
#include "util.h" #include "util.h"
extern int CmdCrc(const char *Cmd); int CmdCrc(const char *Cmd);
extern int CmdrevengSearch(const char *Cmd); int CmdrevengSearch(const char *Cmd);
extern int GetModels(char *Models[], int *count, uint8_t *width); int GetModels(char *Models[], int *count, uint8_t *width);
extern int RunModel(char *inModel, char *inHexStr, bool reverse, char endian, char *result); int RunModel(char *inModel, char *inHexStr, bool reverse, char endian, char *result);
#endif #endif

View file

@ -84,7 +84,7 @@ int NRZrawDemod(const char *Cmd, bool verbose);
int getSamples(int n, bool silent); int getSamples(int n, bool silent);
void setClockGrid(int clk, int offset); void setClockGrid(int clk, int offset);
int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down); int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down);
extern int AskEdgeDetect(const int *in, int *out, int len, int threshold); int AskEdgeDetect(const int *in, int *out, int len, int threshold);
int CmdDataIIR(const char *Cmd); int CmdDataIIR(const char *Cmd);

View file

@ -33,13 +33,13 @@ typedef enum {
DICTIONARY_ICLASS DICTIONARY_ICLASS
} Dictionary_t; } Dictionary_t;
extern int CmdFlashMem(const char *Cmd); int CmdFlashMem(const char *Cmd);
extern int CmdFlashMemRead(const char *Cmd); int CmdFlashMemRead(const char *Cmd);
extern int CmdFlashMemLoad(const char *Cmd); int CmdFlashMemLoad(const char *Cmd);
extern int CmdFlashMemSave(const char *Cmd); int CmdFlashMemSave(const char *Cmd);
extern int CmdFlashMemWipe(const char *Cmd); int CmdFlashMemWipe(const char *Cmd);
extern int CmdFlashMemInfo(const char *Cmd); int CmdFlashMemInfo(const char *Cmd);
#endif #endif
#endif #endif

View file

@ -33,11 +33,11 @@
#include "cmdhffido.h" // FIDO authenticators #include "cmdhffido.h" // FIDO authenticators
#include "cmdtrace.h" // trace list #include "cmdtrace.h" // trace list
extern int CmdHF(const char *Cmd); int CmdHF(const char *Cmd);
extern int CmdHFTune(const char *Cmd); int CmdHFTune(const char *Cmd);
extern int CmdHFSearch(const char *Cmd); int CmdHFSearch(const char *Cmd);
extern int CmdHFSniff(const char *Cmd); int CmdHFSniff(const char *Cmd);
extern int usage_hf_search(); int usage_hf_search();
extern int usage_hf_sniff(); int usage_hf_sniff();
#endif #endif

View file

@ -39,23 +39,23 @@ typedef struct {
char *desc; char *desc;
} manufactureName; } manufactureName;
extern int CmdHF14A(const char *Cmd); int CmdHF14A(const char *Cmd);
extern int CmdHF14AList(const char *Cmd); int CmdHF14AList(const char *Cmd);
extern int CmdHF14AReader(const char *Cmd); int CmdHF14AReader(const char *Cmd);
extern int CmdHF14AInfo(const char *Cmd); int CmdHF14AInfo(const char *Cmd);
extern int CmdHF14ASim(const char *Cmd); int CmdHF14ASim(const char *Cmd);
extern int CmdHF14ASniff(const char *Cmd); int CmdHF14ASniff(const char *Cmd);
extern int CmdHF14ACmdRaw(const char *Cmd); int CmdHF14ACmdRaw(const char *Cmd);
extern int CmdHF14ACUIDs(const char *Cmd); int CmdHF14ACUIDs(const char *Cmd);
extern int CmdHF14AAntiFuzz(const char *Cmd); int CmdHF14AAntiFuzz(const char *Cmd);
extern char *getTagInfo(uint8_t uid); char *getTagInfo(uint8_t uid);
extern int Hf14443_4aGetCardData(iso14a_card_select_t *card); int Hf14443_4aGetCardData(iso14a_card_select_t *card);
extern int ExchangeAPDU14a(uint8_t *datain, int datainlen, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen); int ExchangeAPDU14a(uint8_t *datain, int datainlen, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
extern int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen); int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
extern int usage_hf_14a_sim(void); int usage_hf_14a_sim(void);
extern int usage_hf_14a_sniff(void); int usage_hf_14a_sniff(void);
extern int usage_hf_14a_raw(void); int usage_hf_14a_raw(void);
extern int usage_hf_14a_antifuzz(void); int usage_hf_14a_antifuzz(void);
#endif #endif

View file

@ -37,23 +37,23 @@ int usage_hf_14b_sim(void);
int usage_hf_14b_read_srx(void); int usage_hf_14b_read_srx(void);
int usage_hf_14b_write_srx(void); int usage_hf_14b_write_srx(void);
extern int CmdHF14B(const char *Cmd); int CmdHF14B(const char *Cmd);
extern int CmdHF14BList(const char *Cmd); int CmdHF14BList(const char *Cmd);
extern int CmdHF14BInfo(const char *Cmd); int CmdHF14BInfo(const char *Cmd);
extern int CmdHF14BSim(const char *Cmd); int CmdHF14BSim(const char *Cmd);
extern int CmdHF14BSniff(const char *Cmd); int CmdHF14BSniff(const char *Cmd);
extern int CmdHF14BWrite(const char *cmd); int CmdHF14BWrite(const char *cmd);
extern int CmdHF14BReader(const char *Cmd); int CmdHF14BReader(const char *Cmd);
extern int CmdHF14BDump(const char *Cmd); int CmdHF14BDump(const char *Cmd);
extern bool HF14BInfo(bool verbose); bool HF14BInfo(bool verbose);
extern bool HF14BReader(bool verbose); bool HF14BReader(bool verbose);
extern int CmdHF14BCmdRaw(const char *Cmd); int CmdHF14BCmdRaw(const char *Cmd);
// SRi ST Microelectronics read/write // SRi ST Microelectronics read/write
extern int CmdHF14BReadSri(const char *Cmd); int CmdHF14BReadSri(const char *Cmd);
extern int CmdHF14BWriteSri(const char *Cmd); int CmdHF14BWriteSri(const char *Cmd);
bool waitCmd14b(bool verbose); bool waitCmd14b(bool verbose);
#endif #endif

View file

@ -28,38 +28,38 @@
int CmdHF15(const char *Cmd); int CmdHF15(const char *Cmd);
extern int HF15Reader(const char *Cmd, bool verbose); int HF15Reader(const char *Cmd, bool verbose);
extern int CmdHF15Demod(const char *Cmd); int CmdHF15Demod(const char *Cmd);
extern int CmdHF15Samples(const char *Cmd); int CmdHF15Samples(const char *Cmd);
extern int CmdHF15Info(const char *Cmd); int CmdHF15Info(const char *Cmd);
extern int CmdHF15Record(const char *Cmd); int CmdHF15Record(const char *Cmd);
extern int CmdHF15Reader(const char *Cmd); int CmdHF15Reader(const char *Cmd);
extern int CmdHF15Sim(const char *Cmd); int CmdHF15Sim(const char *Cmd);
extern int CmdHF15Afi(const char *Cmd); int CmdHF15Afi(const char *Cmd);
extern int CmdHF15Dump(const char *Cmd); int CmdHF15Dump(const char *Cmd);
extern int CmdHF15Raw(const char *cmd); int CmdHF15Raw(const char *cmd);
extern int CmdHF15Readmulti(const char *Cmd); int CmdHF15Readmulti(const char *Cmd);
extern int CmdHF15Read(const char *Cmd); int CmdHF15Read(const char *Cmd);
extern int CmdHF15Write(const char *Cmd); int CmdHF15Write(const char *Cmd);
extern int CmdHF15Help(const char *Cmd); int CmdHF15Help(const char *Cmd);
// usages // usages
extern int usage_15_demod(void); int usage_15_demod(void);
extern int usage_15_samples(void); int usage_15_samples(void);
extern int usage_15_info(void); int usage_15_info(void);
extern int usage_15_record(void); int usage_15_record(void);
extern int usage_15_reader(void); int usage_15_reader(void);
extern int usage_15_sim(void); int usage_15_sim(void);
extern int usage_15_findafi(void); int usage_15_findafi(void);
extern int usage_15_dump(void); int usage_15_dump(void);
extern int usage_15_restore(void); int usage_15_restore(void);
extern int usage_15_raw(void); int usage_15_raw(void);
extern int usage_15_read(void); int usage_15_read(void);
extern int usage_15_write(void); int usage_15_write(void);
extern int usage_15_readmulti(void); int usage_15_readmulti(void);
extern int prepareHF15Cmd(char **cmd, UsbCommand *c, uint8_t iso15cmd); int prepareHF15Cmd(char **cmd, UsbCommand *c, uint8_t iso15cmd);
#endif #endif

View file

@ -25,8 +25,8 @@
#include "util_posix.h" #include "util_posix.h"
extern int CmdHFEPA(const char *Cmd); int CmdHFEPA(const char *Cmd);
extern int CmdHFEPACollectPACENonces(const char *Cmd); int CmdHFEPACollectPACENonces(const char *Cmd);
extern int CmdHFEPAPACEReplay(const char *Cmd); int CmdHFEPAPACEReplay(const char *Cmd);
#endif // CMDHFEPA_H__ #endif // CMDHFEPA_H__

View file

@ -26,21 +26,21 @@
#include "cmdhf.h" // list cmd #include "cmdhf.h" // list cmd
#include "mifare.h" // felica_card_select_t struct #include "mifare.h" // felica_card_select_t struct
extern int CmdHFFelica(const char *Cmd); int CmdHFFelica(const char *Cmd);
extern int CmdHFFelicaList(const char *Cmd); int CmdHFFelicaList(const char *Cmd);
extern int CmdHFFelicaReader(const char *Cmd); int CmdHFFelicaReader(const char *Cmd);
extern int CmdHFFelicaSim(const char *Cmd); int CmdHFFelicaSim(const char *Cmd);
extern int CmdHFFelicaSniff(const char *Cmd); int CmdHFFelicaSniff(const char *Cmd);
extern int CmdHFFelicaCmdRaw(const char *Cmd); int CmdHFFelicaCmdRaw(const char *Cmd);
extern int usage_hf_felica_sim(void); int usage_hf_felica_sim(void);
extern int usage_hf_felica_sniff(void); int usage_hf_felica_sniff(void);
extern int usage_hf_fFelica_raw(void); int usage_hf_fFelica_raw(void);
void waitCmdFelica(uint8_t iSelect); void waitCmdFelica(uint8_t iSelect);
//temp //temp
extern int CmdHFFelicaSimLite(const char *Cmd); int CmdHFFelicaSimLite(const char *Cmd);
extern int CmdHFFelicaDumpLite(const char *Cmd); int CmdHFFelicaDumpLite(const char *Cmd);
#endif #endif

View file

@ -21,7 +21,7 @@
#ifndef CMDHFFIDO_H__ #ifndef CMDHFFIDO_H__
#define CMDHFFIDO_H__ #define CMDHFFIDO_H__
extern int CmdHFFido(const char *Cmd); int CmdHFFido(const char *Cmd);
#endif #endif

View file

@ -52,29 +52,29 @@ typedef struct iclass_prekey {
int CmdHFiClass(const char *Cmd); int CmdHFiClass(const char *Cmd);
extern int CmdHFiClassCalcNewKey(const char *Cmd); int CmdHFiClassCalcNewKey(const char *Cmd);
extern int CmdHFiClassCloneTag(const char *Cmd); int CmdHFiClassCloneTag(const char *Cmd);
extern int CmdHFiClassDecrypt(const char *Cmd); int CmdHFiClassDecrypt(const char *Cmd);
extern int CmdHFiClassEncryptBlk(const char *Cmd); int CmdHFiClassEncryptBlk(const char *Cmd);
extern int CmdHFiClassELoad(const char *Cmd); int CmdHFiClassELoad(const char *Cmd);
extern int CmdHFiClassList(const char *Cmd); int CmdHFiClassList(const char *Cmd);
extern int HFiClassReader(const char *Cmd, bool loop, bool verbose); int HFiClassReader(const char *Cmd, bool loop, bool verbose);
extern int CmdHFiClassReader(const char *Cmd); int CmdHFiClassReader(const char *Cmd);
extern int CmdHFiClassReader_Dump(const char *Cmd); int CmdHFiClassReader_Dump(const char *Cmd);
extern int CmdHFiClassReader_Replay(const char *Cmd); int CmdHFiClassReader_Replay(const char *Cmd);
extern int CmdHFiClassReadKeyFile(const char *filename); int CmdHFiClassReadKeyFile(const char *filename);
extern int CmdHFiClassReadTagFile(const char *Cmd); int CmdHFiClassReadTagFile(const char *Cmd);
extern int CmdHFiClass_ReadBlock(const char *Cmd); int CmdHFiClass_ReadBlock(const char *Cmd);
extern int CmdHFiClass_TestMac(const char *Cmd); int CmdHFiClass_TestMac(const char *Cmd);
extern int CmdHFiClassManageKeys(const char *Cmd); int CmdHFiClassManageKeys(const char *Cmd);
extern int CmdHFiClass_loclass(const char *Cmd); int CmdHFiClass_loclass(const char *Cmd);
extern int CmdHFiClassSniff(const char *Cmd); int CmdHFiClassSniff(const char *Cmd);
extern int CmdHFiClassSim(const char *Cmd); int CmdHFiClassSim(const char *Cmd);
extern int CmdHFiClassWriteKeyFile(const char *Cmd); int CmdHFiClassWriteKeyFile(const char *Cmd);
extern int CmdHFiClass_WriteBlock(const char *Cmd); int CmdHFiClass_WriteBlock(const char *Cmd);
extern int CmdHFiClassCheckKeys(const char *Cmd); int CmdHFiClassCheckKeys(const char *Cmd);
extern int CmdHFiClassLookUp(const char *Cmd); int CmdHFiClassLookUp(const char *Cmd);
extern int CmdHFiClassPermuteKey(const char *Cmd); int CmdHFiClassPermuteKey(const char *Cmd);
void printIclassDumpContents(uint8_t *iclass_dump, uint8_t startblock, uint8_t endblock, size_t filesize); void printIclassDumpContents(uint8_t *iclass_dump, uint8_t startblock, uint8_t endblock, size_t filesize);
void HFiClassCalcDivKey(uint8_t *CSN, uint8_t *KEY, uint8_t *div_key, bool elite); void HFiClassCalcDivKey(uint8_t *CSN, uint8_t *KEY, uint8_t *div_key, bool elite);

View file

@ -26,19 +26,19 @@
int CmdHFLegic(const char *Cmd); int CmdHFLegic(const char *Cmd);
extern int CmdLegicInfo(const char *Cmd); int CmdLegicInfo(const char *Cmd);
extern int CmdLegicRdmem(const char *Cmd); int CmdLegicRdmem(const char *Cmd);
extern int CmdLegicLoad(const char *Cmd); int CmdLegicLoad(const char *Cmd);
extern int CmdLegicRfSim(const char *Cmd); int CmdLegicRfSim(const char *Cmd);
extern int CmdLegicRfWrite(const char *Cmd); int CmdLegicRfWrite(const char *Cmd);
extern int CmdLegicCalcCrc(const char *Cmd); int CmdLegicCalcCrc(const char *Cmd);
extern int CmdLegicDump(const char *Cmd); int CmdLegicDump(const char *Cmd);
extern int CmdLegicRestore(const char *Cmd); int CmdLegicRestore(const char *Cmd);
extern int CmdLegicReader(const char *Cmd); int CmdLegicReader(const char *Cmd);
extern int CmdLegicELoad(const char *Cmd); int CmdLegicELoad(const char *Cmd);
extern int CmdLegicESave(const char *Cmd); int CmdLegicESave(const char *Cmd);
extern int CmdLegicList(const char *Cmd); int CmdLegicList(const char *Cmd);
extern int CmdLegicWipe(const char *Cmd); int CmdLegicWipe(const char *Cmd);
int HFLegicReader(const char *Cmd, bool verbose); int HFLegicReader(const char *Cmd, bool verbose);
int legic_print_type(uint32_t tagtype, uint8_t spaces); int legic_print_type(uint32_t tagtype, uint8_t spaces);

View file

@ -51,31 +51,32 @@ typedef struct {
uint32_t ks2; // ar ^ ar_enc uint32_t ks2; // ar ^ ar_enc
uint32_t ks3; // at ^ at_enc uint32_t ks3; // at ^ at_enc
} TAuthData; } TAuthData;
extern void ClearAuthData();
extern uint8_t iso14443A_CRC_check(bool isResponse, uint8_t *d, uint8_t n); void ClearAuthData();
extern uint8_t iso14443B_CRC_check(uint8_t *d, uint8_t n);
extern uint8_t mifare_CRC_check(bool isResponse, uint8_t *data, uint8_t len); uint8_t iso14443A_CRC_check(bool isResponse, uint8_t *d, uint8_t n);
extern uint8_t iso15693_CRC_check(uint8_t *d, uint8_t n); uint8_t iso14443B_CRC_check(uint8_t *d, uint8_t n);
extern uint8_t iclass_CRC_check(bool isResponse, uint8_t *d, uint8_t n); uint8_t mifare_CRC_check(bool isResponse, uint8_t *data, uint8_t len);
uint8_t iso15693_CRC_check(uint8_t *d, uint8_t n);
uint8_t iclass_CRC_check(bool isResponse, uint8_t *d, uint8_t n);
int applyIso14443a(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); int applyIso14443a(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateIclass(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateIclass(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateIso15693(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateIso15693(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateTopaz(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateTopaz(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateLegic(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateLegic(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateFelica(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateFelica(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateIso7816(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateIso7816(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateIso14443b(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateIso14443b(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateIso14443a(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateIso14443a(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateMfDesfire(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize); void annotateMfDesfire(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
extern void annotateMifare(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize, uint8_t *parity, uint8_t paritysize, bool isResponse); void annotateMifare(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize, uint8_t *parity, uint8_t paritysize, bool isResponse);
extern bool DecodeMifareData(uint8_t *cmd, uint8_t cmdsize, uint8_t *parity, bool isResponse, uint8_t *mfData, size_t *mfDataLen); bool DecodeMifareData(uint8_t *cmd, uint8_t cmdsize, uint8_t *parity, bool isResponse, uint8_t *mfData, size_t *mfDataLen);
extern bool NTParityChk(TAuthData *ad, uint32_t ntx); bool NTParityChk(TAuthData *ad, uint32_t ntx);
extern bool NestedCheckKey(uint64_t key, TAuthData *ad, uint8_t *cmd, uint8_t cmdsize, uint8_t *parity); bool NestedCheckKey(uint64_t key, TAuthData *ad, uint8_t *cmd, uint8_t cmdsize, uint8_t *parity);
extern bool CheckCrypto1Parity(uint8_t *cmd_enc, uint8_t cmdsize, uint8_t *cmd, uint8_t *parity_enc); bool CheckCrypto1Parity(uint8_t *cmd_enc, uint8_t cmdsize, uint8_t *cmd, uint8_t *parity_enc);
extern uint64_t GetCrypto1ProbableKey(TAuthData *ad); uint64_t GetCrypto1ProbableKey(TAuthData *ad);
#endif // CMDHFLIST #endif // CMDHFLIST

View file

@ -33,41 +33,41 @@
#include "cliparser/cliparser.h" // argtable #include "cliparser/cliparser.h" // argtable
#include "hardnested/hardnested_bf_core.h" // SetSIMDInstr #include "hardnested/hardnested_bf_core.h" // SetSIMDInstr
extern int CmdHFMF(const char *Cmd); int CmdHFMF(const char *Cmd);
extern int CmdHF14AMfList(const char *Cmd); int CmdHF14AMfList(const char *Cmd);
extern int CmdHF14AMfDbg(const char *Cmd); int CmdHF14AMfDbg(const char *Cmd);
extern int CmdHF14AMfRdBl(const char *Cmd); int CmdHF14AMfRdBl(const char *Cmd);
extern int CmdHF14AMfURdBl(const char *Cmd); int CmdHF14AMfURdBl(const char *Cmd);
extern int CmdHF14AMfRdSc(const char *Cmd); int CmdHF14AMfRdSc(const char *Cmd);
extern int CmdHF14SMfURdCard(const char *Cmd); int CmdHF14SMfURdCard(const char *Cmd);
extern int CmdHF14AMfDump(const char *Cmd); int CmdHF14AMfDump(const char *Cmd);
extern int CmdHF14AMfRestore(const char *Cmd); int CmdHF14AMfRestore(const char *Cmd);
extern int CmdHF14AMfWrBl(const char *Cmd); int CmdHF14AMfWrBl(const char *Cmd);
extern int CmdHF14AMfUWrBl(const char *Cmd); int CmdHF14AMfUWrBl(const char *Cmd);
extern int CmdHF14AMfChk(const char *Cmd); int CmdHF14AMfChk(const char *Cmd);
extern int CmdHF14AMfDarkside(const char *Cmd); int CmdHF14AMfDarkside(const char *Cmd);
extern int CmdHF14AMfNested(const char *Cmd); int CmdHF14AMfNested(const char *Cmd);
extern int CmdHF14AMfNestedHard(const char *Cmd); int CmdHF14AMfNestedHard(const char *Cmd);
//extern int CmdHF14AMfSniff(const char* Cmd); //int CmdHF14AMfSniff(const char* Cmd);
extern int CmdHF14AMf1kSim(const char *Cmd); int CmdHF14AMf1kSim(const char *Cmd);
extern int CmdHF14AMfKeyBrute(const char *Cmd); int CmdHF14AMfKeyBrute(const char *Cmd);
extern int CmdHF14AMfEClear(const char *Cmd); int CmdHF14AMfEClear(const char *Cmd);
extern int CmdHF14AMfEGet(const char *Cmd); int CmdHF14AMfEGet(const char *Cmd);
extern int CmdHF14AMfESet(const char *Cmd); int CmdHF14AMfESet(const char *Cmd);
extern int CmdHF14AMfELoad(const char *Cmd); int CmdHF14AMfELoad(const char *Cmd);
extern int CmdHF14AMfESave(const char *Cmd); int CmdHF14AMfESave(const char *Cmd);
extern int CmdHF14AMfECFill(const char *Cmd); int CmdHF14AMfECFill(const char *Cmd);
extern int CmdHF14AMfEKeyPrn(const char *Cmd); int CmdHF14AMfEKeyPrn(const char *Cmd);
extern int CmdHF14AMfCSetUID(const char *Cmd); int CmdHF14AMfCSetUID(const char *Cmd);
extern int CmdHF14AMfCSetBlk(const char *Cmd); int CmdHF14AMfCSetBlk(const char *Cmd);
extern int CmdHF14AMfCGetBlk(const char *Cmd); int CmdHF14AMfCGetBlk(const char *Cmd);
extern int CmdHF14AMfCGetSc(const char *Cmd); int CmdHF14AMfCGetSc(const char *Cmd);
extern int CmdHF14AMfCLoad(const char *Cmd); int CmdHF14AMfCLoad(const char *Cmd);
extern int CmdHF14AMfCSave(const char *Cmd); int CmdHF14AMfCSave(const char *Cmd);
extern int CmdHf14MfDecryptBytes(const char *Cmd); int CmdHf14MfDecryptBytes(const char *Cmd);
extern int CmdHf14AMfSetMod(const char *Cmd); int CmdHf14AMfSetMod(const char *Cmd);
extern int CmdHf14AMfNack(const char *Cmd); int CmdHf14AMfNack(const char *Cmd);
void showSectorTable(void); void showSectorTable(void);
void readerAttack(nonces_t data, bool setEmulatorMem, bool verbose); void readerAttack(nonces_t data, bool setEmulatorMem, bool verbose);

View file

@ -1,5 +1,4 @@
static int CmdHelp(const char *Cmd);
int CmdHF14AMfDESAuth(const char *Cmd); int CmdHF14AMfDESAuth(const char *Cmd);
int CmdHFMFDesfire(const char *Cmd); int CmdHFMFDesfire(const char *Cmd);
int CmdHelp(const char *Cmd); int CmdHelp(const char *Cmd);

View file

@ -41,8 +41,8 @@ typedef struct noncelist {
noncelistentry_t *first; noncelistentry_t *first;
} noncelist_t; } noncelist_t;
extern int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *trgkey, bool nonce_file_read, bool nonce_file_write, bool slow, int tests, uint64_t *foundkey, char *filename); int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *trgkey, bool nonce_file_read, bool nonce_file_write, bool slow, int tests, uint64_t *foundkey, char *filename);
extern void hardnested_print_progress(uint32_t nonces, char *activity, float brute_force, uint64_t min_diff_print_time); void hardnested_print_progress(uint32_t nonces, char *activity, float brute_force, uint64_t min_diff_print_time);
#endif #endif

View file

@ -12,7 +12,7 @@
#include "mifare/mifaredefault.h" #include "mifare/mifaredefault.h"
extern int CmdHFMFP(const char *Cmd); int CmdHFMFP(const char *Cmd);
#endif #endif

View file

@ -25,40 +25,40 @@ typedef struct {
uint8_t data[1024]; uint8_t data[1024];
} mfu_dump_t; } mfu_dump_t;
extern int CmdHF14AMfUWrBl(const char *Cmd); int CmdHF14AMfUWrBl(const char *Cmd);
extern int CmdHF14AMfURdBl(const char *Cmd); int CmdHF14AMfURdBl(const char *Cmd);
//Crypto Cards //Crypto Cards
extern int CmdHF14AMfucAuth(const char *Cmd); int CmdHF14AMfucAuth(const char *Cmd);
extern int CmdHF14AMfucSetPwd(const char *Cmd); int CmdHF14AMfucSetPwd(const char *Cmd);
extern int CmdHF14AMfucSetUid(const char *Cmd); int CmdHF14AMfucSetUid(const char *Cmd);
extern int CmdHF14AMfuGenDiverseKeys(const char *Cmd); int CmdHF14AMfuGenDiverseKeys(const char *Cmd);
extern int CmdHF14AMfuPwdGen(const char *Cmd); int CmdHF14AMfuPwdGen(const char *Cmd);
//general stuff //general stuff
extern int CmdHF14AMfUDump(const char *Cmd); int CmdHF14AMfUDump(const char *Cmd);
extern int CmdHF14AMfURestore(const char *Cmd); int CmdHF14AMfURestore(const char *Cmd);
extern int CmdHF14AMfUInfo(const char *Cmd); int CmdHF14AMfUInfo(const char *Cmd);
extern int CmdHF14AMfUeLoad(const char *Cmd); int CmdHF14AMfUeLoad(const char *Cmd);
extern int CmdHF14AMfUSim(const char *Cmd); int CmdHF14AMfUSim(const char *Cmd);
extern uint32_t GetHF14AMfU_Type(void); uint32_t GetHF14AMfU_Type(void);
extern int ul_print_type(uint32_t tagtype, uint8_t spacer); int ul_print_type(uint32_t tagtype, uint8_t spacer);
void printMFUdump(mfu_dump_t *card); void printMFUdump(mfu_dump_t *card);
void printMFUdumpEx(mfu_dump_t *card, uint16_t pages, uint8_t startpage); void printMFUdumpEx(mfu_dump_t *card, uint16_t pages, uint8_t startpage);
extern int usage_hf_mfu_info(void); int usage_hf_mfu_info(void);
extern int usage_hf_mfu_dump(void); int usage_hf_mfu_dump(void);
extern int usage_hf_mfu_rdbl(void); int usage_hf_mfu_rdbl(void);
extern int usage_hf_mfu_wrbl(void); int usage_hf_mfu_wrbl(void);
extern int usage_hf_mfu_eload(void); int usage_hf_mfu_eload(void);
extern int usage_hf_mfu_sim(void); int usage_hf_mfu_sim(void);
extern int usage_hf_mfu_ucauth(void); int usage_hf_mfu_ucauth(void);
extern int usage_hf_mfu_ucsetpwd(void); int usage_hf_mfu_ucsetpwd(void);
extern int usage_hf_mfu_ucsetuid(void); int usage_hf_mfu_ucsetuid(void);
extern int usage_hf_mfu_gendiverse(void); int usage_hf_mfu_gendiverse(void);
extern int usage_hf_mfu_pwdgen(void); int usage_hf_mfu_pwdgen(void);
int CmdHFMFUltra(const char *Cmd); int CmdHFMFUltra(const char *Cmd);

View file

@ -25,10 +25,10 @@
#include "protocols.h" #include "protocols.h"
#include "cmdhf.h" #include "cmdhf.h"
extern int CmdHFTopaz(const char *Cmd); int CmdHFTopaz(const char *Cmd);
extern int CmdHFTopazReader(const char *Cmd); int CmdHFTopazReader(const char *Cmd);
extern int CmdHFTopazSim(const char *Cmd); int CmdHFTopazSim(const char *Cmd);
extern int CmdHFTopazCmdRaw(const char *Cmd); int CmdHFTopazCmdRaw(const char *Cmd);
extern int CmdHFTopazList(const char *Cmd); int CmdHFTopazList(const char *Cmd);
#endif #endif

View file

@ -55,28 +55,28 @@
int CmdLF(const char *Cmd); int CmdLF(const char *Cmd);
extern int CmdLFSetConfig(const char *Cmd); int CmdLFSetConfig(const char *Cmd);
extern int CmdLFCommandRead(const char *Cmd); int CmdLFCommandRead(const char *Cmd);
extern int CmdFlexdemod(const char *Cmd); int CmdFlexdemod(const char *Cmd);
extern int CmdLFRead(const char *Cmd); int CmdLFRead(const char *Cmd);
extern int CmdLFSim(const char *Cmd); int CmdLFSim(const char *Cmd);
extern int CmdLFaskSim(const char *Cmd); int CmdLFaskSim(const char *Cmd);
extern int CmdLFfskSim(const char *Cmd); int CmdLFfskSim(const char *Cmd);
extern int CmdLFpskSim(const char *Cmd); int CmdLFpskSim(const char *Cmd);
extern int CmdLFSimBidir(const char *Cmd); int CmdLFSimBidir(const char *Cmd);
extern int CmdLFSniff(const char *Cmd); int CmdLFSniff(const char *Cmd);
extern int CmdVchDemod(const char *Cmd); int CmdVchDemod(const char *Cmd);
extern int CmdLFfind(const char *Cmd); int CmdLFfind(const char *Cmd);
extern bool lf_read(bool silent, uint32_t samples); bool lf_read(bool silent, uint32_t samples);
// usages helptext // usages helptext
extern int usage_lf_cmdread(void); int usage_lf_cmdread(void);
extern int usage_lf_read(void); int usage_lf_read(void);
extern int usage_lf_sniff(void); int usage_lf_sniff(void);
extern int usage_lf_config(void); int usage_lf_config(void);
extern int usage_lf_simfsk(void); int usage_lf_simfsk(void);
extern int usage_lf_simask(void); int usage_lf_simask(void);
extern int usage_lf_simpsk(void); int usage_lf_simpsk(void);
#endif #endif

View file

@ -24,17 +24,17 @@
#include "util_posix.h" #include "util_posix.h"
extern int CmdLFAWID(const char *Cmd); int CmdLFAWID(const char *Cmd);
extern int CmdAWIDDemod(const char *Cmd); int CmdAWIDDemod(const char *Cmd);
extern int CmdAWIDRead(const char *Cmd); int CmdAWIDRead(const char *Cmd);
extern int CmdAWIDSim(const char *Cmd); int CmdAWIDSim(const char *Cmd);
extern int CmdAWIDClone(const char *Cmd); int CmdAWIDClone(const char *Cmd);
extern int CmdAWIDBrute(const char *Cmd); int CmdAWIDBrute(const char *Cmd);
extern int getAWIDBits(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint8_t *bits); int getAWIDBits(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint8_t *bits);
extern int usage_lf_awid_read(void); int usage_lf_awid_read(void);
extern int usage_lf_awid_sim(void); int usage_lf_awid_sim(void);
extern int usage_lf_awid_clone(void); int usage_lf_awid_clone(void);
extern int usage_lf_awid_brute(void); int usage_lf_awid_brute(void);
#endif #endif

View file

@ -23,9 +23,9 @@
#define COTAG_BITS 264 #define COTAG_BITS 264
#endif #endif
extern int CmdLFCOTAG(const char *Cmd); int CmdLFCOTAG(const char *Cmd);
extern int CmdCOTAGRead(const char *Cmd); int CmdCOTAGRead(const char *Cmd);
extern int CmdCOTAGDemod(const char *Cmd); int CmdCOTAGDemod(const char *Cmd);
extern int usage_lf_cotag_read(void); int usage_lf_cotag_read(void);
#endif #endif

View file

@ -25,44 +25,44 @@
#include "cmdlf.h" #include "cmdlf.h"
#include "lfdemod.h" #include "lfdemod.h"
extern int CmdLFEM4X(const char *Cmd); int CmdLFEM4X(const char *Cmd);
extern int CmdEM410xDemod(const char *Cmd); int CmdEM410xDemod(const char *Cmd);
extern int CmdEM410xRead(const char *Cmd); int CmdEM410xRead(const char *Cmd);
extern int CmdEM410xSim(const char *Cmd); int CmdEM410xSim(const char *Cmd);
extern int CmdEM410xBrute(const char *Cmd); int CmdEM410xBrute(const char *Cmd);
extern int CmdEM410xWatch(const char *Cmd); int CmdEM410xWatch(const char *Cmd);
extern int CmdEM410xWatchnSpoof(const char *Cmd); int CmdEM410xWatchnSpoof(const char *Cmd);
extern int CmdEM410xWrite(const char *Cmd); int CmdEM410xWrite(const char *Cmd);
extern int CmdEM4x05Dump(const char *Cmd); int CmdEM4x05Dump(const char *Cmd);
extern int CmdEM4x05Info(const char *Cmd); int CmdEM4x05Info(const char *Cmd);
extern int CmdEM4x05Read(const char *Cmd); int CmdEM4x05Read(const char *Cmd);
extern int CmdEM4x05Write(const char *Cmd); int CmdEM4x05Write(const char *Cmd);
extern int CmdEM4x50Read(const char *Cmd); int CmdEM4x50Read(const char *Cmd);
extern int CmdEM4x50Write(const char *Cmd); int CmdEM4x50Write(const char *Cmd);
extern int CmdEM4x50Dump(const char *Cmd); int CmdEM4x50Dump(const char *Cmd);
extern int EM4x50Read(const char *Cmd, bool verbose); int EM4x50Read(const char *Cmd, bool verbose);
bool EM4x05IsBlock0(uint32_t *word); bool EM4x05IsBlock0(uint32_t *word);
extern void printEM410x(uint32_t hi, uint64_t id); void printEM410x(uint32_t hi, uint64_t id);
extern int AskEm410xDecode(bool verbose, uint32_t *hi, uint64_t *lo); int AskEm410xDecode(bool verbose, uint32_t *hi, uint64_t *lo);
extern int AskEm410xDemod(const char *Cmd, uint32_t *hi, uint64_t *lo, bool verbose); int AskEm410xDemod(const char *Cmd, uint32_t *hi, uint64_t *lo, bool verbose);
extern int usage_lf_em410x_sim(void); int usage_lf_em410x_sim(void);
extern int usage_lf_em410x_ws(void); int usage_lf_em410x_ws(void);
extern int usage_lf_em410x_clone(void); int usage_lf_em410x_clone(void);
extern int usage_lf_em410x_sim(void); int usage_lf_em410x_sim(void);
extern int usage_lf_em410x_brute(void); int usage_lf_em410x_brute(void);
extern int usage_lf_em4x50_dump(void); int usage_lf_em4x50_dump(void);
extern int usage_lf_em4x50_read(void); int usage_lf_em4x50_read(void);
extern int usage_lf_em4x50_write(void); int usage_lf_em4x50_write(void);
extern int usage_lf_em4x05_dump(void); int usage_lf_em4x05_dump(void);
extern int usage_lf_em4x05_read(void); int usage_lf_em4x05_read(void);
extern int usage_lf_em4x05_write(void); int usage_lf_em4x05_write(void);
extern int usage_lf_em4x05_info(void); int usage_lf_em4x05_info(void);
#endif #endif

View file

@ -19,17 +19,17 @@
#include "protocols.h" // for T55xx config register definitions #include "protocols.h" // for T55xx config register definitions
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
extern int CmdLFFdx(const char *Cmd); int CmdLFFdx(const char *Cmd);
extern int CmdFdxClone(const char *Cmd); int CmdFdxClone(const char *Cmd);
extern int CmdFdxSim(const char *Cmd); int CmdFdxSim(const char *Cmd);
extern int CmdFdxRead(const char *Cmd); int CmdFdxRead(const char *Cmd);
extern int CmdFdxDemod(const char *Cmd); int CmdFdxDemod(const char *Cmd);
int getFDXBits(uint64_t national_id, uint16_t country, uint8_t isanimal, uint8_t isextended, uint32_t extended, uint8_t *bits); int getFDXBits(uint64_t national_id, uint16_t country, uint8_t isanimal, uint8_t isextended, uint32_t extended, uint8_t *bits);
extern int usage_lf_fdx_clone(void); int usage_lf_fdx_clone(void);
extern int usage_lf_fdx_sim(void); int usage_lf_fdx_sim(void);
extern int usage_lf_fdx_read(void); int usage_lf_fdx_read(void);
extern int usage_lf_fdx_demod(void); int usage_lf_fdx_demod(void);
#endif #endif

View file

@ -22,12 +22,12 @@
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
#include "crc.h" #include "crc.h"
extern int CmdLFGuard(const char *Cmd); int CmdLFGuard(const char *Cmd);
extern int CmdGuardDemod(const char *Cmd); int CmdGuardDemod(const char *Cmd);
extern int CmdGuardRead(const char *Cmd); int CmdGuardRead(const char *Cmd);
extern int CmdGuardClone(const char *Cmd); int CmdGuardClone(const char *Cmd);
extern int CmdGuardSim(const char *Cmd); int CmdGuardSim(const char *Cmd);
extern int usage_lf_guard_clone(void); int usage_lf_guard_clone(void);
extern int usage_lf_quard_sim(void); int usage_lf_quard_sim(void);
#endif #endif

View file

@ -24,20 +24,20 @@
#include "util_posix.h" #include "util_posix.h"
#include "lfdemod.h" #include "lfdemod.h"
extern int CmdLFHID(const char *Cmd); int CmdLFHID(const char *Cmd);
extern int CmdHIDDemod(const char *Cmd); int CmdHIDDemod(const char *Cmd);
extern int CmdHIDRead(const char *Cmd); int CmdHIDRead(const char *Cmd);
extern int CmdHIDSim(const char *Cmd); int CmdHIDSim(const char *Cmd);
extern int CmdHIDClone(const char *Cmd); int CmdHIDClone(const char *Cmd);
extern int CmdHIDWiegand(const char *Cmd); int CmdHIDWiegand(const char *Cmd);
extern int CmdHIDBrute(const char *Cmd); int CmdHIDBrute(const char *Cmd);
extern int usage_lf_hid_read(void); int usage_lf_hid_read(void);
extern int usage_lf_hid_wiegand(void); int usage_lf_hid_wiegand(void);
extern int usage_lf_hid_sim(void); int usage_lf_hid_sim(void);
extern int usage_lf_hid_clone(void); int usage_lf_hid_clone(void);
extern int usage_lf_hid_brute(void); int usage_lf_hid_brute(void);
//void calc26(uint16_t fc, uint32_t cardno, uint8_t *out); //void calc26(uint16_t fc, uint32_t cardno, uint8_t *out);
extern void calcWiegand(uint8_t fmtlen, uint16_t fc, uint64_t cardno, uint8_t *bits); void calcWiegand(uint8_t fmtlen, uint16_t fc, uint64_t cardno, uint8_t *bits);
#endif #endif

View file

@ -11,15 +11,15 @@
#ifndef CMDLFHITAG_H__ #ifndef CMDLFHITAG_H__
#define CMDLFHITAG_H__ #define CMDLFHITAG_H__
extern int CmdLFHitag(const char *Cmd); int CmdLFHitag(const char *Cmd);
extern int CmdLFHitagList(const char *Cmd); int CmdLFHitagList(const char *Cmd);
extern int CmdLFHitagSniff(const char *Cmd); int CmdLFHitagSniff(const char *Cmd);
extern int CmdLFHitagSim(const char *Cmd); int CmdLFHitagSim(const char *Cmd);
extern int CmdLFHitagInfo(const char *Cmd); int CmdLFHitagInfo(const char *Cmd);
extern int CmdLFHitagReader(const char *Cmd); int CmdLFHitagReader(const char *Cmd);
extern int CmdLFHitagCheckChallenges(const char *Cmd); int CmdLFHitagCheckChallenges(const char *Cmd);
extern int CmdLFHitagWriter(const char *Cmd); int CmdLFHitagWriter(const char *Cmd);
extern int CmdLFHitagDump(const char *cmd); int CmdLFHitagDump(const char *cmd);
#endif #endif

View file

@ -23,19 +23,19 @@
#include "cmddata.h" #include "cmddata.h"
#include "cmdlf.h" // lf_read #include "cmdlf.h" // lf_read
extern int CmdLFINDALA(const char *Cmd); int CmdLFINDALA(const char *Cmd);
extern int CmdIndalaDemod(const char *Cmd); int CmdIndalaDemod(const char *Cmd);
extern int CmdIndalaDemodAlt(const char *Cmd); int CmdIndalaDemodAlt(const char *Cmd);
extern int CmdIndalaRead(const char *Cmd); int CmdIndalaRead(const char *Cmd);
extern int CmdIndalaClone(const char *Cmd); int CmdIndalaClone(const char *Cmd);
extern int CmdIndalaSim(const char *Cmd); int CmdIndalaSim(const char *Cmd);
extern int detectIndala26(uint8_t *bitStream, size_t *size, uint8_t *invert); int detectIndala26(uint8_t *bitStream, size_t *size, uint8_t *invert);
extern int detectIndala64(uint8_t *bitStream, size_t *size, uint8_t *invert); int detectIndala64(uint8_t *bitStream, size_t *size, uint8_t *invert);
extern int detectIndala224(uint8_t *bitStream, size_t *size, uint8_t *invert); int detectIndala224(uint8_t *bitStream, size_t *size, uint8_t *invert);
extern int usage_lf_indala_demod(void); int usage_lf_indala_demod(void);
extern int usage_lf_indala_clone(void); int usage_lf_indala_clone(void);
extern int usage_lf_indala_sim(void); int usage_lf_indala_sim(void);
#endif #endif

View file

@ -16,15 +16,15 @@
#include "cmdmain.h" #include "cmdmain.h"
#include "cmddata.h" #include "cmddata.h"
extern int CmdLFIO(const char *Cmd); int CmdLFIO(const char *Cmd);
extern int CmdIOProxDemod(const char *Cmd); int CmdIOProxDemod(const char *Cmd);
extern int CmdIOProxRead(const char *Cmd); int CmdIOProxRead(const char *Cmd);
extern int CmdIOProxSim(const char *Cmd); int CmdIOProxSim(const char *Cmd);
extern int CmdIOProxClone(const char *Cmd); int CmdIOProxClone(const char *Cmd);
int getIOProxBits(uint8_t version, uint8_t fc, uint16_t cn, uint8_t *bits); int getIOProxBits(uint8_t version, uint8_t fc, uint16_t cn, uint8_t *bits);
extern int usage_lf_io_read(void); int usage_lf_io_read(void);
extern int usage_lf_io_clone(void); int usage_lf_io_clone(void);
extern int usage_lf_io_sim(void); int usage_lf_io_sim(void);
#endif #endif

View file

@ -22,20 +22,20 @@
#include "protocols.h" // for T55xx config register definitions #include "protocols.h" // for T55xx config register definitions
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
extern int CmdLFJablotron(const char *Cmd); int CmdLFJablotron(const char *Cmd);
extern int CmdJablotronDemod(const char *Cmd); int CmdJablotronDemod(const char *Cmd);
extern int CmdJablotronRead(const char *Cmd); int CmdJablotronRead(const char *Cmd);
extern int CmdJablotronClone(const char *Cmd); int CmdJablotronClone(const char *Cmd);
extern int CmdJablotronSim(const char *Cmd); int CmdJablotronSim(const char *Cmd);
extern int detectJablotron(uint8_t *bits, size_t *size); int detectJablotron(uint8_t *bits, size_t *size);
extern int getJablotronBits(uint64_t fullcode, uint8_t *bits); int getJablotronBits(uint64_t fullcode, uint8_t *bits);
//extern int usage_lf_jablotron_demod(void); //int usage_lf_jablotron_demod(void);
//extern int usage_lf_jablotron_read(void); //int usage_lf_jablotron_read(void);
extern int usage_lf_jablotron_clone(void); int usage_lf_jablotron_clone(void);
extern int usage_lf_jablotron_sim(void); int usage_lf_jablotron_sim(void);
#endif #endif

View file

@ -22,15 +22,15 @@
#include "protocols.h" // for T55xx config register definitions #include "protocols.h" // for T55xx config register definitions
#include "lfdemod.h" // preamble test #include "lfdemod.h" // preamble test
extern int CmdLFKeri(const char *Cmd); int CmdLFKeri(const char *Cmd);
extern int CmdKeriRead(const char *Cmd); int CmdKeriRead(const char *Cmd);
extern int CmdKeriDemod(const char *Cmd); int CmdKeriDemod(const char *Cmd);
extern int CmdKeriClone(const char *Cmd); int CmdKeriClone(const char *Cmd);
extern int CmdKeriSim(const char *Cmd); int CmdKeriSim(const char *Cmd);
extern int detectKeri(uint8_t *dest, size_t *size, bool *invert); int detectKeri(uint8_t *dest, size_t *size, bool *invert);
extern int usage_lf_keri_clone(void); int usage_lf_keri_clone(void);
extern int usage_lf_keri_sim(void); int usage_lf_keri_sim(void);
#endif #endif

View file

@ -22,17 +22,17 @@
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
#include "crc.h" #include "crc.h"
extern int CmdLFNedap(const char *Cmd); int CmdLFNedap(const char *Cmd);
extern int CmdLFNedapDemod(const char *Cmd); int CmdLFNedapDemod(const char *Cmd);
extern int CmdLFNedapRead(const char *Cmd); int CmdLFNedapRead(const char *Cmd);
//extern int CmdLFNedapClone(const char *Cmd); //int CmdLFNedapClone(const char *Cmd);
extern int CmdLFNedapSim(const char *Cmd); int CmdLFNedapSim(const char *Cmd);
extern int CmdLFNedapChk(const char *Cmd); int CmdLFNedapChk(const char *Cmd);
extern int detectNedap(uint8_t *dest, size_t *size); int detectNedap(uint8_t *dest, size_t *size);
extern int usage_lf_nedap_read(void); int usage_lf_nedap_read(void);
//extern int usage_lf_nedap_clone(void); //int usage_lf_nedap_clone(void);
extern int usage_lf_nedap_sim(void); int usage_lf_nedap_sim(void);
#endif #endif

View file

@ -22,9 +22,9 @@
#include "cmdlf.h" #include "cmdlf.h"
#include "lfdemod.h" #include "lfdemod.h"
extern int CmdLFNEXWATCH(const char *Cmd); int CmdLFNEXWATCH(const char *Cmd);
extern int CmdNexWatchDemod(const char *Cmd); int CmdNexWatchDemod(const char *Cmd);
extern int CmdNexWatchRead(const char *Cmd); int CmdNexWatchRead(const char *Cmd);
extern int detectNexWatch(uint8_t *dest, size_t *size, bool *invert); int detectNexWatch(uint8_t *dest, size_t *size, bool *invert);
#endif #endif

View file

@ -22,17 +22,17 @@
#include "protocols.h" // for T55xx config register definitions #include "protocols.h" // for T55xx config register definitions
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
extern int CmdLFNoralsy(const char *Cmd); int CmdLFNoralsy(const char *Cmd);
extern int CmdNoralsyDemod(const char *Cmd); int CmdNoralsyDemod(const char *Cmd);
extern int CmdNoralsyRead(const char *Cmd); int CmdNoralsyRead(const char *Cmd);
extern int CmdNoralsyClone(const char *Cmd); int CmdNoralsyClone(const char *Cmd);
extern int CmdNoralsySim(const char *Cmd); int CmdNoralsySim(const char *Cmd);
int getnoralsyBits(uint32_t id, uint16_t year, uint8_t *bits); int getnoralsyBits(uint32_t id, uint16_t year, uint8_t *bits);
extern int usage_lf_noralsy_clone(void); int usage_lf_noralsy_clone(void);
extern int usage_lf_noralsy_sim(void); int usage_lf_noralsy_sim(void);
//extern int usage_lf_noralsy_read(void); //int usage_lf_noralsy_read(void);
//extern int usage_lf_noralsy_demod(void); //int usage_lf_noralsy_demod(void);
#endif #endif

View file

@ -21,10 +21,10 @@
#include "cmdlf.h" #include "cmdlf.h"
#include "lfdemod.h" // preamble test #include "lfdemod.h" // preamble test
extern int CmdLFPac(const char *Cmd); int CmdLFPac(const char *Cmd);
extern int CmdPacRead(const char *Cmd); int CmdPacRead(const char *Cmd);
extern int CmdPacDemod(const char *Cmd); int CmdPacDemod(const char *Cmd);
extern int detectPac(uint8_t *dest, size_t *size); int detectPac(uint8_t *dest, size_t *size);
#endif #endif

View file

@ -8,12 +8,12 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef CMDLFPARADOX_H__ #ifndef CMDLFPARADOX_H__
#define CMDLFPARADOX_H__ #define CMDLFPARADOX_H__
extern int CmdLFParadox(const char *Cmd); int CmdLFParadox(const char *Cmd);
extern int CmdParadoxDemod(const char *Cmd); int CmdParadoxDemod(const char *Cmd);
extern int CmdParadoxRead(const char *Cmd); int CmdParadoxRead(const char *Cmd);
//extern int CmdParadoxClone(const char *Cmd); //int CmdParadoxClone(const char *Cmd);
extern int CmdParadoxSim(const char *Cmd); int CmdParadoxSim(const char *Cmd);
extern int detectParadox(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo, int *waveStartIdx); int detectParadox(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo, int *waveStartIdx);
#endif #endif

View file

@ -21,16 +21,16 @@
#include "protocols.h" // for T55xx config register definitions #include "protocols.h" // for T55xx config register definitions
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
extern int CmdLFPresco(const char *Cmd); int CmdLFPresco(const char *Cmd);
extern int CmdPrescoRead(const char *Cmd); int CmdPrescoRead(const char *Cmd);
extern int CmdPrescoDemod(const char *Cmd); int CmdPrescoDemod(const char *Cmd);
extern int CmdPrescoClone(const char *Cmd); int CmdPrescoClone(const char *Cmd);
extern int CmdPrescoSim(const char *Cmd); int CmdPrescoSim(const char *Cmd);
extern int detectPresco(uint8_t *dest, size_t *size); int detectPresco(uint8_t *dest, size_t *size);
int GetWiegandFromPresco(const char *id, uint32_t *sitecode, uint32_t *usercode, uint32_t *fullcode, bool *Q5); int GetWiegandFromPresco(const char *id, uint32_t *sitecode, uint32_t *usercode, uint32_t *fullcode, bool *Q5);
extern int usage_lf_presco_clone(void); int usage_lf_presco_clone(void);
extern int usage_lf_presco_sim(void); int usage_lf_presco_sim(void);
#endif #endif

View file

@ -22,15 +22,15 @@
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
#include "crc.h" #include "crc.h"
extern int CmdLFPyramid(const char *Cmd); int CmdLFPyramid(const char *Cmd);
extern int CmdPyramidDemod(const char *Cmd); int CmdPyramidDemod(const char *Cmd);
extern int CmdPyramidRead(const char *Cmd); int CmdPyramidRead(const char *Cmd);
extern int CmdPyramidClone(const char *Cmd); int CmdPyramidClone(const char *Cmd);
extern int CmdPyramidSim(const char *Cmd); int CmdPyramidSim(const char *Cmd);
extern int detectPyramid(uint8_t *dest, size_t *size, int *waveStartIdx); int detectPyramid(uint8_t *dest, size_t *size, int *waveStartIdx);
extern int usage_lf_pyramid_clone(void); int usage_lf_pyramid_clone(void);
extern int usage_lf_pyramid_sim(void); int usage_lf_pyramid_sim(void);
#endif #endif

View file

@ -24,11 +24,11 @@
#include "lfdemod.h" // preamble test #include "lfdemod.h" // preamble test
#include "parity.h" // for wiegand parity test #include "parity.h" // for wiegand parity test
extern int CmdLFSecurakey(const char *Cmd); int CmdLFSecurakey(const char *Cmd);
//extern int CmdSecurakeyClone(const char *Cmd); //int CmdSecurakeyClone(const char *Cmd);
//extern int CmdSecurakeySim(const char *Cmd); //int CmdSecurakeySim(const char *Cmd);
extern int CmdSecurakeyRead(const char *Cmd); int CmdSecurakeyRead(const char *Cmd);
extern int CmdSecurakeyDemod(const char *Cmd); int CmdSecurakeyDemod(const char *Cmd);
#endif #endif

View file

@ -137,17 +137,17 @@ typedef struct {
t55xx_conf_block_t Get_t55xx_Config(void); t55xx_conf_block_t Get_t55xx_Config(void);
void Set_t55xx_Config(t55xx_conf_block_t conf); void Set_t55xx_Config(t55xx_conf_block_t conf);
extern int CmdLFT55XX(const char *Cmd); int CmdLFT55XX(const char *Cmd);
extern int CmdT55xxChk(const char *Cmd); int CmdT55xxChk(const char *Cmd);
extern int CmdT55xxBruteForce(const char *Cmd); int CmdT55xxBruteForce(const char *Cmd);
extern int CmdT55xxSetConfig(const char *Cmd); int CmdT55xxSetConfig(const char *Cmd);
extern int CmdT55xxReadBlock(const char *Cmd); int CmdT55xxReadBlock(const char *Cmd);
extern int CmdT55xxWriteBlock(const char *Cmd); int CmdT55xxWriteBlock(const char *Cmd);
extern int CmdT55xxReadTrace(const char *Cmd); int CmdT55xxReadTrace(const char *Cmd);
extern int CmdT55xxInfo(const char *Cmd); int CmdT55xxInfo(const char *Cmd);
extern int CmdT55xxDetect(const char *Cmd); int CmdT55xxDetect(const char *Cmd);
extern int CmdResetRead(const char *Cmd); int CmdResetRead(const char *Cmd);
extern int CmdT55xxWipe(const char *Cmd); int CmdT55xxWipe(const char *Cmd);
char *GetPskCfStr(uint32_t id, bool q5); char *GetPskCfStr(uint32_t id, bool q5);
char *GetBitRateStr(uint32_t id, bool xmode); char *GetBitRateStr(uint32_t id, bool xmode);
@ -160,16 +160,16 @@ void printT5xxHeader(uint8_t page);
void printT55xxBlock(const char *demodStr); void printT55xxBlock(const char *demodStr);
int printConfiguration(t55xx_conf_block_t b); int printConfiguration(t55xx_conf_block_t b);
extern int T55xxReadBlock(uint8_t block, bool page1, bool usepwd, bool override, uint32_t password); int T55xxReadBlock(uint8_t block, bool page1, bool usepwd, bool override, uint32_t password);
bool GetT55xxBlockData(uint32_t *blockdata); bool GetT55xxBlockData(uint32_t *blockdata);
bool DecodeT55xxBlock(void); bool DecodeT55xxBlock(void);
extern bool tryDetectModulation(void); bool tryDetectModulation(void);
bool testKnownConfigBlock(uint32_t block0); bool testKnownConfigBlock(uint32_t block0);
extern bool tryDetectP1(bool getData); bool tryDetectP1(bool getData);
bool test(uint8_t mode, uint8_t *offset, int *fndBitRate, uint8_t clk, bool *Q5); bool test(uint8_t mode, uint8_t *offset, int *fndBitRate, uint8_t clk, bool *Q5);
int special(const char *Cmd); int special(const char *Cmd);
extern bool AquireData(uint8_t page, uint8_t block, bool pwdmode, uint32_t password); bool AquireData(uint8_t page, uint8_t block, bool pwdmode, uint32_t password);
int tryOnePassword(uint32_t password); int tryOnePassword(uint32_t password);
void printT55x7Trace(t55x7_tracedata_t data, uint8_t repeat); void printT55x7Trace(t55x7_tracedata_t data, uint8_t repeat);

View file

@ -21,16 +21,16 @@
#include "cmdlf.h" #include "cmdlf.h"
#include "lfdemod.h" #include "lfdemod.h"
extern int CmdLFViking(const char *Cmd); int CmdLFViking(const char *Cmd);
extern int CmdVikingDemod(const char *Cmd); int CmdVikingDemod(const char *Cmd);
extern int CmdVikingRead(const char *Cmd); int CmdVikingRead(const char *Cmd);
extern int CmdVikingClone(const char *Cmd); int CmdVikingClone(const char *Cmd);
extern int CmdVikingSim(const char *Cmd); int CmdVikingSim(const char *Cmd);
extern int detectViking(uint8_t *dest, size_t *size); int detectViking(uint8_t *dest, size_t *size);
extern int usage_lf_viking_clone(void); int usage_lf_viking_clone(void);
extern int usage_lf_viking_sim(void); int usage_lf_viking_sim(void);
#endif #endif

View file

@ -21,19 +21,19 @@
#include "cmdlf.h" #include "cmdlf.h"
#include "protocols.h" // for T55xx config register definitions #include "protocols.h" // for T55xx config register definitions
#include "lfdemod.h" // parityTest #include "lfdemod.h" // parityTest
extern int CmdLFVisa2k(const char *Cmd); int CmdLFVisa2k(const char *Cmd);
extern int CmdVisa2kDemod(const char *Cmd); int CmdVisa2kDemod(const char *Cmd);
extern int CmdVisa2kRead(const char *Cmd); int CmdVisa2kRead(const char *Cmd);
extern int CmdVisa2kClone(const char *Cmd); int CmdVisa2kClone(const char *Cmd);
extern int CmdVisa2kSim(const char *Cmd); int CmdVisa2kSim(const char *Cmd);
int getvisa2kBits(uint64_t fullcode, uint8_t *bits); int getvisa2kBits(uint64_t fullcode, uint8_t *bits);
extern int detectVisa2k(uint8_t *dest, size_t *size); int detectVisa2k(uint8_t *dest, size_t *size);
extern int usage_lf_visa2k_clone(void); int usage_lf_visa2k_clone(void);
extern int usage_lf_visa2k_sim(void); int usage_lf_visa2k_sim(void);
//extern int usage_lf_visa2k_read(void); //int usage_lf_visa2k_read(void);
//extern int usage_lf_visa2k_demod(void); //int usage_lf_visa2k_demod(void);
#endif #endif

View file

@ -41,7 +41,7 @@
#include "cmdsmartcard.h" // rdv40 smart card ISO7816 commands #include "cmdsmartcard.h" // rdv40 smart card ISO7816 commands
#endif #endif
extern int CommandReceived(char *Cmd); int CommandReceived(char *Cmd);
extern command_t *getTopLevelCommandTable(); command_t *getTopLevelCommandTable();
#endif #endif

View file

@ -11,8 +11,8 @@
#ifndef CMDSCRIPT_H__ #ifndef CMDSCRIPT_H__
#define CMDSCRIPT_H__ #define CMDSCRIPT_H__
extern int CmdScript(const char *Cmd); int CmdScript(const char *Cmd);
extern int CmdScriptList(const char *Cmd); int CmdScriptList(const char *Cmd);
extern int CmdScriptRun(const char *Cmd); int CmdScriptRun(const char *Cmd);
#endif #endif

View file

@ -27,18 +27,18 @@
#include "emv/dump.h" // dump_buffer #include "emv/dump.h" // dump_buffer
#include "crypto/libpcrypto.h" // sha512hash #include "crypto/libpcrypto.h" // sha512hash
extern int CmdSmartcard(const char *Cmd); int CmdSmartcard(const char *Cmd);
extern int CmdSmartRaw(const char *cmd); int CmdSmartRaw(const char *cmd);
extern int CmdSmartUpgrade(const char *cmd); int CmdSmartUpgrade(const char *cmd);
extern int CmdSmartInfo(const char *cmd); int CmdSmartInfo(const char *cmd);
extern int CmdSmartReader(const char *Cmd); int CmdSmartReader(const char *Cmd);
extern bool smart_select(bool silent, smart_card_atr_t *atr); bool smart_select(bool silent, smart_card_atr_t *atr);
extern int ExchangeAPDUSC(uint8_t *datain, int datainlen, bool activateCard, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen); int ExchangeAPDUSC(uint8_t *datain, int datainlen, bool activateCard, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
extern int usage_sm_raw(void); int usage_sm_raw(void);
extern int usage_sm_reader(void); int usage_sm_reader(void);
extern int usage_sm_info(void); int usage_sm_info(void);
extern int usage_sm_upgrade(void); int usage_sm_upgrade(void);
#endif #endif

View file

@ -27,14 +27,14 @@
#include "comms.h" // for sending cmds to device. GetFromBigBuf #include "comms.h" // for sending cmds to device. GetFromBigBuf
#include "loclass/fileutils.h" // for saveFile #include "loclass/fileutils.h" // for saveFile
extern int CmdTrace(const char *Cmd); int CmdTrace(const char *Cmd);
extern int CmdTraceList(const char *Cmd); int CmdTraceList(const char *Cmd);
extern int CmdTraceLoad(const char *Cmd); int CmdTraceLoad(const char *Cmd);
extern int CmdTraceSave(const char *Cmd); int CmdTraceSave(const char *Cmd);
// usages helptext // usages helptext
extern int usage_trace_list(void); int usage_trace_list(void);
extern int usage_trace_load(void); int usage_trace_load(void);
extern int usage_trace_save(void); int usage_trace_save(void);
#endif #endif

View file

@ -62,7 +62,7 @@ bool WaitForResponseTimeoutW(uint32_t cmd, UsbCommand *response, size_t ms_timeo
bool WaitForResponseTimeout(uint32_t cmd, UsbCommand *response, size_t ms_timeout); bool WaitForResponseTimeout(uint32_t cmd, UsbCommand *response, size_t ms_timeout);
bool WaitForResponse(uint32_t cmd, UsbCommand *response); bool WaitForResponse(uint32_t cmd, UsbCommand *response);
extern bool GetFromDevice(DeviceMemType_t memtype, uint8_t *dest, uint32_t bytes, uint32_t start_index, UsbCommand *response, size_t ms_timeout, bool show_warning); bool GetFromDevice(DeviceMemType_t memtype, uint8_t *dest, uint32_t bytes, uint32_t start_index, UsbCommand *response, size_t ms_timeout, bool show_warning);
#endif #endif

View file

@ -16,6 +16,6 @@
#include <stdio.h> #include <stdio.h>
#include "emv/tlv.h" #include "emv/tlv.h"
extern bool asn1_tag_dump(const struct tlv *tlv, FILE *f, int level, bool *candump); bool asn1_tag_dump(const struct tlv *tlv, FILE *f, int level, bool *candump);
#endif /* asn1utils.h */ #endif /* asn1utils.h */

View file

@ -15,7 +15,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <stddef.h> #include <stddef.h>
extern int asn1_print(uint8_t *asn1buf, size_t asn1buflen, char *indent); int asn1_print(uint8_t *asn1buf, size_t asn1buflen, char *indent);
extern int ecdsa_asn1_get_signature(uint8_t *signature, size_t signaturelen, uint8_t *rval, uint8_t *sval); int ecdsa_asn1_get_signature(uint8_t *signature, size_t signaturelen, uint8_t *rval, uint8_t *sval);
#endif /* asn1utils.h */ #endif /* asn1utils.h */

View file

@ -16,20 +16,20 @@
#include <stddef.h> #include <stddef.h>
#include <mbedtls/pk.h> #include <mbedtls/pk.h>
extern int aes_encode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length); int aes_encode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length);
extern int aes_decode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length); int aes_decode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length);
extern int aes_cmac(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length); int aes_cmac(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length);
extern int aes_cmac8(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length); int aes_cmac8(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length);
extern int sha256hash(uint8_t *input, int length, uint8_t *hash); int sha256hash(uint8_t *input, int length, uint8_t *hash);
extern int sha512hash(uint8_t *input, int length, uint8_t *hash); int sha512hash(uint8_t *input, int length, uint8_t *hash);
extern int ecdsa_key_create(uint8_t *key_d, uint8_t *key_xy); int ecdsa_key_create(uint8_t *key_d, uint8_t *key_xy);
extern int ecdsa_public_key_from_pk(mbedtls_pk_context *pk, uint8_t *key, size_t keylen); int ecdsa_public_key_from_pk(mbedtls_pk_context *pk, uint8_t *key, size_t keylen);
extern int ecdsa_signature_create(uint8_t *key_d, uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t *signaturelen); int ecdsa_signature_create(uint8_t *key_d, uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t *signaturelen);
extern int ecdsa_signature_verify(uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t signaturelen); int ecdsa_signature_verify(uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t signaturelen);
extern char *ecdsa_get_error(int ret); char *ecdsa_get_error(int ret);
extern int ecdsa_nist_test(bool verbose); int ecdsa_nist_test(bool verbose);
#endif /* libpcrypto.h */ #endif /* libpcrypto.h */

View file

@ -28,7 +28,7 @@ typedef struct {
const char *Description; const char *Description;
} APDUCode; } APDUCode;
extern const APDUCode *const GetAPDUCode(uint8_t sw1, uint8_t sw2); const APDUCode *const GetAPDUCode(uint8_t sw1, uint8_t sw2);
extern const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2); const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2);
#endif #endif

View file

@ -29,12 +29,12 @@
int CmdEMV(const char *Cmd); int CmdEMV(const char *Cmd);
extern int CmdEMVSelect(const char *cmd); int CmdEMVSelect(const char *cmd);
extern int CmdEMVSearch(const char *cmd); int CmdEMVSearch(const char *cmd);
extern int CmdEMVPPSE(const char *cmd); int CmdEMVPPSE(const char *cmd);
extern int CmdEMVExec(const char *cmd); int CmdEMVExec(const char *cmd);
extern int CmdEMVGetrng(const char *Cmd); int CmdEMVGetrng(const char *Cmd);
extern int CmdEMVList(const char *Cmd); int CmdEMVList(const char *Cmd);
extern int CmdEMVRoca(const char *Cmd); int CmdEMVRoca(const char *Cmd);
#endif #endif

View file

@ -21,7 +21,7 @@
#include <stddef.h> #include <stddef.h>
extern void PKISetStrictExecution(bool se); void PKISetStrictExecution(bool se);
unsigned char *emv_pki_sdatl_fill(const struct tlvdb *db, size_t *sdatl_len); unsigned char *emv_pki_sdatl_fill(const struct tlvdb *db, size_t *sdatl_len);
struct emv_pk *emv_pki_recover_issuer_cert(const struct emv_pk *pk, struct tlvdb *db); struct emv_pk *emv_pki_recover_issuer_cert(const struct emv_pk *pk, struct tlvdb *db);

View file

@ -31,8 +31,8 @@
#define ROCA_PRINTS_LENGTH 17 #define ROCA_PRINTS_LENGTH 17
extern bool emv_rocacheck(const unsigned char *buf, size_t buflen, bool verbose); bool emv_rocacheck(const unsigned char *buf, size_t buflen, bool verbose);
extern int roca_self_test(void); int roca_self_test(void);
#endif #endif

View file

@ -63,46 +63,46 @@ enum CardPSVendor {
CV_CB, CV_CB,
CV_OTHER, CV_OTHER,
}; };
extern enum CardPSVendor GetCardPSVendor(uint8_t *AID, size_t AIDlen); enum CardPSVendor GetCardPSVendor(uint8_t *AID, size_t AIDlen);
extern bool TLVPrintFromBuffer(uint8_t *data, int datalen); bool TLVPrintFromBuffer(uint8_t *data, int datalen);
extern void TLVPrintFromTLV(struct tlvdb *tlv); void TLVPrintFromTLV(struct tlvdb *tlv);
extern void TLVPrintFromTLVLev(struct tlvdb *tlv, int level); void TLVPrintFromTLVLev(struct tlvdb *tlv, int level);
extern void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv); void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv);
extern struct tlvdb *GetPANFromTrack2(const struct tlv *track2); struct tlvdb *GetPANFromTrack2(const struct tlv *track2);
extern struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2); struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2);
extern void SetAPDULogging(bool logging); void SetAPDULogging(bool logging);
// exchange // exchange
extern int EMVExchange(EMVCommandChannel channel, bool LeaveFieldON, sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVExchange(EMVCommandChannel channel, bool LeaveFieldON, sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// search application // search application
extern int EMVSearchPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, bool decodeTLV, struct tlvdb *tlv); int EMVSearchPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, bool decodeTLV, struct tlvdb *tlv);
extern int EMVSearch(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv); int EMVSearch(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv);
extern int EMVSelectPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int EMVSelectPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int EMVSelect(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t *AID, size_t AIDLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVSelect(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t *AID, size_t AIDLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// select application // select application
extern int EMVSelectApplication(struct tlvdb *tlv, uint8_t *AID, size_t *AIDlen); int EMVSelectApplication(struct tlvdb *tlv, uint8_t *AID, size_t *AIDlen);
// Get Processing Options // Get Processing Options
extern int EMVGPO(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *PDOL, size_t PDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVGPO(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *PDOL, size_t PDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
extern int EMVReadRecord(EMVCommandChannel channel, bool LeaveFieldON, uint8_t SFI, uint8_t SFIrec, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVReadRecord(EMVCommandChannel channel, bool LeaveFieldON, uint8_t SFI, uint8_t SFIrec, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// AC // AC
extern int EMVGenerateChallenge(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVGenerateChallenge(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
extern int EMVAC(EMVCommandChannel channel, bool LeaveFieldON, uint8_t RefControl, uint8_t *CDOL, size_t CDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVAC(EMVCommandChannel channel, bool LeaveFieldON, uint8_t RefControl, uint8_t *CDOL, size_t CDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// DDA // DDA
extern int EMVInternalAuthenticate(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *DDOL, size_t DDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int EMVInternalAuthenticate(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *DDOL, size_t DDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// Mastercard // Mastercard
int MSCComputeCryptoChecksum(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *UDOL, uint8_t UDOLlen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv); int MSCComputeCryptoChecksum(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *UDOL, uint8_t UDOLlen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// Auth // Auth
extern int trSDA(struct tlvdb *tlv); int trSDA(struct tlvdb *tlv);
extern int trDDA(EMVCommandChannel channel, bool decodeTLV, struct tlvdb *tlv); int trDDA(EMVCommandChannel channel, bool decodeTLV, struct tlvdb *tlv);
extern int trCDA(struct tlvdb *tlv, struct tlvdb *ac_tlv, struct tlv *pdol_data_tlv, struct tlv *ac_data_tlv); int trCDA(struct tlvdb *tlv, struct tlvdb *ac_tlv, struct tlv *pdol_data_tlv, struct tlv *ac_data_tlv);
extern int RecoveryCertificates(struct tlvdb *tlvRoot, json_t *root); int RecoveryCertificates(struct tlvdb *tlvRoot, json_t *root);
extern struct emv_pk *get_ca_pk(struct tlvdb *db); struct emv_pk *get_ca_pk(struct tlvdb *db);
#endif #endif

View file

@ -18,24 +18,24 @@ typedef struct {
char *Name; char *Name;
} ApplicationDataElm; } ApplicationDataElm;
extern char *GetApplicationDataName(tlv_tag_t tag); char *GetApplicationDataName(tlv_tag_t tag);
extern int JsonSaveJsonObject(json_t *root, char *path, json_t *value); int JsonSaveJsonObject(json_t *root, char *path, json_t *value);
extern int JsonSaveStr(json_t *root, char *path, char *value); int JsonSaveStr(json_t *root, char *path, char *value);
extern int JsonSaveInt(json_t *root, char *path, int value); int JsonSaveInt(json_t *root, char *path, int value);
extern int JsonSaveBufAsHexCompact(json_t *elm, char *path, uint8_t *data, size_t datalen); int JsonSaveBufAsHexCompact(json_t *elm, char *path, uint8_t *data, size_t datalen);
extern int JsonSaveBufAsHex(json_t *elm, char *path, uint8_t *data, size_t datalen); int JsonSaveBufAsHex(json_t *elm, char *path, uint8_t *data, size_t datalen);
extern int JsonSaveHex(json_t *elm, char *path, uint64_t data, int datalen); int JsonSaveHex(json_t *elm, char *path, uint64_t data, int datalen);
extern int JsonSaveTLVValue(json_t *root, char *path, struct tlvdb *tlvdbelm); int JsonSaveTLVValue(json_t *root, char *path, struct tlvdb *tlvdbelm);
extern int JsonSaveTLVElm(json_t *elm, char *path, struct tlv *tlvelm, bool saveName, bool saveValue, bool saveAppDataLink); int JsonSaveTLVElm(json_t *elm, char *path, struct tlv *tlvelm, bool saveName, bool saveValue, bool saveAppDataLink);
extern int JsonSaveTLVTreeElm(json_t *elm, char *path, struct tlvdb *tlvdbelm, bool saveName, bool saveValue, bool saveAppDataLink); int JsonSaveTLVTreeElm(json_t *elm, char *path, struct tlvdb *tlvdbelm, bool saveName, bool saveValue, bool saveAppDataLink);
extern int JsonSaveTLVTree(json_t *root, json_t *elm, char *path, struct tlvdb *tlvdbelm); int JsonSaveTLVTree(json_t *root, json_t *elm, char *path, struct tlvdb *tlvdbelm);
extern int JsonLoadStr(json_t *root, char *path, char *value); int JsonLoadStr(json_t *root, char *path, char *value);
extern int JsonLoadBufAsHex(json_t *elm, char *path, uint8_t *data, size_t maxbufferlen, size_t *datalen); int JsonLoadBufAsHex(json_t *elm, char *path, uint8_t *data, size_t maxbufferlen, size_t *datalen);
extern bool ParamLoadFromJson(struct tlvdb *tlv); bool ParamLoadFromJson(struct tlvdb *tlv);
#endif #endif

View file

@ -15,4 +15,4 @@
#include <stdbool.h> #include <stdbool.h>
extern int exec_cda_test(bool verbose); int exec_cda_test(bool verbose);

View file

@ -15,4 +15,4 @@
#include <stdbool.h> #include <stdbool.h>
extern int exec_crypto_test(bool verbose); int exec_crypto_test(bool verbose);

View file

@ -10,4 +10,4 @@
#include <stdbool.h> #include <stdbool.h>
extern int ExecuteCryptoTests(bool verbose); int ExecuteCryptoTests(bool verbose);

View file

@ -15,4 +15,4 @@
#include <stdbool.h> #include <stdbool.h>
extern int exec_dda_test(bool verbose); int exec_dda_test(bool verbose);

View file

@ -13,4 +13,4 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
*/ */
extern int exec_sda_test(bool verbose); int exec_sda_test(bool verbose);

View file

@ -21,18 +21,18 @@
#define cbor_check_if(r) if ((r) != CborNoError) {return r;} else #define cbor_check_if(r) if ((r) != CborNoError) {return r;} else
#define cbor_check(r) if ((r) != CborNoError) return r; #define cbor_check(r) if ((r) != CborNoError) return r;
extern int TinyCborPrintFIDOPackage(uint8_t cmdCode, bool isResponse, uint8_t *data, size_t length); int TinyCborPrintFIDOPackage(uint8_t cmdCode, bool isResponse, uint8_t *data, size_t length);
extern int JsonToCbor(json_t *elm, CborEncoder *encoder); int JsonToCbor(json_t *elm, CborEncoder *encoder);
extern int CborMapGetKeyById(CborParser *parser, CborValue *map, uint8_t *data, size_t dataLen, int key); int CborMapGetKeyById(CborParser *parser, CborValue *map, uint8_t *data, size_t dataLen, int key);
extern CborError CborGetArrayBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen); CborError CborGetArrayBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
extern CborError CborGetArrayBinStringValueEx(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen, uint8_t *delimeter, size_t delimeterlen); CborError CborGetArrayBinStringValueEx(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen, uint8_t *delimeter, size_t delimeterlen);
extern CborError CborGetBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen); CborError CborGetBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
extern CborError CborGetArrayStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen, char *delimeter); CborError CborGetArrayStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen, char *delimeter);
extern CborError CborGetStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen); CborError CborGetStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen);
extern CborError CborGetStringValueBuf(CborValue *elm); CborError CborGetStringValueBuf(CborValue *elm);
extern int CBOREncodeElm(json_t *root, char *rootElmId, CborEncoder *encoder); int CBOREncodeElm(json_t *root, char *rootElmId, CborEncoder *encoder);
extern CborError CBOREncodeClientDataHash(json_t *root, CborEncoder *encoder); CborError CBOREncodeClientDataHash(json_t *root, CborEncoder *encoder);
#endif /* __CBORTOOLS_H__ */ #endif /* __CBORTOOLS_H__ */

View file

@ -17,11 +17,11 @@
#include <stdint.h> #include <stdint.h>
#include <cbor.h> #include <cbor.h>
extern const char *GetCOSEAlgName(int id); const char *GetCOSEAlgName(int id);
extern const char *GetCOSEAlgDescription(int id); const char *GetCOSEAlgDescription(int id);
extern const char *GetCOSEktyDescription(int id); const char *GetCOSEktyDescription(int id);
extern const char *GetCOSECurveDescription(int id); const char *GetCOSECurveDescription(int id);
extern int COSEGetECDSAKey(uint8_t *data, size_t datalen, bool verbose, uint8_t *public_key); int COSEGetECDSAKey(uint8_t *data, size_t datalen, bool verbose, uint8_t *public_key);
#endif /* __COSE_H__ */ #endif /* __COSE_H__ */

View file

@ -35,23 +35,23 @@ typedef enum {
ptResponse, ptResponse,
} fido2PacketType; } fido2PacketType;
extern int FIDOSelect(bool ActivateField, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDOSelect(bool ActivateField, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDOExchange(sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDOExchange(sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDORegister(uint8_t *params, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDORegister(uint8_t *params, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDOAuthentication(uint8_t *params, uint8_t paramslen, uint8_t controlb, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDOAuthentication(uint8_t *params, uint8_t paramslen, uint8_t controlb, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDO2GetInfo(uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDO2GetInfo(uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDO2MakeCredential(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDO2MakeCredential(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDO2GetAssertion(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw); int FIDO2GetAssertion(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
extern int FIDOCheckDERAndGetKey(uint8_t *der, size_t derLen, bool verbose, uint8_t *publicKey, size_t publicKeyMaxLen); int FIDOCheckDERAndGetKey(uint8_t *der, size_t derLen, bool verbose, uint8_t *publicKey, size_t publicKeyMaxLen);
extern char *fido2GetCmdMemberDescription(uint8_t cmdCode, bool isResponse, int memberNum); char *fido2GetCmdMemberDescription(uint8_t cmdCode, bool isResponse, int memberNum);
extern char *fido2GetCmdErrorDescription(uint8_t errorCode); char *fido2GetCmdErrorDescription(uint8_t errorCode);
extern bool CheckrpIdHash(json_t *json, uint8_t *hash); bool CheckrpIdHash(json_t *json, uint8_t *hash);
extern int FIDO2CreateMakeCredentionalReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen); int FIDO2CreateMakeCredentionalReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen);
extern int FIDO2MakeCredentionalParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR, bool showDERTLV); int FIDO2MakeCredentionalParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR, bool showDERTLV);
extern int FIDO2CreateGetAssertionReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen, bool createAllowList); int FIDO2CreateGetAssertionReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen, bool createAllowList);
extern int FIDO2GetAssertionParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR); int FIDO2GetAssertionParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR);
#endif /* __FIDOCORE_H__ */ #endif /* __FIDOCORE_H__ */

View file

@ -61,10 +61,10 @@ typedef enum {
SIMD_MMX, SIMD_MMX,
SIMD_NONE, SIMD_NONE,
} SIMDExecInstr; } SIMDExecInstr;
extern void SetSIMDInstr(SIMDExecInstr instr); void SetSIMDInstr(SIMDExecInstr instr);
extern SIMDExecInstr GetSIMDInstrAuto(); SIMDExecInstr GetSIMDInstrAuto();
extern const uint64_t crack_states_bitsliced(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonces_2nd_byte, noncelist_t *nonces); const uint64_t crack_states_bitsliced(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonces_2nd_byte, noncelist_t *nonces);
extern void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par); void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par);
#endif #endif

View file

@ -52,18 +52,18 @@ THE SOFTWARE.
#include <stdint.h> #include <stdint.h>
extern uint32_t *malloc_bitarray(uint32_t x); uint32_t *malloc_bitarray(uint32_t x);
extern void free_bitarray(uint32_t *x); void free_bitarray(uint32_t *x);
extern uint32_t bitcount(uint32_t a); uint32_t bitcount(uint32_t a);
extern uint32_t count_states(uint32_t *A); uint32_t count_states(uint32_t *A);
extern void bitarray_AND(uint32_t *A, uint32_t *B); void bitarray_AND(uint32_t *A, uint32_t *B);
extern void bitarray_low20_AND(uint32_t *A, uint32_t *B); void bitarray_low20_AND(uint32_t *A, uint32_t *B);
extern uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B); uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B);
extern uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B); uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B);
extern void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D); void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
extern void bitarray_OR(uint32_t *A, uint32_t *B); void bitarray_OR(uint32_t *A, uint32_t *B);
extern uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B); uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B);
extern uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C); uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C);
extern uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D); uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
#endif #endif

View file

@ -27,10 +27,10 @@ typedef struct {
void *next; void *next;
} statelist_t; } statelist_t;
extern void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte); void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte);
extern bool brute_force_bs(float *bf_rate, statelist_t *candidates, uint32_t cuid, uint32_t num_acquired_nonces, uint64_t maximum_states, noncelist_t *nonces, uint8_t *best_first_bytes, uint64_t *found_key); bool brute_force_bs(float *bf_rate, statelist_t *candidates, uint32_t cuid, uint32_t num_acquired_nonces, uint64_t maximum_states, noncelist_t *nonces, uint8_t *best_first_bytes, uint64_t *found_key);
extern float brute_force_benchmark(); float brute_force_benchmark();
extern uint8_t trailing_zeros(uint8_t byte); uint8_t trailing_zeros(uint8_t byte);
extern bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even); bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even);
#endif #endif

View file

@ -75,7 +75,7 @@ int fileExists(const char *filename);
* @param datalen the length of the data * @param datalen the length of the data
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int saveFile(const char *preferredName, const char *suffix, const void *data, size_t datalen); int saveFile(const char *preferredName, const char *suffix, const void *data, size_t datalen);
/** /**
* @brief Utility function to save data to a textfile (EML). This method takes a preferred name, but if that * @brief Utility function to save data to a textfile (EML). This method takes a preferred name, but if that
@ -89,7 +89,7 @@ extern int saveFile(const char *preferredName, const char *suffix, const void *d
* @param blocksize the length of one row * @param blocksize the length of one row
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int saveFileEML(const char *preferredName, const char *suffix, uint8_t *data, size_t datalen, size_t blocksize); int saveFileEML(const char *preferredName, const char *suffix, uint8_t *data, size_t datalen, size_t blocksize);
/** STUB /** STUB
* @brief Utility function to save JSON data to a file. This method takes a preferred name, but if that * @brief Utility function to save JSON data to a file. This method takes a preferred name, but if that
@ -103,7 +103,7 @@ extern int saveFileEML(const char *preferredName, const char *suffix, uint8_t *d
* @param datalen the length of the data * @param datalen the length of the data
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int saveFileJSON(const char *preferredName, const char *suffix, JSONFileType ftype, uint8_t *data, size_t datalen); int saveFileJSON(const char *preferredName, const char *suffix, JSONFileType ftype, uint8_t *data, size_t datalen);
/** STUB /** STUB
* @brief Utility function to load data from a binary file. This method takes a preferred name. * @brief Utility function to load data from a binary file. This method takes a preferred name.
@ -116,7 +116,7 @@ extern int saveFileJSON(const char *preferredName, const char *suffix, JSONFileT
* @param datalen the number of bytes loaded from file * @param datalen the number of bytes loaded from file
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int loadFile(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen); int loadFile(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen);
/** /**
* @brief Utility function to load data from a textfile (EML). This method takes a preferred name. * @brief Utility function to load data from a textfile (EML). This method takes a preferred name.
@ -128,7 +128,7 @@ extern int loadFile(const char *preferredName, const char *suffix, void *data, s
* @param datalen the number of bytes loaded from file * @param datalen the number of bytes loaded from file
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int loadFileEML(const char *preferredName, const char *suffix, void *data, size_t *datalen); int loadFileEML(const char *preferredName, const char *suffix, void *data, size_t *datalen);
/** /**
* @brief Utility function to load data from a JSON textfile. This method takes a preferred name. * @brief Utility function to load data from a JSON textfile. This method takes a preferred name.
@ -141,7 +141,7 @@ extern int loadFileEML(const char *preferredName, const char *suffix, void *data
* @param datalen the number of bytes loaded from file * @param datalen the number of bytes loaded from file
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int loadFileJSON(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen); int loadFileJSON(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen);
/** /**
@ -156,7 +156,7 @@ extern int loadFileJSON(const char *preferredName, const char *suffix, void *dat
* @param keylen the number of bytes a key per row is * @param keylen the number of bytes a key per row is
* @return 0 for ok, 1 for failz * @return 0 for ok, 1 for failz
*/ */
extern int loadFileDICTIONARY(const char *preferredName, const char *suffix, void *data, size_t *datalen, uint8_t keylen, uint16_t *keycnt); int loadFileDICTIONARY(const char *preferredName, const char *suffix, void *data, size_t *datalen, uint8_t keylen, uint16_t *keycnt);
#define PrintAndLogDevice(level, format, args...) PrintAndLogEx(level, format , ## args) #define PrintAndLogDevice(level, format, args...) PrintAndLogEx(level, format , ## args)
#else #else

View file

@ -1,5 +1,5 @@
#ifndef HASH1_BRUTE_H #ifndef HASH1_BRUTE_H
#define HASH1_BRUTE_H #define HASH1_BRUTE_H
extern void brute_hash1(); void brute_hash1();
#endif // HASH1_BRUTE_H #endif // HASH1_BRUTE_H

View file

@ -20,10 +20,10 @@ typedef struct {
const char *Description; const char *Description;
} madAIDDescr; } madAIDDescr;
extern int MADCheck(uint8_t *sector0, uint8_t *sector10, bool verbose, bool *haveMAD2); int MADCheck(uint8_t *sector0, uint8_t *sector10, bool verbose, bool *haveMAD2);
extern int MADDecode(uint8_t *sector0, uint8_t *sector10, uint16_t *mad, size_t *madlen); int MADDecode(uint8_t *sector0, uint8_t *sector10, uint16_t *mad, size_t *madlen);
extern int MAD1DecodeAndPrint(uint8_t *sector, bool verbose, bool *haveMAD2); int MAD1DecodeAndPrint(uint8_t *sector, bool verbose, bool *haveMAD2);
extern int MAD2DecodeAndPrint(uint8_t *sector, bool verbose); int MAD2DecodeAndPrint(uint8_t *sector, bool verbose);
#endif // _MAD_H_ #endif // _MAD_H_

View file

@ -19,12 +19,12 @@
#include "mifare.h" #include "mifare.h"
#include "crapto1/crapto1.h" #include "crapto1/crapto1.h"
extern uint32_t nonce2key(uint32_t uid, uint32_t nt, uint32_t nr, uint32_t ar, uint64_t par_info, uint64_t ks_info, uint64_t **keys); uint32_t nonce2key(uint32_t uid, uint32_t nt, uint32_t nr, uint32_t ar, uint64_t par_info, uint64_t ks_info, uint64_t **keys);
extern bool mfkey32(nonces_t data, uint64_t *outputkey); bool mfkey32(nonces_t data, uint64_t *outputkey);
extern bool mfkey32_moebius(nonces_t data, uint64_t *outputkey); bool mfkey32_moebius(nonces_t data, uint64_t *outputkey);
extern int mfkey64(nonces_t data, uint64_t *outputkey); int mfkey64(nonces_t data, uint64_t *outputkey);
extern int compare_uint64(const void *a, const void *b); int compare_uint64(const void *a, const void *b);
extern uint32_t intersection(uint64_t *listA, uint64_t *listB); uint32_t intersection(uint64_t *listA, uint64_t *listB);
#endif #endif

View file

@ -43,25 +43,25 @@ typedef struct {
char *description; char *description;
} AccessConditions_t; } AccessConditions_t;
extern void mfpSetVerboseMode(bool verbose); void mfpSetVerboseMode(bool verbose);
extern const char *mfpGetErrorDescription(uint8_t errorCode); const char *mfpGetErrorDescription(uint8_t errorCode);
extern int CalculateMAC(mf4Session *session, MACType_t mtype, uint8_t blockNum, uint8_t blockCount, uint8_t *data, int datalen, uint8_t *mac, bool verbose); int CalculateMAC(mf4Session *session, MACType_t mtype, uint8_t blockNum, uint8_t blockCount, uint8_t *data, int datalen, uint8_t *mac, bool verbose);
extern int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool verbose); int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool verbose);
extern int MFPWritePerso(uint8_t *keyNum, uint8_t *key, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen); int MFPWritePerso(uint8_t *keyNum, uint8_t *key, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
extern int MFPCommitPerso(bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen); int MFPCommitPerso(bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
extern int MFPReadBlock(mf4Session *session, bool plain, uint8_t blockNum, uint8_t blockCount, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac); int MFPReadBlock(mf4Session *session, bool plain, uint8_t blockNum, uint8_t blockCount, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
extern int MFPWriteBlock(mf4Session *session, uint8_t blockNum, uint8_t *data, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac); int MFPWriteBlock(mf4Session *session, uint8_t blockNum, uint8_t *data, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
extern int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *dataout, bool verbose); int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *dataout, bool verbose);
extern char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data); char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data);
extern uint8_t mfNumBlocksPerSector(uint8_t sectorNo); uint8_t mfNumBlocksPerSector(uint8_t sectorNo);
extern uint8_t mfFirstBlockOfSector(uint8_t sectorNo); uint8_t mfFirstBlockOfSector(uint8_t sectorNo);
extern uint8_t mfSectorTrailer(uint8_t blockNo); uint8_t mfSectorTrailer(uint8_t blockNo);
extern bool mfIsSectorTrailer(uint8_t blockNo); bool mfIsSectorTrailer(uint8_t blockNo);
extern uint8_t mfSectorNum(uint8_t blockNo); uint8_t mfSectorNum(uint8_t blockNo);
#endif // mifare4.h #endif // mifare4.h

View file

@ -69,35 +69,35 @@ typedef struct {
extern char logHexFileName[FILE_PATH_SIZE]; extern char logHexFileName[FILE_PATH_SIZE];
extern int mfDarkside(uint8_t blockno, uint8_t key_type, uint64_t *key); int mfDarkside(uint8_t blockno, uint8_t key_type, uint64_t *key);
extern int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *resultKeys, bool calibrate); int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *resultKeys, bool calibrate);
extern int mfCheckKeys(uint8_t blockNo, uint8_t keyType, bool clear_trace, uint8_t keycnt, uint8_t *keyBlock, uint64_t *key); int mfCheckKeys(uint8_t blockNo, uint8_t keyType, bool clear_trace, uint8_t keycnt, uint8_t *keyBlock, uint64_t *key);
extern int mfCheckKeys_fast(uint8_t sectorsCnt, uint8_t firstChunk, uint8_t lastChunk, int mfCheckKeys_fast(uint8_t sectorsCnt, uint8_t firstChunk, uint8_t lastChunk,
uint8_t strategy, uint32_t size, uint8_t *keyBlock, sector_t *e_sector, bool use_flashmemory); uint8_t strategy, uint32_t size, uint8_t *keyBlock, sector_t *e_sector, bool use_flashmemory);
extern int mfKeyBrute(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint64_t *resultkey); int mfKeyBrute(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint64_t *resultkey);
extern int mfReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data); int mfReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data);
extern int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount); int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);
extern int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount); int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
extern int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidth); int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidth);
extern int mfCSetUID(uint8_t *uid, uint8_t *atqa, uint8_t *sak, uint8_t *oldUID, uint8_t wipecard); int mfCSetUID(uint8_t *uid, uint8_t *atqa, uint8_t *sak, uint8_t *oldUID, uint8_t wipecard);
extern int mfCSetBlock(uint8_t blockNo, uint8_t *data, uint8_t *uid, uint8_t params); int mfCSetBlock(uint8_t blockNo, uint8_t *data, uint8_t *uid, uint8_t params);
extern int mfCGetBlock(uint8_t blockNo, uint8_t *data, uint8_t params); int mfCGetBlock(uint8_t blockNo, uint8_t *data, uint8_t params);
extern int mfTraceInit(uint8_t *tuid, uint8_t uidlen, uint8_t *atqa, uint8_t sak, bool wantSaveToEmlFile); int mfTraceInit(uint8_t *tuid, uint8_t uidlen, uint8_t *atqa, uint8_t sak, bool wantSaveToEmlFile);
extern int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile); int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile);
extern int isTraceCardEmpty(void); int isTraceCardEmpty(void);
extern int isBlockEmpty(int blockN); int isBlockEmpty(int blockN);
extern int isBlockTrailer(int blockN); int isBlockTrailer(int blockN);
extern int loadTraceCard(uint8_t *tuid, uint8_t uidlen); int loadTraceCard(uint8_t *tuid, uint8_t uidlen);
extern int saveTraceCard(void); int saveTraceCard(void);
extern int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len); int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len);
extern int detect_classic_prng(void); int detect_classic_prng(void);
extern int detect_classic_nackbug(bool verbose); int detect_classic_nackbug(bool verbose);
extern void detect_classic_magic(void); void detect_classic_magic(void);
extern void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool isEncrypted); void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool isEncrypted);
#endif #endif

View file

@ -57,6 +57,6 @@ typedef struct {
uint8_t *ID; uint8_t *ID;
} NDEFHeader_t; } NDEFHeader_t;
extern int NDEFDecodeAndPrint(uint8_t *ndef, size_t ndefLen, bool verbose); int NDEFDecodeAndPrint(uint8_t *ndef, size_t ndefLen, bool verbose);
#endif // _NDEF_H_ #endif // _NDEF_H_

View file

@ -35,11 +35,11 @@ extern int offline;
extern bool GridLocked; extern bool GridLocked;
//Operations defined in data_operations //Operations defined in data_operations
//extern int autoCorr(const int* in, int *out, size_t len, int window); //int autoCorr(const int* in, int *out, size_t len, int window);
extern int AskEdgeDetect(const int *in, int *out, int len, int threshold); int AskEdgeDetect(const int *in, int *out, int len, int threshold);
extern int AutoCorrelate(const int *in, int *out, size_t len, int window, bool SaveGrph, bool verbose); int AutoCorrelate(const int *in, int *out, size_t len, int window, bool SaveGrph, bool verbose);
extern int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down); int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down);
extern void save_restoreGB(uint8_t saveOpt); void save_restoreGB(uint8_t saveOpt);
#define GRAPH_SAVE 1 #define GRAPH_SAVE 1
#define GRAPH_RESTORE 0 #define GRAPH_RESTORE 0

View file

@ -99,7 +99,7 @@
typedef BMP_T bmp_t; typedef BMP_T bmp_t;
extern int bmpbit, bmpsub; extern int bmpbit, bmpsub;
extern void setbmp(void); void setbmp(void);
/* poly.c */ /* poly.c */
#define P_REFIN 1 #define P_REFIN 1
@ -139,41 +139,41 @@ typedef struct {
/* left-justified in each word */ /* left-justified in each word */
} poly_t; } poly_t;
extern poly_t filtop(FILE *input, unsigned long length, int flags, int bperhx); poly_t filtop(FILE *input, unsigned long length, int flags, int bperhx);
extern poly_t strtop(const char *string, int flags, int bperhx); poly_t strtop(const char *string, int flags, int bperhx);
extern char *ptostr(const poly_t poly, int flags, int bperhx); char *ptostr(const poly_t poly, int flags, int bperhx);
extern char *pxsubs(const poly_t poly, int flags, int bperhx, unsigned long start, unsigned long end); char *pxsubs(const poly_t poly, int flags, int bperhx, unsigned long start, unsigned long end);
extern poly_t pclone(const poly_t poly); poly_t pclone(const poly_t poly);
extern void pcpy(poly_t *dest, const poly_t src); void pcpy(poly_t *dest, const poly_t src);
extern void pcanon(poly_t *poly); void pcanon(poly_t *poly);
extern void pnorm(poly_t *poly); void pnorm(poly_t *poly);
extern void psnorm(poly_t *poly); void psnorm(poly_t *poly);
extern void pchop(poly_t *poly); void pchop(poly_t *poly);
extern void pkchop(poly_t *poly); void pkchop(poly_t *poly);
extern unsigned long plen(const poly_t poly); unsigned long plen(const poly_t poly);
extern int pcmp(const poly_t *a, const poly_t *b); int pcmp(const poly_t *a, const poly_t *b);
extern int psncmp(const poly_t *a, const poly_t *b); int psncmp(const poly_t *a, const poly_t *b);
extern int ptst(const poly_t poly); int ptst(const poly_t poly);
extern unsigned long pfirst(const poly_t poly); unsigned long pfirst(const poly_t poly);
extern unsigned long plast(const poly_t poly); unsigned long plast(const poly_t poly);
extern poly_t psubs(const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail); poly_t psubs(const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
extern void pright(poly_t *poly, unsigned long length); void pright(poly_t *poly, unsigned long length);
extern void pshift(poly_t *dest, const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail); void pshift(poly_t *dest, const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
extern void ppaste(poly_t *dest, const poly_t src, unsigned long skip, unsigned long seek, unsigned long end, unsigned long fulllength); void ppaste(poly_t *dest, const poly_t src, unsigned long skip, unsigned long seek, unsigned long end, unsigned long fulllength);
extern void pdiff(poly_t *dest, const poly_t src, unsigned long ofs); void pdiff(poly_t *dest, const poly_t src, unsigned long ofs);
extern void psum(poly_t *dest, const poly_t src, unsigned long ofs); void psum(poly_t *dest, const poly_t src, unsigned long ofs);
extern void prev(poly_t *poly); void prev(poly_t *poly);
extern void prevch(poly_t *poly, int bperhx); void prevch(poly_t *poly, int bperhx);
extern void prcp(poly_t *poly); void prcp(poly_t *poly);
extern void pinv(poly_t *poly); void pinv(poly_t *poly);
extern poly_t pmod(const poly_t dividend, const poly_t divisor); poly_t pmod(const poly_t dividend, const poly_t divisor);
extern poly_t pcrc(const poly_t message, const poly_t divisor, const poly_t init, const poly_t xorout, int flags); poly_t pcrc(const poly_t message, const poly_t divisor, const poly_t init, const poly_t xorout, int flags);
extern int piter(poly_t *poly); int piter(poly_t *poly);
extern void palloc(poly_t *poly, unsigned long length); void palloc(poly_t *poly, unsigned long length);
extern void pfree(poly_t *poly); void pfree(poly_t *poly);
extern void praloc(poly_t *poly, unsigned long length); void praloc(poly_t *poly, unsigned long length);
extern int pmpar(const poly_t poly, const poly_t mask); int pmpar(const poly_t poly, const poly_t mask);
extern int pident(const poly_t a, const poly_t b); int pident(const poly_t a, const poly_t b);
/* model.c */ /* model.c */
@ -190,23 +190,23 @@ typedef struct {
const char *name; /* optional canonical name of the model */ const char *name; /* optional canonical name of the model */
} model_t; } model_t;
extern void mcpy(model_t *dest, const model_t *src); void mcpy(model_t *dest, const model_t *src);
extern void mfree(model_t *model); void mfree(model_t *model);
extern int mcmp(const model_t *a, const model_t *b); int mcmp(const model_t *a, const model_t *b);
extern char *mtostr(const model_t *model); char *mtostr(const model_t *model);
extern void mcanon(model_t *model); void mcanon(model_t *model);
extern void mcheck(model_t *model); void mcheck(model_t *model);
extern void mrev(model_t *model); void mrev(model_t *model);
extern void mnovel(model_t *model); void mnovel(model_t *model);
/* preset.c */ /* preset.c */
#define M_OVERWR 1 #define M_OVERWR 1
extern int mbynam(model_t *dest, const char *key); int mbynam(model_t *dest, const char *key);
extern void mbynum(model_t *dest, int num); void mbynum(model_t *dest, int num);
extern int mcount(void); int mcount(void);
extern char *mnames(void); char *mnames(void);
extern void mmatch(model_t *model, int flags); void mmatch(model_t *model, int flags);
/* reveng.c */ /* reveng.c */
#define R_HAVEP 1 #define R_HAVEP 1
@ -218,7 +218,7 @@ extern void mmatch(model_t *model, int flags);
#define R_SPMASK 0x7FFFFFFUL #define R_SPMASK 0x7FFFFFFUL
extern model_t *reveng(const model_t *guess, const poly_t qpoly, int rflags, int args, const poly_t *argpolys); model_t *reveng(const model_t *guess, const poly_t qpoly, int rflags, int args, const poly_t *argpolys);
/* cli.c */ /* cli.c */
#define C_INFILE 1 #define C_INFILE 1
@ -228,9 +228,9 @@ extern model_t *reveng(const model_t *guess, const poly_t qpoly, int rflags, int
#define BUFFER 32768 #define BUFFER 32768
extern int reveng_main(int argc, char *argv[]); int reveng_main(int argc, char *argv[]);
extern void ufound(const model_t *model); void ufound(const model_t *model);
extern void uerror(const char *msg); void uerror(const char *msg);
extern void uprog(const poly_t gpoly, int flags, unsigned long seq); void uprog(const poly_t gpoly, int flags, unsigned long seq);
#endif /* REVENG_H */ #endif /* REVENG_H */

View file

@ -15,8 +15,8 @@
#include <stdlib.h> #include <stdlib.h>
#ifdef _WIN32 #ifdef _WIN32
extern int scandir(const char *dir, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **)); int scandir(const char *dir, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **));
extern int alphasort(const struct dirent **a, const struct dirent **b); int alphasort(const struct dirent **a, const struct dirent **b);
#endif // _WIN32 #endif // _WIN32
#endif // SCANDIR_H__ #endif // SCANDIR_H__

View file

@ -33,10 +33,10 @@ void ShowGui(void);
void HideGraphWindow(void); void HideGraphWindow(void);
void ShowGraphWindow(void); void ShowGraphWindow(void);
void RepaintGraphWindow(void); void RepaintGraphWindow(void);
extern void PrintAndLog(char *fmt, ...); void PrintAndLog(char *fmt, ...);
void PrintAndLogOptions(char *str[][2], size_t size, size_t space); void PrintAndLogOptions(char *str[][2], size_t size, size_t space);
void PrintAndLogEx(logLevel_t level, char *fmt, ...); void PrintAndLogEx(logLevel_t level, char *fmt, ...);
extern void SetLogFilename(char *fn); void SetLogFilename(char *fn);
void SetFlushAfterWrite(bool value); void SetFlushAfterWrite(bool value);
extern double CursorScaleFactor; extern double CursorScaleFactor;
@ -48,6 +48,6 @@ extern bool showDemod;
extern pthread_mutex_t print_lock; extern pthread_mutex_t print_lock;
extern void iceIIR_Butterworth(int *data, const size_t len); void iceIIR_Butterworth(int *data, const size_t len);
extern void iceSimple_Filter(int *data, const size_t len, uint8_t k); void iceSimple_Filter(int *data, const size_t len, uint8_t k);
#endif #endif

View file

@ -186,81 +186,81 @@
} }
#endif #endif
extern uint8_t g_debugMode; uint8_t g_debugMode;
extern int ukbhit(void); int ukbhit(void);
extern void AddLogLine(char *fn, char *data, char *c); void AddLogLine(char *fn, char *data, char *c);
extern void AddLogHex(char *fn, char *extData, const uint8_t *data, const size_t len); void AddLogHex(char *fn, char *extData, const uint8_t *data, const size_t len);
extern void AddLogUint64(char *fn, char *data, const uint64_t value); void AddLogUint64(char *fn, char *data, const uint64_t value);
extern void AddLogCurrentDT(char *fn); void AddLogCurrentDT(char *fn);
extern void FillFileNameByUID(char *filenamePrefix, uint8_t *uid, const char *ext, int uidlen); void FillFileNameByUID(char *filenamePrefix, uint8_t *uid, const char *ext, int uidlen);
// fill buffer from structure [{uint8_t data, size_t length},...] // fill buffer from structure [{uint8_t data, size_t length},...]
extern int FillBuffer(uint8_t *data, size_t maxDataLength, size_t *dataLength, ...); int FillBuffer(uint8_t *data, size_t maxDataLength, size_t *dataLength, ...);
extern bool CheckStringIsHEXValue(const char *value); bool CheckStringIsHEXValue(const char *value);
extern void hex_to_buffer(const uint8_t *buf, const uint8_t *hex_data, const size_t hex_len, void hex_to_buffer(const uint8_t *buf, const uint8_t *hex_data, const size_t hex_len,
const size_t hex_max_len, const size_t min_str_len, const size_t spaces_between, const size_t hex_max_len, const size_t min_str_len, const size_t spaces_between,
bool uppercase); bool uppercase);
extern void print_hex(const uint8_t *data, const size_t len); void print_hex(const uint8_t *data, const size_t len);
extern void print_hex_break(const uint8_t *data, const size_t len, const uint8_t breaks); void print_hex_break(const uint8_t *data, const size_t len, const uint8_t breaks);
extern char *sprint_hex(const uint8_t *data, const size_t len); char *sprint_hex(const uint8_t *data, const size_t len);
extern char *sprint_hex_inrow(const uint8_t *data, const size_t len); char *sprint_hex_inrow(const uint8_t *data, const size_t len);
extern char *sprint_hex_inrow_ex(const uint8_t *data, const size_t len, const size_t min_str_len); char *sprint_hex_inrow_ex(const uint8_t *data, const size_t len, const size_t min_str_len);
extern char *sprint_hex_inrow_spaces(const uint8_t *data, const size_t len, size_t spaces_between); char *sprint_hex_inrow_spaces(const uint8_t *data, const size_t len, size_t spaces_between);
extern char *sprint_bin(const uint8_t *data, const size_t len); char *sprint_bin(const uint8_t *data, const size_t len);
extern char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t breaks); char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t breaks);
extern char *sprint_hex_ascii(const uint8_t *data, const size_t len); char *sprint_hex_ascii(const uint8_t *data, const size_t len);
extern char *sprint_ascii(const uint8_t *data, const size_t len); char *sprint_ascii(const uint8_t *data, const size_t len);
extern char *sprint_ascii_ex(const uint8_t *data, const size_t len, const size_t min_str_len); char *sprint_ascii_ex(const uint8_t *data, const size_t len, const size_t min_str_len);
extern void print_blocks(uint32_t *data, size_t len); void print_blocks(uint32_t *data, size_t len);
extern void num_to_bytes(uint64_t n, size_t len, uint8_t *dest); void num_to_bytes(uint64_t n, size_t len, uint8_t *dest);
extern uint64_t bytes_to_num(uint8_t *src, size_t len); uint64_t bytes_to_num(uint8_t *src, size_t len);
extern void num_to_bytebits(uint64_t n, size_t len, uint8_t *dest); void num_to_bytebits(uint64_t n, size_t len, uint8_t *dest);
extern void num_to_bytebitsLSBF(uint64_t n, size_t len, uint8_t *dest); void num_to_bytebitsLSBF(uint64_t n, size_t len, uint8_t *dest);
extern uint8_t *SwapEndian64(const uint8_t *src, const size_t len, const uint8_t blockSize); uint8_t *SwapEndian64(const uint8_t *src, const size_t len, const uint8_t blockSize);
extern void SwapEndian64ex(const uint8_t *src, const size_t len, const uint8_t blockSize, uint8_t *dest); void SwapEndian64ex(const uint8_t *src, const size_t len, const uint8_t blockSize, uint8_t *dest);
extern int param_getlength(const char *line, int paramnum); int param_getlength(const char *line, int paramnum);
extern char param_getchar(const char *line, int paramnum); char param_getchar(const char *line, int paramnum);
extern char param_getchar_indx(const char *line, int indx, int paramnum); char param_getchar_indx(const char *line, int indx, int paramnum);
extern int param_getptr(const char *line, int *bg, int *en, int paramnum); int param_getptr(const char *line, int *bg, int *en, int paramnum);
extern uint8_t param_get8(const char *line, int paramnum); uint8_t param_get8(const char *line, int paramnum);
extern uint8_t param_get8ex(const char *line, int paramnum, int deflt, int base); uint8_t param_get8ex(const char *line, int paramnum, int deflt, int base);
extern uint32_t param_get32ex(const char *line, int paramnum, int deflt, int base); uint32_t param_get32ex(const char *line, int paramnum, int deflt, int base);
extern uint64_t param_get64ex(const char *line, int paramnum, int deflt, int base); uint64_t param_get64ex(const char *line, int paramnum, int deflt, int base);
extern uint8_t param_getdec(const char *line, int paramnum, uint8_t *destination); uint8_t param_getdec(const char *line, int paramnum, uint8_t *destination);
extern uint8_t param_isdec(const char *line, int paramnum); uint8_t param_isdec(const char *line, int paramnum);
extern int param_gethex(const char *line, int paramnum, uint8_t *data, int hexcnt); int param_gethex(const char *line, int paramnum, uint8_t *data, int hexcnt);
extern int param_gethex_ex(const char *line, int paramnum, uint8_t *data, int *hexcnt); int param_gethex_ex(const char *line, int paramnum, uint8_t *data, int *hexcnt);
extern int param_gethex_to_eol(const char *line, int paramnum, uint8_t *data, int maxdatalen, int *datalen); int param_gethex_to_eol(const char *line, int paramnum, uint8_t *data, int maxdatalen, int *datalen);
extern int param_getstr(const char *line, int paramnum, char *str, size_t buffersize); int param_getstr(const char *line, int paramnum, char *str, size_t buffersize);
extern int hextobinarray(char *target, char *source); int hextobinarray(char *target, char *source);
extern int hextobinstring(char *target, char *source); int hextobinstring(char *target, char *source);
extern int binarraytohex(char *target, const size_t targetlen, char *source, size_t srclen); int binarraytohex(char *target, const size_t targetlen, char *source, size_t srclen);
extern void binarraytobinstring(char *target, char *source, int length); void binarraytobinstring(char *target, char *source, int length);
extern uint8_t GetParity(uint8_t *bits, uint8_t type, int length); uint8_t GetParity(uint8_t *bits, uint8_t type, int length);
extern void wiegand_add_parity(uint8_t *target, uint8_t *source, uint8_t length); void wiegand_add_parity(uint8_t *target, uint8_t *source, uint8_t length);
extern void xor(unsigned char *dst, unsigned char *src, size_t len); void xor(unsigned char *dst, unsigned char *src, size_t len);
extern int32_t le24toh(uint8_t data[3]); int32_t le24toh(uint8_t data[3]);
extern uint32_t PackBits(uint8_t start, uint8_t len, uint8_t *bits); uint32_t PackBits(uint8_t start, uint8_t len, uint8_t *bits);
extern void rol(uint8_t *data, const size_t len); void rol(uint8_t *data, const size_t len);
extern uint32_t reflect(uint32_t v, int b); uint32_t reflect(uint32_t v, int b);
extern uint8_t reflect8(uint8_t b); // dedicated 8bit reversal uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
extern uint16_t reflect16(uint16_t b); // dedicated 16bit reversal uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
extern uint64_t HornerScheme(uint64_t num, uint64_t divider, uint64_t factor); uint64_t HornerScheme(uint64_t num, uint64_t divider, uint64_t factor);
extern int num_CPUs(void); // number of logical CPUs int num_CPUs(void); // number of logical CPUs
extern void str_lower(char *s); // converts string to lower case void str_lower(char *s); // converts string to lower case
extern bool str_startswith(const char *s, const char *pre); // check for prefix in string bool str_startswith(const char *s, const char *pre); // check for prefix in string
extern void strcleanrn(char *buf, size_t len); void strcleanrn(char *buf, size_t len);
extern void strcreplace(char *buf, size_t len, char from, char to); void strcreplace(char *buf, size_t len, char from, char to);
extern char *strmcopy(char *buf); char *strmcopy(char *buf);
#endif #endif

View file

@ -51,7 +51,7 @@ uint8_t lfsr_rollback_bit(struct Crypto1State *s, uint32_t in, int fb);
uint8_t lfsr_rollback_byte(struct Crypto1State *s, uint32_t in, int fb); uint8_t lfsr_rollback_byte(struct Crypto1State *s, uint32_t in, int fb);
uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb); uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb);
int nonce_distance(uint32_t from, uint32_t to); int nonce_distance(uint32_t from, uint32_t to);
extern bool validate_prng_nonce(uint32_t nonce); bool validate_prng_nonce(uint32_t nonce);
#define FOREACH_VALID_NONCE(N, FILTER, FSIZE)\ #define FOREACH_VALID_NONCE(N, FILTER, FSIZE)\
uint32_t __n = 0,__M = 0, N = 0;\ uint32_t __n = 0,__M = 0, N = 0;\
int __i;\ int __i;\

View file

@ -30,25 +30,25 @@ typedef struct crc {
* refin is the setting for reversing (bitwise) the bytes during crc * refin is the setting for reversing (bitwise) the bytes during crc
* refot is the setting for reversing (bitwise) the crc byte before returning it. * refot is the setting for reversing (bitwise) the crc byte before returning it.
*/ */
extern void crc_init_ref(crc_t *crc, int order, uint32_t polynom, uint32_t initial_value, uint32_t final_xor, bool refin, bool refout); void crc_init_ref(crc_t *crc, int order, uint32_t polynom, uint32_t initial_value, uint32_t final_xor, bool refin, bool refout);
/* Initialize a crc structure. order is the order of the polynom, e.g. 32 for a CRC-32 /* Initialize a crc structure. order is the order of the polynom, e.g. 32 for a CRC-32
* polynom is the CRC polynom. initial_value is the initial value of a clean state. * polynom is the CRC polynom. initial_value is the initial value of a clean state.
* final_xor is XORed onto the state before returning it from crc_result(). */ * final_xor is XORed onto the state before returning it from crc_result(). */
extern void crc_init(crc_t *crc, int order, uint32_t polynom, uint32_t initial_value, uint32_t final_xor); void crc_init(crc_t *crc, int order, uint32_t polynom, uint32_t initial_value, uint32_t final_xor);
/* Update the crc state. data is the data of length data_width bits (only the /* Update the crc state. data is the data of length data_width bits (only the
* data_width lower-most bits are used). * data_width lower-most bits are used).
*/ */
extern void crc_update(crc_t *crc, uint32_t data, int data_width); void crc_update(crc_t *crc, uint32_t data, int data_width);
extern void crc_update2(crc_t *crc, uint32_t data, int data_width); void crc_update2(crc_t *crc, uint32_t data, int data_width);
/* Clean the crc state, e.g. reset it to initial_value */ /* Clean the crc state, e.g. reset it to initial_value */
extern void crc_clear(crc_t *crc); void crc_clear(crc_t *crc);
/* Get the result of the crc calculation */ /* Get the result of the crc calculation */
extern uint32_t crc_finish(crc_t *crc); uint32_t crc_finish(crc_t *crc);
// Calculate CRC-8/Maxim checksum // Calculate CRC-8/Maxim checksum
uint32_t CRC8Maxim(uint8_t *buff, size_t size); uint32_t CRC8Maxim(uint8_t *buff, size_t size);
@ -65,13 +65,13 @@ uint32_t CRC8Legic(uint8_t *buff, size_t size);
/* Static initialization of a crc structure */ /* Static initialization of a crc structure */
#define CRC_INITIALIZER(_order, _polynom, _initial_value, _final_xor) { \ #define CRC_INITIALIZER(_order, _polynom, _initial_value, _final_xor) { \
.state = ((_initial_value) & ((1L<<(_order))-1)), \ .state = ((_initial_value) & ((1L<<(_order))-1)), \
.order = (_order), \ .order = (_order), \
.polynom = (_polynom), \ .polynom = (_polynom), \
.initial_value = (_initial_value), \ .initial_value = (_initial_value), \
.final_xor = (_final_xor), \ .final_xor = (_final_xor), \
.mask = ((1L<<(_order))-1) \ .mask = ((1L<<(_order))-1) \
.refin = false, \ .refin = false, \
.refout = false \ .refout = false \
} }
#endif /* __CRC_H */ #endif /* __CRC_H */

View file

@ -51,7 +51,7 @@
//to allow debug print calls when used not on dev //to allow debug print calls when used not on dev
//void dummy(char *fmt, ...){} //void dummy(char *fmt, ...){}
extern void Dbprintf(const char *fmt, ...); void Dbprintf(const char *fmt, ...);
#ifndef ON_DEVICE #ifndef ON_DEVICE
#include "ui.h" #include "ui.h"

View file

@ -45,42 +45,42 @@ void getNextHigh(uint8_t *samples, size_t size, int high, size_t *i);
bool loadWaveCounters(uint8_t *samples, size_t size, int lowToLowWaveLen[], int highToLowWaveLen[], int *waveCnt, int *skip, int *minClk, int *high, int *low); bool loadWaveCounters(uint8_t *samples, size_t size, int lowToLowWaveLen[], int highToLowWaveLen[], int *waveCnt, int *skip, int *minClk, int *high, int *low);
size_t pskFindFirstPhaseShift(uint8_t *samples, size_t size, uint8_t *curPhase, size_t waveStart, uint16_t fc, uint16_t *fullWaveLen); size_t pskFindFirstPhaseShift(uint8_t *samples, size_t size, uint8_t *curPhase, size_t waveStart, uint16_t fc, uint16_t *fullWaveLen);
extern size_t addParity(uint8_t *src, uint8_t *dest, uint8_t sourceLen, uint8_t pLen, uint8_t pType); size_t addParity(uint8_t *src, uint8_t *dest, uint8_t sourceLen, uint8_t pLen, uint8_t pType);
extern int askdemod(uint8_t *bits, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp, uint8_t askType); int askdemod(uint8_t *bits, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp, uint8_t askType);
extern int askdemod_ext(uint8_t *bits, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp, uint8_t askType, int *startIdx); int askdemod_ext(uint8_t *bits, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp, uint8_t askType, int *startIdx);
extern void askAmp(uint8_t *bits, size_t size); void askAmp(uint8_t *bits, size_t size);
extern int BiphaseRawDecode(uint8_t *bits, size_t *size, int *offset, int invert); int BiphaseRawDecode(uint8_t *bits, size_t *size, int *offset, int invert);
extern uint8_t bits_to_array(const uint8_t *bits, size_t size, uint8_t *dest); uint8_t bits_to_array(const uint8_t *bits, size_t size, uint8_t *dest);
extern uint32_t bytebits_to_byte(uint8_t *src, size_t numbits); uint32_t bytebits_to_byte(uint8_t *src, size_t numbits);
extern uint32_t bytebits_to_byteLSBF(uint8_t *src, size_t numbits); uint32_t bytebits_to_byteLSBF(uint8_t *src, size_t numbits);
extern uint16_t countFC(uint8_t *bits, size_t size, bool fskAdj); uint16_t countFC(uint8_t *bits, size_t size, bool fskAdj);
extern int DetectASKClock(uint8_t *dest, size_t size, int *clock, int maxErr); int DetectASKClock(uint8_t *dest, size_t size, int *clock, int maxErr);
extern bool DetectCleanAskWave(uint8_t *dest, size_t size, uint8_t high, uint8_t low); bool DetectCleanAskWave(uint8_t *dest, size_t size, uint8_t high, uint8_t low);
extern uint8_t detectFSKClk(uint8_t *bits, size_t size, uint8_t fcHigh, uint8_t fcLow, int *firstClockEdge); uint8_t detectFSKClk(uint8_t *bits, size_t size, uint8_t fcHigh, uint8_t fcLow, int *firstClockEdge);
extern int DetectNRZClock(uint8_t *dest, size_t size, int clock, size_t *clockStartIdx); int DetectNRZClock(uint8_t *dest, size_t size, int clock, size_t *clockStartIdx);
extern int DetectPSKClock(uint8_t *dest, size_t size, int clock, size_t *firstPhaseShift, uint8_t *curPhase, uint8_t *fc); int DetectPSKClock(uint8_t *dest, size_t size, int clock, size_t *firstPhaseShift, uint8_t *curPhase, uint8_t *fc);
extern int DetectStrongAskClock(uint8_t *dest, size_t size, int high, int low, int *clock); int DetectStrongAskClock(uint8_t *dest, size_t size, int high, int low, int *clock);
extern bool DetectST(uint8_t *buffer, size_t *size, int *foundclock, size_t *ststart, size_t *stend); bool DetectST(uint8_t *buffer, size_t *size, int *foundclock, size_t *ststart, size_t *stend);
extern size_t fskdemod(uint8_t *dest, size_t size, uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow, int *start_idx); size_t fskdemod(uint8_t *dest, size_t size, uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow, int *start_idx);
//extern void getHiLo(uint8_t *bits, size_t size, int *high, int *low, uint8_t fuzzHi, uint8_t fuzzLo); //void getHiLo(uint8_t *bits, size_t size, int *high, int *low, uint8_t fuzzHi, uint8_t fuzzLo);
extern void getHiLo(int *high, int *low, uint8_t fuzzHi, uint8_t fuzzLo); void getHiLo(int *high, int *low, uint8_t fuzzHi, uint8_t fuzzLo);
extern uint32_t manchesterEncode2Bytes(uint16_t datain); uint32_t manchesterEncode2Bytes(uint16_t datain);
extern int ManchesterEncode(uint8_t *bits, size_t size); int ManchesterEncode(uint8_t *bits, size_t size);
extern int manrawdecode(uint8_t *bits, size_t *size, uint8_t invert, uint8_t *alignPos); int manrawdecode(uint8_t *bits, size_t *size, uint8_t invert, uint8_t *alignPos);
extern int nrzRawDemod(uint8_t *dest, size_t *size, int *clk, int *invert, int *startIdx); int nrzRawDemod(uint8_t *dest, size_t *size, int *clk, int *invert, int *startIdx);
extern bool parityTest(uint32_t bits, uint8_t bitLen, uint8_t pType); bool parityTest(uint32_t bits, uint8_t bitLen, uint8_t pType);
extern bool preambleSearch(uint8_t *bits, uint8_t *preamble, size_t pLen, size_t *size, size_t *startIdx); bool preambleSearch(uint8_t *bits, uint8_t *preamble, size_t pLen, size_t *size, size_t *startIdx);
extern bool preambleSearchEx(uint8_t *bits, uint8_t *preamble, size_t pLen, size_t *size, size_t *startIdx, bool findone); bool preambleSearchEx(uint8_t *bits, uint8_t *preamble, size_t pLen, size_t *size, size_t *startIdx, bool findone);
extern int pskRawDemod(uint8_t *dest, size_t *size, int *clock, int *invert); int pskRawDemod(uint8_t *dest, size_t *size, int *clock, int *invert);
extern int pskRawDemod_ext(uint8_t *dest, size_t *size, int *clock, int *invert, int *startIdx); int pskRawDemod_ext(uint8_t *dest, size_t *size, int *clock, int *invert, int *startIdx);
extern void psk2TOpsk1(uint8_t *bits, size_t size); void psk2TOpsk1(uint8_t *bits, size_t size);
extern void psk1TOpsk2(uint8_t *bits, size_t size); void psk1TOpsk2(uint8_t *bits, size_t size);
extern size_t removeParity(uint8_t *bits, size_t startIdx, uint8_t pLen, uint8_t pType, size_t bLen); size_t removeParity(uint8_t *bits, size_t startIdx, uint8_t pLen, uint8_t pType, size_t bLen);
//tag specific //tag specific
extern int detectAWID(uint8_t *dest, size_t *size, int *waveStartIdx); int detectAWID(uint8_t *dest, size_t *size, int *waveStartIdx);
extern int Em410xDecode(uint8_t *bits, size_t *size, size_t *start_idx, uint32_t *hi, uint64_t *lo); int Em410xDecode(uint8_t *bits, size_t *size, size_t *start_idx, uint32_t *hi, uint64_t *lo);
extern int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo, int *waveStartIdx); int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo, int *waveStartIdx);
extern int detectIdteck(uint8_t *dest, size_t *size); int detectIdteck(uint8_t *dest, size_t *size);
extern int detectIOProx(uint8_t *dest, size_t *size, int *waveStartIdx); int detectIOProx(uint8_t *dest, size_t *size, int *waveStartIdx);
#endif #endif

View file

@ -41,23 +41,23 @@
#include "proxmark3.h" // USB_CONNECT() #include "proxmark3.h" // USB_CONNECT()
#include "common.h" #include "common.h"
extern void usb_disable(); void usb_disable();
extern void usb_enable(); void usb_enable();
extern bool usb_check(); bool usb_check();
extern bool usb_poll(); bool usb_poll();
extern bool usb_poll_validate_length(); bool usb_poll_validate_length();
extern uint32_t usb_read(uint8_t *data, size_t len); uint32_t usb_read(uint8_t *data, size_t len);
extern uint32_t usb_write(const uint8_t *data, const size_t len); uint32_t usb_write(const uint8_t *data, const size_t len);
extern void SetUSBreconnect(int value); void SetUSBreconnect(int value);
extern int GetUSBreconnect(void); int GetUSBreconnect(void);
extern void SetUSBconfigured(int value); void SetUSBconfigured(int value);
extern int GetUSBconfigured(void); int GetUSBconfigured(void);
extern void AT91F_USB_SendData(AT91PS_UDP pUdp, const char *pData, uint32_t length); void AT91F_USB_SendData(AT91PS_UDP pUdp, const char *pData, uint32_t length);
extern void AT91F_USB_SendZlp(AT91PS_UDP pUdp); void AT91F_USB_SendZlp(AT91PS_UDP pUdp);
extern void AT91F_USB_SendStall(AT91PS_UDP pUdp); void AT91F_USB_SendStall(AT91PS_UDP pUdp);
extern void AT91F_CDC_Enumerate(); void AT91F_CDC_Enumerate();
#endif // _USB_CDC_H_ #endif // _USB_CDC_H_

View file

@ -10,9 +10,9 @@
#define __LEGIC_PRNG_H #define __LEGIC_PRNG_H
#include <stdint.h> #include <stdint.h>
extern void legic_prng_init(uint8_t iv); void legic_prng_init(uint8_t iv);
extern void legic_prng_forward(int count); void legic_prng_forward(int count);
extern uint8_t legic_prng_get_bit(); uint8_t legic_prng_get_bit();
extern uint32_t legic_prng_get_bits(uint8_t len); uint32_t legic_prng_get_bits(uint8_t len);
#endif #endif