X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/9332b857ffeee343334064d3ca53048f59c55e50..905c55de2bbe642412b47ed4e92344096c817fac:/client/cmdhftopaz.c diff --git a/client/cmdhftopaz.c b/client/cmdhftopaz.c index aab1d248..2f9bc3dc 100644 --- a/client/cmdhftopaz.c +++ b/client/cmdhftopaz.c @@ -188,7 +188,7 @@ static bool topaz_print_lock_control_TLVs(uint8_t *memory) if (tag == 0x01) { // the Lock Control TLV uint8_t pages_addr = value[0] >> 4; uint8_t byte_offset = value[0] & 0x0f; - uint8_t size_in_bits = value[1] ? value[1] : 256; + uint8_t size_in_bits = value[1] ? value[1] : 255; uint8_t bytes_per_page = 1 << (value[2] & 0x0f); uint8_t bytes_locked_per_bit = 1 << (value[2] >> 4); PrintAndLog("Lock Area of %d bits at byte offset 0x%02x. Each Lock Bit locks %d bytes.", @@ -222,7 +222,7 @@ static int topaz_print_reserved_memory_control_TLVs(uint8_t *memory) if (tag == 0x02) { // the Reserved Memory Control TLV uint8_t pages_addr = value[0] >> 4; uint8_t byte_offset = value[0] & 0x0f; - uint8_t size_in_bytes = value[1] ? value[1] : 256; + uint8_t size_in_bytes = value[1] ? value[1] : 255; uint8_t bytes_per_page = 1 << (value[2] & 0x0f); PrintAndLog("Reserved Memory of %d bytes at byte offset 0x%02x.", size_in_bytes, @@ -257,12 +257,16 @@ int CmdHFTopazReader(const char *Cmd) { uint8_t atqa[2]; uint8_t rid_response[8]; uint8_t *uid_echo = &rid_response[2]; - uint8_t rall_response[124]; + uint8_t rall_response[130]; + bool verbose = TRUE; + + char ctmp = param_getchar(Cmd, 0); + if ( ctmp == 'S' || ctmp == 's') verbose = FALSE; status = topaz_select(atqa, rid_response); - + if (status == -1) { - PrintAndLog("Error: couldn't receive ATQA"); + if (verbose) PrintAndLog("Error: couldn't receive ATQA"); return -1; } @@ -286,7 +290,7 @@ int CmdHFTopazReader(const char *Cmd) { PrintAndLog("HR0 : %02x (%sa Topaz tag (%scapable of carrying a NDEF message), %s memory map)", rid_response[0], (rid_response[0] & 0xF0) == 0x10 ? "" : "not ", (rid_response[0] & 0xF0) == 0x10 ? "" : "not ", - (rid_response[0] & 0x0F) == 0x10 ? "static" : "dynamic"); + (rid_response[0] & 0x0F) == 0x01 ? "static" : "dynamic"); PrintAndLog("HR1 : %02x", rid_response[1]); status = topaz_rall(uid_echo, rall_response); @@ -306,6 +310,7 @@ int CmdHFTopazReader(const char *Cmd) { topaz_tag.uid[2], topaz_tag.uid[1], topaz_tag.uid[0]); + PrintAndLog(" UID[6] (Manufacturer Byte) = %02x, Manufacturer: %s", topaz_tag.uid[6], getTagInfo(topaz_tag.uid[6])); @@ -396,8 +401,9 @@ static command_t CommandTable[] = int CmdHFTopaz(const char *Cmd) { // flush - WaitForResponseTimeout(CMD_ACK,NULL,100); - + //WaitForResponseTimeout(CMD_ACK,NULL,100); + clearCommandBuffer(); + // parse CmdsParse(CommandTable, Cmd); return 0;