mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
make style
This commit is contained in:
parent
59d40068e2
commit
98d9408746
30 changed files with 257 additions and 257 deletions
|
@ -31,11 +31,11 @@
|
||||||
#define CLIGetHexWithReturn(paramnum, data, datalen) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;}
|
#define CLIGetHexWithReturn(paramnum, data, datalen) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;}
|
||||||
#define CLIGetStrWithReturn(paramnum, data, datalen) if (CLIParamStrToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;}
|
#define CLIGetStrWithReturn(paramnum, data, datalen) if (CLIParamStrToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;}
|
||||||
|
|
||||||
extern int CLIParserInit(char *vprogramName, char *vprogramHint, char *vprogramHelp);
|
int CLIParserInit(char *vprogramName, char *vprogramHint, char *vprogramHelp);
|
||||||
extern int CLIParserParseString(const char *str, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
int CLIParserParseString(const char *str, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
||||||
extern int CLIParserParseStringEx(const char *str, void *vargtable[], size_t vargtableLen, bool allowEmptyExec, bool clueData);
|
int CLIParserParseStringEx(const char *str, void *vargtable[], size_t vargtableLen, bool allowEmptyExec, bool clueData);
|
||||||
extern int CLIParserParseArg(int argc, char **argv, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
int CLIParserParseArg(int argc, char **argv, void *argtable[], size_t vargtableLen, bool allowEmptyExec);
|
||||||
extern void CLIParserFree();
|
void CLIParserFree();
|
||||||
|
|
||||||
extern int CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
|
int CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
|
||||||
extern int CLIParamStrToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
|
int CLIParamStrToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen);
|
||||||
|
|
|
@ -137,17 +137,17 @@ typedef struct {
|
||||||
t55xx_conf_block_t Get_t55xx_Config(void);
|
t55xx_conf_block_t Get_t55xx_Config(void);
|
||||||
void Set_t55xx_Config(t55xx_conf_block_t conf);
|
void Set_t55xx_Config(t55xx_conf_block_t conf);
|
||||||
|
|
||||||
extern int CmdLFT55XX(const char *Cmd);
|
int CmdLFT55XX(const char *Cmd);
|
||||||
extern int CmdT55xxChk(const char *Cmd);
|
int CmdT55xxChk(const char *Cmd);
|
||||||
extern int CmdT55xxBruteForce(const char *Cmd);
|
int CmdT55xxBruteForce(const char *Cmd);
|
||||||
extern int CmdT55xxSetConfig(const char *Cmd);
|
int CmdT55xxSetConfig(const char *Cmd);
|
||||||
extern int CmdT55xxReadBlock(const char *Cmd);
|
int CmdT55xxReadBlock(const char *Cmd);
|
||||||
extern int CmdT55xxWriteBlock(const char *Cmd);
|
int CmdT55xxWriteBlock(const char *Cmd);
|
||||||
extern int CmdT55xxReadTrace(const char *Cmd);
|
int CmdT55xxReadTrace(const char *Cmd);
|
||||||
extern int CmdT55xxInfo(const char *Cmd);
|
int CmdT55xxInfo(const char *Cmd);
|
||||||
extern int CmdT55xxDetect(const char *Cmd);
|
int CmdT55xxDetect(const char *Cmd);
|
||||||
extern int CmdResetRead(const char *Cmd);
|
int CmdResetRead(const char *Cmd);
|
||||||
extern int CmdT55xxWipe(const char *Cmd);
|
int CmdT55xxWipe(const char *Cmd);
|
||||||
|
|
||||||
char *GetPskCfStr(uint32_t id, bool q5);
|
char *GetPskCfStr(uint32_t id, bool q5);
|
||||||
char *GetBitRateStr(uint32_t id, bool xmode);
|
char *GetBitRateStr(uint32_t id, bool xmode);
|
||||||
|
@ -160,16 +160,16 @@ void printT5xxHeader(uint8_t page);
|
||||||
void printT55xxBlock(const char *demodStr);
|
void printT55xxBlock(const char *demodStr);
|
||||||
int printConfiguration(t55xx_conf_block_t b);
|
int printConfiguration(t55xx_conf_block_t b);
|
||||||
|
|
||||||
extern int T55xxReadBlock(uint8_t block, bool page1, bool usepwd, bool override, uint32_t password);
|
int T55xxReadBlock(uint8_t block, bool page1, bool usepwd, bool override, uint32_t password);
|
||||||
bool GetT55xxBlockData(uint32_t *blockdata);
|
bool GetT55xxBlockData(uint32_t *blockdata);
|
||||||
bool DecodeT55xxBlock(void);
|
bool DecodeT55xxBlock(void);
|
||||||
extern bool tryDetectModulation(void);
|
bool tryDetectModulation(void);
|
||||||
bool testKnownConfigBlock(uint32_t block0);
|
bool testKnownConfigBlock(uint32_t block0);
|
||||||
|
|
||||||
extern bool tryDetectP1(bool getData);
|
bool tryDetectP1(bool getData);
|
||||||
bool test(uint8_t mode, uint8_t *offset, int *fndBitRate, uint8_t clk, bool *Q5);
|
bool test(uint8_t mode, uint8_t *offset, int *fndBitRate, uint8_t clk, bool *Q5);
|
||||||
int special(const char *Cmd);
|
int special(const char *Cmd);
|
||||||
extern bool AquireData(uint8_t page, uint8_t block, bool pwdmode, uint32_t password);
|
bool AquireData(uint8_t page, uint8_t block, bool pwdmode, uint32_t password);
|
||||||
int tryOnePassword(uint32_t password);
|
int tryOnePassword(uint32_t password);
|
||||||
|
|
||||||
void printT55x7Trace(t55x7_tracedata_t data, uint8_t repeat);
|
void printT55x7Trace(t55x7_tracedata_t data, uint8_t repeat);
|
||||||
|
|
|
@ -16,6 +16,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "emv/tlv.h"
|
#include "emv/tlv.h"
|
||||||
|
|
||||||
extern bool asn1_tag_dump(const struct tlv *tlv, FILE *f, int level, bool *candump);
|
bool asn1_tag_dump(const struct tlv *tlv, FILE *f, int level, bool *candump);
|
||||||
|
|
||||||
#endif /* asn1utils.h */
|
#endif /* asn1utils.h */
|
||||||
|
|
|
@ -16,20 +16,20 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <mbedtls/pk.h>
|
#include <mbedtls/pk.h>
|
||||||
|
|
||||||
extern int aes_encode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length);
|
int aes_encode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length);
|
||||||
extern int aes_decode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length);
|
int aes_decode(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *output, int length);
|
||||||
extern int aes_cmac(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length);
|
int aes_cmac(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length);
|
||||||
extern int aes_cmac8(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length);
|
int aes_cmac8(uint8_t *iv, uint8_t *key, uint8_t *input, uint8_t *mac, int length);
|
||||||
|
|
||||||
extern int sha256hash(uint8_t *input, int length, uint8_t *hash);
|
int sha256hash(uint8_t *input, int length, uint8_t *hash);
|
||||||
extern int sha512hash(uint8_t *input, int length, uint8_t *hash);
|
int sha512hash(uint8_t *input, int length, uint8_t *hash);
|
||||||
|
|
||||||
extern int ecdsa_key_create(uint8_t *key_d, uint8_t *key_xy);
|
int ecdsa_key_create(uint8_t *key_d, uint8_t *key_xy);
|
||||||
extern int ecdsa_public_key_from_pk(mbedtls_pk_context *pk, uint8_t *key, size_t keylen);
|
int ecdsa_public_key_from_pk(mbedtls_pk_context *pk, uint8_t *key, size_t keylen);
|
||||||
extern int ecdsa_signature_create(uint8_t *key_d, uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t *signaturelen);
|
int ecdsa_signature_create(uint8_t *key_d, uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t *signaturelen);
|
||||||
extern int ecdsa_signature_verify(uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t signaturelen);
|
int ecdsa_signature_verify(uint8_t *key_xy, uint8_t *input, int length, uint8_t *signature, size_t signaturelen);
|
||||||
extern char *ecdsa_get_error(int ret);
|
char *ecdsa_get_error(int ret);
|
||||||
|
|
||||||
extern int ecdsa_nist_test(bool verbose);
|
int ecdsa_nist_test(bool verbose);
|
||||||
|
|
||||||
#endif /* libpcrypto.h */
|
#endif /* libpcrypto.h */
|
||||||
|
|
|
@ -28,7 +28,7 @@ typedef struct {
|
||||||
const char *Description;
|
const char *Description;
|
||||||
} APDUCode;
|
} APDUCode;
|
||||||
|
|
||||||
extern const APDUCode *const GetAPDUCode(uint8_t sw1, uint8_t sw2);
|
const APDUCode *const GetAPDUCode(uint8_t sw1, uint8_t sw2);
|
||||||
extern const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2);
|
const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,12 +29,12 @@
|
||||||
|
|
||||||
int CmdEMV(const char *Cmd);
|
int CmdEMV(const char *Cmd);
|
||||||
|
|
||||||
extern int CmdEMVSelect(const char *cmd);
|
int CmdEMVSelect(const char *cmd);
|
||||||
extern int CmdEMVSearch(const char *cmd);
|
int CmdEMVSearch(const char *cmd);
|
||||||
extern int CmdEMVPPSE(const char *cmd);
|
int CmdEMVPPSE(const char *cmd);
|
||||||
extern int CmdEMVExec(const char *cmd);
|
int CmdEMVExec(const char *cmd);
|
||||||
extern int CmdEMVGetrng(const char *Cmd);
|
int CmdEMVGetrng(const char *Cmd);
|
||||||
extern int CmdEMVList(const char *Cmd);
|
int CmdEMVList(const char *Cmd);
|
||||||
extern int CmdEMVRoca(const char *Cmd);
|
int CmdEMVRoca(const char *Cmd);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
extern void PKISetStrictExecution(bool se);
|
void PKISetStrictExecution(bool se);
|
||||||
|
|
||||||
unsigned char *emv_pki_sdatl_fill(const struct tlvdb *db, size_t *sdatl_len);
|
unsigned char *emv_pki_sdatl_fill(const struct tlvdb *db, size_t *sdatl_len);
|
||||||
struct emv_pk *emv_pki_recover_issuer_cert(const struct emv_pk *pk, struct tlvdb *db);
|
struct emv_pk *emv_pki_recover_issuer_cert(const struct emv_pk *pk, struct tlvdb *db);
|
||||||
|
|
|
@ -31,8 +31,8 @@
|
||||||
|
|
||||||
#define ROCA_PRINTS_LENGTH 17
|
#define ROCA_PRINTS_LENGTH 17
|
||||||
|
|
||||||
extern bool emv_rocacheck(const unsigned char *buf, size_t buflen, bool verbose);
|
bool emv_rocacheck(const unsigned char *buf, size_t buflen, bool verbose);
|
||||||
extern int roca_self_test(void);
|
int roca_self_test(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -63,46 +63,46 @@ enum CardPSVendor {
|
||||||
CV_CB,
|
CV_CB,
|
||||||
CV_OTHER,
|
CV_OTHER,
|
||||||
};
|
};
|
||||||
extern enum CardPSVendor GetCardPSVendor(uint8_t *AID, size_t AIDlen);
|
enum CardPSVendor GetCardPSVendor(uint8_t *AID, size_t AIDlen);
|
||||||
|
|
||||||
extern bool TLVPrintFromBuffer(uint8_t *data, int datalen);
|
bool TLVPrintFromBuffer(uint8_t *data, int datalen);
|
||||||
extern void TLVPrintFromTLV(struct tlvdb *tlv);
|
void TLVPrintFromTLV(struct tlvdb *tlv);
|
||||||
extern void TLVPrintFromTLVLev(struct tlvdb *tlv, int level);
|
void TLVPrintFromTLVLev(struct tlvdb *tlv, int level);
|
||||||
extern void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv);
|
void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv);
|
||||||
|
|
||||||
extern struct tlvdb *GetPANFromTrack2(const struct tlv *track2);
|
struct tlvdb *GetPANFromTrack2(const struct tlv *track2);
|
||||||
extern struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2);
|
struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2);
|
||||||
|
|
||||||
extern void SetAPDULogging(bool logging);
|
void SetAPDULogging(bool logging);
|
||||||
|
|
||||||
// exchange
|
// exchange
|
||||||
extern int EMVExchange(EMVCommandChannel channel, bool LeaveFieldON, sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVExchange(EMVCommandChannel channel, bool LeaveFieldON, sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
|
|
||||||
// search application
|
// search application
|
||||||
extern int EMVSearchPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, bool decodeTLV, struct tlvdb *tlv);
|
int EMVSearchPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, bool decodeTLV, struct tlvdb *tlv);
|
||||||
extern int EMVSearch(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv);
|
int EMVSearch(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv);
|
||||||
extern int EMVSelectPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int EMVSelectPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int EMVSelect(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t *AID, size_t AIDLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVSelect(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t *AID, size_t AIDLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
// select application
|
// select application
|
||||||
extern int EMVSelectApplication(struct tlvdb *tlv, uint8_t *AID, size_t *AIDlen);
|
int EMVSelectApplication(struct tlvdb *tlv, uint8_t *AID, size_t *AIDlen);
|
||||||
// Get Processing Options
|
// Get Processing Options
|
||||||
extern int EMVGPO(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *PDOL, size_t PDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVGPO(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *PDOL, size_t PDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
extern int EMVReadRecord(EMVCommandChannel channel, bool LeaveFieldON, uint8_t SFI, uint8_t SFIrec, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVReadRecord(EMVCommandChannel channel, bool LeaveFieldON, uint8_t SFI, uint8_t SFIrec, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
// AC
|
// AC
|
||||||
extern int EMVGenerateChallenge(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVGenerateChallenge(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
extern int EMVAC(EMVCommandChannel channel, bool LeaveFieldON, uint8_t RefControl, uint8_t *CDOL, size_t CDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVAC(EMVCommandChannel channel, bool LeaveFieldON, uint8_t RefControl, uint8_t *CDOL, size_t CDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
// DDA
|
// DDA
|
||||||
extern int EMVInternalAuthenticate(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *DDOL, size_t DDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int EMVInternalAuthenticate(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *DDOL, size_t DDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
// Mastercard
|
// Mastercard
|
||||||
int MSCComputeCryptoChecksum(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *UDOL, uint8_t UDOLlen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
int MSCComputeCryptoChecksum(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *UDOL, uint8_t UDOLlen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
|
||||||
// Auth
|
// Auth
|
||||||
extern int trSDA(struct tlvdb *tlv);
|
int trSDA(struct tlvdb *tlv);
|
||||||
extern int trDDA(EMVCommandChannel channel, bool decodeTLV, struct tlvdb *tlv);
|
int trDDA(EMVCommandChannel channel, bool decodeTLV, struct tlvdb *tlv);
|
||||||
extern int trCDA(struct tlvdb *tlv, struct tlvdb *ac_tlv, struct tlv *pdol_data_tlv, struct tlv *ac_data_tlv);
|
int trCDA(struct tlvdb *tlv, struct tlvdb *ac_tlv, struct tlv *pdol_data_tlv, struct tlv *ac_data_tlv);
|
||||||
|
|
||||||
extern int RecoveryCertificates(struct tlvdb *tlvRoot, json_t *root);
|
int RecoveryCertificates(struct tlvdb *tlvRoot, json_t *root);
|
||||||
|
|
||||||
extern struct emv_pk *get_ca_pk(struct tlvdb *db);
|
struct emv_pk *get_ca_pk(struct tlvdb *db);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,24 +18,24 @@ typedef struct {
|
||||||
char *Name;
|
char *Name;
|
||||||
} ApplicationDataElm;
|
} ApplicationDataElm;
|
||||||
|
|
||||||
extern char *GetApplicationDataName(tlv_tag_t tag);
|
char *GetApplicationDataName(tlv_tag_t tag);
|
||||||
|
|
||||||
extern int JsonSaveJsonObject(json_t *root, char *path, json_t *value);
|
int JsonSaveJsonObject(json_t *root, char *path, json_t *value);
|
||||||
extern int JsonSaveStr(json_t *root, char *path, char *value);
|
int JsonSaveStr(json_t *root, char *path, char *value);
|
||||||
extern int JsonSaveInt(json_t *root, char *path, int value);
|
int JsonSaveInt(json_t *root, char *path, int value);
|
||||||
extern int JsonSaveBufAsHexCompact(json_t *elm, char *path, uint8_t *data, size_t datalen);
|
int JsonSaveBufAsHexCompact(json_t *elm, char *path, uint8_t *data, size_t datalen);
|
||||||
extern int JsonSaveBufAsHex(json_t *elm, char *path, uint8_t *data, size_t datalen);
|
int JsonSaveBufAsHex(json_t *elm, char *path, uint8_t *data, size_t datalen);
|
||||||
extern int JsonSaveHex(json_t *elm, char *path, uint64_t data, int datalen);
|
int JsonSaveHex(json_t *elm, char *path, uint64_t data, int datalen);
|
||||||
|
|
||||||
extern int JsonSaveTLVValue(json_t *root, char *path, struct tlvdb *tlvdbelm);
|
int JsonSaveTLVValue(json_t *root, char *path, struct tlvdb *tlvdbelm);
|
||||||
extern int JsonSaveTLVElm(json_t *elm, char *path, struct tlv *tlvelm, bool saveName, bool saveValue, bool saveAppDataLink);
|
int JsonSaveTLVElm(json_t *elm, char *path, struct tlv *tlvelm, bool saveName, bool saveValue, bool saveAppDataLink);
|
||||||
extern int JsonSaveTLVTreeElm(json_t *elm, char *path, struct tlvdb *tlvdbelm, bool saveName, bool saveValue, bool saveAppDataLink);
|
int JsonSaveTLVTreeElm(json_t *elm, char *path, struct tlvdb *tlvdbelm, bool saveName, bool saveValue, bool saveAppDataLink);
|
||||||
|
|
||||||
extern int JsonSaveTLVTree(json_t *root, json_t *elm, char *path, struct tlvdb *tlvdbelm);
|
int JsonSaveTLVTree(json_t *root, json_t *elm, char *path, struct tlvdb *tlvdbelm);
|
||||||
|
|
||||||
extern int JsonLoadStr(json_t *root, char *path, char *value);
|
int JsonLoadStr(json_t *root, char *path, char *value);
|
||||||
extern int JsonLoadBufAsHex(json_t *elm, char *path, uint8_t *data, size_t maxbufferlen, size_t *datalen);
|
int JsonLoadBufAsHex(json_t *elm, char *path, uint8_t *data, size_t maxbufferlen, size_t *datalen);
|
||||||
|
|
||||||
extern bool ParamLoadFromJson(struct tlvdb *tlv);
|
bool ParamLoadFromJson(struct tlvdb *tlv);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -15,4 +15,4 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
extern int exec_cda_test(bool verbose);
|
int exec_cda_test(bool verbose);
|
||||||
|
|
|
@ -15,4 +15,4 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
extern int exec_crypto_test(bool verbose);
|
int exec_crypto_test(bool verbose);
|
||||||
|
|
|
@ -10,4 +10,4 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
extern int ExecuteCryptoTests(bool verbose);
|
int ExecuteCryptoTests(bool verbose);
|
||||||
|
|
|
@ -15,4 +15,4 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#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.
|
* 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_if(r) if ((r) != CborNoError) {return r;} else
|
||||||
#define cbor_check(r) if ((r) != CborNoError) return r;
|
#define cbor_check(r) if ((r) != CborNoError) return r;
|
||||||
|
|
||||||
extern int TinyCborPrintFIDOPackage(uint8_t cmdCode, bool isResponse, uint8_t *data, size_t length);
|
int TinyCborPrintFIDOPackage(uint8_t cmdCode, bool isResponse, uint8_t *data, size_t length);
|
||||||
extern int JsonToCbor(json_t *elm, CborEncoder *encoder);
|
int JsonToCbor(json_t *elm, CborEncoder *encoder);
|
||||||
|
|
||||||
extern int CborMapGetKeyById(CborParser *parser, CborValue *map, uint8_t *data, size_t dataLen, int key);
|
int CborMapGetKeyById(CborParser *parser, CborValue *map, uint8_t *data, size_t dataLen, int key);
|
||||||
extern CborError CborGetArrayBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
CborError CborGetArrayBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
||||||
extern CborError CborGetArrayBinStringValueEx(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen, uint8_t *delimeter, size_t delimeterlen);
|
CborError CborGetArrayBinStringValueEx(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen, uint8_t *delimeter, size_t delimeterlen);
|
||||||
extern CborError CborGetBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
CborError CborGetBinStringValue(CborValue *elm, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
||||||
extern CborError CborGetArrayStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen, char *delimeter);
|
CborError CborGetArrayStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen, char *delimeter);
|
||||||
extern CborError CborGetStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen);
|
CborError CborGetStringValue(CborValue *elm, char *data, size_t maxdatalen, size_t *datalen);
|
||||||
extern CborError CborGetStringValueBuf(CborValue *elm);
|
CborError CborGetStringValueBuf(CborValue *elm);
|
||||||
|
|
||||||
extern int CBOREncodeElm(json_t *root, char *rootElmId, CborEncoder *encoder);
|
int CBOREncodeElm(json_t *root, char *rootElmId, CborEncoder *encoder);
|
||||||
extern CborError CBOREncodeClientDataHash(json_t *root, CborEncoder *encoder);
|
CborError CBOREncodeClientDataHash(json_t *root, CborEncoder *encoder);
|
||||||
|
|
||||||
#endif /* __CBORTOOLS_H__ */
|
#endif /* __CBORTOOLS_H__ */
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <cbor.h>
|
#include <cbor.h>
|
||||||
|
|
||||||
extern const char *GetCOSEAlgName(int id);
|
const char *GetCOSEAlgName(int id);
|
||||||
extern const char *GetCOSEAlgDescription(int id);
|
const char *GetCOSEAlgDescription(int id);
|
||||||
extern const char *GetCOSEktyDescription(int id);
|
const char *GetCOSEktyDescription(int id);
|
||||||
extern const char *GetCOSECurveDescription(int id);
|
const char *GetCOSECurveDescription(int id);
|
||||||
|
|
||||||
extern int COSEGetECDSAKey(uint8_t *data, size_t datalen, bool verbose, uint8_t *public_key);
|
int COSEGetECDSAKey(uint8_t *data, size_t datalen, bool verbose, uint8_t *public_key);
|
||||||
|
|
||||||
#endif /* __COSE_H__ */
|
#endif /* __COSE_H__ */
|
||||||
|
|
|
@ -35,23 +35,23 @@ typedef enum {
|
||||||
ptResponse,
|
ptResponse,
|
||||||
} fido2PacketType;
|
} fido2PacketType;
|
||||||
|
|
||||||
extern int FIDOSelect(bool ActivateField, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDOSelect(bool ActivateField, bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int FIDOExchange(sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDOExchange(sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int FIDORegister(uint8_t *params, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDORegister(uint8_t *params, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int FIDOAuthentication(uint8_t *params, uint8_t paramslen, uint8_t controlb, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDOAuthentication(uint8_t *params, uint8_t paramslen, uint8_t controlb, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int FIDO2GetInfo(uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDO2GetInfo(uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int FIDO2MakeCredential(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDO2MakeCredential(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
extern int FIDO2GetAssertion(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
int FIDO2GetAssertion(uint8_t *params, uint8_t paramslen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
|
||||||
|
|
||||||
extern int FIDOCheckDERAndGetKey(uint8_t *der, size_t derLen, bool verbose, uint8_t *publicKey, size_t publicKeyMaxLen);
|
int FIDOCheckDERAndGetKey(uint8_t *der, size_t derLen, bool verbose, uint8_t *publicKey, size_t publicKeyMaxLen);
|
||||||
|
|
||||||
extern char *fido2GetCmdMemberDescription(uint8_t cmdCode, bool isResponse, int memberNum);
|
char *fido2GetCmdMemberDescription(uint8_t cmdCode, bool isResponse, int memberNum);
|
||||||
extern char *fido2GetCmdErrorDescription(uint8_t errorCode);
|
char *fido2GetCmdErrorDescription(uint8_t errorCode);
|
||||||
|
|
||||||
extern bool CheckrpIdHash(json_t *json, uint8_t *hash);
|
bool CheckrpIdHash(json_t *json, uint8_t *hash);
|
||||||
extern int FIDO2CreateMakeCredentionalReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
int FIDO2CreateMakeCredentionalReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen);
|
||||||
extern int FIDO2MakeCredentionalParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR, bool showDERTLV);
|
int FIDO2MakeCredentionalParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR, bool showDERTLV);
|
||||||
extern int FIDO2CreateGetAssertionReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen, bool createAllowList);
|
int FIDO2CreateGetAssertionReq(json_t *root, uint8_t *data, size_t maxdatalen, size_t *datalen, bool createAllowList);
|
||||||
extern int FIDO2GetAssertionParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR);
|
int FIDO2GetAssertionParseRes(json_t *root, uint8_t *data, size_t dataLen, bool verbose, bool verbose2, bool showCBOR);
|
||||||
|
|
||||||
#endif /* __FIDOCORE_H__ */
|
#endif /* __FIDOCORE_H__ */
|
||||||
|
|
|
@ -61,10 +61,10 @@ typedef enum {
|
||||||
SIMD_MMX,
|
SIMD_MMX,
|
||||||
SIMD_NONE,
|
SIMD_NONE,
|
||||||
} SIMDExecInstr;
|
} SIMDExecInstr;
|
||||||
extern void SetSIMDInstr(SIMDExecInstr instr);
|
void SetSIMDInstr(SIMDExecInstr instr);
|
||||||
extern SIMDExecInstr GetSIMDInstrAuto();
|
SIMDExecInstr GetSIMDInstrAuto();
|
||||||
|
|
||||||
extern const uint64_t crack_states_bitsliced(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonces_2nd_byte, noncelist_t *nonces);
|
const uint64_t crack_states_bitsliced(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonces_2nd_byte, noncelist_t *nonces);
|
||||||
extern void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par);
|
void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -52,18 +52,18 @@ THE SOFTWARE.
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
extern uint32_t *malloc_bitarray(uint32_t x);
|
uint32_t *malloc_bitarray(uint32_t x);
|
||||||
extern void free_bitarray(uint32_t *x);
|
void free_bitarray(uint32_t *x);
|
||||||
extern uint32_t bitcount(uint32_t a);
|
uint32_t bitcount(uint32_t a);
|
||||||
extern uint32_t count_states(uint32_t *A);
|
uint32_t count_states(uint32_t *A);
|
||||||
extern void bitarray_AND(uint32_t *A, uint32_t *B);
|
void bitarray_AND(uint32_t *A, uint32_t *B);
|
||||||
extern void bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
void bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
||||||
extern uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B);
|
uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B);
|
||||||
extern uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B);
|
||||||
extern void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
||||||
extern void bitarray_OR(uint32_t *A, uint32_t *B);
|
void bitarray_OR(uint32_t *A, uint32_t *B);
|
||||||
extern uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B);
|
uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B);
|
||||||
extern uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C);
|
uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C);
|
||||||
extern uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -27,10 +27,10 @@ typedef struct {
|
||||||
void *next;
|
void *next;
|
||||||
} statelist_t;
|
} statelist_t;
|
||||||
|
|
||||||
extern void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte);
|
void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte);
|
||||||
extern bool brute_force_bs(float *bf_rate, statelist_t *candidates, uint32_t cuid, uint32_t num_acquired_nonces, uint64_t maximum_states, noncelist_t *nonces, uint8_t *best_first_bytes, uint64_t *found_key);
|
bool brute_force_bs(float *bf_rate, statelist_t *candidates, uint32_t cuid, uint32_t num_acquired_nonces, uint64_t maximum_states, noncelist_t *nonces, uint8_t *best_first_bytes, uint64_t *found_key);
|
||||||
extern float brute_force_benchmark();
|
float brute_force_benchmark();
|
||||||
extern uint8_t trailing_zeros(uint8_t byte);
|
uint8_t trailing_zeros(uint8_t byte);
|
||||||
extern bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even);
|
bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -75,7 +75,7 @@ int fileExists(const char *filename);
|
||||||
* @param datalen the length of the data
|
* @param datalen the length of the data
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int saveFile(const char *preferredName, const char *suffix, const void *data, size_t datalen);
|
int saveFile(const char *preferredName, const char *suffix, const void *data, size_t datalen);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Utility function to save data to a textfile (EML). This method takes a preferred name, but if that
|
* @brief Utility function to save data to a textfile (EML). This method takes a preferred name, but if that
|
||||||
|
@ -89,7 +89,7 @@ extern int saveFile(const char *preferredName, const char *suffix, const void *d
|
||||||
* @param blocksize the length of one row
|
* @param blocksize the length of one row
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int saveFileEML(const char *preferredName, const char *suffix, uint8_t *data, size_t datalen, size_t blocksize);
|
int saveFileEML(const char *preferredName, const char *suffix, uint8_t *data, size_t datalen, size_t blocksize);
|
||||||
|
|
||||||
/** STUB
|
/** STUB
|
||||||
* @brief Utility function to save JSON data to a file. This method takes a preferred name, but if that
|
* @brief Utility function to save JSON data to a file. This method takes a preferred name, but if that
|
||||||
|
@ -103,7 +103,7 @@ extern int saveFileEML(const char *preferredName, const char *suffix, uint8_t *d
|
||||||
* @param datalen the length of the data
|
* @param datalen the length of the data
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int saveFileJSON(const char *preferredName, const char *suffix, JSONFileType ftype, uint8_t *data, size_t datalen);
|
int saveFileJSON(const char *preferredName, const char *suffix, JSONFileType ftype, uint8_t *data, size_t datalen);
|
||||||
|
|
||||||
/** STUB
|
/** STUB
|
||||||
* @brief Utility function to load data from a binary file. This method takes a preferred name.
|
* @brief Utility function to load data from a binary file. This method takes a preferred name.
|
||||||
|
@ -116,7 +116,7 @@ extern int saveFileJSON(const char *preferredName, const char *suffix, JSONFileT
|
||||||
* @param datalen the number of bytes loaded from file
|
* @param datalen the number of bytes loaded from file
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int loadFile(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen);
|
int loadFile(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Utility function to load data from a textfile (EML). This method takes a preferred name.
|
* @brief Utility function to load data from a textfile (EML). This method takes a preferred name.
|
||||||
|
@ -128,7 +128,7 @@ extern int loadFile(const char *preferredName, const char *suffix, void *data, s
|
||||||
* @param datalen the number of bytes loaded from file
|
* @param datalen the number of bytes loaded from file
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int loadFileEML(const char *preferredName, const char *suffix, void *data, size_t *datalen);
|
int loadFileEML(const char *preferredName, const char *suffix, void *data, size_t *datalen);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Utility function to load data from a JSON textfile. This method takes a preferred name.
|
* @brief Utility function to load data from a JSON textfile. This method takes a preferred name.
|
||||||
|
@ -141,7 +141,7 @@ extern int loadFileEML(const char *preferredName, const char *suffix, void *data
|
||||||
* @param datalen the number of bytes loaded from file
|
* @param datalen the number of bytes loaded from file
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int loadFileJSON(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen);
|
int loadFileJSON(const char *preferredName, const char *suffix, void *data, size_t maxdatalen, size_t *datalen);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -156,7 +156,7 @@ extern int loadFileJSON(const char *preferredName, const char *suffix, void *dat
|
||||||
* @param keylen the number of bytes a key per row is
|
* @param keylen the number of bytes a key per row is
|
||||||
* @return 0 for ok, 1 for failz
|
* @return 0 for ok, 1 for failz
|
||||||
*/
|
*/
|
||||||
extern int loadFileDICTIONARY(const char *preferredName, const char *suffix, void *data, size_t *datalen, uint8_t keylen, uint16_t *keycnt);
|
int loadFileDICTIONARY(const char *preferredName, const char *suffix, void *data, size_t *datalen, uint8_t keylen, uint16_t *keycnt);
|
||||||
|
|
||||||
#define PrintAndLogDevice(level, format, args...) PrintAndLogEx(level, format , ## args)
|
#define PrintAndLogDevice(level, format, args...) PrintAndLogEx(level, format , ## args)
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef HASH1_BRUTE_H
|
#ifndef HASH1_BRUTE_H
|
||||||
#define HASH1_BRUTE_H
|
#define HASH1_BRUTE_H
|
||||||
extern void brute_hash1();
|
void brute_hash1();
|
||||||
|
|
||||||
#endif // HASH1_BRUTE_H
|
#endif // HASH1_BRUTE_H
|
||||||
|
|
|
@ -20,10 +20,10 @@ typedef struct {
|
||||||
const char *Description;
|
const char *Description;
|
||||||
} madAIDDescr;
|
} madAIDDescr;
|
||||||
|
|
||||||
extern int MADCheck(uint8_t *sector0, uint8_t *sector10, bool verbose, bool *haveMAD2);
|
int MADCheck(uint8_t *sector0, uint8_t *sector10, bool verbose, bool *haveMAD2);
|
||||||
extern int MADDecode(uint8_t *sector0, uint8_t *sector10, uint16_t *mad, size_t *madlen);
|
int MADDecode(uint8_t *sector0, uint8_t *sector10, uint16_t *mad, size_t *madlen);
|
||||||
extern int MAD1DecodeAndPrint(uint8_t *sector, bool verbose, bool *haveMAD2);
|
int MAD1DecodeAndPrint(uint8_t *sector, bool verbose, bool *haveMAD2);
|
||||||
extern int MAD2DecodeAndPrint(uint8_t *sector, bool verbose);
|
int MAD2DecodeAndPrint(uint8_t *sector, bool verbose);
|
||||||
|
|
||||||
|
|
||||||
#endif // _MAD_H_
|
#endif // _MAD_H_
|
||||||
|
|
|
@ -19,12 +19,12 @@
|
||||||
#include "mifare.h"
|
#include "mifare.h"
|
||||||
#include "crapto1/crapto1.h"
|
#include "crapto1/crapto1.h"
|
||||||
|
|
||||||
extern uint32_t nonce2key(uint32_t uid, uint32_t nt, uint32_t nr, uint32_t ar, uint64_t par_info, uint64_t ks_info, uint64_t **keys);
|
uint32_t nonce2key(uint32_t uid, uint32_t nt, uint32_t nr, uint32_t ar, uint64_t par_info, uint64_t ks_info, uint64_t **keys);
|
||||||
extern bool mfkey32(nonces_t data, uint64_t *outputkey);
|
bool mfkey32(nonces_t data, uint64_t *outputkey);
|
||||||
extern bool mfkey32_moebius(nonces_t data, uint64_t *outputkey);
|
bool mfkey32_moebius(nonces_t data, uint64_t *outputkey);
|
||||||
extern int mfkey64(nonces_t data, uint64_t *outputkey);
|
int mfkey64(nonces_t data, uint64_t *outputkey);
|
||||||
|
|
||||||
extern int compare_uint64(const void *a, const void *b);
|
int compare_uint64(const void *a, const void *b);
|
||||||
extern uint32_t intersection(uint64_t *listA, uint64_t *listB);
|
uint32_t intersection(uint64_t *listA, uint64_t *listB);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -43,25 +43,25 @@ typedef struct {
|
||||||
char *description;
|
char *description;
|
||||||
} AccessConditions_t;
|
} AccessConditions_t;
|
||||||
|
|
||||||
extern void mfpSetVerboseMode(bool verbose);
|
void mfpSetVerboseMode(bool verbose);
|
||||||
extern const char *mfpGetErrorDescription(uint8_t errorCode);
|
const char *mfpGetErrorDescription(uint8_t errorCode);
|
||||||
|
|
||||||
extern int CalculateMAC(mf4Session *session, MACType_t mtype, uint8_t blockNum, uint8_t blockCount, uint8_t *data, int datalen, uint8_t *mac, bool verbose);
|
int CalculateMAC(mf4Session *session, MACType_t mtype, uint8_t blockNum, uint8_t blockCount, uint8_t *data, int datalen, uint8_t *mac, bool verbose);
|
||||||
extern int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool verbose);
|
int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool verbose);
|
||||||
|
|
||||||
extern int MFPWritePerso(uint8_t *keyNum, uint8_t *key, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
int MFPWritePerso(uint8_t *keyNum, uint8_t *key, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
||||||
extern int MFPCommitPerso(bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
int MFPCommitPerso(bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen);
|
||||||
extern int MFPReadBlock(mf4Session *session, bool plain, uint8_t blockNum, uint8_t blockCount, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
|
int MFPReadBlock(mf4Session *session, bool plain, uint8_t blockNum, uint8_t blockCount, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
|
||||||
extern int MFPWriteBlock(mf4Session *session, uint8_t blockNum, uint8_t *data, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
|
int MFPWriteBlock(mf4Session *session, uint8_t blockNum, uint8_t *data, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac);
|
||||||
extern int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *dataout, bool verbose);
|
int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *dataout, bool verbose);
|
||||||
|
|
||||||
extern char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data);
|
char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data);
|
||||||
|
|
||||||
extern uint8_t mfNumBlocksPerSector(uint8_t sectorNo);
|
uint8_t mfNumBlocksPerSector(uint8_t sectorNo);
|
||||||
extern uint8_t mfFirstBlockOfSector(uint8_t sectorNo);
|
uint8_t mfFirstBlockOfSector(uint8_t sectorNo);
|
||||||
extern uint8_t mfSectorTrailer(uint8_t blockNo);
|
uint8_t mfSectorTrailer(uint8_t blockNo);
|
||||||
extern bool mfIsSectorTrailer(uint8_t blockNo);
|
bool mfIsSectorTrailer(uint8_t blockNo);
|
||||||
extern uint8_t mfSectorNum(uint8_t blockNo);
|
uint8_t mfSectorNum(uint8_t blockNo);
|
||||||
|
|
||||||
|
|
||||||
#endif // mifare4.h
|
#endif // mifare4.h
|
||||||
|
|
|
@ -69,35 +69,35 @@ typedef struct {
|
||||||
|
|
||||||
extern char logHexFileName[FILE_PATH_SIZE];
|
extern char logHexFileName[FILE_PATH_SIZE];
|
||||||
|
|
||||||
extern int mfDarkside(uint8_t blockno, uint8_t key_type, uint64_t *key);
|
int mfDarkside(uint8_t blockno, uint8_t key_type, uint64_t *key);
|
||||||
extern int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *resultKeys, bool calibrate);
|
int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *resultKeys, bool calibrate);
|
||||||
extern int mfCheckKeys(uint8_t blockNo, uint8_t keyType, bool clear_trace, uint8_t keycnt, uint8_t *keyBlock, uint64_t *key);
|
int mfCheckKeys(uint8_t blockNo, uint8_t keyType, bool clear_trace, uint8_t keycnt, uint8_t *keyBlock, uint64_t *key);
|
||||||
extern int mfCheckKeys_fast(uint8_t sectorsCnt, uint8_t firstChunk, uint8_t lastChunk,
|
int mfCheckKeys_fast(uint8_t sectorsCnt, uint8_t firstChunk, uint8_t lastChunk,
|
||||||
uint8_t strategy, uint32_t size, uint8_t *keyBlock, sector_t *e_sector, bool use_flashmemory);
|
uint8_t strategy, uint32_t size, uint8_t *keyBlock, sector_t *e_sector, bool use_flashmemory);
|
||||||
extern int mfKeyBrute(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint64_t *resultkey);
|
int mfKeyBrute(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint64_t *resultkey);
|
||||||
|
|
||||||
extern int mfReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data);
|
int mfReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data);
|
||||||
|
|
||||||
extern int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);
|
int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||||
extern int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
|
int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||||
extern int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidth);
|
int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidth);
|
||||||
|
|
||||||
extern int mfCSetUID(uint8_t *uid, uint8_t *atqa, uint8_t *sak, uint8_t *oldUID, uint8_t wipecard);
|
int mfCSetUID(uint8_t *uid, uint8_t *atqa, uint8_t *sak, uint8_t *oldUID, uint8_t wipecard);
|
||||||
extern int mfCSetBlock(uint8_t blockNo, uint8_t *data, uint8_t *uid, uint8_t params);
|
int mfCSetBlock(uint8_t blockNo, uint8_t *data, uint8_t *uid, uint8_t params);
|
||||||
extern int mfCGetBlock(uint8_t blockNo, uint8_t *data, uint8_t params);
|
int mfCGetBlock(uint8_t blockNo, uint8_t *data, uint8_t params);
|
||||||
|
|
||||||
extern int mfTraceInit(uint8_t *tuid, uint8_t uidlen, uint8_t *atqa, uint8_t sak, bool wantSaveToEmlFile);
|
int mfTraceInit(uint8_t *tuid, uint8_t uidlen, uint8_t *atqa, uint8_t sak, bool wantSaveToEmlFile);
|
||||||
extern int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile);
|
int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile);
|
||||||
|
|
||||||
extern int isTraceCardEmpty(void);
|
int isTraceCardEmpty(void);
|
||||||
extern int isBlockEmpty(int blockN);
|
int isBlockEmpty(int blockN);
|
||||||
extern int isBlockTrailer(int blockN);
|
int isBlockTrailer(int blockN);
|
||||||
extern int loadTraceCard(uint8_t *tuid, uint8_t uidlen);
|
int loadTraceCard(uint8_t *tuid, uint8_t uidlen);
|
||||||
extern int saveTraceCard(void);
|
int saveTraceCard(void);
|
||||||
extern int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len);
|
int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len);
|
||||||
|
|
||||||
extern int detect_classic_prng(void);
|
int detect_classic_prng(void);
|
||||||
extern int detect_classic_nackbug(bool verbose);
|
int detect_classic_nackbug(bool verbose);
|
||||||
extern void detect_classic_magic(void);
|
void detect_classic_magic(void);
|
||||||
extern void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool isEncrypted);
|
void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool isEncrypted);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -57,6 +57,6 @@ typedef struct {
|
||||||
uint8_t *ID;
|
uint8_t *ID;
|
||||||
} NDEFHeader_t;
|
} NDEFHeader_t;
|
||||||
|
|
||||||
extern int NDEFDecodeAndPrint(uint8_t *ndef, size_t ndefLen, bool verbose);
|
int NDEFDecodeAndPrint(uint8_t *ndef, size_t ndefLen, bool verbose);
|
||||||
|
|
||||||
#endif // _NDEF_H_
|
#endif // _NDEF_H_
|
||||||
|
|
|
@ -35,7 +35,7 @@ extern int offline;
|
||||||
extern bool GridLocked;
|
extern bool GridLocked;
|
||||||
|
|
||||||
//Operations defined in data_operations
|
//Operations defined in data_operations
|
||||||
//extern int autoCorr(const int* in, int *out, size_t len, int window);
|
//int autoCorr(const int* in, int *out, size_t len, int window);
|
||||||
int AskEdgeDetect(const int *in, int *out, int len, int threshold);
|
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 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);
|
int directionalThreshold(const int *in, int *out, size_t len, int8_t up, int8_t down);
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
typedef BMP_T bmp_t;
|
typedef BMP_T bmp_t;
|
||||||
|
|
||||||
extern int bmpbit, bmpsub;
|
extern int bmpbit, bmpsub;
|
||||||
extern void setbmp(void);
|
void setbmp(void);
|
||||||
|
|
||||||
/* poly.c */
|
/* poly.c */
|
||||||
#define P_REFIN 1
|
#define P_REFIN 1
|
||||||
|
@ -139,41 +139,41 @@ typedef struct {
|
||||||
/* left-justified in each word */
|
/* left-justified in each word */
|
||||||
} poly_t;
|
} poly_t;
|
||||||
|
|
||||||
extern poly_t filtop(FILE *input, unsigned long length, int flags, int bperhx);
|
poly_t filtop(FILE *input, unsigned long length, int flags, int bperhx);
|
||||||
extern poly_t strtop(const char *string, int flags, int bperhx);
|
poly_t strtop(const char *string, int flags, int bperhx);
|
||||||
extern char *ptostr(const poly_t poly, int flags, int bperhx);
|
char *ptostr(const poly_t poly, int flags, int bperhx);
|
||||||
extern char *pxsubs(const poly_t poly, int flags, int bperhx, unsigned long start, unsigned long end);
|
char *pxsubs(const poly_t poly, int flags, int bperhx, unsigned long start, unsigned long end);
|
||||||
extern poly_t pclone(const poly_t poly);
|
poly_t pclone(const poly_t poly);
|
||||||
extern void pcpy(poly_t *dest, const poly_t src);
|
void pcpy(poly_t *dest, const poly_t src);
|
||||||
extern void pcanon(poly_t *poly);
|
void pcanon(poly_t *poly);
|
||||||
extern void pnorm(poly_t *poly);
|
void pnorm(poly_t *poly);
|
||||||
extern void psnorm(poly_t *poly);
|
void psnorm(poly_t *poly);
|
||||||
extern void pchop(poly_t *poly);
|
void pchop(poly_t *poly);
|
||||||
extern void pkchop(poly_t *poly);
|
void pkchop(poly_t *poly);
|
||||||
extern unsigned long plen(const poly_t poly);
|
unsigned long plen(const poly_t poly);
|
||||||
extern int pcmp(const poly_t *a, const poly_t *b);
|
int pcmp(const poly_t *a, const poly_t *b);
|
||||||
extern int psncmp(const poly_t *a, const poly_t *b);
|
int psncmp(const poly_t *a, const poly_t *b);
|
||||||
extern int ptst(const poly_t poly);
|
int ptst(const poly_t poly);
|
||||||
extern unsigned long pfirst(const poly_t poly);
|
unsigned long pfirst(const poly_t poly);
|
||||||
extern unsigned long plast(const poly_t poly);
|
unsigned long plast(const poly_t poly);
|
||||||
extern poly_t psubs(const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
|
poly_t psubs(const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
|
||||||
extern void pright(poly_t *poly, unsigned long length);
|
void pright(poly_t *poly, unsigned long length);
|
||||||
extern void pshift(poly_t *dest, const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
|
void pshift(poly_t *dest, const poly_t src, unsigned long head, unsigned long start, unsigned long end, unsigned long tail);
|
||||||
extern void ppaste(poly_t *dest, const poly_t src, unsigned long skip, unsigned long seek, unsigned long end, unsigned long fulllength);
|
void ppaste(poly_t *dest, const poly_t src, unsigned long skip, unsigned long seek, unsigned long end, unsigned long fulllength);
|
||||||
extern void pdiff(poly_t *dest, const poly_t src, unsigned long ofs);
|
void pdiff(poly_t *dest, const poly_t src, unsigned long ofs);
|
||||||
extern void psum(poly_t *dest, const poly_t src, unsigned long ofs);
|
void psum(poly_t *dest, const poly_t src, unsigned long ofs);
|
||||||
extern void prev(poly_t *poly);
|
void prev(poly_t *poly);
|
||||||
extern void prevch(poly_t *poly, int bperhx);
|
void prevch(poly_t *poly, int bperhx);
|
||||||
extern void prcp(poly_t *poly);
|
void prcp(poly_t *poly);
|
||||||
extern void pinv(poly_t *poly);
|
void pinv(poly_t *poly);
|
||||||
extern poly_t pmod(const poly_t dividend, const poly_t divisor);
|
poly_t pmod(const poly_t dividend, const poly_t divisor);
|
||||||
extern poly_t pcrc(const poly_t message, const poly_t divisor, const poly_t init, const poly_t xorout, int flags);
|
poly_t pcrc(const poly_t message, const poly_t divisor, const poly_t init, const poly_t xorout, int flags);
|
||||||
extern int piter(poly_t *poly);
|
int piter(poly_t *poly);
|
||||||
extern void palloc(poly_t *poly, unsigned long length);
|
void palloc(poly_t *poly, unsigned long length);
|
||||||
extern void pfree(poly_t *poly);
|
void pfree(poly_t *poly);
|
||||||
extern void praloc(poly_t *poly, unsigned long length);
|
void praloc(poly_t *poly, unsigned long length);
|
||||||
extern int pmpar(const poly_t poly, const poly_t mask);
|
int pmpar(const poly_t poly, const poly_t mask);
|
||||||
extern int pident(const poly_t a, const poly_t b);
|
int pident(const poly_t a, const poly_t b);
|
||||||
|
|
||||||
/* model.c */
|
/* model.c */
|
||||||
|
|
||||||
|
@ -190,23 +190,23 @@ typedef struct {
|
||||||
const char *name; /* optional canonical name of the model */
|
const char *name; /* optional canonical name of the model */
|
||||||
} model_t;
|
} model_t;
|
||||||
|
|
||||||
extern void mcpy(model_t *dest, const model_t *src);
|
void mcpy(model_t *dest, const model_t *src);
|
||||||
extern void mfree(model_t *model);
|
void mfree(model_t *model);
|
||||||
extern int mcmp(const model_t *a, const model_t *b);
|
int mcmp(const model_t *a, const model_t *b);
|
||||||
extern char *mtostr(const model_t *model);
|
char *mtostr(const model_t *model);
|
||||||
extern void mcanon(model_t *model);
|
void mcanon(model_t *model);
|
||||||
extern void mcheck(model_t *model);
|
void mcheck(model_t *model);
|
||||||
extern void mrev(model_t *model);
|
void mrev(model_t *model);
|
||||||
extern void mnovel(model_t *model);
|
void mnovel(model_t *model);
|
||||||
|
|
||||||
/* preset.c */
|
/* preset.c */
|
||||||
#define M_OVERWR 1
|
#define M_OVERWR 1
|
||||||
|
|
||||||
extern int mbynam(model_t *dest, const char *key);
|
int mbynam(model_t *dest, const char *key);
|
||||||
extern void mbynum(model_t *dest, int num);
|
void mbynum(model_t *dest, int num);
|
||||||
extern int mcount(void);
|
int mcount(void);
|
||||||
extern char *mnames(void);
|
char *mnames(void);
|
||||||
extern void mmatch(model_t *model, int flags);
|
void mmatch(model_t *model, int flags);
|
||||||
|
|
||||||
/* reveng.c */
|
/* reveng.c */
|
||||||
#define R_HAVEP 1
|
#define R_HAVEP 1
|
||||||
|
@ -218,7 +218,7 @@ extern void mmatch(model_t *model, int flags);
|
||||||
|
|
||||||
#define R_SPMASK 0x7FFFFFFUL
|
#define R_SPMASK 0x7FFFFFFUL
|
||||||
|
|
||||||
extern model_t *reveng(const model_t *guess, const poly_t qpoly, int rflags, int args, const poly_t *argpolys);
|
model_t *reveng(const model_t *guess, const poly_t qpoly, int rflags, int args, const poly_t *argpolys);
|
||||||
|
|
||||||
/* cli.c */
|
/* cli.c */
|
||||||
#define C_INFILE 1
|
#define C_INFILE 1
|
||||||
|
@ -228,9 +228,9 @@ extern model_t *reveng(const model_t *guess, const poly_t qpoly, int rflags, int
|
||||||
|
|
||||||
#define BUFFER 32768
|
#define BUFFER 32768
|
||||||
|
|
||||||
extern int reveng_main(int argc, char *argv[]);
|
int reveng_main(int argc, char *argv[]);
|
||||||
extern void ufound(const model_t *model);
|
void ufound(const model_t *model);
|
||||||
extern void uerror(const char *msg);
|
void uerror(const char *msg);
|
||||||
extern void uprog(const poly_t gpoly, int flags, unsigned long seq);
|
void uprog(const poly_t gpoly, int flags, unsigned long seq);
|
||||||
|
|
||||||
#endif /* REVENG_H */
|
#endif /* REVENG_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue