1Feb 24, 2014 - 1.7.1 2------------------ 3 4Fixes: 5 - Fix several issues reported by Coverity Scan 6 (mem leaks, buff overflows, reuse after free, etc) 7 - More robust when several conflicting uart drivers are in the config 8 - Fix racing condition with uart_flush_input() 9 - Silent pn53x_check_communication error messages when scanning 10 - Fix nfc_target_init(), was returning success in case of timeout 11 - Windows: fix several compilation issues 12 - On tag selection, save current target info also for ISO14443B* 13 - nfc-read-forum-tag3: fix incomplete NDEF retrieval and size of output file 14 15Improvements: 16 - nfc-list: New option to choose which technologies to poll for 17 - UART: drivers now supported under kFreeBSD 18 - New LIBNFC_DEVICE env var to use one reader and exclude all other readers 19 while LIBNFC_DEFAULT_DEVICE only prepends it to the configured devices list 20 - New LIBNFC_AUTO_SCAN env var to enable(default)/disable auto scan 21 - On tag selection, save current target info even if pnt=NULL 22 - On tag selection, grant NP_INFINITE_SELECT also for ISO14443B* 23 - Save & restore NP_INFINITE_SELECT status when changing it internally 24 - nfc-mfclassic: add format/wipe command (thanks to Adam Laurie) 25 - nfc-jewel: new utility to read/write Topaz/Jewel tags (thanks to Pim 't Hart) 26 - nfc_initiator_select_passive_target() provides defaults if pbtInitData=NULL 27 - nfc-read-forum-tag3: add -q option, add full parsing of NDEF Attribute Block 28 29Fixes & improvements specific to nfc_initiator_target_is_present(): 30 - Supports fully PN532 & PN533, not tested on other chips 31 - Fix usage after nfc_initiator_poll_target() 32 - Set correctly last_error 33 - Fix issue when there was no saved target 34 - Allow NULL pointer to tag 35 - Fix issues in case of tear off conditions 36 - Now works with: 37 * MFUL, MFC, MFC Mini, MFC 7-byte (re-selection: you'll need to auth again) 38 * ISO14443-4A, ISO14443-4B 39 * ISO14443-4B', ASK CTx, ST SRx 40 * Jewel 41 * FeliCa 42 43Sep 03, 2013 - 1.7.0 44-------------------- 45 46Fixes: 47 - pn53x: only create a current target when at least one have been found 48 - pn532_uart: fix 'operation abort' feature with this driver 49 - pn532_uart: let more time to PN532 to wake-up, this fix some specific cases 50 where PN532 shown one of two runs (Thanks to Marcello Morena) 51 - nfc-mfclassic: allow option f for read operation too 52 - Avoid clash with system's htole32 if it exists 53 - Include <stdlib.h>, required for getenv(3) 54 - usb: fix USB enumeration issue (Thanks to Mike Auty) 55 - acr122_pcsc: fix compilation on Mac OSX 10.8.4 56 - Fix pn53x_initiator_transceive_bytes_timed() measures for TypeB 57 - Various minor fixes: warnings, style, etc. 58 59Improvements: 60 - New PN532 over I2C driver, see contrib/libnfc/pn532_i2c_on_rpi.conf.sample 61 - ACR122/Touchatag: misc improvements 62 - ReadMobib/ReadNavigo: improve shell script portability 63 - Add ISO14443-4 chaining support for RX (MI) 64 - UART: add support for BeagleBone serial ports (Thanks to Johan Henselmans) 65 - nfc-mfultralight: allow setting of UID for special 'chinese' ultralight cards 66 67Special thanks to: 68 - Laurent Latil (new pn532_i2c driver for linux) 69 - Nobuhiro Iwamatsu (warning fixes and debian package) 70 71Apr 05, 2013 - 1.7.0-rc7 (release candidate) 72-------------------------------------------- 73 74Fixes: 75 - Fix bug when compiling without libusb 76 - Fix several memory leaks in error handling conditions 77 - Remove calls to exit() from the library 78 - Create safer snprint_nfc_*() instead of sprint_nfc_*() functions 79 - Fix warnings returned by cppcheck & clang/scan-build 80 - Obsolete function 'usleep' => nanosleep() 81 - Non reentrant function 'readdir' => readdir_r() 82 - Non reentrant function 'strtok' => new connstring_decode() 83 - Buffer may not be null-terminated after call to strncpy() 84 - scanf without field width limits can crash with huge input data 85 - Resource leaks: missing fclose() 86 - Dead code, unused vars & vars scopes warnings 87 - Unify copyright notices & update authors lists 88 - Windows: Fix compilation due to new usbbus file 89 - Windows: Clean up compiler/linker warnings 90 - Fixed the suppression of the auto-fixup for linking against MS built libs 91 - Fixed all the formatting warnings by shifting to inttypes.h specifiers 92 - shifted to %lu for DWORD printf 93 - nfc-anticol: fix ATS length 94 - nfc-mfclassic: fix reporting of processed blocks total 95 - nfc-mfclassic: detect MIFARE Plus 2K as 2K instead of 1K 96 - pn53x_usb/acr122_usb: check usb_open() returns before using it 97 98Improvements: 99 - New PN532 over SPI driver, see contrib/libnfc/pn532_spi_on_rpi.conf.sample 100 - Devels HACKING file: introduce clang/scan-build & cppcheck for better code 101 - Better internal dependencies handling (bus <> drivers) 102 - Cleaner handling of portability patches 103 - Windows: logging via OutputDebugString(), ease debugging 104 - nfc-mfclassic: use smaller files for cards < 4k 105 - nfc-mfclassic: by defaut don't authorise wrong keyfile, use "f" to force 106 - quick_start_example1.c: remove err.h dependency, easier for Windowsians 107 - nfc-mfclassic: support some new magic cards with writeable sector #0 108 - nfc-anticol: add -t option to use timed functions 109 110Changes: 111 - Upon malloc error, nfc_init() doesn't force exit() anymore 112 so now you should test if context != NULL after nfc_init() call 113 - API: nfc_initiator_target_is_present() & str_nfc_target() 114 now take a pointer to nfc_target as argument instead of passing by value 115 116Special thanks to: 117 - Eugeny Boger (new pn532_spi driver for linux) 118 119Mar 03, 2013 - 1.7.0-rc6 (release candidate) 120-------------------------------------------- 121 122Fixes: 123 - Fix several memory leaks (nfc_drivers, libusb, config parser) 124 - Fix stack smash while displaying long data transmission (LOG_HEX) 125 - pn53x-tamashell: allow larger commands up to full extended frame 126 - Add missing windows file in archive (version.rc.in) 127 - Fix compilation warnings & potential bugs 128 - Fix documentation 129 - Fix missing malloc() calls checks 130 - Fix missing free() calls in some error handlers 131 132Improvements: 133 - Allow to disable conffils & envvar supports on embedded platforms 134 - Add option to nfc-mfclassic to tolerate RW errors 135 136Changes: 137 - Replace usb_set_debug() in applications by LIBNFC_LOG_LEVEL libusb group 138 139Feb 16, 2013 - 1.7.0-rc5 (release candidate) 140-------------------------------------------- 141 142Fixes: 143 - Add missing sample configuration file in archive 144 - Add missing windows files in archive 145 - Preserve error code while using pn53x_set_property_bool() with 146 NP_AUTO_ISO14443_4 flag 147 148Improvements: 149 - New nfc_register_driver() function allowing to hook custom drivers 150 - New nfc_free() function to free allocated buffers 151 152Special thanks to: 153 - Ahti Legonkov (new nfc_register_driver()) 154 155Feb 04, 2013 - 1.7.0-rc4 (release candidate) 156-------------------------------------------- 157 158Fixes: 159 - Fix tag selection for nfc-mfclassic, nfc-mfultralight, nfc-read-forum-tag3 160 and nfc-relay-picc 161 - Fix crash in nfc-relay-picc -i/-t if fd3 or fd4 is missing 162 163Improvements: 164 - Windows support build with CMake 165 166Changes: 167 - Configuration directory (ie. libnfc.conf) can now be set a compile-time 168 - Log can be enabled/disabled using CMake 169 170Special thanks to: 171 - Alex Lian (Windows support improvements) 172 - Nobuhiro Iwamatsu (Debian package improvements) 173 174Jan 31, 2013 - 1.7.0-rc3 (release candidate) 175-------------------------------------------- 176 177Fixes: 178 - Fix pn53x_usb bulk write timeout 179 - Fix BCC in nfc-emulate-uid example 180 - Fix nfc-relay-picc example 181 - Fix a miss returned value within some internal functions (user program could 182 be affected) 183 - Fix nfc-scan-device -i option 184 - Remove wrong exit() calls in library 185 - Fix issue in driver acr122_usb affecting Touchatag 186 - Reenable some idle in all drivers, add selectively PowerDown when possible 187 188Changes: 189 - nfc_emulate_target() now takes timeout parameter 190 191Special thanks to: 192 - Alex Lian (Windows support refresh) 193 194Jan 20, 2013 - 1.7.0-rc2 (release candidate) 195-------------------------------------------- 196 197Fixes: 198 - Fix API version in debian files 199 - Fix wrong condition to display a warning when user disables autoscan 200 - Fix unit tests 201 - Fix ISO14443B' ATS 202 203Improvements: 204 - Allow device.optional=true to tolerate missing device 205 206Changes: 207 - pn532_uart driver is now enabled by default 208 209Dec 09, 2012 - 1.7.0-rc1 (release candidate) 210-------------------------------------------- 211 212Fixes: 213 - nfc_initiator_deselect_target() now returns 0 on success (as expected by caller) 214 - example/pn532-sam: Fix few bugs 215 - Fix ACR122S device detection when no ACR122S device available (endless UART receive) 216 - Suppress a lot of compiler warnings !.. which fixes many potential bugs 217 - Display right driver name while detecting PCSC 218 - Correctly handle PCSC header files on Mac OS X 219 - Fix nfc-emulation (now works with utils/nfc-emulate-forum-tag4 and Nexus S) 220 221Improvements: 222 - New nfc_initiator_init_secure_element() function to set SAM as wired card (only relevant with a PN532 SAM-equipped) 223 - New str_nfc_target(), str_nfc_modulation_type(), str_nfc_baud_rate() function to convert some libnfc's types into allocated string 224 - New nfc_device_target_is_present() to check if passed target is in the field 225 - --enable-serial-autoprobe option at compile time to replace it with some run-time options 226 - New -i option to nfc-scan-device to allow intrusive scan 227 - New feature, libnfc now uses configuration files: 228 * main configuration file can be used to set options (ie. intrusive, autoscan, log-level) 229 * main configuration file can contains a device as default device, HIGHLY recommended for UART devices users 230 * multiple devices files can be used to declare multiple devices and ordered them 231 - UART port scan now includes ttyAMA* to detect UART-devices connected on Raspberry Pi (e.g. `nfc-scan-device -i`) 232 - Support for OpenPCD2 (with a dedicated firmware) 233 - Support for FTDI dongle under MacOS 234 - Enhance messages display 235 - Provides modprobe configuration file and instructions for Linux >3.1 with PN533 users. 236 - Greatly improve log facility with log level filter, configurable using conf file (ie. /etc/nfc/libnfc.conf) or environment var LIBNFC_LOG_LEVEL 237 - New man page for nfc-read-forum-tag3 utility (Thanks to UNFORGiVEN512) 238 - New man page for nfc-scan-device utility 239 - New man page for nfc-emulate-forum-tag2 example 240 - README: Add few words about device permissions and udev/devd rules available in package 241 - utils/nfc-emulate-forum-tag4: add support for v2.0 of the spec 242 - New "make style" command to have a beautiful code 243 - Code cleanup (indentation, white spaces, etc.) 244 245Changes: 246 - New nfc_device_get_information_about() now allocates returned string 247 - No more in/out paramaters in nfc_initiator_transceive_*() functions 248 - Rename nfc-probe to nfc-scan-device 249 - Rename abtUid from struct mifare_param_auth into abtAuthUid: this is not the UID while using 7-bytes UID MIFARE Classic tags. 250 - utils/nfc-list: always display the card type when a card is found 251 - nfc-utils: new fingerprinting method closer to AN10833, (Thanks to Balazs Bucsay) 252 253See NEWS file for major changes (ie. API changes) 254 255Special thanks to: 256 - Ludovic Rousseau (Code cleanup, tests under MacOS, etc.) 257 - Frank Morgner 258 259Feb 27, 2012 - 1.6.0-rc1 (release candidate) 260-------------------------------------------- 261 262Fixes: 263 - utils/nfc-mfclassic: use MIFARE instead of Mifare typo 264 - utils/nfc-list: continue to attempt to reach devices after a connection failure 265 - libnfc: avoid readline auto-detection when cross-compiling 266 - driver/pn53x_usb: fix path usage for FreeBSD 267 - doc: quick_start_example1.c fixed 268 - utils/*: verbose option back for nfc-list, and newly implemented in nfc-poll 269 270Improvements: 271 - libnfc: enhanced documentation 272 - libnfc: debug facility back without external depends 273 - libnfc: add nfc_device_get_supported_modulation() and nfc_device_get_supported_baud_rate() functions 274 - libnfc: enhanced code indent 275 - drivers: implement driver for ACR122S device 276 - utils/nfc-mfclassic: remove non-conscistent "extract payload" option in nfc-mfclassic 277 - utils/nfc-emulate-forum-tag2: add missing manpage 278 - utils/nfc-read-forum-tag3: add missing manpage 279 - tests/*: fix some warnings in test 280 - tests/test_dep*: add some DEP tests (Active/Passive in several baud rates) 281 - doc: quick_start_example1 is now compiled when running make check or distcheck 282 - libnfc: a printf-based logging replaces log4c 283 - libnfc: various minor fixes/enhancements 284 - utils/*: nfc-probe example added to show devices connection strings 285 286Changes: 287 - PN53x specific errors are not public anymore; 288 - Timeouts are now integers instead of timeval structure 289 - Removes libusb types workaround (r200) as it seems to not be needed anymore but may disturb compiler 290 - Removes parse_args() from nfc-utils.[hc] 291 - Move nfc-emulate-forum-tag2 from utils to examples. 292 - contrib: move udev and devd files into contrib/ 293 - debian: udev rules file renamed 294 295See NEWS file for major changes (ie. API changes) 296 297Special thanks to: 298 - Thomas Hood (Debian packages and various fixes/contributions) 299 - Anugrah Redja (ACR122S driver) 300 301Oct 17, 2011 - 1.5.1 (unstable) 302------------------------------- 303 304Fixes: 305 - libnfc: fix invalid memory access when a new driver is probing for hardware and the number of requested devices was already reached 306 - chips/pn53x: fix bug in _timed fcts 307 - drivers/pn53x_usb: fix crash when usb_bulk_read() fails. 308 - drivers/pn53x_usb: continue to search a available device on usb errors (ie. Device Busy) 309 - drivers/pn53x_usb: make PN53x usb connection more stable 310 - examples/nfc-relay: fix UID problem 311 - windows: fix uart_receive() under Win32 platform 312 313Improvements: 314 - libnfc: add logging facility using log4c. 315 - libnfc: abort mecanism is now implemented in driver layer, so it can use pipe-based mecanism (as PN532_UART or ARYGON driver does under POSIX system) or flag-based mecanism. 316 - libnfc: add ISO/IEC 14443 B' aka Type B' modulation partial support 317 - libnfc: add partial support (list) for ISO14443B-3 ST SRx & ASK CTx cards 318 - libnfc: compile unit tests only on demand unless using --enable-debug. 319 - libnfc: error handling improvements 320 - libnfc: new function nfc_idle() to set the NFC device in idle mode 321 - libnfc: add partial support for Sony S360 reader 322 - libnfc: some manual test reports have been added 323 - libnfc: list_targets support for ASK CTS512B (no anticol support yet) 324 - libnfc: nfc_disconnect() now switches NFC device into idle before disconnecting 325 - libnfc: nfc_initiator_poll_target() is now available for all devices 326 - libnfc: implement software polling for non-PN532 equipped device 327 - chips/pn53x: add pn53x_data_new() function to alloc and init pn53x_data structure 328 - chips/pn53x: add some SFR registers description 329 - chips/pn53x: implement WriteBack cache 330 - chips/pn53x: new pn53x_PowerDown wrapper for PowerDown (PN532) command 331 - chips/pn53x: prints a debug trace when reading PN53x registers 332 - chips/pn53x: set some parameters in ISO/IEC 14443A when using DEP mode (ie. SAK says ISO/IEC 18092 compliant) (Android NFC stack now detects the target as DEP) 333 - chips/pn53x: some optimisations in registers initialisation 334 - chips/pn53x: list_passive_targets() fixed for TypeB on LoGO 335 - chips/pn53x: pn53x_data now have a operating_mode enum to know the current running mode (initiator, target or idle) 336 - drivers/*: all commands are now abortable 337 - drivers/pn532_uart,arygon: make valgrind happy with UART-based drivers 338 - drivers/pn53x*: use shared pn53x_ack_frame[] and pn53x_nack_frame[] instead of local declaration 339 - drivers/pn53x_usb: all USB errors are now reported in text format 340 - drivers/pn53x_usb: enable progressive field on init to allow pn53x-tamashell to works (note: it does not distrib progressive field enabling when nfc_list_passive_target() is used) 341 - drivers/pn53x_usb: implement PN53x extended information frames with USB devices 342 - drivers/pn53x_usb: use progressive field on/off only for ISO14443 Type B target listing 343 - buses/uart: now provides an abort mecanism for windows users 344 - buses/uart: UART based drivers could now use uart_flush_input() to discard junk bytes on input. 345 - examples/nfc-anticol: add -f option to force RATS 346 - examples/nfc-mfclassic: handle 7-byte UID cards & MFC Mini 347 - examples/nfc-anticol: now use nfc_abort_command() 348 - examples/nfc-dep-*: disconnect from NFC device on error. 349 - examples/nfc-emulate-forum-tag2: add new example to emulate a NFC Forum Tag Type 2 350 - examples/nfc-emulate-forum-tag4: add document references. 351 - examples/nfc-emulate-forum-tag4: this example now fails with ENOTSUPP when used with a non-PN532 chip. 352 - examples/nfc-mfclassic: write special Mifare 1K cards, including Block 0 / UID 353 - examples/nfc-mfsetuid: add a new example to set UID of special Mifare 1K cards 354 - examples/nfc-read-forum-tag3: add new example to read a NFC Forum Tag Type 3 355 - examples/pn53x-tamashell-scripts: minor enhancements 356 - tests/test-dep: add a threaded DEP test to check DEP communication between two local devices 357 - debian: enable all drivers at compile time 358 - debian: improve debian packaging (Thanks to Thomas Hood) 359 - debian: use a numbering that allow to have libnfc pre-version and debian package pre-version too. (Thanks to Thomas Hood) 360 - freebsd: add FreeBSD devd(8) snippet configuration for Sony S330 readers. 361 - windows: implement abort mecanism in pn532_uart driver (Based on provided patch: many thanks to Edwin Evans) 362 - windows: USB drivers now relies on libusb-win32 with version >= 1.2.4.x (1.2.4.6 recommended) (Many thanks to Glenn) 363 - windows: implement automatic uart port detection and input flush (Thanks to Edwin Evans) 364 365Changes: 366 - libnfc: add 'struct timeval *timeout' parameter for pn53x_transceive(), pn53x_target_receive_bytes() and pn53x_target_send_bytes(). 367 368 369 370Apr 29, 2011 - 1.5.0 (unstable) 371------------------------------- 372 373Fixes: 374 - libnfc: silent warnings with more strict CFLAGS 375 - libnfc: update devd(8) rules file for FreeBSD 376 - libnfc: make libnfc compile under Windows 377 - libnfc: fix nfc_pick_device() when called from nfc_connect with NULL nfc_device_desc_t parameter 378 - chips/pn53x: fix a bug when value is larger than mask when using WriteRegister 379 - chips/pn53x: adapt MaxRetries to avoid issue with 2 tags on PN531 380 - examples/nfc-mfclassic: UID was shown reverse-ordered 381 382Improvements: 383 - libnfc: use a new way to handle drivers, introduce a real HAL 384 - libnfc: use absolute include path instead of relative ones 385 - libnfc: move some nfc_device_t members in a better place 386 - libnfc: improve nfc_driver_t struct to embedded HAL API 387 - libnfc: nfc_device_t now embeddeds driver data and chip data pointers (useful to be more generic) 388 - libnfc: use more readable variables instead of strange coding convention 389 - libnfc: move PRINT_HEX macro into nfc-internal.h 390 - libnfc: introduce an abort mecanism 391 - libnfc: suppress any PN53x references in nfc.c 392 - libnfc: nfc-mfclassic and nfc-mfcultralight examples are now compiled under Windows 393 - chips/pn53x: use the powerful C99 writing to construct PN53x commands 394 - chips/pn53x: remove almost all memcpy() 395 - chips/pn53x: WriteRegister, ReadRegister and SetParameters command wrappers are correctly named 396 - chips/pn53x: introduce chip state (SLEEP, NORMAL or EXECUTE) 397 - chips/pn53x: add SAMConfiguration command wrapper (need to be improved) 398 - chips/pn53x: remove almost all const arrays 399 - chips/pn53x: use human readable defines for commands instead of hex values 400 - chips/pn53x: in debug mode, the PN53x command is shown in human-readable string, awesome isn't it? ;-) 401 - chips/pn53x: try to determine IC version instead of hardcode it. 402 - chips/pn53x: new fonction to build frames instead of build them in each driver 403 - chips/pn53x: enable aborting blocking commands (e.g. TgInitAsTarget) and refactor *_check_communication() as pn53x_check_communication(). 404 - chips/pn53x: add timed versions of transceive_bytes/bits, allow to detect emulated/non-emulated tags and more... 405 - chips/pn53x: support CRC auto-handling in ...transceive_bytes_timed 406 - drivers/pn53x_usb: ASK LoGO: enable progressive field feature. 407 - drivers/pn532_uart: major improvement of UART handling 408 - drivers/pn532_uart: check PN53x frames when received 409 - drivers/pn53x_usb: enhance ASK LoGO dedicated code 410 - drivers/pn53x_usb: add LEDs support for ASK LoGO and SCL3711 411 - drivers/pn532_uart: implement extended frame send/receive for PN532_UART driver. 412 - drivers/arygon: use the new way to drive UART (its far more stable) 413 - drivers/arygon: do not hard code PN532 chip type: pn53x_init() determine it and ARYGON device seems to not need to be waken up. 414 - drivers/arygon: reject too heavy payload (ARYGON does not support PN53x extended frame even with PN532 equipped device) 415 - drivers/pn532_uart & arygon: now runs almost twice faster than the previous stable release 416 - buses/uart: receive() is now based on expected bytes instead of calculated timeouts.. 417 - buses/uart: simplify uart_send() on POSIX systems. 418 - examples/nfc-emulate-tag: minor comments improvements. 419 - examples: remove nfc-message.h usage from examples. 420 - examples/nfc-emulate-forum-tag4: fully reworked example: it now support all NFC-Forum device in read and write mode 421 - examples/pn53x-tamashell: add an example for LoGO LEDs 422 - examples/pn53x-tamashell: add a script to read Mobib card. 423 - examples/pn53x-tamashell: add a script to read Navigo card. 424 425Changes: 426 - libnfc: merge macros from nfc-messages.h into nfc-internal.h 427 - libnfc: remove useless files: nfc-messages.h, buses.h and chips.h 428 - API: new nfc_emulate_target() that ease target emulation for developer 429 - macros: show PRINT_HEX result on stderr in debug mode (that helps to sync with debug msg which are printed on standard error output.) 430 - drivers: split transceive() into send() and receive() to be able to handle more cases (differed replies, abort commands, etc) later 431 - drivers: use a const structure of functions instead of -dirty- callbacks array 432 - drivers/pn53x_usb: pn531_usb and pn533_usb drivers are now merged and use the pn53x IC version autodetection 433 - buses/uart: use a smart way to determine available ports on POSIX systems (tested on Linux and FreeBSD) 434 435 436 437Feb 21, 2011 - 1.4.2 438-------------------- 439 440Fixes: 441 - libnfc: fgets instead of getline, bring MacOSX / BSD without glibc alive 442 - libnfc: add missing CMake files to generated tarball needed by windows users (Thanks to Glenn) 443 - drivers/pn532_uart: fix pn532 wakeup response handling 444 - buses/uart: prevent from retrieving more than buffer length (potential buffer overflow) 445 - buses/uart: intent to speed up interface 446 - nfc-emulate-uid: use a correct UID 447 - nfc-mfclassic: fixes a segfault when using only 1 argument 448 449Improvements: 450 - libnfc: silent some compilation warnings 451 - drivers/pn533_usb: support new device: ASK / LoGO. (Thanks to ASK for sending one sample) 452 - chips/pn53x: set register directly if mask cover whole value. 453 - pn53x-tamashell: accepts script as arg, this makes shebang possible 454 - pn53x-tamashell: add pause command & doc 455 - documentation: add a README-Windows.txt file 456 - documentation: add more pcsc-lite related instruction in README 457 458 459 460Feb 1, 2011 - 1.4.1 461------------------- 462 463Fixes: 464 - libnfc: fix missing pn53x-tamashell-scripts in generated tarball. (Thanks to usermeister) 465 - buses/uart: improved UART communication on POSIX systems: slower devices can be detected and high speed devices works better 466 - buses/uart: serial autoprobe now skips invalid devices but checks all ports in the list 467 - drivers/pn53x_usb: prevent from stack corruption when using PN533-based device and add errors handling for ReadRegister and WriteRegister 468 - drivers/arygon: fix polling on ARYGON devices 469 - examples/nfc-emulate-tag: switch off easy framing when we are not emulating a ISO14443-4 target 470 - examples/nfc-mfclassic: fix crash when file cannot be opened for writing 471 - examples/nfc-mfultralight: fix 7 bytes UID display 472 473Improvements: 474 - libnfc: add a "troubleshooting" section in README to document ACR122 problems with pcsclite. 475 - libnfc: inform user if target UID can not be emulated 476 - example/nfc-mfultralight: handle lock page writing 477 - examples/nfc-emulate-tag: handle HALT & READ 478 - tests: add register access test 479 480Experimental: Windows platform support (Thanks to Glenn Ergeerts) 481 482 483 484Nov 17, 2010 - 1.4.0 485-------------------- 486 487Fixes: 488 - libnfc: fix Felica listing 489 - libnfc: fix storage of ISO14443B targets data 490 - libnfc: fix MacOS build 491 - libnfc: fix some errors string (ie. well-known "Invalid Parameter") 492 - libnfc: fix memory leak while using *_pick() 493 - drivers/pn53x_usb: fix ZLP USB issue 494 - drivers/pn53x_usb: workaround for PN532 toggle bit USB bug 495 - drivers/pn53x_usb: fix timeout problem in emulation mode 496 - drivers/pn53x_usb,pn532_uart,arygon: more robust recovery from unstable states such as interrupted emulation modes 497 - drivers/acr122: fix escape ioctl under Linux 498 - buses/uart: fix UART default serial ports under Linux. 499 - examples/nfc-anticol: fix bug preventing to run nfc-anticol after some other programs 500 - examples/nfc-anticol: fix display of UID 501 - ... and many other minor fixes 502 503Improvements: 504 - libnfc: major emulation improvements: libnfc can now be used to emulate ISO/IEC 14443 type A tag (MIFARE, ISO14443-4), FeliCa and D.E.P. target 505 - libnfc: documentation improvements 506 - libnfc: decode select/initialization datas for almost all supported target types (ISO14443 A/B, Jewel/Topaz, FeliCa) 507 - libnfc: add ISO/IEC 14443B baud rates: 212, 424 and 847 kbps 508 - libnfc: cache some chip registers for faster communication 509 - libnfc: greatly improved D.E.P. support 510 - buses/uart: adjust UART's timeouts from baud rate: faster communication at high speed and more reliable at low speed (affect pn532_uart and arygon drivers) 511 - drivers/arygon: retrieve ARYGON µC firmware version 512 - examples/nfc-anticol: adds support for CL3 513 - examples/nfc-anticol: cascade based on SAK rather than CT, better for educational purpose 514 - examples/nfc-anticol: Computes CRC rather than hardcoded one. 515 - examples/nfc-utils: print_iso14443b_info() now displays many decoded information in verbose mode 516 - examples/nfc-utils: print_iso14443a_info() now displays many decoded information and shows attempt to determine tag name in verbose mode 517 - examples/nfc-list: new option -v for verbose mode 518 - examples/nfc-list: now support for Jewel/Topaz too 519 - examples/nfc-poll: now poll using all supported modulations 520 - examples/nfc-dep-target: add hack to allow to use two devices on the same machine (for tests/debug purpose) 521 - examples/pn53x-tamashell: New PN53x TAMA communication demonstration shell (support scripting) 522 - examples/nfc-relay-picc: New tool to relay ISO14443-4 communications (even over network... Enjoy!) 523 - examples/nfc-emulate-forum-tag4: New example to emulate a NFC Forum tag type 4 524 - examples/nfc-emulate-tag: New example to emulate tags 525 - examples: add missing man pages 526 - ... and many other minor improvements 527 528Changes: 529 - API: Many changes, see NEWS file for more info how to migrate 530 - buses/uart: split UART implementations: one file for POSIX and another one for Windows 531 - examples: nfcip-* renamed to nfc-dep-* 532 - examples: nfc-sam renamed to pn53x-sam 533 - examples: nfc-emulate renamed to nfc-emulate-uid 534 - examples: change examples license for the sake of consistency: LGPL covers library, re-usable examples code is now under BSD license. 535 536 537 538Aug 31, 2010 - 1.3.9 539-------------------- 540 541Fixes: 542 - libnfc: fix ATS 543 - pn53x_usb: fix USB issues 544 - nfc-mfultralight: fix read and write counters 545 546Improvments: 547 - libnfc: rearrange source code 548 - libnfc: enhance documentation 549 - libnfc: add regression tests (not as much as expected but its here!) 550 - build: configure script now supports --with-drivers option instead of --disable-pcsclite and --disable-libusb (see --help) 551 - nfc-mfultralight: we now can write OTP bytes if user want to 552 553Changes: 554 - API: nfc_initiator_select_tag() is now nfc_initiator_select_passive_target() 555 - API: nfc_initiator_deselect_tag() is now nfc_initiator_deselect_target() 556 - API: new function nfc_initiator_list_passive_targets() to list available targets in field 557 - API: new nfc_perror(), nfc_strerror() and nfc_strerror_r() functions to handle errors 558 - API: new types: nfc_target_type_t and nfc_target_t 559 - API: new configuration option NDO_AUTO_ISO14443_4 to enable/disable auto iso14443-4 mode. 560 - API: new configuration option NDO_EASY_FRAMING to enable/disable auto frames encapsulation and chaining 561 - API: nfc_initiator_transceive_dep_bytes(), nfc_target_receive_dep_bytes() and nfc_target_send_dep_bytes() have been removed (unset NDO_EASY_FRAMING instead of these functions) 562 - API: (experimental) new nfc_initiator_poll_targets() which allow to use hardware polling function 563 - examples: add draft of a new example: nfc-sam. It tests the comunication with a connected SAM (Secure Access Module) 564 - examples: add new example to show how to use new polling function 565 - examples: add new example to diagnose basic elements (communication, rom and ram) of pn53x 566 - nfc-mfultralight: on write failure, continue if authenticate works. 567 - nfc-mfclassic: take care of 16-blocks-long sectors of Mifare Classic 4K in the nfc-mfclassic example's blocks counting routine. 568 - nfc-mfclassic: now fails ealier when something goes wrong (this allow to prevent from false-success). 569 - nfc-mfclassic: disable ISO14443-4 auto-switching in order to read devices that emulate Mifare Classic with ISO14443-4 compliance.(e.g. Nokia 6212 Classic) 570 571Note: This release will not install extra headers (like mifare.h), programs that depends on should copy theses files into their sources. 572 573 574 575Apr 6, 2010 - 1.3.4 576-------------------- 577 578Fixes: 579 - Fix CT (Cascade Tag) byte when using 10 bytes long UID. 580 - Strip CT (Cascade Tag) from UIDs in nfc_initiator_select_tag(). 581 - Fix CMake build (mainly on Windows related stuff) 582 - Minors fixes in documentation. 583 - Suppress almost all compilation warnings. 584 585Changes: 586 - API: Provide ISO14443A CRC function. 587 - Remove annoying info message when probing uart devices while serial autoprobing is disabled. 588 - Rename README-Windows.txt (compilation using CMake) into CMake-Windows.txt 589 - Add README for Windows compilation using win32/Makefile. 590 591Note: Windows users could now take main tarball using CMake to build or Windows specific archive using MinGW GNU/Make. 592 593 594 595Feb 17, 2010 - 1.3.3 596-------------------- 597 598Fixes: 599 - libnfc: Attempt to fix build on Windows using CMake; 600 - libnfc: Fix build on NetBSD; 601 - libnfc: Fix build on MacOS X; 602 - nfc-relay: fix usage of two devices that use the same driver. 603 604 605 606Feb 01, 2010 - 1.3.2 607-------------------- 608 609Fixes: 610 - libnfc: Fix compilation issue under FreeBSD (should now compile on FreeBSD 6, 7 and 8). 611 612Note: Experimental CMake files are provided with this release, issues reports are welcome. 613 614 615 616Jan 20, 2010 - 1.3.1 617-------------------- 618 619Fixes: 620 - libnfc: Fix compilation issue under Windows; 621 - uart bus: Fix possible invalid file descriptor in uart_close(); 622 - uart bus: Serial autoprobing is now DISABLED to avoid UART disturbing. (Feature can be enabled using –enable-serial-autoprobe option while configure). 623 624 625 626Jan 14, 2010 - 1.3.0 627-------------------- 628 629Fixes: 630 - build: Add workarounds for libusb when compiling using C99; 631 - build: Attempt to fix rpath issue on linux platform (it is already deprecated in main distributions. i.e. http://wiki.debian.org/RpathIssue); 632 - build: wrong paths in pkg-config file; 633 - libnfc: Remove warnings when compiling; 634 - libnfc: Various code fixes and cleanup; 635 - bus uart: Added support for recv/send of larger data chunks (>default_os_buffer); 636 - bus uart: Fix some some buffer synchronization problems under POSIX system; 637 - bus uart: Add configure option: --disable-serial-autoprobe to disable autoprobing; 638 - libnfc: Fix nfc_target_init doesn't correctly reset the parity during initalization; 639 - libnfc: added support for WUPA and 7,10 byte UID in nfc_initiator_select_tag(); 640 - libnfc: Fix tag re-selection with UID length > 4 bytes (like DESFire or Ultralight); 641 - nfc-mfclassic: Fix authenticated only with KEYA; 642 643Improvements: 644 - build: Build on FreeBSD; 645 - build: Add alternative build system (CMake); 646 - build: Add new files usefull for desktop GNU/Linux users: some rules for udev to allow non-root access to PN53x USB devices; 647 - build: Update msinttypes up to revision 26. (used when compiling under Windows); 648 - build: Add "make doc" directive: it will build API documentation using Doxygen. (--enable-doc flag is required at configure time); 649 - libnfc: Add C++ compatibility; 650 - libnfc: Add driver agnostic nfc_pick_device(), nfc_list_devices(); 651 - libnfc: It is now possible to specify a wanted device using new struct "nfc_device_desc_t"; 652 - libnfc: Add device name to device descriptions (nfc_device_desc_t) to select a given PCSC device; 653 - libnfc: Finally removed all dirty globals, it 'should' be thread-safe now; 654 - libnfc: Less confusing message for bitstreams display; 655 - libnfc: chips level introduction with pn53x.h/c; 656 - drivers: Add PN532 UART driver; 657 - drivers pn533_usb and pn531_usb: Lets search continuing to find other USB readers if any in PN531 and PN533 USB drivers; 658 - drivers pn533_usb and pn531_usb: Support for the generic vendorid/productid of the NXP chip; 659 - drivers pn533_usb and pn531_usb: Consolidate duplicated code; 660 - examples: Add MIFARE Ultratag tool; 661 - examples: Add man page for nfc-mfultool; 662 - examples: MIFARE examples (mftool and mfultool) have now a better help message; 663 - examples: Add NFCIP (NDEP) as experimental feature; 664 - examples: add quiet mode to improve timing of emulate, relay and anticol commands; 665 - nfc-list: List all devices in nfc-list(1); 666 - nfc-list: Simply turns off the RF field upon exit; 667 - nfc-emulate: allow UID to be specified; 668 - nfc-relay: Initialize initiator device explicitly; 669 - nfc-relay: Capture ctrl-c for quitting cleanly the relay attack application; 670 - nfc-relay: exit properly if emulator initialization failed; 671 - nfc-mfclassic: Add default keys tries; 672 673Changes: 674 - API: Rename tag_info to nfc_target_info_t; 675 - API: Rename init_modulation to nfc_modulation_t; 676 - API: Rename dev_config_option to nfc_device_option_t; 677 - API: Use NULL instead of INVALID_DEVICE_INFO to know if device is valid; 678 - API: Rename chip_type to nfc_chip_t; 679 - API: Rename dev_spec to nfc_device_spec_t; 680 - API: Rename dev_info struct to nfc_device_t; 681 - API: Variables have been renamed to match coding conventions; 682 - API: Changed length parmeters from uint32_t to size_t; 683 - Files: Remove defines.h public header; 684 - Files: Prefix messages.h and types.h headers by "nfc-"; 685 - Files: Revamp libnfc source tree; 686 - Files: Move examples into src/examples subdirectory; 687 - Examples: Rename nfc-mftool to nfc-mfclassic; 688 - Examples: Rename nfc-mfultool to nfc-mfultralight; 689 690 691 692Jul 24, 2009 - 1.2.1 693-------------------- 694 695 - Fix ACR122 on 64 bits architecture under GNU/Linux. 696 697 698 699Jul 22, 2009 - 1.2.0 700-------------------- 701 702 - License changed from GPLv3 to LGPLv3 703 - ARYGON ADRA-USB/ADRB-USB reader support 704 - PN533 support 705 - C99 standard (all custom defined types have been renamed) 706 - Autotoolized for GNU/Linux, *BSD and MacOSX 707 - nfc examples (anticol, emulate, list, mftool, relay) are now prefixed by "nfc-" 708 709 710 711Mar 27, 2009 - 1.1.0 712-------------------- 713 714 - Next generation, support for ACR122v2 and PN531 USB devices 715 716 717 718Feb 12, 2009 - 1.0.0 719-------------------- 720 721 - Initial release 722 723 724 725