mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-09-20 15:26:13 +08:00
Merge branch 'master' into hf_mf_sim
This commit is contained in:
commit
b666c27f3c
|
@ -25,22 +25,22 @@
|
|||
#define CARD_MEMORY_SIZE 4096
|
||||
#define DMA_BUFFER_SIZE 256 //128 (how big is the dma?!?
|
||||
|
||||
extern uint8_t *BigBuf_get_addr(void);
|
||||
extern uint8_t *BigBuf_get_EM_addr(void);
|
||||
extern uint16_t BigBuf_max_traceLen(void);
|
||||
extern void BigBuf_Clear(void);
|
||||
extern void BigBuf_Clear_ext(bool verbose);
|
||||
extern void BigBuf_Clear_keep_EM(void);
|
||||
extern void BigBuf_Clear_EM(void);
|
||||
extern uint8_t *BigBuf_malloc(uint16_t);
|
||||
extern void BigBuf_free(void);
|
||||
extern void BigBuf_free_keep_EM(void);
|
||||
extern void BigBuf_print_status(void);
|
||||
extern uint32_t BigBuf_get_traceLen(void);
|
||||
extern void clear_trace(void);
|
||||
extern void set_tracing(bool enable);
|
||||
extern void set_tracelen(uint32_t value);
|
||||
extern 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);
|
||||
extern uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length);
|
||||
uint8_t *BigBuf_get_addr(void);
|
||||
uint8_t *BigBuf_get_EM_addr(void);
|
||||
uint16_t BigBuf_max_traceLen(void);
|
||||
void BigBuf_Clear(void);
|
||||
void BigBuf_Clear_ext(bool verbose);
|
||||
void BigBuf_Clear_keep_EM(void);
|
||||
void BigBuf_Clear_EM(void);
|
||||
uint8_t *BigBuf_malloc(uint16_t);
|
||||
void BigBuf_free(void);
|
||||
void BigBuf_free_keep_EM(void);
|
||||
void BigBuf_print_status(void);
|
||||
uint32_t BigBuf_get_traceLen(void);
|
||||
void clear_trace(void);
|
||||
void set_tracing(bool enable);
|
||||
void set_tracelen(uint32_t value);
|
||||
bool get_tracing(void);
|
||||
bool RAMFUNC LogTrace(const uint8_t *btBytes, uint16_t iLen, uint32_t timestamp_start, uint32_t timestamp_end, uint8_t *parity, bool readerToTag);
|
||||
uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length);
|
||||
#endif /* __BIGBUF_H */
|
||||
|
|
|
@ -14,6 +14,6 @@
|
|||
#include <stdbool.h> // for bool
|
||||
#include <inttypes.h> // PRIu64
|
||||
|
||||
extern void RunMod();
|
||||
void RunMod();
|
||||
|
||||
#endif /* __STANDALONE_H */
|
||||
|
|
|
@ -65,8 +65,8 @@ void ListenReaderField(int limit);
|
|||
extern int ToSendMax;
|
||||
extern uint8_t ToSend[];
|
||||
|
||||
extern void StandAloneMode(void);
|
||||
extern void printStandAloneModes(void);
|
||||
void StandAloneMode(void);
|
||||
void printStandAloneModes(void);
|
||||
|
||||
/// lfops.h
|
||||
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);
|
||||
|
||||
//felica.c
|
||||
extern void felica_sendraw(UsbCommand *c);
|
||||
extern void felica_sniff(uint32_t samplesToSkip, uint32_t triggersToSkip);
|
||||
extern void felica_sim_lite(uint64_t uid);
|
||||
extern void felica_dump_lite_s();
|
||||
void felica_sendraw(UsbCommand *c);
|
||||
void felica_sniff(uint32_t samplesToSkip, uint32_t triggersToSkip);
|
||||
void felica_sim_lite(uint64_t uid);
|
||||
void felica_dump_lite_s();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
#define note_7 506
|
||||
#define note_8 0
|
||||
|
||||
extern void Ring_BEE_ONCE(uint16_t music_note);
|
||||
extern void Ring_BEE_TIME(uint16_t music_note, uint16_t count);
|
||||
extern void ring_2_7khz(uint16_t count);
|
||||
extern void Ring_ALL(uint16_t count);
|
||||
extern void Ring_Little_Star(uint16_t count);
|
||||
void Ring_BEE_ONCE(uint16_t music_note);
|
||||
void Ring_BEE_TIME(uint16_t music_note, uint16_t count);
|
||||
void ring_2_7khz(uint16_t count);
|
||||
void Ring_ALL(uint16_t count);
|
||||
void Ring_Little_Star(uint16_t count);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
extern void Dbprintf(const char *fmt, ...);
|
||||
void Dbprintf(const char *fmt, ...);
|
||||
|
||||
void FlashmemSetSpiBaudrate(uint32_t baudrate);
|
||||
bool FlashInit();
|
||||
|
|
|
@ -37,7 +37,7 @@ int FpgaGetCurrent(void);
|
|||
void SetAdcMuxFor(uint32_t whichGpio);
|
||||
|
||||
// extern and generel turn off the antenna method
|
||||
extern void switch_off(void);
|
||||
void switch_off(void);
|
||||
|
||||
// definitions for multiple FPGA config files support
|
||||
#define FPGA_BITSTREAM_LF 1
|
||||
|
|
|
@ -22,13 +22,13 @@ struct hitag2_tag {
|
|||
uint8_t sectors[12][4];
|
||||
};
|
||||
|
||||
extern uint32_t _f20(const uint64_t x);
|
||||
extern uint64_t _hitag2_init(const uint64_t key, const uint32_t serial, const uint32_t IV);
|
||||
extern uint64_t _hitag2_round(uint64_t *state);
|
||||
extern uint32_t _hitag2_byte(uint64_t *x);
|
||||
extern 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);
|
||||
extern int hitag2_cipher_transcrypt(uint64_t *cs, uint8_t *data, uint16_t bytes, uint16_t bits) ;
|
||||
uint32_t _f20(const uint64_t x);
|
||||
uint64_t _hitag2_init(const uint64_t key, const uint32_t serial, const uint32_t IV);
|
||||
uint64_t _hitag2_round(uint64_t *state);
|
||||
uint32_t _hitag2_byte(uint64_t *x);
|
||||
void hitag2_cipher_reset(struct hitag2_tag *tag, const uint8_t *iv);
|
||||
int hitag2_cipher_authenticate(uint64_t *cs, const uint8_t *authenticator_is);
|
||||
int hitag2_cipher_transcrypt(uint64_t *cs, uint8_t *data, uint16_t bytes, uint16_t bits) ;
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -108,45 +108,45 @@ typedef struct {
|
|||
# define CheckCrc14A(data, len) check_crc(CRC_14443_A, (data), (len))
|
||||
#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);
|
||||
extern void DemodReset(void);
|
||||
extern void DemodInit(uint8_t *data, uint8_t *parity);
|
||||
extern tUart *GetUart(void);
|
||||
extern void UartReset(void);
|
||||
extern void UartInit(uint8_t *data, uint8_t *parity);
|
||||
extern 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);
|
||||
tDemod *GetDemod(void);
|
||||
void DemodReset(void);
|
||||
void DemodInit(uint8_t *data, uint8_t *parity);
|
||||
tUart *GetUart(void);
|
||||
void UartReset(void);
|
||||
void UartInit(uint8_t *data, uint8_t *parity);
|
||||
RAMFUNC bool MillerDecoding(uint8_t bit, 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);
|
||||
extern void SimulateIso14443aTag(int tagType, int flags, uint8_t *data);
|
||||
extern void iso14443a_antifuzz(uint32_t flags);
|
||||
extern void ReaderIso14443a(UsbCommand *c);
|
||||
extern 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);
|
||||
extern void ReaderTransmitPar(uint8_t *frame, uint16_t len, uint8_t *par, uint32_t *timing);
|
||||
extern int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par);
|
||||
void RAMFUNC SniffIso14443a(uint8_t param);
|
||||
void SimulateIso14443aTag(int tagType, int flags, uint8_t *data);
|
||||
void iso14443a_antifuzz(uint32_t flags);
|
||||
void ReaderIso14443a(UsbCommand *c);
|
||||
void ReaderTransmit(uint8_t *frame, uint16_t len, uint32_t *timing);
|
||||
void ReaderTransmitBitsPar(uint8_t *frame, uint16_t bits, uint8_t *par, uint32_t *timing);
|
||||
void ReaderTransmitPar(uint8_t *frame, uint16_t len, uint8_t *par, uint32_t *timing);
|
||||
int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par);
|
||||
|
||||
extern 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);
|
||||
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);
|
||||
extern int iso14443a_fast_select_card(uint8_t *uid_ptr, uint8_t num_cascades);
|
||||
extern void iso14a_set_trigger(bool enable);
|
||||
void iso14443a_setup(uint8_t fpga_minor_mode);
|
||||
int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, bool send_chaining, void *data, uint8_t *res);
|
||||
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_fast_select_card(uint8_t *uid_ptr, uint8_t num_cascades);
|
||||
void iso14a_set_trigger(bool enable);
|
||||
|
||||
extern int EmSendPrecompiledCmd(tag_response_info_t *response_info);
|
||||
extern int EmSendCmd14443aRaw(uint8_t *resp, uint16_t respLen);
|
||||
extern int EmSend4bit(uint8_t resp);
|
||||
extern int EmSendCmd(uint8_t *resp, uint16_t respLen);
|
||||
extern int EmSendCmdEx(uint8_t *resp, uint16_t respLen, bool collision);
|
||||
extern int EmGetCmd(uint8_t *received, uint16_t *len, uint8_t *parity);
|
||||
extern 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);
|
||||
extern int EmSendPrecompiledCmd(tag_response_info_t *response_info);
|
||||
int EmSendPrecompiledCmd(tag_response_info_t *response_info);
|
||||
int EmSendCmd14443aRaw(uint8_t *resp, uint16_t respLen);
|
||||
int EmSend4bit(uint8_t resp);
|
||||
int EmSendCmd(uint8_t *resp, uint16_t respLen);
|
||||
int EmSendCmdEx(uint8_t *resp, uint16_t respLen, bool collision);
|
||||
int EmGetCmd(uint8_t *received, uint16_t *len, uint8_t *parity);
|
||||
int EmSendCmdPar(uint8_t *resp, uint16_t respLen, uint8_t *par);
|
||||
int EmSendCmdParEx(uint8_t *resp, uint16_t respLen, uint8_t *par, bool collision);
|
||||
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,
|
||||
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 DetectNACKbug();
|
||||
|
||||
extern void AppendCrc14443a(uint8_t *data, int len);
|
||||
void AppendCrc14443a(uint8_t *data, int len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -34,15 +34,15 @@ extern "C" {
|
|||
# define AddCrc14B(data, len) compute_crc(CRC_14443_B, (data), (len), (data)+(len), (data)+(len)+1)
|
||||
#endif
|
||||
|
||||
extern void SendRawCommand14443B_Ex(UsbCommand *c);
|
||||
extern void iso14443b_setup();
|
||||
extern 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);
|
||||
extern uint8_t iso14443b_select_card_srx(iso14b_card_select_t *card);
|
||||
void SendRawCommand14443B_Ex(UsbCommand *c);
|
||||
void iso14443b_setup();
|
||||
uint8_t iso14443b_apdu(uint8_t const *message, size_t message_length, uint8_t *response);
|
||||
uint8_t iso14443b_select_card(iso14b_card_select_t *card);
|
||||
uint8_t iso14443b_select_card_srx(iso14b_card_select_t *card);
|
||||
|
||||
// testfunctions
|
||||
extern void WaitForFpgaDelayQueueIsEmpty(uint16_t delay);
|
||||
extern void ClearFpgaShiftingRegisters(void);
|
||||
void WaitForFpgaDelayQueueIsEmpty(uint16_t delay);
|
||||
void ClearFpgaShiftingRegisters(void);
|
||||
|
||||
// States for 14B SIM command
|
||||
#define SIM_NOFIELD 0
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
|
||||
#include "proxmark3.h"
|
||||
|
||||
extern void LegicRfInfo(void);
|
||||
extern 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 LegicRfInfo(void);
|
||||
void LegicRfReader(uint16_t offset, uint16_t len, uint8_t iv);
|
||||
void LegicRfWriter(uint16_t offset, uint16_t byte, uint8_t iv, uint8_t *data);
|
||||
|
||||
#endif /* __LEGICRF_H */
|
||||
|
|
|
@ -14,6 +14,6 @@
|
|||
|
||||
#include "proxmark3.h"
|
||||
|
||||
extern void LegicRfSimulate(uint8_t tagtype);
|
||||
void LegicRfSimulate(uint8_t tagtype);
|
||||
|
||||
#endif /* __LEGICRFSIM_H */
|
||||
|
|
|
@ -37,11 +37,11 @@ void StartCountSspClk();
|
|||
void ResetSspClk(void);
|
||||
uint32_t RAMFUNC GetCountSspClk();
|
||||
|
||||
extern void StartTicks(void);
|
||||
extern uint32_t GetTicks(void);
|
||||
extern void WaitTicks(uint32_t ticks);
|
||||
extern void WaitUS(uint16_t us);
|
||||
extern void WaitMS(uint16_t ms);
|
||||
void StartTicks(void);
|
||||
uint32_t GetTicks(void);
|
||||
void WaitTicks(uint32_t ticks);
|
||||
void WaitUS(uint16_t us);
|
||||
void WaitMS(uint16_t ms);
|
||||
|
||||
extern void StopTicks(void);
|
||||
void StopTicks(void);
|
||||
#endif
|
||||
|
|
|
@ -84,9 +84,9 @@
|
|||
|
||||
size_t nbytes(size_t nbits);
|
||||
|
||||
extern uint32_t reflect(uint32_t v, int b); // used in crc.c ...
|
||||
extern uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
|
||||
extern uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
|
||||
uint32_t reflect(uint32_t v, int b); // used in crc.c ...
|
||||
uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
|
||||
uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
|
||||
|
||||
void num_to_bytes(uint64_t n, size_t len, uint8_t *dest);
|
||||
uint64_t bytes_to_num(uint8_t *src, size_t len);
|
||||
|
|
|
@ -31,11 +31,11 @@
|
|||
#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;}
|
||||
|
||||
extern int CLIParserInit(char *vprogramName, char *vprogramHint, char *vprogramHelp);
|
||||
extern 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);
|
||||
extern int CLIParserParseArg(int argc, char **argv, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
||||
extern void CLIParserFree();
|
||||
int CLIParserInit(char *vprogramName, char *vprogramHint, char *vprogramHelp);
|
||||
int CLIParserParseString(const char *str, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
||||
int CLIParserParseStringEx(const char *str, void *vargtable[], size_t vargtableLen, bool allowEmptyExec, bool clueData);
|
||||
int CLIParserParseArg(int argc, char **argv, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
||||
void CLIParserFree();
|
||||
|
||||
extern 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 CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
|
||||
int CLIParamStrToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
#include "ui.h"
|
||||
#include "util.h"
|
||||
|
||||
extern int CmdCrc(const char *Cmd);
|
||||
int CmdCrc(const char *Cmd);
|
||||
|
||||
extern int CmdrevengSearch(const char *Cmd);
|
||||
extern int GetModels(char *Models[], int *count, uint8_t *width);
|
||||
extern int RunModel(char *inModel, char *inHexStr, bool reverse, char endian, char *result);
|
||||
int CmdrevengSearch(const char *Cmd);
|
||||
int GetModels(char *Models[], int *count, uint8_t *width);
|
||||
int RunModel(char *inModel, char *inHexStr, bool reverse, char endian, char *result);
|
||||
#endif
|
||||
|
|
|
@ -84,7 +84,7 @@ int NRZrawDemod(const char *Cmd, bool verbose);
|
|||
int getSamples(int n, bool silent);
|
||||
void setClockGrid(int clk, int offset);
|
||||
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);
|
||||
|
||||
|
|
|
@ -33,13 +33,13 @@ typedef enum {
|
|||
DICTIONARY_ICLASS
|
||||
} Dictionary_t;
|
||||
|
||||
extern int CmdFlashMem(const char *Cmd);
|
||||
int CmdFlashMem(const char *Cmd);
|
||||
|
||||
extern int CmdFlashMemRead(const char *Cmd);
|
||||
extern int CmdFlashMemLoad(const char *Cmd);
|
||||
extern int CmdFlashMemSave(const char *Cmd);
|
||||
extern int CmdFlashMemWipe(const char *Cmd);
|
||||
extern int CmdFlashMemInfo(const char *Cmd);
|
||||
int CmdFlashMemRead(const char *Cmd);
|
||||
int CmdFlashMemLoad(const char *Cmd);
|
||||
int CmdFlashMemSave(const char *Cmd);
|
||||
int CmdFlashMemWipe(const char *Cmd);
|
||||
int CmdFlashMemInfo(const char *Cmd);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -33,11 +33,11 @@
|
|||
#include "cmdhffido.h" // FIDO authenticators
|
||||
#include "cmdtrace.h" // trace list
|
||||
|
||||
extern int CmdHF(const char *Cmd);
|
||||
extern int CmdHFTune(const char *Cmd);
|
||||
extern int CmdHFSearch(const char *Cmd);
|
||||
extern int CmdHFSniff(const char *Cmd);
|
||||
int CmdHF(const char *Cmd);
|
||||
int CmdHFTune(const char *Cmd);
|
||||
int CmdHFSearch(const char *Cmd);
|
||||
int CmdHFSniff(const char *Cmd);
|
||||
|
||||
extern int usage_hf_search();
|
||||
extern int usage_hf_sniff();
|
||||
int usage_hf_search();
|
||||
int usage_hf_sniff();
|
||||
#endif
|
||||
|
|
|
@ -39,23 +39,23 @@ typedef struct {
|
|||
char *desc;
|
||||
} manufactureName;
|
||||
|
||||
extern int CmdHF14A(const char *Cmd);
|
||||
extern int CmdHF14AList(const char *Cmd);
|
||||
extern int CmdHF14AReader(const char *Cmd);
|
||||
extern int CmdHF14AInfo(const char *Cmd);
|
||||
extern int CmdHF14ASim(const char *Cmd);
|
||||
extern int CmdHF14ASniff(const char *Cmd);
|
||||
extern int CmdHF14ACmdRaw(const char *Cmd);
|
||||
extern int CmdHF14ACUIDs(const char *Cmd);
|
||||
extern int CmdHF14AAntiFuzz(const char *Cmd);
|
||||
int CmdHF14A(const char *Cmd);
|
||||
int CmdHF14AList(const char *Cmd);
|
||||
int CmdHF14AReader(const char *Cmd);
|
||||
int CmdHF14AInfo(const char *Cmd);
|
||||
int CmdHF14ASim(const char *Cmd);
|
||||
int CmdHF14ASniff(const char *Cmd);
|
||||
int CmdHF14ACmdRaw(const char *Cmd);
|
||||
int CmdHF14ACUIDs(const char *Cmd);
|
||||
int CmdHF14AAntiFuzz(const char *Cmd);
|
||||
|
||||
extern char *getTagInfo(uint8_t uid);
|
||||
extern 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);
|
||||
extern int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
||||
char *getTagInfo(uint8_t uid);
|
||||
int Hf14443_4aGetCardData(iso14a_card_select_t *card);
|
||||
int ExchangeAPDU14a(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);
|
||||
extern int usage_hf_14a_sniff(void);
|
||||
extern int usage_hf_14a_raw(void);
|
||||
extern int usage_hf_14a_antifuzz(void);
|
||||
int usage_hf_14a_sim(void);
|
||||
int usage_hf_14a_sniff(void);
|
||||
int usage_hf_14a_raw(void);
|
||||
int usage_hf_14a_antifuzz(void);
|
||||
#endif
|
||||
|
|
|
@ -37,23 +37,23 @@ int usage_hf_14b_sim(void);
|
|||
int usage_hf_14b_read_srx(void);
|
||||
int usage_hf_14b_write_srx(void);
|
||||
|
||||
extern int CmdHF14B(const char *Cmd);
|
||||
extern int CmdHF14BList(const char *Cmd);
|
||||
extern int CmdHF14BInfo(const char *Cmd);
|
||||
extern int CmdHF14BSim(const char *Cmd);
|
||||
extern int CmdHF14BSniff(const char *Cmd);
|
||||
extern int CmdHF14BWrite(const char *cmd);
|
||||
extern int CmdHF14BReader(const char *Cmd);
|
||||
int CmdHF14B(const char *Cmd);
|
||||
int CmdHF14BList(const char *Cmd);
|
||||
int CmdHF14BInfo(const char *Cmd);
|
||||
int CmdHF14BSim(const char *Cmd);
|
||||
int CmdHF14BSniff(const char *Cmd);
|
||||
int CmdHF14BWrite(const char *cmd);
|
||||
int CmdHF14BReader(const char *Cmd);
|
||||
|
||||
extern int CmdHF14BDump(const char *Cmd);
|
||||
int CmdHF14BDump(const char *Cmd);
|
||||
|
||||
extern bool HF14BInfo(bool verbose);
|
||||
extern bool HF14BReader(bool verbose);
|
||||
extern int CmdHF14BCmdRaw(const char *Cmd);
|
||||
bool HF14BInfo(bool verbose);
|
||||
bool HF14BReader(bool verbose);
|
||||
int CmdHF14BCmdRaw(const char *Cmd);
|
||||
|
||||
// SRi ST Microelectronics read/write
|
||||
extern int CmdHF14BReadSri(const char *Cmd);
|
||||
extern int CmdHF14BWriteSri(const char *Cmd);
|
||||
int CmdHF14BReadSri(const char *Cmd);
|
||||
int CmdHF14BWriteSri(const char *Cmd);
|
||||
|
||||
bool waitCmd14b(bool verbose);
|
||||
#endif
|
||||
|
|
|
@ -28,38 +28,38 @@
|
|||
|
||||
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);
|
||||
extern int CmdHF15Samples(const char *Cmd);
|
||||
extern int CmdHF15Info(const char *Cmd);
|
||||
extern int CmdHF15Record(const char *Cmd);
|
||||
extern int CmdHF15Reader(const char *Cmd);
|
||||
extern int CmdHF15Sim(const char *Cmd);
|
||||
extern int CmdHF15Afi(const char *Cmd);
|
||||
extern int CmdHF15Dump(const char *Cmd);
|
||||
extern int CmdHF15Raw(const char *cmd);
|
||||
extern int CmdHF15Readmulti(const char *Cmd);
|
||||
extern int CmdHF15Read(const char *Cmd);
|
||||
extern int CmdHF15Write(const char *Cmd);
|
||||
int CmdHF15Demod(const char *Cmd);
|
||||
int CmdHF15Samples(const char *Cmd);
|
||||
int CmdHF15Info(const char *Cmd);
|
||||
int CmdHF15Record(const char *Cmd);
|
||||
int CmdHF15Reader(const char *Cmd);
|
||||
int CmdHF15Sim(const char *Cmd);
|
||||
int CmdHF15Afi(const char *Cmd);
|
||||
int CmdHF15Dump(const char *Cmd);
|
||||
int CmdHF15Raw(const char *cmd);
|
||||
int CmdHF15Readmulti(const char *Cmd);
|
||||
int CmdHF15Read(const char *Cmd);
|
||||
int CmdHF15Write(const char *Cmd);
|
||||
|
||||
extern int CmdHF15Help(const char *Cmd);
|
||||
int CmdHF15Help(const char *Cmd);
|
||||
|
||||
// usages
|
||||
extern int usage_15_demod(void);
|
||||
extern int usage_15_samples(void);
|
||||
extern int usage_15_info(void);
|
||||
extern int usage_15_record(void);
|
||||
extern int usage_15_reader(void);
|
||||
extern int usage_15_sim(void);
|
||||
extern int usage_15_findafi(void);
|
||||
extern int usage_15_dump(void);
|
||||
extern int usage_15_restore(void);
|
||||
extern int usage_15_raw(void);
|
||||
int usage_15_demod(void);
|
||||
int usage_15_samples(void);
|
||||
int usage_15_info(void);
|
||||
int usage_15_record(void);
|
||||
int usage_15_reader(void);
|
||||
int usage_15_sim(void);
|
||||
int usage_15_findafi(void);
|
||||
int usage_15_dump(void);
|
||||
int usage_15_restore(void);
|
||||
int usage_15_raw(void);
|
||||
|
||||
extern int usage_15_read(void);
|
||||
extern int usage_15_write(void);
|
||||
extern int usage_15_readmulti(void);
|
||||
int usage_15_read(void);
|
||||
int usage_15_write(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
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
#include "util_posix.h"
|
||||
|
||||
|
||||
extern int CmdHFEPA(const char *Cmd);
|
||||
extern int CmdHFEPACollectPACENonces(const char *Cmd);
|
||||
extern int CmdHFEPAPACEReplay(const char *Cmd);
|
||||
int CmdHFEPA(const char *Cmd);
|
||||
int CmdHFEPACollectPACENonces(const char *Cmd);
|
||||
int CmdHFEPAPACEReplay(const char *Cmd);
|
||||
|
||||
#endif // CMDHFEPA_H__
|
||||
|
|
|
@ -26,21 +26,21 @@
|
|||
#include "cmdhf.h" // list cmd
|
||||
#include "mifare.h" // felica_card_select_t struct
|
||||
|
||||
extern int CmdHFFelica(const char *Cmd);
|
||||
extern int CmdHFFelicaList(const char *Cmd);
|
||||
extern int CmdHFFelicaReader(const char *Cmd);
|
||||
extern int CmdHFFelicaSim(const char *Cmd);
|
||||
extern int CmdHFFelicaSniff(const char *Cmd);
|
||||
extern int CmdHFFelicaCmdRaw(const char *Cmd);
|
||||
int CmdHFFelica(const char *Cmd);
|
||||
int CmdHFFelicaList(const char *Cmd);
|
||||
int CmdHFFelicaReader(const char *Cmd);
|
||||
int CmdHFFelicaSim(const char *Cmd);
|
||||
int CmdHFFelicaSniff(const char *Cmd);
|
||||
int CmdHFFelicaCmdRaw(const char *Cmd);
|
||||
|
||||
extern int usage_hf_felica_sim(void);
|
||||
extern int usage_hf_felica_sniff(void);
|
||||
extern int usage_hf_fFelica_raw(void);
|
||||
int usage_hf_felica_sim(void);
|
||||
int usage_hf_felica_sniff(void);
|
||||
int usage_hf_fFelica_raw(void);
|
||||
|
||||
void waitCmdFelica(uint8_t iSelect);
|
||||
|
||||
//temp
|
||||
extern int CmdHFFelicaSimLite(const char *Cmd);
|
||||
extern int CmdHFFelicaDumpLite(const char *Cmd);
|
||||
int CmdHFFelicaSimLite(const char *Cmd);
|
||||
int CmdHFFelicaDumpLite(const char *Cmd);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#ifndef CMDHFFIDO_H__
|
||||
#define CMDHFFIDO_H__
|
||||
|
||||
extern int CmdHFFido(const char *Cmd);
|
||||
int CmdHFFido(const char *Cmd);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -52,29 +52,29 @@ typedef struct iclass_prekey {
|
|||
|
||||
int CmdHFiClass(const char *Cmd);
|
||||
|
||||
extern int CmdHFiClassCalcNewKey(const char *Cmd);
|
||||
extern int CmdHFiClassCloneTag(const char *Cmd);
|
||||
extern int CmdHFiClassDecrypt(const char *Cmd);
|
||||
extern int CmdHFiClassEncryptBlk(const char *Cmd);
|
||||
extern int CmdHFiClassELoad(const char *Cmd);
|
||||
extern int CmdHFiClassList(const char *Cmd);
|
||||
extern int HFiClassReader(const char *Cmd, bool loop, bool verbose);
|
||||
extern int CmdHFiClassReader(const char *Cmd);
|
||||
extern int CmdHFiClassReader_Dump(const char *Cmd);
|
||||
extern int CmdHFiClassReader_Replay(const char *Cmd);
|
||||
extern int CmdHFiClassReadKeyFile(const char *filename);
|
||||
extern int CmdHFiClassReadTagFile(const char *Cmd);
|
||||
extern int CmdHFiClass_ReadBlock(const char *Cmd);
|
||||
extern int CmdHFiClass_TestMac(const char *Cmd);
|
||||
extern int CmdHFiClassManageKeys(const char *Cmd);
|
||||
extern int CmdHFiClass_loclass(const char *Cmd);
|
||||
extern int CmdHFiClassSniff(const char *Cmd);
|
||||
extern int CmdHFiClassSim(const char *Cmd);
|
||||
extern int CmdHFiClassWriteKeyFile(const char *Cmd);
|
||||
extern int CmdHFiClass_WriteBlock(const char *Cmd);
|
||||
extern int CmdHFiClassCheckKeys(const char *Cmd);
|
||||
extern int CmdHFiClassLookUp(const char *Cmd);
|
||||
extern int CmdHFiClassPermuteKey(const char *Cmd);
|
||||
int CmdHFiClassCalcNewKey(const char *Cmd);
|
||||
int CmdHFiClassCloneTag(const char *Cmd);
|
||||
int CmdHFiClassDecrypt(const char *Cmd);
|
||||
int CmdHFiClassEncryptBlk(const char *Cmd);
|
||||
int CmdHFiClassELoad(const char *Cmd);
|
||||
int CmdHFiClassList(const char *Cmd);
|
||||
int HFiClassReader(const char *Cmd, bool loop, bool verbose);
|
||||
int CmdHFiClassReader(const char *Cmd);
|
||||
int CmdHFiClassReader_Dump(const char *Cmd);
|
||||
int CmdHFiClassReader_Replay(const char *Cmd);
|
||||
int CmdHFiClassReadKeyFile(const char *filename);
|
||||
int CmdHFiClassReadTagFile(const char *Cmd);
|
||||
int CmdHFiClass_ReadBlock(const char *Cmd);
|
||||
int CmdHFiClass_TestMac(const char *Cmd);
|
||||
int CmdHFiClassManageKeys(const char *Cmd);
|
||||
int CmdHFiClass_loclass(const char *Cmd);
|
||||
int CmdHFiClassSniff(const char *Cmd);
|
||||
int CmdHFiClassSim(const char *Cmd);
|
||||
int CmdHFiClassWriteKeyFile(const char *Cmd);
|
||||
int CmdHFiClass_WriteBlock(const char *Cmd);
|
||||
int CmdHFiClassCheckKeys(const char *Cmd);
|
||||
int CmdHFiClassLookUp(const char *Cmd);
|
||||
int CmdHFiClassPermuteKey(const char *Cmd);
|
||||
|
||||
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);
|
||||
|
|
|
@ -26,19 +26,19 @@
|
|||
|
||||
int CmdHFLegic(const char *Cmd);
|
||||
|
||||
extern int CmdLegicInfo(const char *Cmd);
|
||||
extern int CmdLegicRdmem(const char *Cmd);
|
||||
extern int CmdLegicLoad(const char *Cmd);
|
||||
extern int CmdLegicRfSim(const char *Cmd);
|
||||
extern int CmdLegicRfWrite(const char *Cmd);
|
||||
extern int CmdLegicCalcCrc(const char *Cmd);
|
||||
extern int CmdLegicDump(const char *Cmd);
|
||||
extern int CmdLegicRestore(const char *Cmd);
|
||||
extern int CmdLegicReader(const char *Cmd);
|
||||
extern int CmdLegicELoad(const char *Cmd);
|
||||
extern int CmdLegicESave(const char *Cmd);
|
||||
extern int CmdLegicList(const char *Cmd);
|
||||
extern int CmdLegicWipe(const char *Cmd);
|
||||
int CmdLegicInfo(const char *Cmd);
|
||||
int CmdLegicRdmem(const char *Cmd);
|
||||
int CmdLegicLoad(const char *Cmd);
|
||||
int CmdLegicRfSim(const char *Cmd);
|
||||
int CmdLegicRfWrite(const char *Cmd);
|
||||
int CmdLegicCalcCrc(const char *Cmd);
|
||||
int CmdLegicDump(const char *Cmd);
|
||||
int CmdLegicRestore(const char *Cmd);
|
||||
int CmdLegicReader(const char *Cmd);
|
||||
int CmdLegicELoad(const char *Cmd);
|
||||
int CmdLegicESave(const char *Cmd);
|
||||
int CmdLegicList(const char *Cmd);
|
||||
int CmdLegicWipe(const char *Cmd);
|
||||
|
||||
int HFLegicReader(const char *Cmd, bool verbose);
|
||||
int legic_print_type(uint32_t tagtype, uint8_t spaces);
|
||||
|
|
|
@ -51,31 +51,32 @@ typedef struct {
|
|||
uint32_t ks2; // ar ^ ar_enc
|
||||
uint32_t ks3; // at ^ at_enc
|
||||
} TAuthData;
|
||||
extern void ClearAuthData();
|
||||
|
||||
extern uint8_t iso14443A_CRC_check(bool isResponse, uint8_t *d, uint8_t n);
|
||||
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);
|
||||
extern uint8_t iso15693_CRC_check(uint8_t *d, uint8_t n);
|
||||
extern uint8_t iclass_CRC_check(bool isResponse, uint8_t *d, uint8_t n);
|
||||
void ClearAuthData();
|
||||
|
||||
uint8_t iso14443A_CRC_check(bool isResponse, uint8_t *d, uint8_t n);
|
||||
uint8_t iso14443B_CRC_check(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);
|
||||
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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 annotateIclass(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateIso15693(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateTopaz(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateLegic(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateFelica(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateIso7816(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateIso14443b(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateIso14443a(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
void annotateMfDesfire(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize);
|
||||
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);
|
||||
extern bool NTParityChk(TAuthData *ad, uint32_t ntx);
|
||||
extern 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);
|
||||
extern uint64_t GetCrypto1ProbableKey(TAuthData *ad);
|
||||
bool DecodeMifareData(uint8_t *cmd, uint8_t cmdsize, uint8_t *parity, bool isResponse, uint8_t *mfData, size_t *mfDataLen);
|
||||
bool NTParityChk(TAuthData *ad, uint32_t ntx);
|
||||
bool NestedCheckKey(uint64_t key, TAuthData *ad, uint8_t *cmd, uint8_t cmdsize, uint8_t *parity);
|
||||
bool CheckCrypto1Parity(uint8_t *cmd_enc, uint8_t cmdsize, uint8_t *cmd, uint8_t *parity_enc);
|
||||
uint64_t GetCrypto1ProbableKey(TAuthData *ad);
|
||||
|
||||
#endif // CMDHFLIST
|
||||
|
|
|
@ -33,41 +33,41 @@
|
|||
#include "cliparser/cliparser.h" // argtable
|
||||
#include "hardnested/hardnested_bf_core.h" // SetSIMDInstr
|
||||
|
||||
extern int CmdHFMF(const char *Cmd);
|
||||
int CmdHFMF(const char *Cmd);
|
||||
|
||||
extern int CmdHF14AMfList(const char *Cmd);
|
||||
extern int CmdHF14AMfDbg(const char *Cmd);
|
||||
extern int CmdHF14AMfRdBl(const char *Cmd);
|
||||
extern int CmdHF14AMfURdBl(const char *Cmd);
|
||||
extern int CmdHF14AMfRdSc(const char *Cmd);
|
||||
extern int CmdHF14SMfURdCard(const char *Cmd);
|
||||
extern int CmdHF14AMfDump(const char *Cmd);
|
||||
extern int CmdHF14AMfRestore(const char *Cmd);
|
||||
extern int CmdHF14AMfWrBl(const char *Cmd);
|
||||
extern int CmdHF14AMfUWrBl(const char *Cmd);
|
||||
extern int CmdHF14AMfChk(const char *Cmd);
|
||||
extern int CmdHF14AMfDarkside(const char *Cmd);
|
||||
extern int CmdHF14AMfNested(const char *Cmd);
|
||||
extern int CmdHF14AMfNestedHard(const char *Cmd);
|
||||
//extern int CmdHF14AMfSniff(const char* Cmd);
|
||||
extern int CmdHF14AMf1kSim(const char *Cmd);
|
||||
extern int CmdHF14AMfKeyBrute(const char *Cmd);
|
||||
extern int CmdHF14AMfEClear(const char *Cmd);
|
||||
extern int CmdHF14AMfEGet(const char *Cmd);
|
||||
extern int CmdHF14AMfESet(const char *Cmd);
|
||||
extern int CmdHF14AMfELoad(const char *Cmd);
|
||||
extern int CmdHF14AMfESave(const char *Cmd);
|
||||
extern int CmdHF14AMfECFill(const char *Cmd);
|
||||
extern int CmdHF14AMfEKeyPrn(const char *Cmd);
|
||||
extern int CmdHF14AMfCSetUID(const char *Cmd);
|
||||
extern int CmdHF14AMfCSetBlk(const char *Cmd);
|
||||
extern int CmdHF14AMfCGetBlk(const char *Cmd);
|
||||
extern int CmdHF14AMfCGetSc(const char *Cmd);
|
||||
extern int CmdHF14AMfCLoad(const char *Cmd);
|
||||
extern int CmdHF14AMfCSave(const char *Cmd);
|
||||
extern int CmdHf14MfDecryptBytes(const char *Cmd);
|
||||
extern int CmdHf14AMfSetMod(const char *Cmd);
|
||||
extern int CmdHf14AMfNack(const char *Cmd);
|
||||
int CmdHF14AMfList(const char *Cmd);
|
||||
int CmdHF14AMfDbg(const char *Cmd);
|
||||
int CmdHF14AMfRdBl(const char *Cmd);
|
||||
int CmdHF14AMfURdBl(const char *Cmd);
|
||||
int CmdHF14AMfRdSc(const char *Cmd);
|
||||
int CmdHF14SMfURdCard(const char *Cmd);
|
||||
int CmdHF14AMfDump(const char *Cmd);
|
||||
int CmdHF14AMfRestore(const char *Cmd);
|
||||
int CmdHF14AMfWrBl(const char *Cmd);
|
||||
int CmdHF14AMfUWrBl(const char *Cmd);
|
||||
int CmdHF14AMfChk(const char *Cmd);
|
||||
int CmdHF14AMfDarkside(const char *Cmd);
|
||||
int CmdHF14AMfNested(const char *Cmd);
|
||||
int CmdHF14AMfNestedHard(const char *Cmd);
|
||||
//int CmdHF14AMfSniff(const char* Cmd);
|
||||
int CmdHF14AMf1kSim(const char *Cmd);
|
||||
int CmdHF14AMfKeyBrute(const char *Cmd);
|
||||
int CmdHF14AMfEClear(const char *Cmd);
|
||||
int CmdHF14AMfEGet(const char *Cmd);
|
||||
int CmdHF14AMfESet(const char *Cmd);
|
||||
int CmdHF14AMfELoad(const char *Cmd);
|
||||
int CmdHF14AMfESave(const char *Cmd);
|
||||
int CmdHF14AMfECFill(const char *Cmd);
|
||||
int CmdHF14AMfEKeyPrn(const char *Cmd);
|
||||
int CmdHF14AMfCSetUID(const char *Cmd);
|
||||
int CmdHF14AMfCSetBlk(const char *Cmd);
|
||||
int CmdHF14AMfCGetBlk(const char *Cmd);
|
||||
int CmdHF14AMfCGetSc(const char *Cmd);
|
||||
int CmdHF14AMfCLoad(const char *Cmd);
|
||||
int CmdHF14AMfCSave(const char *Cmd);
|
||||
int CmdHf14MfDecryptBytes(const char *Cmd);
|
||||
int CmdHf14AMfSetMod(const char *Cmd);
|
||||
int CmdHf14AMfNack(const char *Cmd);
|
||||
|
||||
void showSectorTable(void);
|
||||
void readerAttack(nonces_t data, bool setEmulatorMem, bool verbose);
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
int CmdHF14AMfDESAuth(const char *Cmd);
|
||||
int CmdHFMFDesfire(const char *Cmd);
|
||||
int CmdHelp(const char *Cmd);
|
||||
|
|
|
@ -41,8 +41,8 @@ typedef struct noncelist {
|
|||
noncelistentry_t *first;
|
||||
} 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);
|
||||
extern void hardnested_print_progress(uint32_t nonces, char *activity, float brute_force, uint64_t min_diff_print_time);
|
||||
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);
|
||||
void hardnested_print_progress(uint32_t nonces, char *activity, float brute_force, uint64_t min_diff_print_time);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
#include "mifare/mifaredefault.h"
|
||||
|
||||
extern int CmdHFMFP(const char *Cmd);
|
||||
int CmdHFMFP(const char *Cmd);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -25,40 +25,40 @@ typedef struct {
|
|||
uint8_t data[1024];
|
||||
} mfu_dump_t;
|
||||
|
||||
extern int CmdHF14AMfUWrBl(const char *Cmd);
|
||||
extern int CmdHF14AMfURdBl(const char *Cmd);
|
||||
int CmdHF14AMfUWrBl(const char *Cmd);
|
||||
int CmdHF14AMfURdBl(const char *Cmd);
|
||||
|
||||
//Crypto Cards
|
||||
extern int CmdHF14AMfucAuth(const char *Cmd);
|
||||
extern int CmdHF14AMfucSetPwd(const char *Cmd);
|
||||
extern int CmdHF14AMfucSetUid(const char *Cmd);
|
||||
extern int CmdHF14AMfuGenDiverseKeys(const char *Cmd);
|
||||
extern int CmdHF14AMfuPwdGen(const char *Cmd);
|
||||
int CmdHF14AMfucAuth(const char *Cmd);
|
||||
int CmdHF14AMfucSetPwd(const char *Cmd);
|
||||
int CmdHF14AMfucSetUid(const char *Cmd);
|
||||
int CmdHF14AMfuGenDiverseKeys(const char *Cmd);
|
||||
int CmdHF14AMfuPwdGen(const char *Cmd);
|
||||
|
||||
//general stuff
|
||||
extern int CmdHF14AMfUDump(const char *Cmd);
|
||||
extern int CmdHF14AMfURestore(const char *Cmd);
|
||||
extern int CmdHF14AMfUInfo(const char *Cmd);
|
||||
extern int CmdHF14AMfUeLoad(const char *Cmd);
|
||||
extern int CmdHF14AMfUSim(const char *Cmd);
|
||||
int CmdHF14AMfUDump(const char *Cmd);
|
||||
int CmdHF14AMfURestore(const char *Cmd);
|
||||
int CmdHF14AMfUInfo(const char *Cmd);
|
||||
int CmdHF14AMfUeLoad(const char *Cmd);
|
||||
int CmdHF14AMfUSim(const char *Cmd);
|
||||
|
||||
extern uint32_t GetHF14AMfU_Type(void);
|
||||
extern int ul_print_type(uint32_t tagtype, uint8_t spacer);
|
||||
uint32_t GetHF14AMfU_Type(void);
|
||||
int ul_print_type(uint32_t tagtype, uint8_t spacer);
|
||||
|
||||
void printMFUdump(mfu_dump_t *card);
|
||||
void printMFUdumpEx(mfu_dump_t *card, uint16_t pages, uint8_t startpage);
|
||||
|
||||
extern int usage_hf_mfu_info(void);
|
||||
extern int usage_hf_mfu_dump(void);
|
||||
extern int usage_hf_mfu_rdbl(void);
|
||||
extern int usage_hf_mfu_wrbl(void);
|
||||
extern int usage_hf_mfu_eload(void);
|
||||
extern int usage_hf_mfu_sim(void);
|
||||
extern int usage_hf_mfu_ucauth(void);
|
||||
extern int usage_hf_mfu_ucsetpwd(void);
|
||||
extern int usage_hf_mfu_ucsetuid(void);
|
||||
extern int usage_hf_mfu_gendiverse(void);
|
||||
extern int usage_hf_mfu_pwdgen(void);
|
||||
int usage_hf_mfu_info(void);
|
||||
int usage_hf_mfu_dump(void);
|
||||
int usage_hf_mfu_rdbl(void);
|
||||
int usage_hf_mfu_wrbl(void);
|
||||
int usage_hf_mfu_eload(void);
|
||||
int usage_hf_mfu_sim(void);
|
||||
int usage_hf_mfu_ucauth(void);
|
||||
int usage_hf_mfu_ucsetpwd(void);
|
||||
int usage_hf_mfu_ucsetuid(void);
|
||||
int usage_hf_mfu_gendiverse(void);
|
||||
int usage_hf_mfu_pwdgen(void);
|
||||
|
||||
int CmdHFMFUltra(const char *Cmd);
|
||||
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
#include "protocols.h"
|
||||
#include "cmdhf.h"
|
||||
|
||||
extern int CmdHFTopaz(const char *Cmd);
|
||||
extern int CmdHFTopazReader(const char *Cmd);
|
||||
extern int CmdHFTopazSim(const char *Cmd);
|
||||
extern int CmdHFTopazCmdRaw(const char *Cmd);
|
||||
extern int CmdHFTopazList(const char *Cmd);
|
||||
int CmdHFTopaz(const char *Cmd);
|
||||
int CmdHFTopazReader(const char *Cmd);
|
||||
int CmdHFTopazSim(const char *Cmd);
|
||||
int CmdHFTopazCmdRaw(const char *Cmd);
|
||||
int CmdHFTopazList(const char *Cmd);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -55,28 +55,28 @@
|
|||
|
||||
int CmdLF(const char *Cmd);
|
||||
|
||||
extern int CmdLFSetConfig(const char *Cmd);
|
||||
int CmdLFSetConfig(const char *Cmd);
|
||||
|
||||
extern int CmdLFCommandRead(const char *Cmd);
|
||||
extern int CmdFlexdemod(const char *Cmd);
|
||||
extern int CmdLFRead(const char *Cmd);
|
||||
extern int CmdLFSim(const char *Cmd);
|
||||
extern int CmdLFaskSim(const char *Cmd);
|
||||
extern int CmdLFfskSim(const char *Cmd);
|
||||
extern int CmdLFpskSim(const char *Cmd);
|
||||
extern int CmdLFSimBidir(const char *Cmd);
|
||||
extern int CmdLFSniff(const char *Cmd);
|
||||
extern int CmdVchDemod(const char *Cmd);
|
||||
extern int CmdLFfind(const char *Cmd);
|
||||
int CmdLFCommandRead(const char *Cmd);
|
||||
int CmdFlexdemod(const char *Cmd);
|
||||
int CmdLFRead(const char *Cmd);
|
||||
int CmdLFSim(const char *Cmd);
|
||||
int CmdLFaskSim(const char *Cmd);
|
||||
int CmdLFfskSim(const char *Cmd);
|
||||
int CmdLFpskSim(const char *Cmd);
|
||||
int CmdLFSimBidir(const char *Cmd);
|
||||
int CmdLFSniff(const char *Cmd);
|
||||
int CmdVchDemod(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
|
||||
extern int usage_lf_cmdread(void);
|
||||
extern int usage_lf_read(void);
|
||||
extern int usage_lf_sniff(void);
|
||||
extern int usage_lf_config(void);
|
||||
extern int usage_lf_simfsk(void);
|
||||
extern int usage_lf_simask(void);
|
||||
extern int usage_lf_simpsk(void);
|
||||
int usage_lf_cmdread(void);
|
||||
int usage_lf_read(void);
|
||||
int usage_lf_sniff(void);
|
||||
int usage_lf_config(void);
|
||||
int usage_lf_simfsk(void);
|
||||
int usage_lf_simask(void);
|
||||
int usage_lf_simpsk(void);
|
||||
#endif
|
||||
|
|
|
@ -24,17 +24,17 @@
|
|||
#include "util_posix.h"
|
||||
|
||||
|
||||
extern int CmdLFAWID(const char *Cmd);
|
||||
extern int CmdAWIDDemod(const char *Cmd);
|
||||
extern int CmdAWIDRead(const char *Cmd);
|
||||
extern int CmdAWIDSim(const char *Cmd);
|
||||
extern int CmdAWIDClone(const char *Cmd);
|
||||
extern int CmdAWIDBrute(const char *Cmd);
|
||||
extern int getAWIDBits(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint8_t *bits);
|
||||
int CmdLFAWID(const char *Cmd);
|
||||
int CmdAWIDDemod(const char *Cmd);
|
||||
int CmdAWIDRead(const char *Cmd);
|
||||
int CmdAWIDSim(const char *Cmd);
|
||||
int CmdAWIDClone(const char *Cmd);
|
||||
int CmdAWIDBrute(const char *Cmd);
|
||||
int getAWIDBits(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint8_t *bits);
|
||||
|
||||
extern int usage_lf_awid_read(void);
|
||||
extern int usage_lf_awid_sim(void);
|
||||
extern int usage_lf_awid_clone(void);
|
||||
extern int usage_lf_awid_brute(void);
|
||||
int usage_lf_awid_read(void);
|
||||
int usage_lf_awid_sim(void);
|
||||
int usage_lf_awid_clone(void);
|
||||
int usage_lf_awid_brute(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
#define COTAG_BITS 264
|
||||
#endif
|
||||
|
||||
extern int CmdLFCOTAG(const char *Cmd);
|
||||
extern int CmdCOTAGRead(const char *Cmd);
|
||||
extern int CmdCOTAGDemod(const char *Cmd);
|
||||
int CmdLFCOTAG(const char *Cmd);
|
||||
int CmdCOTAGRead(const char *Cmd);
|
||||
int CmdCOTAGDemod(const char *Cmd);
|
||||
|
||||
extern int usage_lf_cotag_read(void);
|
||||
int usage_lf_cotag_read(void);
|
||||
#endif
|
||||
|
|
|
@ -25,44 +25,44 @@
|
|||
#include "cmdlf.h"
|
||||
#include "lfdemod.h"
|
||||
|
||||
extern int CmdLFEM4X(const char *Cmd);
|
||||
int CmdLFEM4X(const char *Cmd);
|
||||
|
||||
|
||||
extern int CmdEM410xDemod(const char *Cmd);
|
||||
extern int CmdEM410xRead(const char *Cmd);
|
||||
extern int CmdEM410xSim(const char *Cmd);
|
||||
extern int CmdEM410xBrute(const char *Cmd);
|
||||
extern int CmdEM410xWatch(const char *Cmd);
|
||||
extern int CmdEM410xWatchnSpoof(const char *Cmd);
|
||||
extern int CmdEM410xWrite(const char *Cmd);
|
||||
extern int CmdEM4x05Dump(const char *Cmd);
|
||||
extern int CmdEM4x05Info(const char *Cmd);
|
||||
extern int CmdEM4x05Read(const char *Cmd);
|
||||
extern int CmdEM4x05Write(const char *Cmd);
|
||||
extern int CmdEM4x50Read(const char *Cmd);
|
||||
extern int CmdEM4x50Write(const char *Cmd);
|
||||
extern int CmdEM4x50Dump(const char *Cmd);
|
||||
int CmdEM410xDemod(const char *Cmd);
|
||||
int CmdEM410xRead(const char *Cmd);
|
||||
int CmdEM410xSim(const char *Cmd);
|
||||
int CmdEM410xBrute(const char *Cmd);
|
||||
int CmdEM410xWatch(const char *Cmd);
|
||||
int CmdEM410xWatchnSpoof(const char *Cmd);
|
||||
int CmdEM410xWrite(const char *Cmd);
|
||||
int CmdEM4x05Dump(const char *Cmd);
|
||||
int CmdEM4x05Info(const char *Cmd);
|
||||
int CmdEM4x05Read(const char *Cmd);
|
||||
int CmdEM4x05Write(const char *Cmd);
|
||||
int CmdEM4x50Read(const char *Cmd);
|
||||
int CmdEM4x50Write(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);
|
||||
|
||||
extern void printEM410x(uint32_t hi, uint64_t id);
|
||||
extern int AskEm410xDecode(bool verbose, uint32_t *hi, uint64_t *lo);
|
||||
extern int AskEm410xDemod(const char *Cmd, uint32_t *hi, uint64_t *lo, bool verbose);
|
||||
void printEM410x(uint32_t hi, uint64_t id);
|
||||
int AskEm410xDecode(bool verbose, uint32_t *hi, uint64_t *lo);
|
||||
int AskEm410xDemod(const char *Cmd, uint32_t *hi, uint64_t *lo, bool verbose);
|
||||
|
||||
extern int usage_lf_em410x_sim(void);
|
||||
extern int usage_lf_em410x_ws(void);
|
||||
extern int usage_lf_em410x_clone(void);
|
||||
extern int usage_lf_em410x_sim(void);
|
||||
extern int usage_lf_em410x_brute(void);
|
||||
int usage_lf_em410x_sim(void);
|
||||
int usage_lf_em410x_ws(void);
|
||||
int usage_lf_em410x_clone(void);
|
||||
int usage_lf_em410x_sim(void);
|
||||
int usage_lf_em410x_brute(void);
|
||||
|
||||
extern int usage_lf_em4x50_dump(void);
|
||||
extern int usage_lf_em4x50_read(void);
|
||||
extern int usage_lf_em4x50_write(void);
|
||||
int usage_lf_em4x50_dump(void);
|
||||
int usage_lf_em4x50_read(void);
|
||||
int usage_lf_em4x50_write(void);
|
||||
|
||||
extern int usage_lf_em4x05_dump(void);
|
||||
extern int usage_lf_em4x05_read(void);
|
||||
extern int usage_lf_em4x05_write(void);
|
||||
extern int usage_lf_em4x05_info(void);
|
||||
int usage_lf_em4x05_dump(void);
|
||||
int usage_lf_em4x05_read(void);
|
||||
int usage_lf_em4x05_write(void);
|
||||
int usage_lf_em4x05_info(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -19,17 +19,17 @@
|
|||
#include "protocols.h" // for T55xx config register definitions
|
||||
#include "lfdemod.h" // parityTest
|
||||
|
||||
extern int CmdLFFdx(const char *Cmd);
|
||||
extern int CmdFdxClone(const char *Cmd);
|
||||
extern int CmdFdxSim(const char *Cmd);
|
||||
extern int CmdFdxRead(const char *Cmd);
|
||||
extern int CmdFdxDemod(const char *Cmd);
|
||||
int CmdLFFdx(const char *Cmd);
|
||||
int CmdFdxClone(const char *Cmd);
|
||||
int CmdFdxSim(const char *Cmd);
|
||||
int CmdFdxRead(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);
|
||||
|
||||
extern int usage_lf_fdx_clone(void);
|
||||
extern int usage_lf_fdx_sim(void);
|
||||
extern int usage_lf_fdx_read(void);
|
||||
extern int usage_lf_fdx_demod(void);
|
||||
int usage_lf_fdx_clone(void);
|
||||
int usage_lf_fdx_sim(void);
|
||||
int usage_lf_fdx_read(void);
|
||||
int usage_lf_fdx_demod(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,12 +22,12 @@
|
|||
#include "lfdemod.h" // parityTest
|
||||
#include "crc.h"
|
||||
|
||||
extern int CmdLFGuard(const char *Cmd);
|
||||
extern int CmdGuardDemod(const char *Cmd);
|
||||
extern int CmdGuardRead(const char *Cmd);
|
||||
extern int CmdGuardClone(const char *Cmd);
|
||||
extern int CmdGuardSim(const char *Cmd);
|
||||
int CmdLFGuard(const char *Cmd);
|
||||
int CmdGuardDemod(const char *Cmd);
|
||||
int CmdGuardRead(const char *Cmd);
|
||||
int CmdGuardClone(const char *Cmd);
|
||||
int CmdGuardSim(const char *Cmd);
|
||||
|
||||
extern int usage_lf_guard_clone(void);
|
||||
extern int usage_lf_quard_sim(void);
|
||||
int usage_lf_guard_clone(void);
|
||||
int usage_lf_quard_sim(void);
|
||||
#endif
|
||||
|
|
|
@ -24,20 +24,20 @@
|
|||
#include "util_posix.h"
|
||||
#include "lfdemod.h"
|
||||
|
||||
extern int CmdLFHID(const char *Cmd);
|
||||
extern int CmdHIDDemod(const char *Cmd);
|
||||
extern int CmdHIDRead(const char *Cmd);
|
||||
extern int CmdHIDSim(const char *Cmd);
|
||||
extern int CmdHIDClone(const char *Cmd);
|
||||
extern int CmdHIDWiegand(const char *Cmd);
|
||||
extern int CmdHIDBrute(const char *Cmd);
|
||||
int CmdLFHID(const char *Cmd);
|
||||
int CmdHIDDemod(const char *Cmd);
|
||||
int CmdHIDRead(const char *Cmd);
|
||||
int CmdHIDSim(const char *Cmd);
|
||||
int CmdHIDClone(const char *Cmd);
|
||||
int CmdHIDWiegand(const char *Cmd);
|
||||
int CmdHIDBrute(const char *Cmd);
|
||||
|
||||
extern int usage_lf_hid_read(void);
|
||||
extern int usage_lf_hid_wiegand(void);
|
||||
extern int usage_lf_hid_sim(void);
|
||||
extern int usage_lf_hid_clone(void);
|
||||
extern int usage_lf_hid_brute(void);
|
||||
int usage_lf_hid_read(void);
|
||||
int usage_lf_hid_wiegand(void);
|
||||
int usage_lf_hid_sim(void);
|
||||
int usage_lf_hid_clone(void);
|
||||
int usage_lf_hid_brute(void);
|
||||
|
||||
//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
|
||||
|
|
|
@ -11,15 +11,15 @@
|
|||
#ifndef CMDLFHITAG_H__
|
||||
#define CMDLFHITAG_H__
|
||||
|
||||
extern int CmdLFHitag(const char *Cmd);
|
||||
int CmdLFHitag(const char *Cmd);
|
||||
|
||||
extern int CmdLFHitagList(const char *Cmd);
|
||||
extern int CmdLFHitagSniff(const char *Cmd);
|
||||
extern int CmdLFHitagSim(const char *Cmd);
|
||||
extern int CmdLFHitagInfo(const char *Cmd);
|
||||
extern int CmdLFHitagReader(const char *Cmd);
|
||||
extern int CmdLFHitagCheckChallenges(const char *Cmd);
|
||||
extern int CmdLFHitagWriter(const char *Cmd);
|
||||
extern int CmdLFHitagDump(const char *cmd);
|
||||
int CmdLFHitagList(const char *Cmd);
|
||||
int CmdLFHitagSniff(const char *Cmd);
|
||||
int CmdLFHitagSim(const char *Cmd);
|
||||
int CmdLFHitagInfo(const char *Cmd);
|
||||
int CmdLFHitagReader(const char *Cmd);
|
||||
int CmdLFHitagCheckChallenges(const char *Cmd);
|
||||
int CmdLFHitagWriter(const char *Cmd);
|
||||
int CmdLFHitagDump(const char *cmd);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,19 +23,19 @@
|
|||
#include "cmddata.h"
|
||||
#include "cmdlf.h" // lf_read
|
||||
|
||||
extern int CmdLFINDALA(const char *Cmd);
|
||||
int CmdLFINDALA(const char *Cmd);
|
||||
|
||||
extern int CmdIndalaDemod(const char *Cmd);
|
||||
extern int CmdIndalaDemodAlt(const char *Cmd);
|
||||
extern int CmdIndalaRead(const char *Cmd);
|
||||
extern int CmdIndalaClone(const char *Cmd);
|
||||
extern int CmdIndalaSim(const char *Cmd);
|
||||
int CmdIndalaDemod(const char *Cmd);
|
||||
int CmdIndalaDemodAlt(const char *Cmd);
|
||||
int CmdIndalaRead(const char *Cmd);
|
||||
int CmdIndalaClone(const char *Cmd);
|
||||
int CmdIndalaSim(const char *Cmd);
|
||||
|
||||
extern int detectIndala26(uint8_t *bitStream, size_t *size, uint8_t *invert);
|
||||
extern int detectIndala64(uint8_t *bitStream, size_t *size, uint8_t *invert);
|
||||
extern int detectIndala224(uint8_t *bitStream, size_t *size, uint8_t *invert);
|
||||
int detectIndala26(uint8_t *bitStream, size_t *size, uint8_t *invert);
|
||||
int detectIndala64(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);
|
||||
extern int usage_lf_indala_clone(void);
|
||||
extern int usage_lf_indala_sim(void);
|
||||
int usage_lf_indala_demod(void);
|
||||
int usage_lf_indala_clone(void);
|
||||
int usage_lf_indala_sim(void);
|
||||
#endif
|
||||
|
|
|
@ -16,15 +16,15 @@
|
|||
#include "cmdmain.h"
|
||||
#include "cmddata.h"
|
||||
|
||||
extern int CmdLFIO(const char *Cmd);
|
||||
extern int CmdIOProxDemod(const char *Cmd);
|
||||
extern int CmdIOProxRead(const char *Cmd);
|
||||
extern int CmdIOProxSim(const char *Cmd);
|
||||
extern int CmdIOProxClone(const char *Cmd);
|
||||
int CmdLFIO(const char *Cmd);
|
||||
int CmdIOProxDemod(const char *Cmd);
|
||||
int CmdIOProxRead(const char *Cmd);
|
||||
int CmdIOProxSim(const char *Cmd);
|
||||
int CmdIOProxClone(const char *Cmd);
|
||||
|
||||
int getIOProxBits(uint8_t version, uint8_t fc, uint16_t cn, uint8_t *bits);
|
||||
|
||||
extern int usage_lf_io_read(void);
|
||||
extern int usage_lf_io_clone(void);
|
||||
extern int usage_lf_io_sim(void);
|
||||
int usage_lf_io_read(void);
|
||||
int usage_lf_io_clone(void);
|
||||
int usage_lf_io_sim(void);
|
||||
#endif
|
||||
|
|
|
@ -22,20 +22,20 @@
|
|||
#include "protocols.h" // for T55xx config register definitions
|
||||
#include "lfdemod.h" // parityTest
|
||||
|
||||
extern int CmdLFJablotron(const char *Cmd);
|
||||
int CmdLFJablotron(const char *Cmd);
|
||||
|
||||
extern int CmdJablotronDemod(const char *Cmd);
|
||||
extern int CmdJablotronRead(const char *Cmd);
|
||||
extern int CmdJablotronClone(const char *Cmd);
|
||||
extern int CmdJablotronSim(const char *Cmd);
|
||||
int CmdJablotronDemod(const char *Cmd);
|
||||
int CmdJablotronRead(const char *Cmd);
|
||||
int CmdJablotronClone(const char *Cmd);
|
||||
int CmdJablotronSim(const char *Cmd);
|
||||
|
||||
extern int detectJablotron(uint8_t *bits, size_t *size);
|
||||
extern int getJablotronBits(uint64_t fullcode, uint8_t *bits);
|
||||
int detectJablotron(uint8_t *bits, size_t *size);
|
||||
int getJablotronBits(uint64_t fullcode, uint8_t *bits);
|
||||
|
||||
//extern int usage_lf_jablotron_demod(void);
|
||||
//extern int usage_lf_jablotron_read(void);
|
||||
extern int usage_lf_jablotron_clone(void);
|
||||
extern int usage_lf_jablotron_sim(void);
|
||||
//int usage_lf_jablotron_demod(void);
|
||||
//int usage_lf_jablotron_read(void);
|
||||
int usage_lf_jablotron_clone(void);
|
||||
int usage_lf_jablotron_sim(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,15 +22,15 @@
|
|||
#include "protocols.h" // for T55xx config register definitions
|
||||
#include "lfdemod.h" // preamble test
|
||||
|
||||
extern int CmdLFKeri(const char *Cmd);
|
||||
extern int CmdKeriRead(const char *Cmd);
|
||||
extern int CmdKeriDemod(const char *Cmd);
|
||||
extern int CmdKeriClone(const char *Cmd);
|
||||
extern int CmdKeriSim(const char *Cmd);
|
||||
int CmdLFKeri(const char *Cmd);
|
||||
int CmdKeriRead(const char *Cmd);
|
||||
int CmdKeriDemod(const char *Cmd);
|
||||
int CmdKeriClone(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);
|
||||
extern int usage_lf_keri_sim(void);
|
||||
int usage_lf_keri_clone(void);
|
||||
int usage_lf_keri_sim(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,17 +22,17 @@
|
|||
#include "lfdemod.h" // parityTest
|
||||
#include "crc.h"
|
||||
|
||||
extern int CmdLFNedap(const char *Cmd);
|
||||
extern int CmdLFNedapDemod(const char *Cmd);
|
||||
extern int CmdLFNedapRead(const char *Cmd);
|
||||
//extern int CmdLFNedapClone(const char *Cmd);
|
||||
extern int CmdLFNedapSim(const char *Cmd);
|
||||
extern int CmdLFNedapChk(const char *Cmd);
|
||||
int CmdLFNedap(const char *Cmd);
|
||||
int CmdLFNedapDemod(const char *Cmd);
|
||||
int CmdLFNedapRead(const char *Cmd);
|
||||
//int CmdLFNedapClone(const char *Cmd);
|
||||
int CmdLFNedapSim(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);
|
||||
//extern int usage_lf_nedap_clone(void);
|
||||
extern int usage_lf_nedap_sim(void);
|
||||
int usage_lf_nedap_read(void);
|
||||
//int usage_lf_nedap_clone(void);
|
||||
int usage_lf_nedap_sim(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
#include "cmdlf.h"
|
||||
#include "lfdemod.h"
|
||||
|
||||
extern int CmdLFNEXWATCH(const char *Cmd);
|
||||
extern int CmdNexWatchDemod(const char *Cmd);
|
||||
extern int CmdNexWatchRead(const char *Cmd);
|
||||
int CmdLFNEXWATCH(const char *Cmd);
|
||||
int CmdNexWatchDemod(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
|
||||
|
|
|
@ -22,17 +22,17 @@
|
|||
#include "protocols.h" // for T55xx config register definitions
|
||||
#include "lfdemod.h" // parityTest
|
||||
|
||||
extern int CmdLFNoralsy(const char *Cmd);
|
||||
extern int CmdNoralsyDemod(const char *Cmd);
|
||||
extern int CmdNoralsyRead(const char *Cmd);
|
||||
extern int CmdNoralsyClone(const char *Cmd);
|
||||
extern int CmdNoralsySim(const char *Cmd);
|
||||
int CmdLFNoralsy(const char *Cmd);
|
||||
int CmdNoralsyDemod(const char *Cmd);
|
||||
int CmdNoralsyRead(const char *Cmd);
|
||||
int CmdNoralsyClone(const char *Cmd);
|
||||
int CmdNoralsySim(const char *Cmd);
|
||||
|
||||
int getnoralsyBits(uint32_t id, uint16_t year, uint8_t *bits);
|
||||
|
||||
extern int usage_lf_noralsy_clone(void);
|
||||
extern int usage_lf_noralsy_sim(void);
|
||||
//extern int usage_lf_noralsy_read(void);
|
||||
//extern int usage_lf_noralsy_demod(void);
|
||||
int usage_lf_noralsy_clone(void);
|
||||
int usage_lf_noralsy_sim(void);
|
||||
//int usage_lf_noralsy_read(void);
|
||||
//int usage_lf_noralsy_demod(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -21,10 +21,10 @@
|
|||
#include "cmdlf.h"
|
||||
#include "lfdemod.h" // preamble test
|
||||
|
||||
extern int CmdLFPac(const char *Cmd);
|
||||
extern int CmdPacRead(const char *Cmd);
|
||||
extern int CmdPacDemod(const char *Cmd);
|
||||
int CmdLFPac(const char *Cmd);
|
||||
int CmdPacRead(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
|
||||
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
#ifndef CMDLFPARADOX_H__
|
||||
#define CMDLFPARADOX_H__
|
||||
extern int CmdLFParadox(const char *Cmd);
|
||||
extern int CmdParadoxDemod(const char *Cmd);
|
||||
extern int CmdParadoxRead(const char *Cmd);
|
||||
int CmdLFParadox(const char *Cmd);
|
||||
int CmdParadoxDemod(const char *Cmd);
|
||||
int CmdParadoxRead(const char *Cmd);
|
||||
|
||||
//extern int CmdParadoxClone(const char *Cmd);
|
||||
extern int CmdParadoxSim(const char *Cmd);
|
||||
//int CmdParadoxClone(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
|
||||
|
|
|
@ -21,16 +21,16 @@
|
|||
#include "protocols.h" // for T55xx config register definitions
|
||||
#include "lfdemod.h" // parityTest
|
||||
|
||||
extern int CmdLFPresco(const char *Cmd);
|
||||
extern int CmdPrescoRead(const char *Cmd);
|
||||
extern int CmdPrescoDemod(const char *Cmd);
|
||||
extern int CmdPrescoClone(const char *Cmd);
|
||||
extern int CmdPrescoSim(const char *Cmd);
|
||||
int CmdLFPresco(const char *Cmd);
|
||||
int CmdPrescoRead(const char *Cmd);
|
||||
int CmdPrescoDemod(const char *Cmd);
|
||||
int CmdPrescoClone(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);
|
||||
|
||||
extern int usage_lf_presco_clone(void);
|
||||
extern int usage_lf_presco_sim(void);
|
||||
int usage_lf_presco_clone(void);
|
||||
int usage_lf_presco_sim(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,15 +22,15 @@
|
|||
#include "lfdemod.h" // parityTest
|
||||
#include "crc.h"
|
||||
|
||||
extern int CmdLFPyramid(const char *Cmd);
|
||||
extern int CmdPyramidDemod(const char *Cmd);
|
||||
extern int CmdPyramidRead(const char *Cmd);
|
||||
extern int CmdPyramidClone(const char *Cmd);
|
||||
extern int CmdPyramidSim(const char *Cmd);
|
||||
int CmdLFPyramid(const char *Cmd);
|
||||
int CmdPyramidDemod(const char *Cmd);
|
||||
int CmdPyramidRead(const char *Cmd);
|
||||
int CmdPyramidClone(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);
|
||||
extern int usage_lf_pyramid_sim(void);
|
||||
int usage_lf_pyramid_clone(void);
|
||||
int usage_lf_pyramid_sim(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -24,11 +24,11 @@
|
|||
#include "lfdemod.h" // preamble test
|
||||
#include "parity.h" // for wiegand parity test
|
||||
|
||||
extern int CmdLFSecurakey(const char *Cmd);
|
||||
//extern int CmdSecurakeyClone(const char *Cmd);
|
||||
//extern int CmdSecurakeySim(const char *Cmd);
|
||||
extern int CmdSecurakeyRead(const char *Cmd);
|
||||
extern int CmdSecurakeyDemod(const char *Cmd);
|
||||
int CmdLFSecurakey(const char *Cmd);
|
||||
//int CmdSecurakeyClone(const char *Cmd);
|
||||
//int CmdSecurakeySim(const char *Cmd);
|
||||
int CmdSecurakeyRead(const char *Cmd);
|
||||
int CmdSecurakeyDemod(const char *Cmd);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -137,17 +137,17 @@ typedef struct {
|
|||
t55xx_conf_block_t Get_t55xx_Config(void);
|
||||
void Set_t55xx_Config(t55xx_conf_block_t conf);
|
||||
|
||||
extern int CmdLFT55XX(const char *Cmd);
|
||||
extern int CmdT55xxChk(const char *Cmd);
|
||||
extern int CmdT55xxBruteForce(const char *Cmd);
|
||||
extern int CmdT55xxSetConfig(const char *Cmd);
|
||||
extern int CmdT55xxReadBlock(const char *Cmd);
|
||||
extern int CmdT55xxWriteBlock(const char *Cmd);
|
||||
extern int CmdT55xxReadTrace(const char *Cmd);
|
||||
extern int CmdT55xxInfo(const char *Cmd);
|
||||
extern int CmdT55xxDetect(const char *Cmd);
|
||||
extern int CmdResetRead(const char *Cmd);
|
||||
extern int CmdT55xxWipe(const char *Cmd);
|
||||
int CmdLFT55XX(const char *Cmd);
|
||||
int CmdT55xxChk(const char *Cmd);
|
||||
int CmdT55xxBruteForce(const char *Cmd);
|
||||
int CmdT55xxSetConfig(const char *Cmd);
|
||||
int CmdT55xxReadBlock(const char *Cmd);
|
||||
int CmdT55xxWriteBlock(const char *Cmd);
|
||||
int CmdT55xxReadTrace(const char *Cmd);
|
||||
int CmdT55xxInfo(const char *Cmd);
|
||||
int CmdT55xxDetect(const char *Cmd);
|
||||
int CmdResetRead(const char *Cmd);
|
||||
int CmdT55xxWipe(const char *Cmd);
|
||||
|
||||
char *GetPskCfStr(uint32_t id, bool q5);
|
||||
char *GetBitRateStr(uint32_t id, bool xmode);
|
||||
|
@ -160,16 +160,16 @@ void printT5xxHeader(uint8_t page);
|
|||
void printT55xxBlock(const char *demodStr);
|
||||
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 DecodeT55xxBlock(void);
|
||||
extern bool tryDetectModulation(void);
|
||||
bool tryDetectModulation(void);
|
||||
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);
|
||||
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);
|
||||
|
||||
void printT55x7Trace(t55x7_tracedata_t data, uint8_t repeat);
|
||||
|
|
|
@ -21,16 +21,16 @@
|
|||
#include "cmdlf.h"
|
||||
#include "lfdemod.h"
|
||||
|
||||
extern int CmdLFViking(const char *Cmd);
|
||||
int CmdLFViking(const char *Cmd);
|
||||
|
||||
extern int CmdVikingDemod(const char *Cmd);
|
||||
extern int CmdVikingRead(const char *Cmd);
|
||||
extern int CmdVikingClone(const char *Cmd);
|
||||
extern int CmdVikingSim(const char *Cmd);
|
||||
int CmdVikingDemod(const char *Cmd);
|
||||
int CmdVikingRead(const char *Cmd);
|
||||
int CmdVikingClone(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);
|
||||
extern int usage_lf_viking_sim(void);
|
||||
int usage_lf_viking_clone(void);
|
||||
int usage_lf_viking_sim(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -21,19 +21,19 @@
|
|||
#include "cmdlf.h"
|
||||
#include "protocols.h" // for T55xx config register definitions
|
||||
#include "lfdemod.h" // parityTest
|
||||
extern int CmdLFVisa2k(const char *Cmd);
|
||||
int CmdLFVisa2k(const char *Cmd);
|
||||
|
||||
extern int CmdVisa2kDemod(const char *Cmd);
|
||||
extern int CmdVisa2kRead(const char *Cmd);
|
||||
extern int CmdVisa2kClone(const char *Cmd);
|
||||
extern int CmdVisa2kSim(const char *Cmd);
|
||||
int CmdVisa2kDemod(const char *Cmd);
|
||||
int CmdVisa2kRead(const char *Cmd);
|
||||
int CmdVisa2kClone(const char *Cmd);
|
||||
int CmdVisa2kSim(const char *Cmd);
|
||||
|
||||
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);
|
||||
extern int usage_lf_visa2k_sim(void);
|
||||
//extern int usage_lf_visa2k_read(void);
|
||||
//extern int usage_lf_visa2k_demod(void);
|
||||
int usage_lf_visa2k_clone(void);
|
||||
int usage_lf_visa2k_sim(void);
|
||||
//int usage_lf_visa2k_read(void);
|
||||
//int usage_lf_visa2k_demod(void);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "cmdsmartcard.h" // rdv40 smart card ISO7816 commands
|
||||
#endif
|
||||
|
||||
extern int CommandReceived(char *Cmd);
|
||||
extern command_t *getTopLevelCommandTable();
|
||||
int CommandReceived(char *Cmd);
|
||||
command_t *getTopLevelCommandTable();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
#ifndef CMDSCRIPT_H__
|
||||
#define CMDSCRIPT_H__
|
||||
|
||||
extern int CmdScript(const char *Cmd);
|
||||
int CmdScript(const char *Cmd);
|
||||
|
||||
extern int CmdScriptList(const char *Cmd);
|
||||
extern int CmdScriptRun(const char *Cmd);
|
||||
int CmdScriptList(const char *Cmd);
|
||||
int CmdScriptRun(const char *Cmd);
|
||||
#endif
|
||||
|
|
|
@ -27,18 +27,18 @@
|
|||
#include "emv/dump.h" // dump_buffer
|
||||
#include "crypto/libpcrypto.h" // sha512hash
|
||||
|
||||
extern int CmdSmartcard(const char *Cmd);
|
||||
int CmdSmartcard(const char *Cmd);
|
||||
|
||||
extern int CmdSmartRaw(const char *cmd);
|
||||
extern int CmdSmartUpgrade(const char *cmd);
|
||||
extern int CmdSmartInfo(const char *cmd);
|
||||
extern int CmdSmartReader(const char *Cmd);
|
||||
int CmdSmartRaw(const char *cmd);
|
||||
int CmdSmartUpgrade(const char *cmd);
|
||||
int CmdSmartInfo(const char *cmd);
|
||||
int CmdSmartReader(const char *Cmd);
|
||||
|
||||
extern 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);
|
||||
bool smart_select(bool silent, smart_card_atr_t *atr);
|
||||
int ExchangeAPDUSC(uint8_t *datain, int datainlen, bool activateCard, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
||||
|
||||
extern int usage_sm_raw(void);
|
||||
extern int usage_sm_reader(void);
|
||||
extern int usage_sm_info(void);
|
||||
extern int usage_sm_upgrade(void);
|
||||
int usage_sm_raw(void);
|
||||
int usage_sm_reader(void);
|
||||
int usage_sm_info(void);
|
||||
int usage_sm_upgrade(void);
|
||||
#endif
|
||||
|
|
|
@ -27,14 +27,14 @@
|
|||
#include "comms.h" // for sending cmds to device. GetFromBigBuf
|
||||
#include "loclass/fileutils.h" // for saveFile
|
||||
|
||||
extern int CmdTrace(const char *Cmd);
|
||||
int CmdTrace(const char *Cmd);
|
||||
|
||||
extern int CmdTraceList(const char *Cmd);
|
||||
extern int CmdTraceLoad(const char *Cmd);
|
||||
extern int CmdTraceSave(const char *Cmd);
|
||||
int CmdTraceList(const char *Cmd);
|
||||
int CmdTraceLoad(const char *Cmd);
|
||||
int CmdTraceSave(const char *Cmd);
|
||||
|
||||
// usages helptext
|
||||
extern int usage_trace_list(void);
|
||||
extern int usage_trace_load(void);
|
||||
extern int usage_trace_save(void);
|
||||
int usage_trace_list(void);
|
||||
int usage_trace_load(void);
|
||||
int usage_trace_save(void);
|
||||
#endif
|
||||
|
|
|
@ -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 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
|
||||
|
||||
|
|
|
@ -16,6 +16,6 @@
|
|||
#include <stdio.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 */
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
|
||||
extern 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 asn1_print(uint8_t *asn1buf, size_t asn1buflen, char *indent);
|
||||
int ecdsa_asn1_get_signature(uint8_t *signature, size_t signaturelen, uint8_t *rval, uint8_t *sval);
|
||||
|
||||
#endif /* asn1utils.h */
|
||||
|
|
|
@ -16,20 +16,20 @@
|
|||
#include <stddef.h>
|
||||
#include <mbedtls/pk.h>
|
||||
|
||||
extern 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);
|
||||
extern 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_encode(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);
|
||||
int aes_cmac(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);
|
||||
extern int sha512hash(uint8_t *input, int length, uint8_t *hash);
|
||||
int sha256hash(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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
int ecdsa_key_create(uint8_t *key_d, uint8_t *key_xy);
|
||||
int ecdsa_public_key_from_pk(mbedtls_pk_context *pk, uint8_t *key, size_t keylen);
|
||||
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_verify(uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t signaturelen);
|
||||
char *ecdsa_get_error(int ret);
|
||||
|
||||
extern int ecdsa_nist_test(bool verbose);
|
||||
int ecdsa_nist_test(bool verbose);
|
||||
|
||||
#endif /* libpcrypto.h */
|
||||
|
|
|
@ -28,7 +28,7 @@ typedef struct {
|
|||
const char *Description;
|
||||
} APDUCode;
|
||||
|
||||
extern const APDUCode *const GetAPDUCode(uint8_t sw1, uint8_t sw2);
|
||||
extern const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2);
|
||||
const APDUCode *const GetAPDUCode(uint8_t sw1, uint8_t sw2);
|
||||
const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,12 +29,12 @@
|
|||
|
||||
int CmdEMV(const char *Cmd);
|
||||
|
||||
extern int CmdEMVSelect(const char *cmd);
|
||||
extern int CmdEMVSearch(const char *cmd);
|
||||
extern int CmdEMVPPSE(const char *cmd);
|
||||
extern int CmdEMVExec(const char *cmd);
|
||||
extern int CmdEMVGetrng(const char *Cmd);
|
||||
extern int CmdEMVList(const char *Cmd);
|
||||
extern int CmdEMVRoca(const char *Cmd);
|
||||
int CmdEMVSelect(const char *cmd);
|
||||
int CmdEMVSearch(const char *cmd);
|
||||
int CmdEMVPPSE(const char *cmd);
|
||||
int CmdEMVExec(const char *cmd);
|
||||
int CmdEMVGetrng(const char *Cmd);
|
||||
int CmdEMVList(const char *Cmd);
|
||||
int CmdEMVRoca(const char *Cmd);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#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);
|
||||
struct emv_pk *emv_pki_recover_issuer_cert(const struct emv_pk *pk, struct tlvdb *db);
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
|
||||
#define ROCA_PRINTS_LENGTH 17
|
||||
|
||||
extern bool emv_rocacheck(const unsigned char *buf, size_t buflen, bool verbose);
|
||||
extern int roca_self_test(void);
|
||||
bool emv_rocacheck(const unsigned char *buf, size_t buflen, bool verbose);
|
||||
int roca_self_test(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -63,46 +63,46 @@ enum CardPSVendor {
|
|||
CV_CB,
|
||||
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);
|
||||
extern void TLVPrintFromTLV(struct tlvdb *tlv);
|
||||
extern void TLVPrintFromTLVLev(struct tlvdb *tlv, int level);
|
||||
extern void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv);
|
||||
bool TLVPrintFromBuffer(uint8_t *data, int datalen);
|
||||
void TLVPrintFromTLV(struct tlvdb *tlv);
|
||||
void TLVPrintFromTLVLev(struct tlvdb *tlv, int level);
|
||||
void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv);
|
||||
|
||||
extern struct tlvdb *GetPANFromTrack2(const struct tlv *track2);
|
||||
extern struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2);
|
||||
struct tlvdb *GetPANFromTrack2(const struct tlv *track2);
|
||||
struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2);
|
||||
|
||||
extern void SetAPDULogging(bool logging);
|
||||
void SetAPDULogging(bool logging);
|
||||
|
||||
// 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
|
||||
extern 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);
|
||||
extern 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 EMVSearchPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, bool decodeTLV, struct tlvdb *tlv);
|
||||
int EMVSearch(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv);
|
||||
int EMVSelectPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||
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
|
||||
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
|
||||
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);
|
||||
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 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 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
|
||||
extern 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 EMVGenerateChallenge(EMVCommandChannel channel, bool LeaveFieldON, 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
|
||||
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
|
||||
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
|
||||
extern int trSDA(struct tlvdb *tlv);
|
||||
extern 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 trSDA(struct tlvdb *tlv);
|
||||
int trDDA(EMVCommandChannel channel, bool decodeTLV, struct tlvdb *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
|
||||
|
||||
|
||||
|
|
|
@ -18,24 +18,24 @@ typedef struct {
|
|||
char *Name;
|
||||
} 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);
|
||||
extern int JsonSaveStr(json_t *root, char *path, char *value);
|
||||
extern int JsonSaveInt(json_t *root, char *path, int value);
|
||||
extern 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);
|
||||
extern int JsonSaveHex(json_t *elm, char *path, uint64_t data, int datalen);
|
||||
int JsonSaveJsonObject(json_t *root, char *path, json_t *value);
|
||||
int JsonSaveStr(json_t *root, char *path, char *value);
|
||||
int JsonSaveInt(json_t *root, char *path, int value);
|
||||
int JsonSaveBufAsHexCompact(json_t *elm, char *path, uint8_t *data, size_t datalen);
|
||||
int JsonSaveBufAsHex(json_t *elm, char *path, uint8_t *data, size_t datalen);
|
||||
int JsonSaveHex(json_t *elm, char *path, uint64_t data, int datalen);
|
||||
|
||||
extern 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);
|
||||
extern int JsonSaveTLVTreeElm(json_t *elm, char *path, struct tlvdb *tlvdbelm, bool saveName, bool saveValue, bool saveAppDataLink);
|
||||
int JsonSaveTLVValue(json_t *root, char *path, struct tlvdb *tlvdbelm);
|
||||
int JsonSaveTLVElm(json_t *elm, char *path, struct tlv *tlvelm, 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);
|
||||
extern int JsonLoadBufAsHex(json_t *elm, char *path, uint8_t *data, size_t maxbufferlen, size_t *datalen);
|
||||
int JsonLoadStr(json_t *root, char *path, char *value);
|
||||
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
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
|
||||
#include <stdbool.h>
|
||||
|
||||
extern int exec_cda_test(bool verbose);
|
||||
int exec_cda_test(bool verbose);
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
|
||||
#include <stdbool.h>
|
||||
|
||||
extern int exec_crypto_test(bool verbose);
|
||||
int exec_crypto_test(bool verbose);
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
|
||||
#include <stdbool.h>
|
||||
|
||||
extern int ExecuteCryptoTests(bool verbose);
|
||||
int ExecuteCryptoTests(bool verbose);
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
|
||||
#include <stdbool.h>
|
||||
|
||||
extern int exec_dda_test(bool verbose);
|
||||
int exec_dda_test(bool verbose);
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
* Lesser General Public License for more details.
|
||||
*/
|
||||
|
||||
extern int exec_sda_test(bool verbose);
|
||||
int exec_sda_test(bool verbose);
|
||||
|
|
|
@ -21,18 +21,18 @@
|
|||
#define cbor_check_if(r) if ((r) != CborNoError) {return r;} else
|
||||
#define cbor_check(r) if ((r) != CborNoError) return r;
|
||||
|
||||
extern int TinyCborPrintFIDOPackage(uint8_t cmdCode, bool isResponse, uint8_t *data, size_t length);
|
||||
extern int JsonToCbor(json_t *elm, CborEncoder *encoder);
|
||||
int TinyCborPrintFIDOPackage(uint8_t cmdCode, bool isResponse, uint8_t *data, size_t length);
|
||||
int JsonToCbor(json_t *elm, CborEncoder *encoder);
|
||||
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern CborError CborGetStringValueBuf(CborValue *elm);
|
||||
int CborMapGetKeyById(CborParser *parser, CborValue *map, uint8_t *data, size_t dataLen, int key);
|
||||
CborError CborGetArrayBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
||||
CborError CborGetArrayBinStringValueEx(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen, uint8_t *delimeter, size_t delimeterlen);
|
||||
CborError CborGetBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
||||
CborError CborGetArrayStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen, char *delimeter);
|
||||
CborError CborGetStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen);
|
||||
CborError CborGetStringValueBuf(CborValue *elm);
|
||||
|
||||
extern int CBOREncodeElm(json_t *root, char *rootElmId, CborEncoder *encoder);
|
||||
extern CborError CBOREncodeClientDataHash(json_t *root, CborEncoder *encoder);
|
||||
int CBOREncodeElm(json_t *root, char *rootElmId, CborEncoder *encoder);
|
||||
CborError CBOREncodeClientDataHash(json_t *root, CborEncoder *encoder);
|
||||
|
||||
#endif /* __CBORTOOLS_H__ */
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
#include <stdint.h>
|
||||
#include <cbor.h>
|
||||
|
||||
extern const char *GetCOSEAlgName(int id);
|
||||
extern const char *GetCOSEAlgDescription(int id);
|
||||
extern const char *GetCOSEktyDescription(int id);
|
||||
extern const char *GetCOSECurveDescription(int id);
|
||||
const char *GetCOSEAlgName(int id);
|
||||
const char *GetCOSEAlgDescription(int id);
|
||||
const char *GetCOSEktyDescription(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__ */
|
||||
|
|
|
@ -35,23 +35,23 @@ typedef enum {
|
|||
ptResponse,
|
||||
} fido2PacketType;
|
||||
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern int FIDO2GetAssertion(uint8_t *params, uint8_t paramslen, 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);
|
||||
int FIDOExchange(sAPDU apdu, 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);
|
||||
int FIDOAuthentication(uint8_t *params, uint8_t paramslen, uint8_t controlb, 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);
|
||||
int FIDO2MakeCredential(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);
|
||||
extern char *fido2GetCmdErrorDescription(uint8_t errorCode);
|
||||
char *fido2GetCmdMemberDescription(uint8_t cmdCode, bool isResponse, int memberNum);
|
||||
char *fido2GetCmdErrorDescription(uint8_t errorCode);
|
||||
|
||||
extern bool CheckrpIdHash(json_t *json, uint8_t *hash);
|
||||
extern 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);
|
||||
extern 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);
|
||||
bool CheckrpIdHash(json_t *json, uint8_t *hash);
|
||||
int FIDO2CreateMakeCredentionalReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
||||
int FIDO2MakeCredentionalParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR, bool showDERTLV);
|
||||
int FIDO2CreateGetAssertionReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen, bool createAllowList);
|
||||
int FIDO2GetAssertionParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR);
|
||||
|
||||
#endif /* __FIDOCORE_H__ */
|
||||
|
|
|
@ -61,10 +61,10 @@ typedef enum {
|
|||
SIMD_MMX,
|
||||
SIMD_NONE,
|
||||
} SIMDExecInstr;
|
||||
extern void SetSIMDInstr(SIMDExecInstr instr);
|
||||
extern SIMDExecInstr GetSIMDInstrAuto();
|
||||
void SetSIMDInstr(SIMDExecInstr instr);
|
||||
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);
|
||||
extern void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par);
|
||||
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);
|
||||
void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -52,18 +52,18 @@ THE SOFTWARE.
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
extern uint32_t *malloc_bitarray(uint32_t x);
|
||||
extern void free_bitarray(uint32_t *x);
|
||||
extern uint32_t bitcount(uint32_t a);
|
||||
extern uint32_t count_states(uint32_t *A);
|
||||
extern void bitarray_AND(uint32_t *A, uint32_t *B);
|
||||
extern void bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
||||
extern uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B);
|
||||
extern 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);
|
||||
extern void bitarray_OR(uint32_t *A, uint32_t *B);
|
||||
extern 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);
|
||||
extern uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
||||
uint32_t *malloc_bitarray(uint32_t x);
|
||||
void free_bitarray(uint32_t *x);
|
||||
uint32_t bitcount(uint32_t a);
|
||||
uint32_t count_states(uint32_t *A);
|
||||
void bitarray_AND(uint32_t *A, uint32_t *B);
|
||||
void bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
||||
uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B);
|
||||
uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
||||
void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
||||
void bitarray_OR(uint32_t *A, uint32_t *B);
|
||||
uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B);
|
||||
uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C);
|
||||
uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -27,10 +27,10 @@ typedef struct {
|
|||
void *next;
|
||||
} statelist_t;
|
||||
|
||||
extern 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);
|
||||
extern float brute_force_benchmark();
|
||||
extern 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);
|
||||
void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte);
|
||||
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);
|
||||
float brute_force_benchmark();
|
||||
uint8_t trailing_zeros(uint8_t byte);
|
||||
bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -75,7 +75,7 @@ int fileExists(const char *filename);
|
|||
* @param datalen the length of the data
|
||||
* @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
|
||||
|
@ -89,7 +89,7 @@ extern int saveFile(const char *preferredName, const char *suffix, const void *d
|
|||
* @param blocksize the length of one row
|
||||
* @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
|
||||
* @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
|
||||
* @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
|
||||
* @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
|
||||
* @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.
|
||||
|
@ -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
|
||||
* @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.
|
||||
|
@ -141,7 +141,7 @@ extern int loadFileEML(const char *preferredName, const char *suffix, void *data
|
|||
* @param datalen the number of bytes loaded from file
|
||||
* @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
|
||||
* @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)
|
||||
#else
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef HASH1_BRUTE_H
|
||||
#define HASH1_BRUTE_H
|
||||
extern void brute_hash1();
|
||||
void brute_hash1();
|
||||
|
||||
#endif // HASH1_BRUTE_H
|
||||
|
|
|
@ -20,10 +20,10 @@ typedef struct {
|
|||
const char *Description;
|
||||
} madAIDDescr;
|
||||
|
||||
extern 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);
|
||||
extern int MAD1DecodeAndPrint(uint8_t *sector, bool verbose, bool *haveMAD2);
|
||||
extern int MAD2DecodeAndPrint(uint8_t *sector, bool verbose);
|
||||
int MADCheck(uint8_t *sector0, uint8_t *sector10, bool verbose, bool *haveMAD2);
|
||||
int MADDecode(uint8_t *sector0, uint8_t *sector10, uint16_t *mad, size_t *madlen);
|
||||
int MAD1DecodeAndPrint(uint8_t *sector, bool verbose, bool *haveMAD2);
|
||||
int MAD2DecodeAndPrint(uint8_t *sector, bool verbose);
|
||||
|
||||
|
||||
#endif // _MAD_H_
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
#include "mifare.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);
|
||||
extern bool mfkey32(nonces_t data, uint64_t *outputkey);
|
||||
extern bool mfkey32_moebius(nonces_t data, uint64_t *outputkey);
|
||||
extern int mfkey64(nonces_t data, uint64_t *outputkey);
|
||||
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);
|
||||
bool mfkey32(nonces_t data, uint64_t *outputkey);
|
||||
bool mfkey32_moebius(nonces_t data, uint64_t *outputkey);
|
||||
int mfkey64(nonces_t data, uint64_t *outputkey);
|
||||
|
||||
extern int compare_uint64(const void *a, const void *b);
|
||||
extern uint32_t intersection(uint64_t *listA, uint64_t *listB);
|
||||
int compare_uint64(const void *a, const void *b);
|
||||
uint32_t intersection(uint64_t *listA, uint64_t *listB);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -43,25 +43,25 @@ typedef struct {
|
|||
char *description;
|
||||
} AccessConditions_t;
|
||||
|
||||
extern void mfpSetVerboseMode(bool verbose);
|
||||
extern const char *mfpGetErrorDescription(uint8_t errorCode);
|
||||
void mfpSetVerboseMode(bool verbose);
|
||||
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);
|
||||
extern int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, 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);
|
||||
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);
|
||||
extern 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);
|
||||
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);
|
||||
extern int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *dataout, bool verbose);
|
||||
int MFPWritePerso(uint8_t *keyNum, uint8_t *key, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
||||
int MFPCommitPerso(bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
||||
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 MFPWriteBlock(mf4Session *session, uint8_t blockNum, uint8_t *data, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
|
||||
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);
|
||||
extern uint8_t mfFirstBlockOfSector(uint8_t sectorNo);
|
||||
extern uint8_t mfSectorTrailer(uint8_t blockNo);
|
||||
extern bool mfIsSectorTrailer(uint8_t blockNo);
|
||||
extern uint8_t mfSectorNum(uint8_t blockNo);
|
||||
uint8_t mfNumBlocksPerSector(uint8_t sectorNo);
|
||||
uint8_t mfFirstBlockOfSector(uint8_t sectorNo);
|
||||
uint8_t mfSectorTrailer(uint8_t blockNo);
|
||||
bool mfIsSectorTrailer(uint8_t blockNo);
|
||||
uint8_t mfSectorNum(uint8_t blockNo);
|
||||
|
||||
|
||||
#endif // mifare4.h
|
||||
|
|
|
@ -69,35 +69,35 @@ typedef struct {
|
|||
|
||||
extern char logHexFileName[FILE_PATH_SIZE];
|
||||
|
||||
extern 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);
|
||||
extern 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,
|
||||
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 mfDarkside(uint8_t blockno, uint8_t key_type, uint64_t *key);
|
||||
int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *resultKeys, bool calibrate);
|
||||
int mfCheckKeys(uint8_t blockNo, uint8_t keyType, bool clear_trace, uint8_t keycnt, uint8_t *keyBlock, uint64_t *key);
|
||||
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);
|
||||
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);
|
||||
extern int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||
extern int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidth);
|
||||
int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||
int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||
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);
|
||||
extern 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 mfCSetUID(uint8_t *uid, uint8_t *atqa, uint8_t *sak, uint8_t *oldUID, uint8_t wipecard);
|
||||
int mfCSetBlock(uint8_t blockNo, uint8_t *data, uint8_t *uid, 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);
|
||||
extern int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile);
|
||||
int mfTraceInit(uint8_t *tuid, uint8_t uidlen, uint8_t *atqa, uint8_t sak, bool wantSaveToEmlFile);
|
||||
int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile);
|
||||
|
||||
extern int isTraceCardEmpty(void);
|
||||
extern int isBlockEmpty(int blockN);
|
||||
extern int isBlockTrailer(int blockN);
|
||||
extern int loadTraceCard(uint8_t *tuid, uint8_t uidlen);
|
||||
extern int saveTraceCard(void);
|
||||
extern int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len);
|
||||
int isTraceCardEmpty(void);
|
||||
int isBlockEmpty(int blockN);
|
||||
int isBlockTrailer(int blockN);
|
||||
int loadTraceCard(uint8_t *tuid, uint8_t uidlen);
|
||||
int saveTraceCard(void);
|
||||
int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len);
|
||||
|
||||
extern int detect_classic_prng(void);
|
||||
extern int detect_classic_nackbug(bool verbose);
|
||||
extern void detect_classic_magic(void);
|
||||
extern void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool isEncrypted);
|
||||
int detect_classic_prng(void);
|
||||
int detect_classic_nackbug(bool verbose);
|
||||
void detect_classic_magic(void);
|
||||
void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool isEncrypted);
|
||||
#endif
|
||||
|
|
|
@ -57,6 +57,6 @@ typedef struct {
|
|||
uint8_t *ID;
|
||||
} 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_
|
||||
|
|
|
@ -35,11 +35,11 @@ extern int offline;
|
|||
extern bool GridLocked;
|
||||
|
||||
//Operations defined in data_operations
|
||||
//extern int autoCorr(const int* in, int *out, size_t len, int window);
|
||||
extern 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);
|
||||
extern int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down);
|
||||
extern void save_restoreGB(uint8_t saveOpt);
|
||||
//int autoCorr(const int* in, int *out, size_t len, int window);
|
||||
int AskEdgeDetect(const int *in, int *out, int len, int threshold);
|
||||
int AutoCorrelate(const int *in, int *out, size_t len, int window, bool SaveGrph, bool verbose);
|
||||
int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down);
|
||||
void save_restoreGB(uint8_t saveOpt);
|
||||
|
||||
#define GRAPH_SAVE 1
|
||||
#define GRAPH_RESTORE 0
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
typedef BMP_T bmp_t;
|
||||
|
||||
extern int bmpbit, bmpsub;
|
||||
extern void setbmp(void);
|
||||
void setbmp(void);
|
||||
|
||||
/* poly.c */
|
||||
#define P_REFIN 1
|
||||
|
@ -139,41 +139,41 @@ typedef struct {
|
|||
/* left-justified in each word */
|
||||
} poly_t;
|
||||
|
||||
extern poly_t filtop(FILE *input, unsigned long length, int flags, int bperhx);
|
||||
extern poly_t strtop(const char *string, int flags, int bperhx);
|
||||
extern 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);
|
||||
extern poly_t pclone(const poly_t poly);
|
||||
extern void pcpy(poly_t *dest, const poly_t src);
|
||||
extern void pcanon(poly_t *poly);
|
||||
extern void pnorm(poly_t *poly);
|
||||
extern void psnorm(poly_t *poly);
|
||||
extern void pchop(poly_t *poly);
|
||||
extern void pkchop(poly_t *poly);
|
||||
extern unsigned long plen(const poly_t poly);
|
||||
extern int pcmp(const poly_t *a, const poly_t *b);
|
||||
extern int psncmp(const poly_t *a, const poly_t *b);
|
||||
extern int ptst(const poly_t poly);
|
||||
extern unsigned long pfirst(const poly_t poly);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern void psum(poly_t *dest, const poly_t src, unsigned long ofs);
|
||||
extern void prev(poly_t *poly);
|
||||
extern void prevch(poly_t *poly, int bperhx);
|
||||
extern void prcp(poly_t *poly);
|
||||
extern void pinv(poly_t *poly);
|
||||
extern 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);
|
||||
extern int piter(poly_t *poly);
|
||||
extern void palloc(poly_t *poly, unsigned long length);
|
||||
extern void pfree(poly_t *poly);
|
||||
extern void praloc(poly_t *poly, unsigned long length);
|
||||
extern int pmpar(const poly_t poly, const poly_t mask);
|
||||
extern int pident(const poly_t a, const poly_t b);
|
||||
poly_t filtop(FILE *input, unsigned long length, int flags, int bperhx);
|
||||
poly_t strtop(const char *string, int flags, int bperhx);
|
||||
char *ptostr(const poly_t poly, int flags, int bperhx);
|
||||
char *pxsubs(const poly_t poly, int flags, int bperhx, unsigned long start, unsigned long end);
|
||||
poly_t pclone(const poly_t poly);
|
||||
void pcpy(poly_t *dest, const poly_t src);
|
||||
void pcanon(poly_t *poly);
|
||||
void pnorm(poly_t *poly);
|
||||
void psnorm(poly_t *poly);
|
||||
void pchop(poly_t *poly);
|
||||
void pkchop(poly_t *poly);
|
||||
unsigned long plen(const poly_t poly);
|
||||
int pcmp(const poly_t *a, const poly_t *b);
|
||||
int psncmp(const poly_t *a, const poly_t *b);
|
||||
int ptst(const poly_t poly);
|
||||
unsigned long pfirst(const poly_t poly);
|
||||
unsigned long plast(const poly_t poly);
|
||||
poly_t psubs(const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
|
||||
void pright(poly_t *poly, unsigned long length);
|
||||
void pshift(poly_t *dest, const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
|
||||
void ppaste(poly_t *dest, const poly_t src, unsigned long skip, unsigned long seek, unsigned long end, unsigned long fulllength);
|
||||
void pdiff(poly_t *dest, const poly_t src, unsigned long ofs);
|
||||
void psum(poly_t *dest, const poly_t src, unsigned long ofs);
|
||||
void prev(poly_t *poly);
|
||||
void prevch(poly_t *poly, int bperhx);
|
||||
void prcp(poly_t *poly);
|
||||
void pinv(poly_t *poly);
|
||||
poly_t pmod(const poly_t dividend, const poly_t divisor);
|
||||
poly_t pcrc(const poly_t message, const poly_t divisor, const poly_t init, const poly_t xorout, int flags);
|
||||
int piter(poly_t *poly);
|
||||
void palloc(poly_t *poly, unsigned long length);
|
||||
void pfree(poly_t *poly);
|
||||
void praloc(poly_t *poly, unsigned long length);
|
||||
int pmpar(const poly_t poly, const poly_t mask);
|
||||
int pident(const poly_t a, const poly_t b);
|
||||
|
||||
/* model.c */
|
||||
|
||||
|
@ -190,23 +190,23 @@ typedef struct {
|
|||
const char *name; /* optional canonical name of the model */
|
||||
} model_t;
|
||||
|
||||
extern void mcpy(model_t *dest, const model_t *src);
|
||||
extern void mfree(model_t *model);
|
||||
extern int mcmp(const model_t *a, const model_t *b);
|
||||
extern char *mtostr(const model_t *model);
|
||||
extern void mcanon(model_t *model);
|
||||
extern void mcheck(model_t *model);
|
||||
extern void mrev(model_t *model);
|
||||
extern void mnovel(model_t *model);
|
||||
void mcpy(model_t *dest, const model_t *src);
|
||||
void mfree(model_t *model);
|
||||
int mcmp(const model_t *a, const model_t *b);
|
||||
char *mtostr(const model_t *model);
|
||||
void mcanon(model_t *model);
|
||||
void mcheck(model_t *model);
|
||||
void mrev(model_t *model);
|
||||
void mnovel(model_t *model);
|
||||
|
||||
/* preset.c */
|
||||
#define M_OVERWR 1
|
||||
|
||||
extern int mbynam(model_t *dest, const char *key);
|
||||
extern void mbynum(model_t *dest, int num);
|
||||
extern int mcount(void);
|
||||
extern char *mnames(void);
|
||||
extern void mmatch(model_t *model, int flags);
|
||||
int mbynam(model_t *dest, const char *key);
|
||||
void mbynum(model_t *dest, int num);
|
||||
int mcount(void);
|
||||
char *mnames(void);
|
||||
void mmatch(model_t *model, int flags);
|
||||
|
||||
/* reveng.c */
|
||||
#define R_HAVEP 1
|
||||
|
@ -218,7 +218,7 @@ extern void mmatch(model_t *model, int flags);
|
|||
|
||||
#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 */
|
||||
#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
|
||||
|
||||
extern int reveng_main(int argc, char *argv[]);
|
||||
extern void ufound(const model_t *model);
|
||||
extern void uerror(const char *msg);
|
||||
extern void uprog(const poly_t gpoly, int flags, unsigned long seq);
|
||||
int reveng_main(int argc, char *argv[]);
|
||||
void ufound(const model_t *model);
|
||||
void uerror(const char *msg);
|
||||
void uprog(const poly_t gpoly, int flags, unsigned long seq);
|
||||
|
||||
#endif /* REVENG_H */
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
extern 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 scandir(const char *dir, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **));
|
||||
int alphasort(const struct dirent **a, const struct dirent **b);
|
||||
#endif // _WIN32
|
||||
|
||||
#endif // SCANDIR_H__
|
||||
|
|
|
@ -33,10 +33,10 @@ void ShowGui(void);
|
|||
void HideGraphWindow(void);
|
||||
void ShowGraphWindow(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 PrintAndLogEx(logLevel_t level, char *fmt, ...);
|
||||
extern void SetLogFilename(char *fn);
|
||||
void SetLogFilename(char *fn);
|
||||
void SetFlushAfterWrite(bool value);
|
||||
|
||||
extern double CursorScaleFactor;
|
||||
|
@ -48,6 +48,6 @@ extern bool showDemod;
|
|||
|
||||
extern pthread_mutex_t print_lock;
|
||||
|
||||
extern void iceIIR_Butterworth(int *data, const size_t len);
|
||||
extern void iceSimple_Filter(int *data, const size_t len, uint8_t k);
|
||||
void iceIIR_Butterworth(int *data, const size_t len);
|
||||
void iceSimple_Filter(int *data, const size_t len, uint8_t k);
|
||||
#endif
|
||||
|
|
124
client/util.h
124
client/util.h
|
@ -186,81 +186,81 @@
|
|||
}
|
||||
#endif
|
||||
|
||||
extern uint8_t g_debugMode;
|
||||
uint8_t g_debugMode;
|
||||
|
||||
extern int ukbhit(void);
|
||||
extern void AddLogLine(char *fn, char *data, char *c);
|
||||
extern 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);
|
||||
extern void AddLogCurrentDT(char *fn);
|
||||
extern void FillFileNameByUID(char *filenamePrefix, uint8_t *uid, const char *ext, int uidlen);
|
||||
int ukbhit(void);
|
||||
void AddLogLine(char *fn, char *data, char *c);
|
||||
void AddLogHex(char *fn, char *extData, const uint8_t *data, const size_t len);
|
||||
void AddLogUint64(char *fn, char *data, const uint64_t value);
|
||||
void AddLogCurrentDT(char *fn);
|
||||
void FillFileNameByUID(char *filenamePrefix, uint8_t *uid, const char *ext, int uidlen);
|
||||
|
||||
// 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);
|
||||
extern void hex_to_buffer(const uint8_t *buf, const uint8_t *hex_data, const size_t hex_len,
|
||||
bool CheckStringIsHEXValue(const char *value);
|
||||
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,
|
||||
bool uppercase);
|
||||
|
||||
extern 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);
|
||||
extern char *sprint_hex(const uint8_t *data, const size_t len);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
void print_hex(const uint8_t *data, const size_t len);
|
||||
void print_hex_break(const uint8_t *data, const size_t len, const uint8_t breaks);
|
||||
char *sprint_hex(const uint8_t *data, const size_t len);
|
||||
char *sprint_hex_inrow(const uint8_t *data, const size_t len);
|
||||
char *sprint_hex_inrow_ex(const uint8_t *data, const size_t len, const size_t min_str_len);
|
||||
char *sprint_hex_inrow_spaces(const uint8_t *data, const size_t len, size_t spaces_between);
|
||||
char *sprint_bin(const uint8_t *data, const size_t len);
|
||||
char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t breaks);
|
||||
char *sprint_hex_ascii(const uint8_t *data, const size_t len);
|
||||
char *sprint_ascii(const uint8_t *data, const size_t 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern void SwapEndian64ex(const uint8_t *src, const size_t len, const uint8_t blockSize, 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);
|
||||
void num_to_bytebits(uint64_t n, size_t len, uint8_t *dest);
|
||||
void num_to_bytebitsLSBF(uint64_t n, size_t len, uint8_t *dest);
|
||||
uint8_t *SwapEndian64(const uint8_t *src, const size_t len, const uint8_t blockSize);
|
||||
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);
|
||||
extern char param_getchar(const char *line, int paramnum);
|
||||
extern char param_getchar_indx(const char *line, int indx, int paramnum);
|
||||
extern int param_getptr(const char *line, int *bg, int *en, int paramnum);
|
||||
extern uint8_t param_get8(const char *line, int paramnum);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern uint8_t param_isdec(const char *line, int paramnum);
|
||||
extern 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);
|
||||
extern 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_getlength(const char *line, int paramnum);
|
||||
char param_getchar(const char *line, int paramnum);
|
||||
char param_getchar_indx(const char *line, int indx, int paramnum);
|
||||
int param_getptr(const char *line, int *bg, int *en, int paramnum);
|
||||
uint8_t param_get8(const char *line, int paramnum);
|
||||
uint8_t param_get8ex(const char *line, int paramnum, int deflt, int base);
|
||||
uint32_t param_get32ex(const char *line, int paramnum, int deflt, int base);
|
||||
uint64_t param_get64ex(const char *line, int paramnum, int deflt, int base);
|
||||
uint8_t param_getdec(const char *line, int paramnum, uint8_t *destination);
|
||||
uint8_t param_isdec(const char *line, int paramnum);
|
||||
int param_gethex(const char *line, int paramnum, uint8_t *data, int hexcnt);
|
||||
int param_gethex_ex(const char *line, int paramnum, uint8_t *data, int *hexcnt);
|
||||
int param_gethex_to_eol(const char *line, int paramnum, uint8_t *data, int maxdatalen, int *datalen);
|
||||
int param_getstr(const char *line, int paramnum, char *str, size_t buffersize);
|
||||
|
||||
extern int hextobinarray(char *target, char *source);
|
||||
extern int hextobinstring(char *target, char *source);
|
||||
extern int binarraytohex(char *target, const size_t targetlen, char *source, size_t srclen);
|
||||
extern void binarraytobinstring(char *target, char *source, int length);
|
||||
extern 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);
|
||||
int hextobinarray(char *target, char *source);
|
||||
int hextobinstring(char *target, char *source);
|
||||
int binarraytohex(char *target, const size_t targetlen, char *source, size_t srclen);
|
||||
void binarraytobinstring(char *target, char *source, int length);
|
||||
uint8_t GetParity(uint8_t *bits, uint8_t type, int 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);
|
||||
extern int32_t le24toh(uint8_t data[3]);
|
||||
void xor(unsigned char *dst, unsigned char *src, size_t len);
|
||||
int32_t le24toh(uint8_t data[3]);
|
||||
|
||||
extern uint32_t PackBits(uint8_t start, uint8_t len, uint8_t *bits);
|
||||
extern void rol(uint8_t *data, const size_t len);
|
||||
extern uint32_t reflect(uint32_t v, int b);
|
||||
extern uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
|
||||
extern uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
|
||||
extern uint64_t HornerScheme(uint64_t num, uint64_t divider, uint64_t factor);
|
||||
uint32_t PackBits(uint8_t start, uint8_t len, uint8_t *bits);
|
||||
void rol(uint8_t *data, const size_t len);
|
||||
uint32_t reflect(uint32_t v, int b);
|
||||
uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
|
||||
uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
|
||||
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
|
||||
extern bool str_startswith(const char *s, const char *pre); // check for prefix in string
|
||||
extern void strcleanrn(char *buf, size_t len);
|
||||
extern void strcreplace(char *buf, size_t len, char from, char to);
|
||||
extern char *strmcopy(char *buf);
|
||||
void str_lower(char *s); // converts string to lower case
|
||||
bool str_startswith(const char *s, const char *pre); // check for prefix in string
|
||||
void strcleanrn(char *buf, size_t len);
|
||||
void strcreplace(char *buf, size_t len, char from, char to);
|
||||
char *strmcopy(char *buf);
|
||||
#endif
|
||||
|
|
|
@ -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);
|
||||
uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb);
|
||||
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)\
|
||||
uint32_t __n = 0,__M = 0, N = 0;\
|
||||
int __i;\
|
||||
|
|
26
common/crc.h
26
common/crc.h
|
@ -30,25 +30,25 @@ typedef struct 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.
|
||||
*/
|
||||
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
|
||||
* 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(). */
|
||||
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
|
||||
* data_width lower-most bits are used).
|
||||
*/
|
||||
extern 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_update(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 */
|
||||
extern void crc_clear(crc_t *crc);
|
||||
void crc_clear(crc_t *crc);
|
||||
|
||||
/* 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
|
||||
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 */
|
||||
#define CRC_INITIALIZER(_order, _polynom, _initial_value, _final_xor) { \
|
||||
.state = ((_initial_value) & ((1L<<(_order))-1)), \
|
||||
.order = (_order), \
|
||||
.polynom = (_polynom), \
|
||||
.initial_value = (_initial_value), \
|
||||
.final_xor = (_final_xor), \
|
||||
.mask = ((1L<<(_order))-1) \
|
||||
.refin = false, \
|
||||
.refout = false \
|
||||
.order = (_order), \
|
||||
.polynom = (_polynom), \
|
||||
.initial_value = (_initial_value), \
|
||||
.final_xor = (_final_xor), \
|
||||
.mask = ((1L<<(_order))-1) \
|
||||
.refin = false, \
|
||||
.refout = false \
|
||||
}
|
||||
|
||||
#endif /* __CRC_H */
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
//to allow debug print calls when used not on dev
|
||||
|
||||
//void dummy(char *fmt, ...){}
|
||||
extern void Dbprintf(const char *fmt, ...);
|
||||
void Dbprintf(const char *fmt, ...);
|
||||
|
||||
#ifndef ON_DEVICE
|
||||
#include "ui.h"
|
||||
|
|
|
@ -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);
|
||||
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);
|
||||
extern 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);
|
||||
extern void askAmp(uint8_t *bits, size_t size);
|
||||
extern 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);
|
||||
extern uint32_t bytebits_to_byte(uint8_t *src, size_t numbits);
|
||||
extern uint32_t bytebits_to_byteLSBF(uint8_t *src, size_t numbits);
|
||||
extern uint16_t countFC(uint8_t *bits, size_t size, bool fskAdj);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
//extern 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);
|
||||
extern uint32_t manchesterEncode2Bytes(uint16_t datain);
|
||||
extern int ManchesterEncode(uint8_t *bits, size_t size);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern int pskRawDemod_ext(uint8_t *dest, size_t *size, int *clock, int *invert, int *startIdx);
|
||||
extern void psk2TOpsk1(uint8_t *bits, size_t size);
|
||||
extern 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 addParity(uint8_t *src, uint8_t *dest, uint8_t sourceLen, uint8_t pLen, uint8_t pType);
|
||||
int askdemod(uint8_t *bits, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp, uint8_t askType);
|
||||
int askdemod_ext(uint8_t *bits, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp, uint8_t askType, int *startIdx);
|
||||
void askAmp(uint8_t *bits, size_t size);
|
||||
int BiphaseRawDecode(uint8_t *bits, size_t *size, int *offset, int invert);
|
||||
uint8_t bits_to_array(const uint8_t *bits, size_t size, uint8_t *dest);
|
||||
uint32_t bytebits_to_byte(uint8_t *src, size_t numbits);
|
||||
uint32_t bytebits_to_byteLSBF(uint8_t *src, size_t numbits);
|
||||
uint16_t countFC(uint8_t *bits, size_t size, bool fskAdj);
|
||||
int DetectASKClock(uint8_t *dest, size_t size, int *clock, int maxErr);
|
||||
bool DetectCleanAskWave(uint8_t *dest, size_t size, uint8_t high, uint8_t low);
|
||||
uint8_t detectFSKClk(uint8_t *bits, size_t size, uint8_t fcHigh, uint8_t fcLow, int *firstClockEdge);
|
||||
int DetectNRZClock(uint8_t *dest, size_t size, int clock, size_t *clockStartIdx);
|
||||
int DetectPSKClock(uint8_t *dest, size_t size, int clock, size_t *firstPhaseShift, uint8_t *curPhase, uint8_t *fc);
|
||||
int DetectStrongAskClock(uint8_t *dest, size_t size, int high, int low, int *clock);
|
||||
bool DetectST(uint8_t *buffer, size_t *size, int *foundclock, size_t *ststart, size_t *stend);
|
||||
size_t fskdemod(uint8_t *dest, size_t size, uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow, int *start_idx);
|
||||
//void getHiLo(uint8_t *bits, size_t size, int *high, int *low, uint8_t fuzzHi, uint8_t fuzzLo);
|
||||
void getHiLo(int *high, int *low, uint8_t fuzzHi, uint8_t fuzzLo);
|
||||
uint32_t manchesterEncode2Bytes(uint16_t datain);
|
||||
int ManchesterEncode(uint8_t *bits, size_t size);
|
||||
int manrawdecode(uint8_t *bits, size_t *size, uint8_t invert, uint8_t *alignPos);
|
||||
int nrzRawDemod(uint8_t *dest, size_t *size, int *clk, int *invert, int *startIdx);
|
||||
bool parityTest(uint32_t bits, uint8_t bitLen, uint8_t pType);
|
||||
bool preambleSearch(uint8_t *bits, uint8_t *preamble, size_t pLen, size_t *size, size_t *startIdx);
|
||||
bool preambleSearchEx(uint8_t *bits, uint8_t *preamble, size_t pLen, size_t *size, size_t *startIdx, bool findone);
|
||||
int pskRawDemod(uint8_t *dest, size_t *size, int *clock, int *invert);
|
||||
int pskRawDemod_ext(uint8_t *dest, size_t *size, int *clock, int *invert, int *startIdx);
|
||||
void psk2TOpsk1(uint8_t *bits, size_t size);
|
||||
void psk1TOpsk2(uint8_t *bits, size_t size);
|
||||
size_t removeParity(uint8_t *bits, size_t startIdx, uint8_t pLen, uint8_t pType, size_t bLen);
|
||||
|
||||
//tag specific
|
||||
extern 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);
|
||||
extern 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);
|
||||
extern int detectIOProx(uint8_t *dest, size_t *size, int *waveStartIdx);
|
||||
int detectAWID(uint8_t *dest, size_t *size, int *waveStartIdx);
|
||||
int Em410xDecode(uint8_t *bits, size_t *size, size_t *start_idx, uint32_t *hi, uint64_t *lo);
|
||||
int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo, int *waveStartIdx);
|
||||
int detectIdteck(uint8_t *dest, size_t *size);
|
||||
int detectIOProx(uint8_t *dest, size_t *size, int *waveStartIdx);
|
||||
#endif
|
||||
|
|
|
@ -41,23 +41,23 @@
|
|||
#include "proxmark3.h" // USB_CONNECT()
|
||||
#include "common.h"
|
||||
|
||||
extern void usb_disable();
|
||||
extern void usb_enable();
|
||||
extern bool usb_check();
|
||||
extern bool usb_poll();
|
||||
extern bool usb_poll_validate_length();
|
||||
extern uint32_t usb_read(uint8_t *data, size_t len);
|
||||
extern uint32_t usb_write(const uint8_t *data, const size_t len);
|
||||
void usb_disable();
|
||||
void usb_enable();
|
||||
bool usb_check();
|
||||
bool usb_poll();
|
||||
bool usb_poll_validate_length();
|
||||
uint32_t usb_read(uint8_t *data, size_t len);
|
||||
uint32_t usb_write(const uint8_t *data, const size_t len);
|
||||
|
||||
extern void SetUSBreconnect(int value);
|
||||
extern int GetUSBreconnect(void);
|
||||
extern void SetUSBconfigured(int value);
|
||||
extern int GetUSBconfigured(void);
|
||||
void SetUSBreconnect(int value);
|
||||
int GetUSBreconnect(void);
|
||||
void SetUSBconfigured(int value);
|
||||
int GetUSBconfigured(void);
|
||||
|
||||
extern void AT91F_USB_SendData(AT91PS_UDP pUdp, const char *pData, uint32_t length);
|
||||
extern void AT91F_USB_SendZlp(AT91PS_UDP pUdp);
|
||||
extern void AT91F_USB_SendStall(AT91PS_UDP pUdp);
|
||||
extern void AT91F_CDC_Enumerate();
|
||||
void AT91F_USB_SendData(AT91PS_UDP pUdp, const char *pData, uint32_t length);
|
||||
void AT91F_USB_SendZlp(AT91PS_UDP pUdp);
|
||||
void AT91F_USB_SendStall(AT91PS_UDP pUdp);
|
||||
void AT91F_CDC_Enumerate();
|
||||
|
||||
#endif // _USB_CDC_H_
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
#define __LEGIC_PRNG_H
|
||||
|
||||
#include <stdint.h>
|
||||
extern void legic_prng_init(uint8_t iv);
|
||||
extern void legic_prng_forward(int count);
|
||||
extern uint8_t legic_prng_get_bit();
|
||||
extern uint32_t legic_prng_get_bits(uint8_t len);
|
||||
void legic_prng_init(uint8_t iv);
|
||||
void legic_prng_forward(int count);
|
||||
uint8_t legic_prng_get_bit();
|
||||
uint32_t legic_prng_get_bits(uint8_t len);
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue