mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
cppcheck
This commit is contained in:
parent
c857cf49f3
commit
f428b016c1
5 changed files with 26 additions and 27 deletions
|
@ -437,27 +437,27 @@ static int json_doit(struct frozen *f) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int json_escape(struct json_out *out, const char *p, size_t len) WEAK;
|
int json_escape(struct json_out *out, const char *p, size_t len) WEAK;
|
||||||
int json_escape(struct json_out *out, const char *p, size_t len) {
|
int json_escape(struct json_out *out, const char *str, size_t str_len) {
|
||||||
size_t i, cl, n = 0;
|
size_t i, cl, n = 0;
|
||||||
const char *hex_digits = "0123456789abcdef";
|
const char *hex_digits = "0123456789abcdef";
|
||||||
const char *specials = "btnvfr";
|
const char *specials = "btnvfr";
|
||||||
|
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < str_len; i++) {
|
||||||
unsigned char ch = ((unsigned char *) p)[i];
|
unsigned char ch = ((unsigned char *) str)[i];
|
||||||
if (ch == '"' || ch == '\\') {
|
if (ch == '"' || ch == '\\') {
|
||||||
n += out->printer(out, "\\", 1);
|
n += out->printer(out, "\\", 1);
|
||||||
n += out->printer(out, p + i, 1);
|
n += out->printer(out, str + i, 1);
|
||||||
} else if (ch >= '\b' && ch <= '\r') {
|
} else if (ch >= '\b' && ch <= '\r') {
|
||||||
n += out->printer(out, "\\", 1);
|
n += out->printer(out, "\\", 1);
|
||||||
n += out->printer(out, &specials[ch - '\b'], 1);
|
n += out->printer(out, &specials[ch - '\b'], 1);
|
||||||
} else if (c_isprint(ch)) {
|
} else if (c_isprint(ch)) {
|
||||||
n += out->printer(out, p + i, 1);
|
n += out->printer(out, str + i, 1);
|
||||||
} else if ((cl = json_get_utf8_char_len(ch)) == 1) {
|
} else if ((cl = json_get_utf8_char_len(ch)) == 1) {
|
||||||
n += out->printer(out, "\\u00", 4);
|
n += out->printer(out, "\\u00", 4);
|
||||||
n += out->printer(out, &hex_digits[(ch >> 4) % 0xf], 1);
|
n += out->printer(out, &hex_digits[(ch >> 4) % 0xf], 1);
|
||||||
n += out->printer(out, &hex_digits[ch % 0xf], 1);
|
n += out->printer(out, &hex_digits[ch % 0xf], 1);
|
||||||
} else {
|
} else {
|
||||||
n += out->printer(out, p + i, cl);
|
n += out->printer(out, str + i, cl);
|
||||||
i += cl - 1;
|
i += cl - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1032,8 +1032,8 @@ static void json_scanf_cb(void *callback_data, const char *name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int json_vscanf(const char *s, int len, const char *fmt, va_list ap) WEAK;
|
int json_vscanf(const char *str, int len, const char *fmt, va_list ap) WEAK;
|
||||||
int json_vscanf(const char *s, int len, const char *fmt, va_list ap) {
|
int json_vscanf(const char *str, int len, const char *fmt, va_list ap) {
|
||||||
char path[JSON_MAX_PATH_LEN] = "", fmtbuf[20];
|
char path[JSON_MAX_PATH_LEN] = "", fmtbuf[20];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
char *p = NULL;
|
char *p = NULL;
|
||||||
|
@ -1070,7 +1070,7 @@ int json_vscanf(const char *s, int len, const char *fmt, va_list ap) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
json_walk(s, len, json_scanf_cb, &info);
|
json_walk(str, len, json_scanf_cb, &info);
|
||||||
} else if (json_isalpha(fmt[i]) || json_get_utf8_char_len(fmt[i]) > 1) {
|
} else if (json_isalpha(fmt[i]) || json_get_utf8_char_len(fmt[i]) > 1) {
|
||||||
char *pe;
|
char *pe;
|
||||||
const char *delims = ": \r\n\t";
|
const char *delims = ": \r\n\t";
|
||||||
|
|
|
@ -144,7 +144,7 @@ typedef int (*json_printf_callback_t)(struct json_out *, va_list *ap);
|
||||||
* overflown bytes are not printed.
|
* overflown bytes are not printed.
|
||||||
*/
|
*/
|
||||||
int json_printf(struct json_out *, const char *fmt, ...);
|
int json_printf(struct json_out *, const char *fmt, ...);
|
||||||
int json_vprintf(struct json_out *, const char *fmt, va_list ap);
|
int json_vprintf(struct json_out *, const char *fmt, va_list xap);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Same as json_printf, but prints to a file.
|
* Same as json_printf, but prints to a file.
|
||||||
|
@ -212,8 +212,7 @@ typedef void (*json_scanner_t)(const char *str, int len, void *user_data);
|
||||||
* Fills `token` with the matched JSON token.
|
* Fills `token` with the matched JSON token.
|
||||||
* Return -1 if no array element found, otherwise non-negative token length.
|
* Return -1 if no array element found, otherwise non-negative token length.
|
||||||
*/
|
*/
|
||||||
int json_scanf_array_elem(const char *s, int len, const char *path, int index,
|
int json_scanf_array_elem(const char *s, int len, const char *path, int idx, struct json_token *token);
|
||||||
struct json_token *token);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unescape JSON-encoded string src,slen into dst, dlen.
|
* Unescape JSON-encoded string src,slen into dst, dlen.
|
||||||
|
|
|
@ -393,7 +393,7 @@ static int CmdHFMFPRdbl(const char *cmd) {
|
||||||
if (verbose)
|
if (verbose)
|
||||||
PrintAndLogEx(INFO, "--block:%d sector[%d]:%02x key:%04x", blockn, mfNumBlocksPerSector(sectorNum), sectorNum, uKeyNum);
|
PrintAndLogEx(INFO, "--block:%d sector[%d]:%02x key:%04x", blockn, mfNumBlocksPerSector(sectorNum), sectorNum, uKeyNum);
|
||||||
|
|
||||||
mf4Session mf4session;
|
mf4Session_t mf4session;
|
||||||
int res = MifareAuth4(&mf4session, keyn, key, true, true, true, verbose, false);
|
int res = MifareAuth4(&mf4session, keyn, key, true, true, true, verbose, false);
|
||||||
if (res) {
|
if (res) {
|
||||||
PrintAndLogEx(ERR, "Authentication error: %d", res);
|
PrintAndLogEx(ERR, "Authentication error: %d", res);
|
||||||
|
@ -492,7 +492,7 @@ static int CmdHFMFPRdsc(const char *cmd) {
|
||||||
if (verbose)
|
if (verbose)
|
||||||
PrintAndLogEx(INFO, "--sector[%d]:%02x key:%04x", mfNumBlocksPerSector(sectorNum), sectorNum, uKeyNum);
|
PrintAndLogEx(INFO, "--sector[%d]:%02x key:%04x", mfNumBlocksPerSector(sectorNum), sectorNum, uKeyNum);
|
||||||
|
|
||||||
mf4Session mf4session;
|
mf4Session_t mf4session;
|
||||||
int res = MifareAuth4(&mf4session, keyn, key, true, true, true, verbose, false);
|
int res = MifareAuth4(&mf4session, keyn, key, true, true, true, verbose, false);
|
||||||
if (res) {
|
if (res) {
|
||||||
PrintAndLogEx(ERR, "Authentication error: %d", res);
|
PrintAndLogEx(ERR, "Authentication error: %d", res);
|
||||||
|
@ -596,7 +596,7 @@ static int CmdHFMFPWrbl(const char *cmd) {
|
||||||
if (verbose)
|
if (verbose)
|
||||||
PrintAndLogEx(INFO, "--block:%d sector[%d]:%02x key:%04x", blockNum & 0xff, mfNumBlocksPerSector(sectorNum), sectorNum, uKeyNum);
|
PrintAndLogEx(INFO, "--block:%d sector[%d]:%02x key:%04x", blockNum & 0xff, mfNumBlocksPerSector(sectorNum), sectorNum, uKeyNum);
|
||||||
|
|
||||||
mf4Session mf4session;
|
mf4Session_t mf4session;
|
||||||
int res = MifareAuth4(&mf4session, keyn, key, true, true, true, verbose, false);
|
int res = MifareAuth4(&mf4session, keyn, key, true, true, true, verbose, false);
|
||||||
if (res) {
|
if (res) {
|
||||||
PrintAndLogEx(ERR, "Authentication error: %d", res);
|
PrintAndLogEx(ERR, "Authentication error: %d", res);
|
||||||
|
|
|
@ -95,7 +95,7 @@ const char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data) {
|
||||||
return StaticNone;
|
return StaticNone;
|
||||||
};
|
};
|
||||||
/*
|
/*
|
||||||
static int CalculateEncIVCommand(mf4Session *session, uint8_t *iv, bool verbose) {
|
static int CalculateEncIVCommand(mf4Session_t *session, uint8_t *iv, bool verbose) {
|
||||||
memcpy(&iv[0], session->TI, 4);
|
memcpy(&iv[0], session->TI, 4);
|
||||||
memcpy(&iv[4], &session->R_Ctr, 2);
|
memcpy(&iv[4], &session->R_Ctr, 2);
|
||||||
memcpy(&iv[6], &session->W_Ctr, 2);
|
memcpy(&iv[6], &session->W_Ctr, 2);
|
||||||
|
@ -120,8 +120,8 @@ static int CalculateEncIVResponse(mf4Session *session, uint8_t *iv, 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 CalculateMAC(mf4Session_t *session, MACType_t mtype, uint8_t blockNum, uint8_t blockCount, uint8_t *data, int datalen, uint8_t *mac, bool verbose) {
|
||||||
if (!session || !session->Authenticated || !mac || !data || !datalen || datalen < 1)
|
if (!session || !session->Authenticated || !mac || !data || !datalen)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
memset(mac, 0x00, 8);
|
memset(mac, 0x00, 8);
|
||||||
|
@ -168,7 +168,7 @@ int CalculateMAC(mf4Session *session, MACType_t mtype, uint8_t blockNum, uint8_t
|
||||||
return aes_cmac8(NULL, session->Kmac, macdata, mac, macdatalen);
|
return aes_cmac8(NULL, session->Kmac, macdata, mac, macdatalen);
|
||||||
}
|
}
|
||||||
|
|
||||||
int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool dropFieldIfError, bool verbose, bool silentMode) {
|
int MifareAuth4(mf4Session_t *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool dropFieldIfError, bool verbose, bool silentMode) {
|
||||||
uint8_t data[257] = {0};
|
uint8_t data[257] = {0};
|
||||||
int datalen = 0;
|
int datalen = 0;
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ int MFPCommitPerso(bool activateField, bool leaveSignalON, uint8_t *dataout, int
|
||||||
return intExchangeRAW14aPlus(rcmd, sizeof(rcmd), activateField, leaveSignalON, dataout, maxdataoutlen, dataoutlen);
|
return intExchangeRAW14aPlus(rcmd, sizeof(rcmd), activateField, leaveSignalON, dataout, maxdataoutlen, 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 MFPReadBlock(mf4Session_t *session, bool plain, uint8_t blockNum, uint8_t blockCount, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac) {
|
||||||
uint8_t rcmd[4 + 8] = {(plain ? (0x37) : (0x33)), blockNum, 0x00, blockCount};
|
uint8_t rcmd[4 + 8] = {(plain ? (0x37) : (0x33)), blockNum, 0x00, blockCount};
|
||||||
if (!plain && session)
|
if (!plain && session)
|
||||||
CalculateMAC(session, mtypReadCmd, blockNum, blockCount, rcmd, 4, &rcmd[4], VerboseMode);
|
CalculateMAC(session, mtypReadCmd, blockNum, blockCount, rcmd, 4, &rcmd[4], VerboseMode);
|
||||||
|
@ -353,7 +353,7 @@ int MFPReadBlock(mf4Session *session, bool plain, uint8_t blockNum, uint8_t bloc
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
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_t *session, uint8_t blockNum, uint8_t *data, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, uint8_t *mac) {
|
||||||
uint8_t rcmd[1 + 2 + 16 + 8] = {0xA3, blockNum, 0x00};
|
uint8_t rcmd[1 + 2 + 16 + 8] = {0xA3, blockNum, 0x00};
|
||||||
memmove(&rcmd[3], data, 16);
|
memmove(&rcmd[3], data, 16);
|
||||||
if (session)
|
if (session)
|
||||||
|
@ -382,7 +382,7 @@ int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data
|
||||||
if (verbose)
|
if (verbose)
|
||||||
PrintAndLogEx(INFO, "--sector[%d]:%02x key:%04x", mfNumBlocksPerSector(sectorNo), sectorNo, uKeyNum);
|
PrintAndLogEx(INFO, "--sector[%d]:%02x key:%04x", mfNumBlocksPerSector(sectorNo), sectorNo, uKeyNum);
|
||||||
|
|
||||||
mf4Session session;
|
mf4Session_t session;
|
||||||
int res = MifareAuth4(&session, keyn, key, true, true, true, verbose, false);
|
int res = MifareAuth4(&session, keyn, key, true, true, true, verbose, false);
|
||||||
if (res) {
|
if (res) {
|
||||||
PrintAndLogEx(ERR, "Sector %d authentication error: %d", sectorNo, res);
|
PrintAndLogEx(ERR, "Sector %d authentication error: %d", sectorNo, res);
|
||||||
|
|
|
@ -27,7 +27,7 @@ typedef struct {
|
||||||
uint8_t Kmac[16];
|
uint8_t Kmac[16];
|
||||||
uint16_t R_Ctr;
|
uint16_t R_Ctr;
|
||||||
uint16_t W_Ctr;
|
uint16_t W_Ctr;
|
||||||
} mf4Session;
|
} mf4Session_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
mtypReadCmd,
|
mtypReadCmd,
|
||||||
|
@ -44,13 +44,13 @@ typedef struct {
|
||||||
void mfpSetVerboseMode(bool verbose);
|
void mfpSetVerboseMode(bool verbose);
|
||||||
const char *mfpGetErrorDescription(uint8_t errorCode);
|
const char *mfpGetErrorDescription(uint8_t errorCode);
|
||||||
|
|
||||||
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_t *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 dropFieldIfError, bool verbose, bool silentMode);
|
int MifareAuth4(mf4Session_t *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool dropFieldIfError, bool verbose, bool silentMode);
|
||||||
|
|
||||||
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);
|
||||||
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);
|
||||||
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_t *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 MFPWriteBlock(mf4Session_t *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);
|
int mfpReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *dataout, bool verbose);
|
||||||
|
|
||||||
const char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data);
|
const char *mfGetAccessConditionsDesc(uint8_t blockn, uint8_t *data);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue