libfreefare/test/mifare_classic_test.c
2009-12-19 02:06:21 +00:00

67 lines
1 KiB
C

#include "test.h"
static nfc_device_t *device;
static MifareClassicTag *tags;
int
mifare_classic_test_setup (MifareClassicTag *tag)
{
int res = 0;
device = nfc_connect (NULL);
if (!device)
res = -1;
if (0 == res) {
tags = mifare_classic_get_tags (device);
if (!tags || !(tags[0])) {
nfc_disconnect (device);
res = -2;
}
}
if (0 == res) {
*tag = tags[0];
res = mifare_classic_connect (*tag);
if (res != 0) {
mifare_classic_disconnect (*tag);
nfc_disconnect (device);
res = -3;
}
}
return res;
}
int
mifare_classic_test_teardown (MifareClassicTag tag)
{
int res;
res = mifare_classic_disconnect (tag);
if (0 == res) {
mifare_classic_free_tags (tags);
nfc_disconnect (device);
}
return res;
}
int
read_data_block (char *filename, MifareClassicBlock *block)
{
FILE *f = fopen (filename, "r");
if (f == NULL)
return -1;
char buffer[17];
fgets(buffer, 17, f);
memcpy (block, buffer, 16);
fclose (f);
return 0;
}