mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 12:59:44 -07:00
small refactoring
This commit is contained in:
parent
5a1b25ac31
commit
7a7afeba5c
4 changed files with 20 additions and 16 deletions
|
@ -322,7 +322,7 @@ int CmdHFEMVExec(const char *cmd) {
|
||||||
switch (param_getchar_indx(cmd, 1, cmdp)) {
|
switch (param_getchar_indx(cmd, 1, cmdp)) {
|
||||||
case 'h':
|
case 'h':
|
||||||
case 'H':
|
case 'H':
|
||||||
UsageCmdHFEMVPPSE();
|
UsageCmdHFEMVExec();
|
||||||
return 0;
|
return 0;
|
||||||
case 's':
|
case 's':
|
||||||
case 'S':
|
case 'S':
|
||||||
|
|
|
@ -483,20 +483,20 @@ static void emv_tag_dump_cid(const struct tlv *tlv, const struct emv_tag *tag, F
|
||||||
}
|
}
|
||||||
|
|
||||||
PRINT_INDENT(level);
|
PRINT_INDENT(level);
|
||||||
if ((tlv->value[0] & 0xC0) == 0x00) fprintf(f, "\tAC1: AAC (Transaction declined)\n");
|
if ((tlv->value[0] & EMVAC_AC_MASK) == EMVAC_AAC) fprintf(f, "\tAC1: AAC (Transaction declined)\n");
|
||||||
if ((tlv->value[0] & 0xC0) == 0x40) fprintf(f, "\tAC1: TC (Transaction approved)\n");
|
if ((tlv->value[0] & EMVAC_AC_MASK) == EMVAC_TC) fprintf(f, "\tAC1: TC (Transaction approved)\n");
|
||||||
if ((tlv->value[0] & 0xC0) == 0x80) fprintf(f, "\tAC1: ARQC (Online authorisation requested)\n");
|
if ((tlv->value[0] & EMVAC_AC_MASK) == EMVAC_ARQC) fprintf(f, "\tAC1: ARQC (Online authorisation requested)\n");
|
||||||
if ((tlv->value[0] & 0xC0) == 0xC0) fprintf(f, "\tAC1: RFU\n");
|
if ((tlv->value[0] & EMVAC_AC_MASK) == EMVAC_AC_MASK) fprintf(f, "\tAC1: RFU\n");
|
||||||
|
|
||||||
if ((tlv->value[0] & 0x08) != 0x00) {
|
if (tlv->value[0] & EMVCID_ADVICE) {
|
||||||
PRINT_INDENT(level);
|
PRINT_INDENT(level);
|
||||||
fprintf(f, "\tAdvice required!\n");
|
fprintf(f, "\tAdvice required!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tlv->value[0] & 0x07) != 0x00) {
|
if (tlv->value[0] & EMVCID_REASON_MASK) {
|
||||||
PRINT_INDENT(level);
|
PRINT_INDENT(level);
|
||||||
fprintf(f, "\tReason/advice/referral code: ");
|
fprintf(f, "\tReason/advice/referral code: ");
|
||||||
switch((tlv->value[0] & 0x07)) {
|
switch((tlv->value[0] & EMVCID_REASON_MASK)) {
|
||||||
case 0:
|
case 0:
|
||||||
fprintf(f, "No information given\n");
|
fprintf(f, "No information given\n");
|
||||||
break;
|
break;
|
||||||
|
@ -510,7 +510,7 @@ static void emv_tag_dump_cid(const struct tlv *tlv, const struct emv_tag *tag, F
|
||||||
fprintf(f, "Issuer authentication failed\n");
|
fprintf(f, "Issuer authentication failed\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(f, "\tRFU: %2x\n", (tlv->value[0] & 0x07));
|
fprintf(f, "\tRFU: %2x\n", (tlv->value[0] & EMVCID_REASON_MASK));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,17 @@
|
||||||
#include "tlv.h"
|
#include "tlv.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// AC
|
||||||
|
# define EMVAC_AC_MASK 0xC0
|
||||||
|
# define EMVAC_AAC 0x00
|
||||||
|
# define EMVAC_TC 0x40
|
||||||
|
# define EMVAC_ARQC 0x80
|
||||||
|
# define EMVAC_CDAREQ 0x10
|
||||||
|
|
||||||
|
// CID
|
||||||
|
# define EMVCID_ADVICE 0x08
|
||||||
|
# define EMVCID_REASON_MASK 0x07
|
||||||
|
|
||||||
bool emv_tag_dump(const struct tlv *tlv, FILE *f, int level);
|
bool emv_tag_dump(const struct tlv *tlv, FILE *f, int level);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,13 +29,6 @@
|
||||||
#define APDU_RES_LEN 260
|
#define APDU_RES_LEN 260
|
||||||
#define APDU_AID_LEN 50
|
#define APDU_AID_LEN 50
|
||||||
|
|
||||||
// AC
|
|
||||||
# define EMVAC_AC_MASK 0xC0
|
|
||||||
# define EMVAC_AAC 0x00
|
|
||||||
# define EMVAC_TC 0x40
|
|
||||||
# define EMVAC_ARQC 0x80
|
|
||||||
# define EMVAC_CDAREQ 0x10
|
|
||||||
|
|
||||||
enum TransactionType {
|
enum TransactionType {
|
||||||
TT_MSD,
|
TT_MSD,
|
||||||
TT_VSDC, // not standart for contactless!!!!
|
TT_VSDC, // not standart for contactless!!!!
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue