X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/6b5105bea972d055bb2069bf8ca2c6d105b2ee8f..refs/pull/910/head:/client/cmdsmartcard.c diff --git a/client/cmdsmartcard.c b/client/cmdsmartcard.c index 90a219ab..caf33db6 100644 --- a/client/cmdsmartcard.c +++ b/client/cmdsmartcard.c @@ -10,6 +10,7 @@ #include "cmdsmartcard.h" #include +#include #include "ui.h" #include "cmdparser.h" @@ -311,7 +312,7 @@ static int PrintATR(uint8_t *atr, size_t atrlen) { return 0; } -static bool smart_getATR(smart_card_atr_t *card) +bool smart_getATR(smart_card_atr_t *card) { if (UseAlternativeSmartcardReader) { return pcscGetATR(card); @@ -570,7 +571,7 @@ int ExchangeAPDUSC(uint8_t *APDU, int APDUlen, bool activateCard, bool leaveSign } if (*responselen < 0 ) { - return 2; + return 1; } else { return 0; } @@ -804,6 +805,11 @@ static int CmdSmartInfo(const char *Cmd){ if (!silent) PrintAndLogEx(WARNING, "smart card select failed"); return 1; } + + if (!card.atr_len) { + if (!silent) PrintAndLogEx(ERR, "can't get ATR from a smart card"); + return 1; + } // print header PrintAndLogEx(INFO, "--- Smartcard Information ---------"); @@ -929,7 +935,11 @@ static int CmdSmartSetClock(const char *Cmd){ static int CmdSmartList(const char *Cmd) { - CmdHFList("7816"); + if (UseAlternativeSmartcardReader) { + CmdHFList("7816 p"); + } else { + CmdHFList("7816"); + } return 0; }