make style

This commit is contained in:
iceman1001 2023-07-14 18:34:14 +02:00
commit 5f8cd5caca
6 changed files with 243 additions and 241 deletions

View file

@ -373,8 +373,8 @@ static void init_bitflip_bitarrays(void) {
exit(4); exit(4);
} }
bytesread = fread(bitset, 1, filesize-sizeof(count), statesfile); bytesread = fread(bitset, 1, filesize - sizeof(count), statesfile);
if (bytesread != filesize-sizeof(count)) { if (bytesread != filesize - sizeof(count)) {
PrintAndLogEx(ERR, "File read error with %s. Aborting...\n", state_file_name); PrintAndLogEx(ERR, "File read error with %s. Aborting...\n", state_file_name);
fclose(statesfile); fclose(statesfile);
exit(5); exit(5);

View file

@ -670,10 +670,10 @@ int TestProxmark(pm3_device_t *dev) {
bool is_bt_conn = (memcmp(g_conn.serial_port_name, "bt:", 3) == 0); bool is_bt_conn = (memcmp(g_conn.serial_port_name, "bt:", 3) == 0);
PrintAndLogEx(INFO, "Communicating with PM3 over %s%s%s", PrintAndLogEx(INFO, "Communicating with PM3 over %s%s%s",
(g_conn.send_via_fpc_usart) ? _YELLOW_("FPC UART") : _YELLOW_("USB-CDC"), (g_conn.send_via_fpc_usart) ? _YELLOW_("FPC UART") : _YELLOW_("USB-CDC"),
(is_tcp_conn) ? " over " _YELLOW_("TCP") : "", (is_tcp_conn) ? " over " _YELLOW_("TCP") : "",
(is_bt_conn) ? " over " _YELLOW_("BT") : "" (is_bt_conn) ? " over " _YELLOW_("BT") : ""
); );
if (g_conn.send_via_fpc_usart) { if (g_conn.send_via_fpc_usart) {
PrintAndLogEx(INFO, "PM3 UART serial baudrate: " _YELLOW_("%u") "\n", g_conn.uart_speed); PrintAndLogEx(INFO, "PM3 UART serial baudrate: " _YELLOW_("%u") "\n", g_conn.uart_speed);

View file

@ -195,22 +195,22 @@ static struct tlvdb *emv_logtemplate_parse(const struct tlv *tlv, const unsigned
} }
static int emv_parse_log(struct tlvdb *ttdb, const uint8_t *d, size_t n) { static int emv_parse_log(struct tlvdb *ttdb, const uint8_t *d, size_t n) {
/* /*
The Log Format (9F4F) is a list in tag and length format (i.e., "TL" instead of TLV) See description in Table 33 on page 141. The Log Format (9F4F) is a list in tag and length format (i.e., "TL" instead of TLV) See description in Table 33 on page 141.
In your example, "9F 27 01 9F 02 06 5F 2A 02 9A 03 9F 36 02 9F 52 06 DF 3E 01 9F 21 03 9F 7C 14" means: In your example, "9F 27 01 9F 02 06 5F 2A 02 9A 03 9F 36 02 9F 52 06 DF 3E 01 9F 21 03 9F 7C 14" means:
9F27 01 (Cryptogram Information Data) 9F27 01 (Cryptogram Information Data)
9F02 06 (Amount, Authorised) 9F02 06 (Amount, Authorised)
5F2A 02 (Transaction Currency Code) 5F2A 02 (Transaction Currency Code)
9A 03 (Transaction Date) 9A 03 (Transaction Date)
9F36 02 (Application Transaction Counter) 9F36 02 (Application Transaction Counter)
9F52 06 (Terminal Compatibility Indicator) 9F52 06 (Terminal Compatibility Indicator)
DF3E 01 DF3E 01
9F21 03 (Transaction Time) 9F21 03 (Transaction Time)
9F7C 14 (Visa Customer Exclusive Data) 9F7C 14 (Visa Customer Exclusive Data)
*/ */
int pos = 0; int pos = 0;
struct tlvdb *tp = ttdb; struct tlvdb *tp = ttdb;
while (tp) { while (tp) {
@ -269,7 +269,7 @@ static int emv_extract_log_info(uint8_t *response, size_t reslen, uint8_t *lid,
return res; return res;
} }
static int emv_parse_track1(const uint8_t *d, size_t n, bool verbose){ static int emv_parse_track1(const uint8_t *d, size_t n, bool verbose) {
if (d == NULL || n < 10) { if (d == NULL || n < 10) {
return PM3_EINVARG; return PM3_EINVARG;
} }
@ -283,30 +283,30 @@ static int emv_parse_track1(const uint8_t *d, size_t n, bool verbose){
} }
// decoder // decoder
char *tmp = str_ndup((const char*)d, n); char *tmp = str_ndup((const char *)d, n);
uint8_t i = 0; uint8_t i = 0;
char delim[2] = "^"; char delim[2] = "^";
char *token = strtok(tmp, delim); char *token = strtok(tmp, delim);
while (token != NULL) { while (token != NULL) {
switch(i) { switch (i) {
case 0: { case 0: {
size_t a = strlen(token); size_t a = strlen(token);
if (a == 16) { if (a == 16) {
PrintAndLogEx(INFO, "PAN...................... %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c%c", PrintAndLogEx(INFO, "PAN...................... %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c%c",
token[1], token[2],token[3], token[4], token[1], token[2], token[3], token[4],
token[5], token[6],token[7], token[8], token[5], token[6], token[7], token[8],
token[9], token[10],token[11], token[12], token[9], token[10], token[11], token[12],
token[13], token[14],token[15], token[16] token[13], token[14], token[15], token[16]
); );
} else if (a == 19) { } else if (a == 19) {
PrintAndLogEx(INFO, "PAN...................... %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c", PrintAndLogEx(INFO, "PAN...................... %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c",
token[1], token[2],token[3], token[4], token[1], token[2], token[3], token[4],
token[5], token[6],token[7], token[8], token[5], token[6], token[7], token[8],
token[9], token[10],token[11], token[12], token[9], token[10], token[11], token[12],
token[13], token[14],token[15], token[16], token[13], token[14], token[15], token[16],
token[17], token[18],token[19] token[17], token[18], token[19]
); );
} }
break; break;
} }
@ -327,7 +327,7 @@ static int emv_parse_track1(const uint8_t *d, size_t n, bool verbose){
token += 4; token += 4;
PrintAndLogEx(INFO, "CVV / iCvv............... %.*s", 3, token); PrintAndLogEx(INFO, "CVV / iCvv............... %.*s", 3, token);
token +=3; token += 3;
PrintAndLogEx(INFO, "Trailing................. %s", token); PrintAndLogEx(INFO, "Trailing................. %s", token);
break; break;
@ -358,11 +358,11 @@ static int emv_parse_track2(const uint8_t *d, size_t n, bool verbose) {
tmp++; tmp++;
PrintAndLogEx(INFO, "PAN...................... %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c%c", PrintAndLogEx(INFO, "PAN...................... %c%c%c%c %c%c%c%c %c%c%c%c %c%c%c%c",
tmp[0], tmp[1], tmp[2],tmp[3], tmp[0], tmp[1], tmp[2], tmp[3],
tmp[4], tmp[5], tmp[6],tmp[7], tmp[4], tmp[5], tmp[6], tmp[7],
tmp[8], tmp[9], tmp[10],tmp[11], tmp[8], tmp[9], tmp[10], tmp[11],
tmp[12],tmp[13], tmp[14],tmp[15] tmp[12], tmp[13], tmp[14], tmp[15]
); );
tmp += 16; tmp += 16;
if (tmp[0] == '=' || tmp[0] == 'D') if (tmp[0] == '=' || tmp[0] == 'D')
@ -378,7 +378,7 @@ static int emv_parse_track2(const uint8_t *d, size_t n, bool verbose) {
tmp += 4; tmp += 4;
PrintAndLogEx(INFO, "CVV / iCvv............... %.*s", 3, tmp); PrintAndLogEx(INFO, "CVV / iCvv............... %.*s", 3, tmp);
tmp +=3; tmp += 3;
PrintAndLogEx(INFO, "Trailing................. %s", tmp); PrintAndLogEx(INFO, "Trailing................. %s", tmp);
@ -2694,7 +2694,7 @@ static int CmdEMVReader(const char *Cmd) {
continue; continue;
} }
// Log template tag // Log template tag
if (extra_data[i] == 0x9F4F ) { if (extra_data[i] == 0x9F4F) {
struct tlvdb *ttdb = tlvdb_find_full(tlvRoot, extra_data[i]); struct tlvdb *ttdb = tlvdb_find_full(tlvRoot, extra_data[i]);
const struct tlv *ttag = tlvdb_get_tlv(ttdb); const struct tlv *ttag = tlvdb_get_tlv(ttdb);
tlogDB = emv_logtemplate_parse(ttag, buf, len); tlogDB = emv_logtemplate_parse(ttag, buf, len);
@ -2764,7 +2764,7 @@ static int CmdEMVReader(const char *Cmd) {
} }
// only check for logs file if we found 0x9F4D // only check for logs file if we found 0x9F4D
if ( verbose && log_found && log_template_found ) { if (verbose && log_found && log_template_found) {
for (int i = 1; i <= log_file_records; i++) { for (int i = 1; i <= log_file_records; i++) {
res = EMVReadRecord(channel, true, log_file_id, i, buf, sizeof(buf), &len, &sw, tlvRoot); res = EMVReadRecord(channel, true, log_file_id, i, buf, sizeof(buf), &len, &sw, tlvRoot);

View file

@ -31,191 +31,191 @@ const char *getCurrencyInfo(const char *cn_str);
// atr_t array is expected to be NULL terminated // atr_t array is expected to be NULL terminated
const static iso4217_t Iso4217Table[] = { const static iso4217_t Iso4217Table[] = {
{"008","Lek",2}, {"008", "Lek", 2},
{"012","Algerian Dinar",2}, {"012", "Algerian Dinar", 2},
{"032","Argentine Peso",2}, {"032", "Argentine Peso", 2},
{"036","Australian Dollar",2}, {"036", "Australian Dollar", 2},
{"044","Bahamian Dollar",2}, {"044", "Bahamian Dollar", 2},
{"048","Bahraini Dinar",3}, {"048", "Bahraini Dinar", 3},
{"050","Taka",2}, {"050", "Taka", 2},
{"051","Armenian Dram",2}, {"051", "Armenian Dram", 2},
{"052","Barbados Dollar",2}, {"052", "Barbados Dollar", 2},
{"060","Bermudian Dollar",2}, {"060", "Bermudian Dollar", 2},
{"064","Ngultrum",2}, {"064", "Ngultrum", 2},
{"068","Boliviano",2}, {"068", "Boliviano", 2},
{"072","Pula",2}, {"072", "Pula", 2},
{"084","Belize Dollar",2}, {"084", "Belize Dollar", 2},
{"090","Solomon Islands Dollar",2}, {"090", "Solomon Islands Dollar", 2},
{"096","Brunei Dollar",2}, {"096", "Brunei Dollar", 2},
{"104","Kyat",2}, {"104", "Kyat", 2},
{"108","Burundi Franc",0}, {"108", "Burundi Franc", 0},
{"116","Riel",2}, {"116", "Riel", 2},
{"124","Canadian Dollar",2}, {"124", "Canadian Dollar", 2},
{"132","Cabo Verde Escudo",2}, {"132", "Cabo Verde Escudo", 2},
{"136","Cayman Islands Dollar",2}, {"136", "Cayman Islands Dollar", 2},
{"144","Sri Lanka Rupee",2}, {"144", "Sri Lanka Rupee", 2},
{"152","Chilean Peso",0}, {"152", "Chilean Peso", 0},
{"156","Yuan Renminbi",2}, {"156", "Yuan Renminbi", 2},
{"170","Colombian Peso",2}, {"170", "Colombian Peso", 2},
{"174","Comoro Franc",0}, {"174", "Comoro Franc", 0},
{"188","Costa Rican Colon",2}, {"188", "Costa Rican Colon", 2},
{"191","Croatian Kuna",2}, {"191", "Croatian Kuna", 2},
{"192","Cuban Peso",2}, {"192", "Cuban Peso", 2},
{"203","Czech Koruna",2}, {"203", "Czech Koruna", 2},
{"208","Danish Krone",2}, {"208", "Danish Krone", 2},
{"214","Dominican Peso",2}, {"214", "Dominican Peso", 2},
{"222","El Salvador Colon",2}, {"222", "El Salvador Colon", 2},
{"230","Ethiopian Birr",2}, {"230", "Ethiopian Birr", 2},
{"232","Nakfa",2}, {"232", "Nakfa", 2},
{"233","Kroon",2}, {"233", "Kroon", 2},
{"238","Falkland Islands Pound",2}, {"238", "Falkland Islands Pound", 2},
{"242","Fiji Dollar",2}, {"242", "Fiji Dollar", 2},
{"262","Djibouti Franc",0}, {"262", "Djibouti Franc", 0},
{"270","Dalasi",2}, {"270", "Dalasi", 2},
{"292","Gibraltar Pound",2}, {"292", "Gibraltar Pound", 2},
{"320","Quetzal",2}, {"320", "Quetzal", 2},
{"324","Guinea Franc",0}, {"324", "Guinea Franc", 0},
{"328","Guyana Dollar",2}, {"328", "Guyana Dollar", 2},
{"332","Gourde",2}, {"332", "Gourde", 2},
{"340","Lempira",2}, {"340", "Lempira", 2},
{"344","Hong Kong Dollar",2}, {"344", "Hong Kong Dollar", 2},
{"348","Forint",2}, {"348", "Forint", 2},
{"352","Iceland Krona",0}, {"352", "Iceland Krona", 0},
{"356","Indian Rupee",2}, {"356", "Indian Rupee", 2},
{"360","Rupiah",2}, {"360", "Rupiah", 2},
{"364","Iranian Rial",2}, {"364", "Iranian Rial", 2},
{"368","Iraqi Dinar",3}, {"368", "Iraqi Dinar", 3},
{"376","New Israeli Sheqel",2}, {"376", "New Israeli Sheqel", 2},
{"388","Jamaican Dollar",2}, {"388", "Jamaican Dollar", 2},
{"392","Yen",0}, {"392", "Yen", 0},
{"398","Tenge",2}, {"398", "Tenge", 2},
{"400","Jordanian Dinar",3}, {"400", "Jordanian Dinar", 3},
{"404","Kenyan Shilling",2}, {"404", "Kenyan Shilling", 2},
{"408","North Korean Won",2}, {"408", "North Korean Won", 2},
{"410","Won",0}, {"410", "Won", 0},
{"414","Kuwaiti Dinar",3}, {"414", "Kuwaiti Dinar", 3},
{"417","Som",2}, {"417", "Som", 2},
{"418","Kip",2}, {"418", "Kip", 2},
{"422","Lebanese Pound",2}, {"422", "Lebanese Pound", 2},
{"426","Loti",2}, {"426", "Loti", 2},
{"428","Latvian Lats",2}, {"428", "Latvian Lats", 2},
{"430","Liberian Dollar",2}, {"430", "Liberian Dollar", 2},
{"434","Libyan Dinar",3}, {"434", "Libyan Dinar", 3},
{"440","Lithuanian Litas",2}, {"440", "Lithuanian Litas", 2},
{"446","Pataca",2}, {"446", "Pataca", 2},
{"454","Kwacha",2}, {"454", "Kwacha", 2},
{"458","Malaysian Ringgit",2}, {"458", "Malaysian Ringgit", 2},
{"462","Rufiyaa",2}, {"462", "Rufiyaa", 2},
{"478","Ouguiya",2}, {"478", "Ouguiya", 2},
{"480","Mauritius Rupee",2}, {"480", "Mauritius Rupee", 2},
{"484","Mexican Peso",2}, {"484", "Mexican Peso", 2},
{"496","Tugrik",2}, {"496", "Tugrik", 2},
{"498","Moldovan Leu",2}, {"498", "Moldovan Leu", 2},
{"504","Moroccan Dirham",2}, {"504", "Moroccan Dirham", 2},
{"512","Rial Omani",3}, {"512", "Rial Omani", 3},
{"516","Namibia Dollar",2}, {"516", "Namibia Dollar", 2},
{"524","Nepalese Rupee",2}, {"524", "Nepalese Rupee", 2},
{"532","Netherlands Antillean Guilder",2}, {"532", "Netherlands Antillean Guilder", 2},
{"533","Aruban Florin",2}, {"533", "Aruban Florin", 2},
{"548","Vatu",0}, {"548", "Vatu", 0},
{"554","New Zealand Dollar",2}, {"554", "New Zealand Dollar", 2},
{"558","Cordoba Oro",2}, {"558", "Cordoba Oro", 2},
{"566","Naira",2}, {"566", "Naira", 2},
{"578","Norwegian Krone",2}, {"578", "Norwegian Krone", 2},
{"586","Pakistan Rupee",2}, {"586", "Pakistan Rupee", 2},
{"590","Balboa",2}, {"590", "Balboa", 2},
{"598","Kina",2}, {"598", "Kina", 2},
{"600","Guarani",0}, {"600", "Guarani", 0},
{"604","Nuevo Sol",2}, {"604", "Nuevo Sol", 2},
{"608","Philippine Peso",2}, {"608", "Philippine Peso", 2},
{"624","Guinea-Bissau Peso", -1}, {"624", "Guinea-Bissau Peso", -1},
{"634","Qatari Rial",2}, {"634", "Qatari Rial", 2},
{"643","Russian Ruble",2}, {"643", "Russian Ruble", 2},
{"646","Rwanda Franc",0}, {"646", "Rwanda Franc", 0},
{"654","Saint Helena Pound",2}, {"654", "Saint Helena Pound", 2},
{"678","Dobra",2}, {"678", "Dobra", 2},
{"682","Saudi Riyal",2}, {"682", "Saudi Riyal", 2},
{"690","Seychelles Rupee",2}, {"690", "Seychelles Rupee", 2},
{"694","Leone",2}, {"694", "Leone", 2},
{"702","Singapore Dollar",2}, {"702", "Singapore Dollar", 2},
{"704","Dong",0}, {"704", "Dong", 0},
{"706","Somali Shilling",2}, {"706", "Somali Shilling", 2},
{"710","Rand",2}, {"710", "Rand", 2},
{"728","South Sudanese Pound",2}, {"728", "South Sudanese Pound", 2},
{"748","Lilangeni",2}, {"748", "Lilangeni", 2},
{"752","Swedish Krona",2}, {"752", "Swedish Krona", 2},
{"756","Swiss Franc",2}, {"756", "Swiss Franc", 2},
{"760","Syrian Pound",2}, {"760", "Syrian Pound", 2},
{"764","Baht",2}, {"764", "Baht", 2},
{"776","Pa\'anga",2}, {"776", "Pa\'anga", 2},
{"780","Trinidad and Tobago Dollar",2}, {"780", "Trinidad and Tobago Dollar", 2},
{"784","UAE Dirham",2}, {"784", "UAE Dirham", 2},
{"788","Tunisian Dinar",3}, {"788", "Tunisian Dinar", 3},
{"800","Uganda Shilling",0}, {"800", "Uganda Shilling", 0},
{"807","Denar",2}, {"807", "Denar", 2},
{"818","Egyptian Pound",2}, {"818", "Egyptian Pound", 2},
{"826","Pound Sterling",2}, {"826", "Pound Sterling", 2},
{"834","Tanzanian Shilling",2}, {"834", "Tanzanian Shilling", 2},
{"840","US Dollar",2}, {"840", "US Dollar", 2},
{"858","Peso Uruguayo",2}, {"858", "Peso Uruguayo", 2},
{"860","Uzbekistan Sum",2}, {"860", "Uzbekistan Sum", 2},
{"882","Tala",2}, {"882", "Tala", 2},
{"886","Yemeni Rial",2}, {"886", "Yemeni Rial", 2},
{"894","Zambian Kwacha",2}, {"894", "Zambian Kwacha", 2},
{"901","New Taiwan Dollar",2}, {"901", "New Taiwan Dollar", 2},
{"931","Peso Convertible",2}, {"931", "Peso Convertible", 2},
{"932","Zimbabwe Dollar",2}, {"932", "Zimbabwe Dollar", 2},
{"934","Turkmenistan New Manat",2}, {"934", "Turkmenistan New Manat", 2},
{"936","Ghana Cedi",2}, {"936", "Ghana Cedi", 2},
{"937","Bolivar",2}, {"937", "Bolivar", 2},
{"938","Sudanese Pound",2}, {"938", "Sudanese Pound", 2},
{"940","Uruguay Peso en Unidades Indexadas (URUIURUI)",0}, {"940", "Uruguay Peso en Unidades Indexadas (URUIURUI)", 0},
{"941","Serbian Dinar",2}, {"941", "Serbian Dinar", 2},
{"943","Mozambique Metical",2}, {"943", "Mozambique Metical", 2},
{"944","Azerbaijanian Manat",2}, {"944", "Azerbaijanian Manat", 2},
{"946","New Romanian Leu",2}, {"946", "New Romanian Leu", 2},
{"947","WIR Euro",2}, {"947", "WIR Euro", 2},
{"948","WIR Franc",2}, {"948", "WIR Franc", 2},
{"949","Turkish Lira",2}, {"949", "Turkish Lira", 2},
{"950","CFA Franc BEAC",0}, {"950", "CFA Franc BEAC", 0},
{"951","East Caribbean Dollar",2}, {"951", "East Caribbean Dollar", 2},
{"952","CFA Franc BCEAO",0}, {"952", "CFA Franc BCEAO", 0},
{"953","CFP Franc",0}, {"953", "CFP Franc", 0},
{"955","Bond Markets Unit European Composite Unit (EURCO)",0}, {"955", "Bond Markets Unit European Composite Unit (EURCO)", 0},
{"956","Bond Markets Unit European Monetary Unit (E.M.U.-6)",0}, {"956", "Bond Markets Unit European Monetary Unit (E.M.U.-6)", 0},
{"957","Bond Markets Unit European Unit of Account 9 (E.U.A.-9)",0}, {"957", "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)", 0},
{"958","Bond Markets Unit European Unit of Account 17 (E.U.A.-17)",0}, {"958", "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)", 0},
{"959","Gold",0}, {"959", "Gold", 0},
{"960","SDR (Special Drawing Right)",0}, {"960", "SDR (Special Drawing Right)", 0},
{"961","Silver",0}, {"961", "Silver", 0},
{"962","Platinum",0}, {"962", "Platinum", 0},
{"963","Codes specifically reserved for testing purposes",-1}, {"963", "Codes specifically reserved for testing purposes", -1},
{"964","Palladium",-1}, {"964", "Palladium", -1},
{"965","ADB Unit of Account",-1}, {"965", "ADB Unit of Account", -1},
{"967","Zambian Kwacha",2}, {"967", "Zambian Kwacha", 2},
{"968","Surinam Dollar",2}, {"968", "Surinam Dollar", 2},
{"969","Malagasy Ariary",1}, {"969", "Malagasy Ariary", 1},
{"969","Malagasy Ariary",2}, {"969", "Malagasy Ariary", 2},
{"970","Unidad de Valor Real",2}, {"970", "Unidad de Valor Real", 2},
{"971","Afghani",2}, {"971", "Afghani", 2},
{"972","Somoni",2}, {"972", "Somoni", 2},
{"973","Kwanza",2}, {"973", "Kwanza", 2},
{"974","Belarussian Ruble",0}, {"974", "Belarussian Ruble", 0},
{"975","Bulgarian Lev",2}, {"975", "Bulgarian Lev", 2},
{"976","Congolese Franc",2}, {"976", "Congolese Franc", 2},
{"977","Convertible Mark",2}, {"977", "Convertible Mark", 2},
{"978","Euro",2}, {"978", "Euro", 2},
{"979","Mexican Unidad de Inversion (UDI)",2}, {"979", "Mexican Unidad de Inversion (UDI)", 2},
{"980","Hryvnia",2}, {"980", "Hryvnia", 2},
{"981","Lari",2}, {"981", "Lari", 2},
{"984","Mvdol",2}, {"984", "Mvdol", 2},
{"985","Zloty",2}, {"985", "Zloty", 2},
{"986","Brazilian Real",2}, {"986", "Brazilian Real", 2},
{"990","Unidad de Fomento",4}, {"990", "Unidad de Fomento", 4},
{"994","Sucre",-1}, {"994", "Sucre", -1},
{"997","US Dollar (Next day)",2}, {"997", "US Dollar (Next day)", 2},
{"998","US Dollar (Same day)",2}, {"998", "US Dollar (Same day)", 2},
{"999","No currency is involved",-1}, {"999", "No currency is involved", -1},
{"NULL", "N/A", -1} {"NULL", "N/A", -1}
}; };

View file

@ -1050,7 +1050,7 @@ static int ndefDecodePayload(NDEFHeader_t *ndef, bool verbose) {
if (str_startswith(begin, NDEF_BLUEAPPL_EP)) { if (str_startswith(begin, NDEF_BLUEAPPL_EP)) {
ndefDecodeMime_bt(ndef); ndefDecodeMime_bt(ndef);
} }
if (str_startswith(begin, NDEF_BLUEAPPL_SECURE_LE)) { if (str_startswith(begin, NDEF_BLUEAPPL_SECURE_LE)) {
ndefDecodeMime_bt_secure_le_oob(ndef); ndefDecodeMime_bt_secure_le_oob(ndef);

View file

@ -901,18 +901,20 @@
}, },
"emv reader": { "emv reader": {
"command": "emv reader", "command": "emv reader",
"description": "Act as a EMV reader to identify tag. Look for EMV tags until Enter or the pm3 button is pressed", "description": "Act as a EMV reader to identify tag. Look for EMV tags until Enter or the pm3 button is pressed In `verbose` mode it will also try to extract and decode the transaction logs stored on card in either channel.",
"notes": [ "notes": [
"emv reader", "emv reader",
"emv reader -v",
"emv reader -@ -> Continuous mode" "emv reader -@ -> Continuous mode"
], ],
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"-w, --wired Send data via contact (iso7816) interface. (def: Contactless interface)", "-w, --wired Send data via contact (iso7816) interface. (def: Contactless interface)",
"-v, --verbose verbose",
"-@ continuous reader mode" "-@ continuous reader mode"
], ],
"usage": "emv reader [-hw@]" "usage": "emv reader [-hwv@]"
}, },
"emv readrec": { "emv readrec": {
"command": "emv readrec", "command": "emv readrec",
@ -2653,8 +2655,8 @@
"hf fido auth --kh 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f -> execute command with 2 parameters, filled 0x00 and key handle", "hf fido auth --kh 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f -> execute command with 2 parameters, filled 0x00 and key handle",
"hf fido auth", "hf fido auth",
"--kh 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f", "--kh 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f",
"--cp 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f", "--cpx 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f",
"--ap 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f -> execute command with parameters" "--apx 000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f -> execute command with parameters"
], ],
"offline": false, "offline": false,
"options": [ "options": [
@ -11687,6 +11689,6 @@
"metadata": { "metadata": {
"commands_extracted": 679, "commands_extracted": 679,
"extracted_by": "PM3Help2JSON v1.00", "extracted_by": "PM3Help2JSON v1.00",
"extracted_on": "2023-07-10T18:33:37" "extracted_on": "2023-07-14T16:33:40"
} }
} }