Add support for friendly tag names.
This commit is contained in:
parent
62ddf57c53
commit
0d4744001a
4 changed files with 20 additions and 5 deletions
|
@ -122,7 +122,7 @@ main(int argc, char *argv[])
|
||||||
char *tag_uid = mifare_classic_get_uid (tags[i]);
|
char *tag_uid = mifare_classic_get_uid (tags[i]);
|
||||||
char buffer[BUFSIZ];
|
char buffer[BUFSIZ];
|
||||||
|
|
||||||
printf ("Found MIFARE Classic %s. Format [yN] ", tag_uid);
|
printf ("Found %s with UID %s. Format [yN] ", freefare_get_tag_friendly_name (tags[i]), tag_uid);
|
||||||
fgets (buffer, BUFSIZ, stdin);
|
fgets (buffer, BUFSIZ, stdin);
|
||||||
bool format = ((buffer[0] == 'y') || (buffer[0] == 'Y'));
|
bool format = ((buffer[0] == 'y') || (buffer[0] == 'Y'));
|
||||||
|
|
||||||
|
|
|
@ -26,13 +26,14 @@
|
||||||
struct supported_tag {
|
struct supported_tag {
|
||||||
uint8_t ATQA[2], SAK;
|
uint8_t ATQA[2], SAK;
|
||||||
enum mifare_tag_type type;
|
enum mifare_tag_type type;
|
||||||
|
const char *friendly_name;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct supported_tag supported_tags[] = {
|
struct supported_tag supported_tags[] = {
|
||||||
{ { 0x00, 0x44 }, 0x00, ULTRALIGHT },
|
{ { 0x00, 0x44 }, 0x00, ULTRALIGHT, "Mifare UltraLight" },
|
||||||
{ { 0x00, 0x04 }, 0x08, CLASSIC_1K },
|
{ { 0x00, 0x04 }, 0x08, CLASSIC_1K, "Mifare Classic 1k" },
|
||||||
{ { 0x00, 0x02 }, 0x18, CLASSIC_4K },
|
{ { 0x00, 0x02 }, 0x18, CLASSIC_4K, "Mifare Classic 4k" },
|
||||||
{ { 0x00, 0x02 }, 0x38, CLASSIC_4K }, /* Emulated */
|
{ { 0x00, 0x02 }, 0x38, CLASSIC_4K, "Mifare Classic 4k (Emulated)" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,6 +82,7 @@ freefare_get_tags (nfc_device_t *device)
|
||||||
|
|
||||||
bool found = false;
|
bool found = false;
|
||||||
enum mifare_tag_type type;
|
enum mifare_tag_type type;
|
||||||
|
const char *friendly_name;
|
||||||
|
|
||||||
for (int i = 0; i < sizeof (supported_tags) / sizeof (struct supported_tag); i++) {
|
for (int i = 0; i < sizeof (supported_tags) / sizeof (struct supported_tag); i++) {
|
||||||
if ((target_info.nai.abtAtqa[0] == supported_tags[i].ATQA[0]) &&
|
if ((target_info.nai.abtAtqa[0] == supported_tags[i].ATQA[0]) &&
|
||||||
|
@ -88,6 +90,7 @@ freefare_get_tags (nfc_device_t *device)
|
||||||
(target_info.nai.btSak == supported_tags[i].SAK)) {
|
(target_info.nai.btSak == supported_tags[i].SAK)) {
|
||||||
|
|
||||||
type = supported_tags[i].type;
|
type = supported_tags[i].type;
|
||||||
|
friendly_name = supported_tags[i].friendly_name;
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -127,6 +130,7 @@ freefare_get_tags (nfc_device_t *device)
|
||||||
(tags[tag_count-1])->info = target_info.nai;
|
(tags[tag_count-1])->info = target_info.nai;
|
||||||
(tags[tag_count-1])->active = 0;
|
(tags[tag_count-1])->active = 0;
|
||||||
(tags[tag_count-1])->type = type;
|
(tags[tag_count-1])->type = type;
|
||||||
|
(tags[tag_count-1])->friendly_name = friendly_name;
|
||||||
tags[tag_count] = NULL;
|
tags[tag_count] = NULL;
|
||||||
|
|
||||||
nfc_initiator_deselect_tag (device);
|
nfc_initiator_deselect_tag (device);
|
||||||
|
@ -144,6 +148,15 @@ freefare_get_tag_type (MifareTag tag)
|
||||||
return tag->type;
|
return tag->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the friendly name of the provided tag.
|
||||||
|
*/
|
||||||
|
const char *
|
||||||
|
freefare_get_tag_friendly_name (MifareTag tag)
|
||||||
|
{
|
||||||
|
return tag->friendly_name;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Free the provided tag list.
|
* Free the provided tag list.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -53,6 +53,7 @@ typedef unsigned char MifareUltralightPage[4];
|
||||||
|
|
||||||
MifareTag *freefare_get_tags (nfc_device_t *device);
|
MifareTag *freefare_get_tags (nfc_device_t *device);
|
||||||
enum mifare_tag_type freefare_get_tag_type (MifareTag tag);
|
enum mifare_tag_type freefare_get_tag_type (MifareTag tag);
|
||||||
|
const char *freefare_get_tag_friendly_name (MifareTag tag);
|
||||||
void freefare_free_tags (MifareTag *tags);
|
void freefare_free_tags (MifareTag *tags);
|
||||||
|
|
||||||
int mifare_ultralight_connect (MifareTag tag);
|
int mifare_ultralight_connect (MifareTag tag);
|
||||||
|
|
|
@ -63,6 +63,7 @@ struct mifare_tag {
|
||||||
nfc_device_t *device;
|
nfc_device_t *device;
|
||||||
nfc_iso14443a_info_t info;
|
nfc_iso14443a_info_t info;
|
||||||
enum mifare_tag_type type;
|
enum mifare_tag_type type;
|
||||||
|
const char *friendly_name;
|
||||||
int active;
|
int active;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue