mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-14 18:48:13 -07:00
Merge branch 'master' into hf_mf_sim
This commit is contained in:
commit
b666c27f3c
99 changed files with 948 additions and 948 deletions
|
@ -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_
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue