From 42b28500f453798b6c266abe9a06d71d3d5b8ec3 Mon Sep 17 00:00:00 2001 From: merlokk <807634+merlokk@users.noreply.github.com> Date: Thu, 19 Aug 2021 19:38:08 +0300 Subject: [PATCH] fix session key print --- client/src/mifare/desfirecore.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/client/src/mifare/desfirecore.c b/client/src/mifare/desfirecore.c index 67948d294..16565387a 100644 --- a/client/src/mifare/desfirecore.c +++ b/client/src/mifare/desfirecore.c @@ -398,11 +398,17 @@ void DesfirePrintContext(DesfireContext *ctx) { if (DesfireIsAuthenticated(ctx)) { - PrintAndLogEx(INFO, "Session key MAC [%d]: %s ", - desfire_get_key_length(ctx->keyType), - sprint_hex(ctx->sessionKeyMAC, desfire_get_key_length(ctx->keyType))); - PrintAndLogEx(INFO, " ENC: %s", - sprint_hex(ctx->sessionKeyEnc, desfire_get_key_length(ctx->keyType))); + if (memcmp(ctx->sessionKeyMAC, ctx->sessionKeyEnc, desfire_get_key_length(ctx->keyType)) == 0) { + PrintAndLogEx(INFO, "Session key [%d]: %s ", + desfire_get_key_length(ctx->keyType), + sprint_hex(ctx->sessionKeyEnc, desfire_get_key_length(ctx->keyType))); + } else { + PrintAndLogEx(INFO, "Session key MAC [%d]: %s ", + desfire_get_key_length(ctx->keyType), + sprint_hex(ctx->sessionKeyMAC, desfire_get_key_length(ctx->keyType))); + PrintAndLogEx(INFO, " ENC: %s", + sprint_hex(ctx->sessionKeyEnc, desfire_get_key_length(ctx->keyType))); + } PrintAndLogEx(INFO, " IV [%zu]: %s", desfire_get_key_block_length(ctx->keyType), sprint_hex(ctx->IV, desfire_get_key_block_length(ctx->keyType))); @@ -1526,8 +1532,7 @@ static int DesfireAuthenticateLRP(DesfireContext *dctx, DesfireSecureChannel sec } else { PrintAndLogEx(INFO, "TI : %s", sprint_hex(dctx->TI, 4)); } - PrintAndLogEx(INFO, "session key ENC: %s", sprint_hex(dctx->sessionKeyEnc, 16)); - PrintAndLogEx(INFO, "session key MAC: %s", sprint_hex(dctx->sessionKeyMAC, 16)); + PrintAndLogEx(INFO, "session key : %s", sprint_hex(dctx->sessionKeyEnc, 16)); } return PM3_SUCCESS;