Dec 4, 2013 - 0.4.0 ------------------- Fixes: fix spelling mistakes in manpages fix some typo fix bug in mifare_ultralight_read() fix reading page 0x2b of an ULC mifare-classic-read-ndef: skip NULL TLV & proprio TLV mifare-desfire-write-ndef: split PICC key & Tag app key mifare-desfire-write-ndef: fix issues in spilling ndef data to stdout and fix bug fix few memory leaks fix signed/unsigned comparison fix wrong variable usage remove unused variable avoid void* arithmetic GCC extension remove math.h dependency fix various autotools warnings fix many (but not all) compiler warnings Improvements: add support for 7-byte UID MIFARE Classic cards add support Infineon Mifare Classic 1k add test default ULC key in mifare-ultralight-info mifare-classic-format option: read keys from dump mifare-classic-write-ndef: add -y flag to write without confirmation split mifare-desfire-write-ndef into format-ndef & write-ndef add new example: mifare-ultralight-info. add mifare-desfire-read-ndef, read CC in mifare-desfire-write-ndef allow input file for mifare-desfire-write-ndef & small fixes add non-default key option to mifare-desfire-* examples document how to run cutter tests add new test: test_mifare_classic_format_first_sector(). Changes: update code to use libnfc 1.7.0 Special thanks to: - Ludovic Rousseau - Don Coleman - Gernoth - Jan Engelhardt Mar 1, 2012 - 0.3.4 ------------------- Fixes: Improvements: Changes: 2012-03-01 Romuald Conty * NEWS, configure.ac, debian/changelog: prepare libfreefare 0.3.4 2012-03-01 Romain Tartiere * libfreefare/mifare_ultralight.c: Fix Mifare Ultralight C card detection routine (Fixes Issue 86). Mar 1, 2012 - 0.3.3 ------------------- Fixes: Improvements: Changes: 2012-03-01 Romuald Conty * NEWS, configure.ac, debian/changelog, debian/control: prepare libfreefare 0.3.3 2012-01-25 Audrey Diacre * examples/mifare-classic-read-ndef.c, examples/mifare-classic-write-ndef.c, examples/mifare-desfire-access.c, examples/mifare-desfire-ev1-configure-ats.c, examples/mifare-desfire-ev1-configure-default-key.c, examples/mifare-desfire-ev1-configure-random-uid.c, examples/mifare-desfire-format.c, examples/mifare-desfire-info.c, examples/mifare-desfire-write-ndef.c: fix some indentations. 2012-01-25 Audrey Diacre * examples/mifare-classic-format.c, examples/mifare-classic-read-ndef.c, examples/mifare-classic-write-ndef.c, examples/mifare-desfire-access.c, examples/mifare-desfire-ev1-configure-ats.c, examples/mifare-desfire-ev1-configure-default-key.c, examples/mifare-desfire-ev1-configure-random-uid.c, examples/mifare-desfire-format.c, examples/mifare-desfire-info.c, examples/mifare-desfire-write-ndef.c, libfreefare/freefare.c, libfreefare/freefare.h, libfreefare/freefare_internal.h, libfreefare/mifare_classic.c, libfreefare/mifare_desfire.c, libfreefare/mifare_ultralight.c, test/mifare_classic_fixture.c, test/mifare_desfire_ev1_fixture.c, test/mifare_desfire_fixture.c, test/mifare_ultralight_fixture.c: update to use libnfc's trunk 2012-01-15 Romain Tartiere * examples/mifare-classic-format.c, test/mifare_classic_fixture.c, test/mifare_desfire_ev1_fixture.c, test/mifare_desfire_fixture.c, test/mifare_ultralight_fixture.c: Make these functions accept no argument (instead of any). 2012-01-15 Romain Tartiere * libfreefare/freefare.3, libfreefare/freefare_error.3, libfreefare/mad.3, libfreefare/mifare_application.3: Fix inconsistencies in man pages (missing quotes, typos). Oct 10, 2011 - 0.3.2 -------------------- Fixes: Improvements: Changes: 2011-10-17 Romuald Conty * NEWS, README, configure.ac, examples/mifare-classic-read-ndef.c: Prepare libfreefare 0.3.2 2011-10-11 Romuald Conty * examples/mifare-classic-write-ndef.c: mifare-classic-write-ndef could use file as NDEF content (BTW, stdin as input is not yet implemented, any contributions are welcome.) 2011-10-11 Romuald Conty * examples/mifare-classic-read-ndef.c: mifare-classic-read-ndef now close kindly the output stream. 2011-09-29 Romain Tartiere * NEWS, libfreefare/freefare.c, libfreefare/freefare.h: Make freefare_tag_new() public (Fixes issue 64). 2011-09-28 Romuald Conty * examples/mifare-classic-read-ndef.c: svn:keywords fix on examples/mifare-classic-read-ndef.c . 2011-09-22 Romain Tartiere * configure.ac, libfreefare/mifare_classic.c, libfreefare/mifare_desfire.c, libfreefare/mifare_ultralight.c: Sync w/ libnfc-1.5.1. 2011-09-22 Romuald Conty * examples/Makefile.am, examples/mifare-classic-read-ndef.c: Add a new example to extract NDEF Message from a "MIFARE Classic as NFC Forum enable tag". 2011-09-22 Romuald Conty * libfreefare/tlv.3: Minor TLV manpage fix. 2011-09-13 Romuald Conty * debian/control: Improve devian package (Thanks to Thomas Hood) 2011-09-12 Romuald Conty * debian/control: add libssl-dev to Build-Depends (in debian/control). (Fixes Issue 73) 2011-09-12 Romuald Conty * debian/control: add pkg-config to Build-Depends (in debian/control). (Fixes Issue 72) 2011-09-12 Romuald Conty * debian/rules: autoreconf is needed by debian build process when using svn version. 2011-06-27 Romain Tartiere * CMakeLists.txt, cmake/config_windows.h.cmake, libfreefare/CMakeLists.txt, libfreefare/mifare_desfire_crypto.c: Enable WITH_DEBUG for Windows (Fixes issue 65) PR: Issue 65 Submitted by: glenn.ergeerts 2011-05-20 Romuald Conty * debian/control, debian/watch: debian: update pam_nfc, mfoc and libfreefare packages to use dh7. 2011-05-18 Romuald Conty * debian/README.Debian, debian/README.source, debian/changelog, debian/compat, debian/control, debian/copyright, debian/libfreefare-bin.install, debian/libfreefare-dev.install, debian/libfreefare-doc.install, debian/libfreefare0.install, debian/rules, debian/source/format: import debian files 2011-05-11 Romain Tartiere * configure.ac: Fix code coverage with cutter. 2011-04-25 Romain Tartiere * FindLIBNFC.cmake, cmake/config_windows.h.cmake, cmake/modules/FindLIBNFC.cmake, config_windows.h.cmake, contrib/win32/err.h, err.h: Move cmake files around. Update issue 62 Looks like I missed the -p0 argument to patch. Can you please update and test? Thanks! 2011-04-24 Romain Tartiere * libfreefare/mifare_desfire_crypto.c: Indent after last commit. 2011-04-24 Romain Tartiere * libfreefare/mifare_desfire_crypto.c: Merge CRC location / verification in mifare_cryto_postprocess_data(). Fix issue 52. 2011-04-24 Romain Tartiere * CMakeLists.txt, FindLIBNFC.cmake, Makefile.am, NEWS, config_windows.h.cmake, err.h, examples/CMakeLists.txt, libfreefare/CMakeLists.txt: Add Microsoft Windows support. Update issue 62 Status: Feedback Gleen, I slightly modified your patches to better stick with the style of the rest of the project, Can you please confirm that it does not break? PR: Issue 62 Submitted by: glenn.ergeerts 2011-04-23 Romain Tartiere * libfreefare/mifare_desfire.c: Return error if something bad happen in mifare_cryto_preprocess_data() / mifare_cryto_postprocess_data(). Fixes issue 60. PR: Issue 60 Submitted by: ervin.kaljola 2011-04-23 Romain Tartiere * libfreefare/mifare_desfire.c, test/test_mifare_desfire_ev1_aes.c: Fix mifare_desfire_create_value_file(). Fixes issue 59 Committed, thanks! PR: Issue 59 Submitted by: ervin.kaljola 2011-04-23 Romain Tartiere * libfreefare/mifare_desfire_crypto.c: Enhance the mifare_cryto_postprocess_data() function. Update issue 52 Both code snippets are now similar and it should be possible to merge them together. 2011-04-23 Romain Tartiere * test/test_mifare_desfire_ev1_aes.c: Read written data to check that everything is fine. 2011-04-05 Romain Tartiere * libfreefare/mifare_ultralight.c: Implement mifare_ultralight_write() using macros. Update issue 58 I can't reproduce this bug, but saw that the mifare_ultralight_write() was implemented in an old-school way. I updated the code so that you should have better traces when compiling the library in debug mode and running: romain@marvin ~/Projects/libfreefare % cutter -n test_mifare_ultralight_write test ===> 0000 30 07 |0. | <=== 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| ===> 0000 a2 07 12 34 56 78 |...4Vx | ===> 0000 30 07 |0. | <=== 0000 12 34 56 78 00 00 00 00 00 00 00 00 00 00 00 00 |.4Vx............| ===> 0000 a2 07 aa 55 00 ff |...U.. | ===> 0000 30 07 |0. | <=== 0000 aa 55 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 |.U..............| ===> 0000 a2 07 00 00 00 00 |...... | ===> 0000 30 07 |0. | <=== 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| . Finished in 0,548238 seconds (total: 0,069079 seconds) 1 test(s), 12 assertion(s), 0 failure(s), 0 error(s), 0 pending(s), 0 omission(s), 0 notification(s) 100% passed 2011-03-26 Romain Tartiere * libfreefare/mifare_desfire.c: Fix invalid test. 2011-03-26 Romain Tartiere * test/Makefile.am, test/common/Makefile.am: Build unit-tests as part of all-am if DEBUG is enabled, otherwise at check-am before running the test suite. 2011-03-26 Romain Tartiere * NEWS, libfreefare/freefare.h, libfreefare/mifare_desfire.3, libfreefare/mifare_desfire.c, test/test_mifare_desfire_ev1_iso.c: Complete ISO 7816 compatibility for Mifare DESFire EV1 Fixes issue 37 2011-03-25 Romain Tartiere * libfreefare/freefare.h, libfreefare/mifare_desfire.c, test/Makefile.am, test/test_mifare_desfire_ev1_iso.c: Start support of ISO files for Mifare DESFire EV1. Fixes issue 57 New API functions: * mifare_desfire_create_application_iso() * mifare_desfire_create_application_3k3des_iso() * mifare_desfire_create_application_aes_iso() * mifare_desfire_get_df_names() Plus unit test to check this. 2011-03-25 Romain Tartiere * NEWS, libfreefare/freefare.h, libfreefare/mifare_desfire.3, libfreefare/mifare_desfire.c, test/test_mifare_desfire_ev1_3k3des.c, test/test_mifare_desfire_ev1_aes.c: New API functions mifare_desfire_create_application_3k3des(), mifare_desfire_create_application_aes(). Update issue 37 Only ISO application creation as requested by Issue 57 is lacking now. Feb 23, 2011 - 0.3.1 -------------------- Fixes: Improvements: Changes: 2011-02-23 Romain Tartiere * NEWS, configure.ac: Update for 0.3.1. 2011-02-23 Romain Tartiere * libfreefare/mifare_desfire_crypto.c: R is const. 2011-02-13 Romain Tartiere * test/Makefile.am, test/common/Makefile.am: Do not systematically build the tests if cutter is installed. Building them only when running the test-suite is probably enough. 2011-02-13 Romain Tartiere * Makefile.am: Shorter is better. 2011-02-13 Romain Tartiere * NEWS, libfreefare/Makefile.am, libfreefare/freefare.h, libfreefare/freefare_error.3, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c, libfreefare/mifare_desfire_error.c, test/test_mifare_desfire.c: Do not abort on crypto error. Because in some circumstances the crypto is skipped regardless of the communication settings by the Mifare DESFire (e.g. when reading a file which is writable with any key), do not abort if the crypto fail, and make it possible to the user to catch such an event to fix his code accordingly. Only display crypto diagnostic if compiled with debug support. 2011-02-13 Romain Tartiere * Makefile.am: prevent myself from shooting in my own foot. 2011-02-13 Romain Tartiere * NEWS, libfreefare/mifare_classic.c: Fix mifare_classic_transfer() with some readers. 2011-01-01 Romain Tartiere * libfreefare/mifare_desfire_crypto.c: Fix CRC localisation code. New issue Summary: Add regression tests for CRC location in encyphered data files. The CRC position location code in mifare_cryto_postprocess_data() shall be checked. new issue Summary: Rework mifare_cryto_postprocess_data() CRC localisations The function has two different implementation of the same feature: locate a CRC at the end of a decyphered stream and check it. The crc32 will fail if the last CRC byte is 0x80, and the crc16 code looks awful. A refactoring would make our life easier. 2011-01-01 Romain Tartiere * examples/mifare-desfire-info.c: Do not exit if the master key settings are not readable. 2010-12-31 Romain Tartiere * libfreefare/mifare_desfire.c: Make mifare_desfire_authenticate() a bit more magic. If the provided key is a 3K3DES key, authenticate in ISO mode. If the key is an AES one, authenticate in AES mode. This sugar should help third party applications to handle authentication in a more generic way. 2010-12-31 Romain Tartiere * libfreefare/mifare_desfire.c: Move away global variables. 2010-12-29 Romain Tartiere * libfreefare/mifare_desfire.c: Fix create_file2(). ECOPYPASTETOOFAST | EBADLUCKITSVALID: The argument communication_settings is not to be used to construct the parameters passed to the crypto functions mifare_cryto_preprocess_data() & mifare_cryto_postprocess_data(), but only for building the frame. 2010-12-29 Romain Tartiere * libfreefare/mifare_desfire.c, test/test_mifare_desfire_ev1_aes.c: Fix write_data() return value when data is enciphered. We only have to return the number of bytes of raw data which are sent. 2010-12-29 Romain Tartiere * libfreefare/mifare_desfire.c: Fix usage of a potentially reallocated memory area. 2010-12-28 Romain Tartiere * libfreefare/freefare.c: Fix parenthesis position. 2010-12-28 Romain Tartiere * libfreefare/Makefile.am, libfreefare/freefare.c, libfreefare/freefare.h, libfreefare/freefare_internal.h, libfreefare/mifare_desfire_crypto.c, libfreefare/mifare_ultralight.c, test/mifare_ultralight_fixture.c, test/test_mifare_ultralight.c: Merge de libfreefare-ultralight branch into trunk (Mifare UltraLightC support). 2010-12-26 Romain Tartiere * NEWS, libfreefare/Makefile.am, libfreefare/mifare_desfire.3: Update man pages. 2010-12-25 Romain Tartiere * examples/mifare-desfire-ev1-configure-ats.c: Set the default ATS instead of a custom one. This prevent some tools to work properly with a card afterthat. 2010-12-24 Romain Tartiere * libfreefare/freefare.c, libfreefare/freefare_internal.h: Detect Mifare DESFire targets with more than one historical character. 2010-12-24 Romain Tartiere * NEWS, examples/Makefile.am, examples/mifare-desfire-ev1-configure-ats.c, libfreefare/freefare.h, libfreefare/mifare_desfire.c: New API function mifare_desfire_set_ats(). 2010-12-24 Romain Tartiere * libfreefare/mifare_desfire_crypto.c: Simplify redundant code. 2010-12-24 Romain Tartiere * examples/mifare-desfire-ev1-configure-default-key.c: Fix example. 2010-12-24 Romain Tartiere * NEWS, examples/Makefile.am, examples/mifare-desfire-ev1-configure-default-key.c, libfreefare/freefare.h, libfreefare/mifare_desfire.c: New API function mifare_desfire_set_default_key(). 2010-12-24 Romain Tartiere * test/test_mifare_desfire_des.c: Commit files forgotten as part of r733. 2010-12-24 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c: Rename some internal functions. A function with DES in its name that can perform AES crypto is somewhat disturbing. 2010-12-24 Romain Tartiere * test/test_mifare_desfire.c, test/test_mifare_desfire_ev1.c, test/test_mifare_desfire_ev1_3des.c, test/test_mifare_desfire_ev1_3k3des.c, test/test_mifare_desfire_ev1_aes.c: Freshen out cut_assert_success() macro. 2010-12-24 Romain Tartiere * test/test_mifare_desfire_aes.c: Fix headers for memset(). 2010-12-24 Romain Tartiere * NEWS, libfreefare/Makefile.am, libfreefare/mifare_desfire.3, libfreefare/mifare_desfire_key.3: Sync man pages. 2010-12-24 Audrey Diacre * libfreefare/mifare_desfire_crypto.c, test/test_mifare_desfire_aes.c, test/test_mifare_desfire_ev1_3des.c, test/test_mifare_desfire_ev1_3k3des.c, test/test_mifare_desfire_ev1_aes.c: replace last deprecated bzero function by memset. 2010-12-24 Romain Tartiere * libfreefare/Makefile.am: Create forgotten man pages symlinks. 2010-12-24 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c, test/Makefile.am, test/test_mifare_desfire_ev1_3des.c: Add support for ISO authentication with 3DES keys. 2010-12-24 Romain Tartiere * test/test_mifare_desfire_des.c: libfrefare: Use local ivect in test. It looks like finally a global variable modified by a test can impact another test. 2010-12-24 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire_crypto.c: Change the enciphered_data_length() internal function prototype. 2010-12-24 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c, test/test_mifare_desfire_des.c: Change the mifare_cbc_des() internal function prototype. Dec 23, 2010 - 0.3.0 -------------------- Fixes: Improvements: Changes: 2010-12-23 Romain Tartiere * NEWS: Update the NEWS file regarding the mifare_desfire_get_file_settings() buffer overflow fixed in 0.2.3 (update versions). 2010-12-23 Romain Tartiere * configure.ac: Bump version for the 0.3.x series. 2010-12-18 Romain Tartiere * libfreefare/freefare.c, libfreefare/mad.c, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c: Reindent. 2010-12-18 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c, test/test_mifare_desfire_des.c: Update the MifareDirection structure for consistency. 2010-12-18 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_crypto.c, test/test_mifare_desfire_des.c: Switch from obscure 'int mac' argument to 'MifareCryptoOperation operation'. 2010-12-18 Romain Tartiere * TODO, libfreefare/Makefile.am, libfreefare/mifare_desfire_authenticate.c, libfreefare/mifare_desfire_crypto.c: Rename mifare_desfire_authenticate.c to mifare_desfire_crypto.c. 2010-12-18 Romain Tartiere * libfreefare/freefare.h, libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_authenticate.c, libfreefare/mifare_desfire_key.c, test/Makefile.am, test/common/mifare_desfire_auto_authenticate.c, test/common/mifare_desfire_auto_authenticate.h, test/test_mifare_desfire_ev1_3k3des.c: Add support for authentication using 3K3DES. Please note that according to the NXP documentation of the Mifare DESFire EV1, the mifare_desfire_authenticate_iso() function can be used using either 3DES or 3K3DES keys. The former has not been tested yet and is likely not to work. To word it differently, this is a 3K3DES crypto support, not a ISO authentication support... 2010-12-18 Romain Tartiere * libfreefare/mifare_desfire_authenticate.c: Ignore the status code when deciphering (3)DES data. 2010-12-18 Romain Tartiere * HACKING, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_authenticate.c: Rewrite some tests using switch statements. Add a note for the reason I do this in the HACKING file. 2010-12-18 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire_authenticate.c: Improve the way data with already a CRC is preprocessed. 2010-12-18 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire_authenticate.c, test/test_mifare_desfire_aes.c: Update CMAC code to handle 64 and 128 bit keys. 2010-12-18 Romain Tartiere * test/test_mifare_desfire_ev1_aes.c: Enlarge another buffer to workaround the read_data() buffer overrun. 2010-12-18 Romain Tartiere * libfreefare/mifare_desfire.c: Invalidate authentication when changing the currently used key. 2010-12-18 Romain Tartiere * libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_authenticate.c: Remove weird code. I should quit coding drunk... or maybe start to... 2010-12-18 Romain Tartiere * libfreefare/mifare_desfire.c, test/test_mifare_desfire.c: Workaround invalid write in read_data () (sic) This has to be improved to some extend in the near future (hence the FIXME). 2010-12-17 Romain Tartiere * libfreefare/mifare_desfire_authenticate.c, test/test_mifare_desfire_des.c: Fix key_macing_length() return value when nbytes is 0. 2010-12-17 Romain Tartiere * libfreefare/mifare_desfire.c: Silent down the compiler. The create_application() function has iso_ parameters for creating ISO application but this mode is not available yet so the code is unused which annoys the compiler when told to be somewhat strict. 2010-12-17 Romain Tartiere * test/test_mifare_desfire_ev1_aes.c: Fix the fix introduced at r697. Yes, this type I typed 'make' before committing... 2010-12-17 Romain Tartiere * test/test_mifare_desfire_ev1_aes.c: Fix freed memory usage. 2010-12-15 Romain Tartiere * libfreefare/mifare_desfire.c: Fix a brunch of potentially reallocated memory areas. 2010-12-15 Romain Tartiere * libfreefare/mifare_desfire.c, test/test_mifare_desfire_ev1_aes.c: Fix mifare_desfire_get_key_version() when authenticated with an AES key. 2010-12-15 Romain Tartiere * examples/Makefile.am, libfreefare/freefare.h, libfreefare/mifare_desfire.c: Enable the mifare-desfire-ev1-configure-random-uid example. 2010-12-15 Romain Tartiere * libfreefare/mifare_desfire.c: Fix mifare_desfire_free_mem(). 2010-12-15 Romain Tartiere * examples/mifare-desfire-info.c: Display additional Mifare DESFire EV1 information if applicable. 2010-12-15 Romain Tartiere * NEWS, TODO, configure.ac, examples/mifare-desfire-ev1-configure-random-uid.c, libfreefare/freefare.c, libfreefare/freefare.h, libfreefare/freefare_internal.h, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_authenticate.c, libfreefare/mifare_desfire_key.c, test/Makefile.am, test/common/mifare_desfire_auto_authenticate.c, test/common/mifare_desfire_auto_authenticate.h, test/mifare_desfire_ev1_fixture.c, test/mifare_desfire_ev1_fixture.h, test/test_mifare_desfire.c, test/test_mifare_desfire_aes.c, test/test_mifare_desfire_ev1.c, test/test_mifare_desfire_ev1_aes.c: Add support for Mifare DESFire EV1 with AES encryption. 2010-12-13 Audrey Diacre * libfreefare/mifare_desfire.c: fix buffer overflow. 2010-12-10 Audrey Diacre * configure.ac, libfreefare/mad.c, libfreefare/mifare_classic.c, libfreefare/mifare_desfire.c, libfreefare/mifare_desfire_authenticate.c, test/test_mifare_classic.c, test/test_mifare_desfire.c: replace deprecated bzero function by memset. 2010-12-10 Romain Tartiere * NEWS, libfreefare/mifare_desfire.c: Discard authentication information after deleting the currently selected application. ============================================================================= For older, see https://code.google.com/p/libfreefare/issues/list