codestyle prefer calloc

This commit is contained in:
iceman1001 2021-05-19 18:07:19 +02:00
commit 8bf5a99bca
2 changed files with 30 additions and 32 deletions

View file

@ -1293,7 +1293,6 @@ static int mifare_desfire_change_key(uint8_t key_no, uint8_t *new_key, uint8_t n
memcpy(&data[1], p, cmdcnt); memcpy(&data[1], p, cmdcnt);
apdu.data = data; apdu.data = data;
uint32_t recv_len = 0; uint32_t recv_len = 0;
uint16_t sw = 0; uint16_t sw = 0;
@ -1303,7 +1302,7 @@ static int mifare_desfire_change_key(uint8_t key_no, uint8_t *new_key, uint8_t n
int res = send_desfire_cmd(&apdu, false, NULL, &recv_len, &sw, 0, true); int res = send_desfire_cmd(&apdu, false, NULL, &recv_len, &sw, 0, true);
if (res != PM3_SUCCESS) { if (res != PM3_SUCCESS) {
PrintAndLogEx(WARNING, _RED_(" Can't change key -> %s"), GetErrorString(res, &sw)); PrintAndLogEx(WARNING, _RED_("can't change key -> %s"), GetErrorString(res, &sw));
DropFieldDesfire(); DropFieldDesfire();
return res; return res;
} }
@ -2044,7 +2043,7 @@ static int handler_desfire_deletefile(uint8_t file_no) {
return res; return res;
} }
static int handler_desfire_clearrecordfile(uint8_t file_no) { static int handler_desfire_clear_record_file(uint8_t file_no) {
if (file_no > 0x1F) if (file_no > 0x1F)
return PM3_EINVARG; return PM3_EINVARG;
@ -2664,7 +2663,7 @@ static int CmdHF14ADesClearRecordFile(const char *Cmd) {
return PM3_ESOFT; return PM3_ESOFT;
} }
int res = handler_desfire_clearrecordfile(fno); int res = handler_desfire_clear_record_file(fno);
if (res == PM3_SUCCESS) { if (res == PM3_SUCCESS) {
PrintAndLogEx(SUCCESS, "Successfully cleared record file."); PrintAndLogEx(SUCCESS, "Successfully cleared record file.");
} else { } else {
@ -4088,18 +4087,9 @@ static int CmdHF14ADesBruteApps(const char *Cmd) {
} }
static int CmdHF14ADesChangeKey(const char *Cmd) { static int CmdHF14ADesChangeKey(const char *Cmd) {
//DropFieldDesfire();
// NR DESC KEYLENGHT
// ------------------------
// 1 = DES 8
// 2 = 3DES 16
// 3 = 3K 3DES 24
// 4 = AES 16
uint8_t keylength = 8;
uint8_t newkeylength = 8;
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "hf mfdes changekey", CLIParserInit(&ctx, "hf mfdes changekey",
"Changes MIFARE DESFire Key\n" "Change MIFARE DESFire Key.\n"
"Make sure to select aid or authenticate aid before running this command.", "Make sure to select aid or authenticate aid before running this command.",
"hf mfdes changekey -n 0 -t 1 -k 0000000000000000 -u 1 -j 0102030405060708 -> DES, keynumber 0" "hf mfdes changekey -n 0 -t 1 -k 0000000000000000 -u 1 -j 0102030405060708 -> DES, keynumber 0"
); );
@ -4130,6 +4120,14 @@ static int CmdHF14ADesChangeKey(const char *Cmd) {
uint8_t aesversion = arg_get_int_def(ctx, 6, 0); uint8_t aesversion = arg_get_int_def(ctx, 6, 0);
CLIParserFree(ctx); CLIParserFree(ctx);
//DropFieldDesfire();
// NR DESC KEYLENGHT
// ------------------------
// 1 = DES 8
// 2 = 3DES 16
// 3 = 3K 3DES 24
// 4 = AES 16
uint8_t keylength = 8;
if (cmdAuthAlgo == MFDES_ALGO_AES) { if (cmdAuthAlgo == MFDES_ALGO_AES) {
keylength = 16; keylength = 16;
} else if (cmdAuthAlgo == MFDES_ALGO_3DES) { } else if (cmdAuthAlgo == MFDES_ALGO_3DES) {
@ -4140,6 +4138,7 @@ static int CmdHF14ADesChangeKey(const char *Cmd) {
keylength = 24; keylength = 24;
} }
uint8_t newkeylength = 8;
if (newcmdAuthAlgo == MFDES_ALGO_AES) { if (newcmdAuthAlgo == MFDES_ALGO_AES) {
newkeylength = 16; newkeylength = 16;
} else if (newcmdAuthAlgo == MFDES_ALGO_3DES) { } else if (newcmdAuthAlgo == MFDES_ALGO_3DES) {
@ -4151,37 +4150,36 @@ static int CmdHF14ADesChangeKey(const char *Cmd) {
} }
if (res_klen || (keylen < 8) || (keylen > 24)) { if (res_klen || (keylen < 8) || (keylen > 24)) {
PrintAndLogEx(ERR, "Specified key must have %d bytes length.", keylen); PrintAndLogEx(ERR, "Specified key must have %d bytes length", keylen);
return PM3_EINVARG; return PM3_EINVARG;
} }
if (res_newklen || (newkeylen < 8) || (newkeylen > 24)) { if (res_newklen || (newkeylen < 8) || (newkeylen > 24)) {
PrintAndLogEx(ERR, "Specified key must have %d bytes length.", newkeylen); PrintAndLogEx(ERR, "Specified new key must have %d bytes length", newkeylen);
return PM3_EINVARG; return PM3_EINVARG;
} }
if (keylen != keylength) { if (keylen != keylength) {
PrintAndLogEx(WARNING, "Key must include %d HEX symbols", keylength); PrintAndLogEx(WARNING, "Key must include %d hex symbols, got %d", keylength, keylen);
return PM3_EINVARG; return PM3_EINVARG;
} }
if (newkeylen != newkeylength) { if (newkeylen != newkeylength) {
PrintAndLogEx(WARNING, "New key must include %d HEX symbols", keylength); PrintAndLogEx(WARNING, "New key must include %d hex symbols, got %d", keylength, newkeylen);
return PM3_EINVARG; return PM3_EINVARG;
} }
PrintAndLogEx(INFO, "changing key number 0x%02x", cmdKeyNo); PrintAndLogEx(INFO, "changing key number " _YELLOW_("0x%02x"), cmdKeyNo);
PrintAndLogEx(INFO, "old key: %s (%s)", sprint_hex_inrow(key, keylen), getEncryptionAlgoStr(cmdAuthAlgo)); PrintAndLogEx(INFO, "old key: %s ( %s )", sprint_hex_inrow(key, keylen), getEncryptionAlgoStr(cmdAuthAlgo));
PrintAndLogEx(INFO, "new key: %s (%s)", sprint_hex_inrow(newkey, newkeylen), getEncryptionAlgoStr(newcmdAuthAlgo)); PrintAndLogEx(INFO, "new key: %s ( %s )", sprint_hex_inrow(newkey, newkeylen), getEncryptionAlgoStr(newcmdAuthAlgo));
int error = mifare_desfire_change_key(cmdKeyNo, newkey, newcmdAuthAlgo, key, cmdAuthAlgo, aesversion); int res = mifare_desfire_change_key(cmdKeyNo, newkey, newcmdAuthAlgo, key, cmdAuthAlgo, aesversion);
if (error == PM3_SUCCESS) { if (res == PM3_SUCCESS) {
PrintAndLogEx(SUCCESS, " Successfully changed key."); PrintAndLogEx(SUCCESS, "Change key ( " _GREEN_("ok") " )");
} else { } else {
PrintAndLogEx(SUCCESS, " Error on changing key."); PrintAndLogEx(FAILED, "Change key ( " _RED_("fail") " )");
return PM3_ESOFT;
} }
return PM3_SUCCESS; return res;
} }

View file

@ -285,7 +285,7 @@ void cmac(const desfirekey_t key, uint8_t *ivect, const uint8_t *data, size_t le
return; return;
} }
uint8_t *buffer = malloc(padded_data_length(len, kbs)); uint8_t *buffer = calloc(padded_data_length(len, kbs), sizeof(uint8_t));
memcpy(buffer, data, len); memcpy(buffer, data, len);
@ -315,8 +315,8 @@ void mifare_kdf_an10922(const desfirekey_t key, const uint8_t *data, size_t len)
cmac_generate_subkeys(key, MCD_SEND); cmac_generate_subkeys(key, MCD_SEND);
uint8_t *buffer = malloc(kbs2); uint8_t *buffer = calloc(kbs2, sizeof(uint8_t));
uint8_t *ivect = malloc(kbs); uint8_t *ivect = calloc(kbs, sizeof(uint8_t));
memset(ivect, 0, kbs); memset(ivect, 0, kbs);
@ -556,7 +556,7 @@ void *mifare_cryto_postprocess_data(desfiretag_t tag, void *data, size_t *nbytes
void *res = data; void *res = data;
void *edata = NULL; void *edata = NULL;
tag->crypto_buffer_size = *nbytes * 2; tag->crypto_buffer_size = *nbytes * 2;
tag->crypto_buffer = (uint8_t *)malloc(tag->crypto_buffer_size); tag->crypto_buffer = (uint8_t *)calloc(tag->crypto_buffer_size, sizeof(uint8_t));
uint8_t first_cmac_byte = 0x00; uint8_t first_cmac_byte = 0x00;
@ -592,7 +592,7 @@ void *mifare_cryto_postprocess_data(desfiretag_t tag, void *data, size_t *nbytes
} }
size_t edl = enciphered_data_length(tag, *nbytes, communication_settings); size_t edl = enciphered_data_length(tag, *nbytes, communication_settings);
edata = malloc(edl); edata = calloc(edl, sizeof(uint8_t));
memcpy(edata, data, *nbytes); memcpy(edata, data, *nbytes);
memset((uint8_t *)edata + *nbytes, 0, edl - *nbytes); memset((uint8_t *)edata + *nbytes, 0, edl - *nbytes);