mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-24 07:05:40 -07:00
move kdf part
This commit is contained in:
parent
797d878eb4
commit
f9b8ef5a6d
1 changed files with 16 additions and 16 deletions
|
@ -971,22 +971,6 @@ static int DesfireAuthenticateEV1(DesfireContext *dctx, DesfireSecureChannel sec
|
||||||
// Part 1
|
// Part 1
|
||||||
memcpy(keybytes, dctx->key, desfire_get_key_length(dctx->keyType));
|
memcpy(keybytes, dctx->key, desfire_get_key_length(dctx->keyType));
|
||||||
|
|
||||||
if (dctx->kdfAlgo == MFDES_KDF_ALGO_AN10922) {
|
|
||||||
MifareKdfAn10922(dctx, DCOMasterKey, dctx->kdfInput, dctx->kdfInputLen);
|
|
||||||
PrintAndLogEx(DEBUG, " Derrived key: " _GREEN_("%s"), sprint_hex(dctx->key, desfire_get_key_block_length(dctx->keyType)));
|
|
||||||
} else if (dctx->kdfAlgo == MFDES_KDF_ALGO_GALLAGHER) {
|
|
||||||
// We will overrite any provided KDF input since a gallagher specific KDF was requested.
|
|
||||||
dctx->kdfInputLen = 11;
|
|
||||||
|
|
||||||
if (mfdes_kdf_input_gallagher(dctx->uid, dctx->uidlen, dctx->keyNum, dctx->selectedAID, dctx->kdfInput, &dctx->kdfInputLen) != PM3_SUCCESS) {
|
|
||||||
PrintAndLogEx(FAILED, "Could not generate Gallagher KDF input");
|
|
||||||
}
|
|
||||||
PrintAndLogEx(INFO, " KDF Input: " _YELLOW_("%s"), sprint_hex(dctx->kdfInput, dctx->kdfInputLen));
|
|
||||||
|
|
||||||
MifareKdfAn10922(dctx, DCOMasterKey, dctx->kdfInput, dctx->kdfInputLen);
|
|
||||||
PrintAndLogEx(INFO, " Derrived key: " _GREEN_("%s"), sprint_hex(dctx->key, desfire_get_key_block_length(dctx->keyType)));
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t subcommand = MFDES_AUTHENTICATE;
|
uint8_t subcommand = MFDES_AUTHENTICATE;
|
||||||
if (secureChannel == DACEV1) {
|
if (secureChannel == DACEV1) {
|
||||||
if (dctx->keyType == T_AES)
|
if (dctx->keyType == T_AES)
|
||||||
|
@ -1312,6 +1296,22 @@ static int DesfireAuthenticateISO(DesfireContext *dctx, DesfireSecureChannel sec
|
||||||
}
|
}
|
||||||
|
|
||||||
int DesfireAuthenticate(DesfireContext *dctx, DesfireSecureChannel secureChannel, bool verbose) {
|
int DesfireAuthenticate(DesfireContext *dctx, DesfireSecureChannel secureChannel, bool verbose) {
|
||||||
|
if (dctx->kdfAlgo == MFDES_KDF_ALGO_AN10922) {
|
||||||
|
MifareKdfAn10922(dctx, DCOMasterKey, dctx->kdfInput, dctx->kdfInputLen);
|
||||||
|
PrintAndLogEx(DEBUG, " Derrived key: " _GREEN_("%s"), sprint_hex(dctx->key, desfire_get_key_block_length(dctx->keyType)));
|
||||||
|
} else if (dctx->kdfAlgo == MFDES_KDF_ALGO_GALLAGHER) {
|
||||||
|
// We will overrite any provided KDF input since a gallagher specific KDF was requested.
|
||||||
|
dctx->kdfInputLen = 11;
|
||||||
|
|
||||||
|
if (mfdes_kdf_input_gallagher(dctx->uid, dctx->uidlen, dctx->keyNum, dctx->selectedAID, dctx->kdfInput, &dctx->kdfInputLen) != PM3_SUCCESS) {
|
||||||
|
PrintAndLogEx(FAILED, "Could not generate Gallagher KDF input");
|
||||||
|
}
|
||||||
|
PrintAndLogEx(INFO, " KDF Input: " _YELLOW_("%s"), sprint_hex(dctx->kdfInput, dctx->kdfInputLen));
|
||||||
|
|
||||||
|
MifareKdfAn10922(dctx, DCOMasterKey, dctx->kdfInput, dctx->kdfInputLen);
|
||||||
|
PrintAndLogEx(INFO, " Derrived key: " _GREEN_("%s"), sprint_hex(dctx->key, desfire_get_key_block_length(dctx->keyType)));
|
||||||
|
}
|
||||||
|
|
||||||
if (dctx->cmdSet == DCCISO && secureChannel != DACEV2)
|
if (dctx->cmdSet == DCCISO && secureChannel != DACEV2)
|
||||||
return DesfireAuthenticateISO(dctx, secureChannel, verbose);
|
return DesfireAuthenticateISO(dctx, secureChannel, verbose);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue