diff --git a/client/src/cmdhfmfu.c b/client/src/cmdhfmfu.c index a34f702e9..e484384ab 100644 --- a/client/src/cmdhfmfu.c +++ b/client/src/cmdhfmfu.c @@ -2481,6 +2481,11 @@ static int CmdHF14AMfUInfo(const char *Cmd) { has_auth_key = true; } + if (use_schann && has_auth_key == false) { + PrintAndLogEx(WARNING, "Secure channel must be called with key"); + return PM3_EINVARG; + } + uint8_t authlim = 0xff; uint8_t data[16] = {0x00}; iso14a_card_select_t card; @@ -2941,6 +2946,11 @@ static int CmdHF14AMfUWrBl(const char *Cmd) { return PM3_EINVARG; } + if (use_schann && has_auth_key == false) { + PrintAndLogEx(WARNING, "Secure channel must be called with key"); + return PM3_EINVARG; + } + if (blockno < 0) { PrintAndLogEx(WARNING, "Wrong block number"); return PM3_EINVARG; @@ -3465,6 +3475,11 @@ static int CmdHF14AMfUDump(const char *Cmd) { return PM3_EINVARG; } + if (use_schann && has_auth_key == false) { + PrintAndLogEx(WARNING, "Secure channel must be called with key"); + return PM3_EINVARG; + } + bool manual_pages = false; if (start_page > 0) { manual_pages = true; @@ -3961,6 +3976,11 @@ static int CmdHF14AMfURestore(const char *Cmd) { } } + if (use_schann && has_key == false) { + PrintAndLogEx(WARNING, "Secure channel must be called with key"); + return PM3_EINVARG; + } + if (fnlen == 0) { char *fptr = mfu_generate_filename("hf-mfu-", "-dump.bin"); if (fptr != NULL) { @@ -6063,6 +6083,11 @@ int CmdHF14MfuNDEFRead(const char *Cmd) { return PM3_EINVARG; } + if (use_schann && has_auth_key == false) { + PrintAndLogEx(WARNING, "Secure channel must be called with key"); + return PM3_EINVARG; + } + // Get tag type uint64_t tagtype = GetHF14AMfU_Type(); if (tagtype == MFU_TT_UL_ERROR) { @@ -6551,6 +6576,11 @@ static int CmdHF14AMfuWipe(const char *Cmd) { return PM3_EINVARG; } + if (use_schann && has_auth_key == false) { + PrintAndLogEx(WARNING, "Secure channel must be called with key"); + return PM3_EINVARG; + } + uint8_t card_mem_size = 0; uint64_t tagtype = GetHF14AMfU_Type();