Commit graph

138 commits

Author SHA1 Message Date
Romain Tartiere
a235dbd0a9 Fix TLV terminator. 0xFE is part of TLV, not NDEF. 2010-06-23 23:21:47 +00:00
Romain Tartiere
b8049f110d Add support for TLV streams.
- New API functions: tlv_encode(), tlv_decode();
  - Documentation (man page);
  - Unit tests.
2010-06-23 02:03:13 +00:00
Romain Tartiere
1f8589f2ae Don't use deprecated cutter API. 2010-04-26 09:11:28 +00:00
Romain Tartiere
c9df81d96c Use cut_omit() in tests setup() fixtures (requires cutter>=1.1.2). 2010-04-08 12:10:42 +00:00
Romain Tartiere
73c50a544a Remove deprecated API mifare_ultralight_get_uid(), mifare_classic_get_uid(). 2010-03-30 16:24:37 +00:00
Romain Tartiere
574b068b3f New API function freefare_get_tag_uid().
- Deprecates mifare_classic_get_uid() and mifare_ultralight_get_uid().
2010-03-30 16:18:58 +00:00
Romain Tartiere
feb240ee73 Fix MAD CRC algorithm.
The CRC algorithm is not a standard CRC algorithm so rename it to nxp_crc() and adjust all related code.
2010-03-18 21:03:07 +00:00
Romain Tartiere
8a62a843ac Fix the test_mifare_classic_format unit test. 2010-02-23 14:22:23 +00:00
Romain Tartiere
5f7f8ffe2a Add support for MIFARE Classic 4K.
- New mifare_classic_first_sector_block(), mifare_classic_last_sector_block() functions to ease detection of sectors boundaries;
  - New unit tests for mifare_classic_first_sector_block() and mifare_classic_last_sector_block();
  - Start to update the API for consistently using blocks and not mixing blocks and sectors with mifare_classic_*() functions;
  - Update the mifare-classic-format(1) example to handle MIFARE Classic 1k and 4k.

Many thanks to Johann Dantant from SpringCard for giving me MIFARE Classic 4k cards.
2010-02-23 02:12:18 +00:00
Romain Tartiere
0f8ec71198 Add a unit test for mifare_classic_get_uid(). 2010-02-22 17:30:50 +00:00
Romain Tartiere
e52fbccb4a Remove unneeded header. 2010-02-22 12:05:48 +00:00
Romain Tartiere
74bc239a71 Abstract tag manipulation functions.
- Factorize Mifare*Tag as MifareTag;
  - Factorize mifare_*_get_tags() / mifare_*_free_tags() as freefare_get_tags() and freefare_free_tags();
  - Add a new freefare_get_tag_type() function to get a tag type;
  - Update regression test suite;
  - Update example.

While this is a major change that basically change all the API, programs using libfreefare should be easily modified by replacing any Mifare*Tag variable by a generic MifareTag one, adding a few lines of code to check the target's type using freefare_get_tag_type(), and changing any call to mifare_*_get_tags() / mifare_*_free_tags() by the generic freefare_get_tags() and freefare_free_tags() functions.
2010-02-19 14:50:18 +00:00
Romain Tartiere
2fd329e530 Do not make regression tests fail: spamming my shell is enouth to reminf me to fix this. 2010-02-19 14:40:28 +00:00
Romain Tartiere
d76da4697b Update files headers and Ids. 2010-02-19 10:43:06 +00:00
Romain Tartiere
4c2da817f0 Fix MIFARE UltraLight related code (C99 compliance). 2010-02-18 18:13:48 +00:00
Romain Tartiere
6d5224472c Fix MIFARE Classic unit tests default key.
According to the NXP documentation, default keys are 0xffffffffffff, not 0xa0a1a2a3a4a5 nor 0xd3f7d3f7d3f7.
2010-02-18 18:12:36 +00:00
Romain Tartiere
acb00368c6 Mark test_mifare_classic_get_trailer_permission() as pending.
This test requires a valid MAD to be present on the MIFARE card which is not a requirement for testing MIFARE Classic tags but MAD.
2010-02-18 17:14:37 +00:00
Romain Tartiere
2f24959116 Fix default permissions. 2010-02-18 17:07:36 +00:00
Romain Tartiere
8903968ea3 Honor 'ISO C99 requires rest arguments to be used'. 2010-02-11 11:29:57 +00:00
Romain Tartiere
10b8b92eb9 Fix a brunch of warnings. 2010-01-22 16:06:26 +00:00
Romain Tartiere
ef081454c7 Add support for MIFARE UltraLight Tags.
Many thanks to Johann Dantant from SpringCard for giving me UltraLight cards.

While here, fix a few other problems in the autostuff.
2010-01-19 23:14:25 +00:00
Romain Tartiere
0d1000e859 Fix regression tests build on FreeBSD.
While here, enhance error message when no MIFARE Classic tag can be found on the NFC device when running test_mifare_classic.la tests.
2010-01-12 15:38:56 +00:00
Romuald Conty
576801d5ff Fix build when cutter is not available. (make distcheck ok) 2010-01-11 20:25:28 +00:00
Romain Tartiere
c1bcb966ea Rework unit tests using cutter. 2010-01-11 20:14:30 +00:00
Romain Tartiere
517eef97cf The mifare_classic_format_sector prototype was changed on changeset 88. Update unit test accordingly. 2010-01-09 01:36:24 +00:00
Romain Tartiere
7a68e0f6ce Fix MadAid field orders (transfer bytes order is big endian). 2010-01-08 22:44:33 +00:00
Romain Tartiere
32e740ea6d Split out autojunk and actual code files. 2010-01-08 11:46:23 +00:00
Romain Tartiere
8a9d90210a Add MAD CRC support. 2010-01-08 11:24:30 +00:00
Romain Tartiere
073b67be48 merge all includes into a single freefare.h header.
libmad already has a mad.h file libfreefare would conflict with.
2009-12-26 18:16:22 +00:00
Romain Tartiere
58d83ae20a Enforce unit tests name consistency. 2009-12-21 13:58:53 +00:00
Romain Tartiere
3cab1523eb Introduce MAD application management functions. 2009-12-21 13:54:27 +00:00
Romain Tartiere
c7b8574e23 Make MAD Application Identifiers (AID) structure public as MadAid.
- Changed mad_get_aid() and mad_set_aid() ABI;
  - Update unit test;
2009-12-21 03:02:15 +00:00
Romain Tartiere
89dd817a63 Rename mifare_application_directory.[ch] to mad.[ch]. 2009-12-21 00:40:07 +00:00
Romain Tartiere
9478706550 Add MIFARE Application Directory (MAD) version 1 & 2 support (modulo CRC). 2009-12-21 00:02:40 +00:00
Romain Tartiere
a317799f01 Don't crash when no MIFARE target is present when running the regression tests suite. 2009-12-20 23:42:58 +00:00
Romain Tartiere
253d49eef8 Add forgotten regression test for mifare_classic_trailer_block(). 2009-12-19 22:59:38 +00:00
Romain Tartiere
7ed4561f74 New API function: mifare_classic_trailer_block(). 2009-12-19 06:10:44 +00:00
Romain Tartiere
b97012ac05 Add regression test suite. 2009-12-19 02:06:21 +00:00