remove double padding

This commit is contained in:
merlokk 2021-07-19 19:54:51 +03:00
parent b6a65405a0
commit b415ee086d
2 changed files with 4 additions and 5 deletions

View file

@ -4997,7 +4997,7 @@ static int CmdHF14ADesChangeKey(const char *Cmd) {
}
DesfireSetCommMode(&dctx, DCMEncryptedPlain);
res = DesfireChangeKey(&dctx, (appid == 0x000000), newkeynum, newkeytype, newkeyver, newkey, oldkeytype, oldkey, true);
res = DesfireChangeKey(&dctx, (appid == 0x000000) && (newkeynum == 0) && (dctx.keyNum == 0), newkeynum, newkeytype, newkeyver, newkey, oldkeytype, oldkey, true);
if (res == PM3_SUCCESS) {
PrintAndLogEx(SUCCESS, "Change key " _GREEN_("ok") " ");
} else {

View file

@ -1163,15 +1163,14 @@ int DesfireChangeKey(DesfireContext *dctx, bool change_master_key, uint8_t newke
}
}
// get padded data length
size_t rlen = padded_data_length(cdatalen, desfire_get_key_block_length(newkeytype));
// send command
uint8_t resp[257] = {0};
size_t resplen = 0;
int res = DesfireChangeKeyCmd(dctx, &pckcdata[1], rlen + 1, resp, &resplen);
int res = DesfireChangeKeyCmd(dctx, &pckcdata[1], cdatalen, resp, &resplen);
// check response
if (res == 0 && resplen > 0)
res = -20;
// clear auth
if (newkeynum == dctx->keyNum)