NFCcreate-web/ufr-lib/README.md
2025-09-25 19:04:00 +08:00

4.8 KiB

uFCoder libraries

Scope of this project are libraries used with uFR and uFR Zero Series devices and SDK examples. Libraries are supported at following platforms: Windows 32 and 64 bit (static and dynamic) Windows ARM64 (dynamic only) Linux 32 and 64 bit (dynamic & static) Linux ARM and ARM-HF (dynamic & static) Mac OSX 64 bit & Universal (dynamic only) iOS 64 bit (static & framework) Android ARM 64 bit (.aar) ESP32 ESP-IDF component

Getting Started

Download project, choose appropriate architecture and place a library in appropriate directory. Consult documentation for API reference. For quick insight and functions' prototypes, check /include/ufCoder.h header file.

Prerequisites

uFR or uFR Zero Series reader.

License

See the uFR_library_license.md file for details

Acknowledgments

  • Libraries are specific to mentioned hardware ONLY and some other hardware might have different approach, please bear that in mind.

Changelog

[Version 6.0.21] - 2025-06-18

General Changes

  • X.509 ECC curve domain params feature for MRTD SOD verification.
  • New MRTD feature: extract signing certificate from the SOD - MRTD_SOD_CertToHeap()
  • Document validation implemented for the MRTD_ReadDocumentData() function

[Version 6.0.20] - 2025-06-13

Bug fix

  • MultiReader API: ReaderList_*() crash on Windows patched.

[Version 6.0.19] - 2025-06-11

Diagnostic

** Reader lock status **

  • GetReaderLockStatus(uint8_t *lock_status);

[Version 6.0.18] - 2025-05-27

Diagnostic

** I2C devices at the reader **

  • GetI2cDevicesStatus(uint8_t *dev_num, uint32_t *dev_bits): Function gets number and types of the installed I2C devices at the reader

[Version 6.0.17] - 2025-05-14

General Changes

Bug fix

  • Async API: Start/StopAsyncSession() thread termination bug on Windows patched.

[Version 6.0.16] - 2025-05-07

General Changes

  • API Updates:
  • Async API: Start/StopAsyncSession() function calls updated & minor bugs fixed.

Platform-Specific Changes

Android

  • StartAsyncSession(): Support added for usage on Android via cable connection to uFR Series reader (OTG)
  • StopAsyncSession(): Support added for usage on Android via cable connection to uFR Series reader (OTG)

Deprecations

  • uFCoder library distribution for linux/arm-el and linux/static-armel will no longer be receiving regular updates from v6.0.16 onward as it considered Deprecated.

[Version 6.0.15] - 2025-05-06

ISO15693 card support

** ISO15693 cards lock block implementation **

  • UFR_STATUS DL_API iso15693_lock_block_no_auth(uint8_t lock_block_address);
  • UFR_STATUS DL_API icode_lock_block_PK(IN uint8_t *read_password, IN uint8_t *write_password, uint8_t lock_block_address); //if Protect Page enabled provided passwords
  • UFR_STATUS DL_API icode_lock_block(uint8_t read_pass_index, uint8_t write_pass_index, uint8_t lock_block_address); //if Protect Page enabled reader's EEPROM passwords

** ISO15693 get multiply block security status **

  • UFR_STATUS DL_API iso15693_get_multiply_block_security_status(uint8_t first_block, uint8_t number_of_blocks, OUT uint8_t *block_data);

[Version 6.0.14] - 2025-04-25

General Changes

Bug fix

  • ReaderOpenEx() - Internal call functionality bug fixed.
  • APDUPlainTransceive() - LE field parsing fixup for extended APDU commands.

[Version 6.0.13] - 2025-04-17

ISO15693 cards support

** NXP ICODE cards passwords manipulation **

  • UFR_STATUS DL_API icode_write_password_PK(uint8_t pwd_ident, IN uint8_t *current_password, IN uint8_t *new_password); //provided passwords

  • UFR_STATUS DL_API icode_write_password(uint8_t pwd_ident, uint8_t current_password_index, uint8_t new_password_index); //reader's EEPROM passwords

** NXP ICODE SLIX-S, ICODE SLIX2, ICODE 3 protect page support **

  • UFR_STATUS DL_API icode_protect_page_PK(IN uint8_t *read_password, IN uint8_t *write_password,

uint8_t protect_page_address, uint8_t low_read_prot, uint8_t low_write_prot, uint8_t high_read_prot, uint8_t high_write_prot); //provided passwords

  • UFR_STATUS DL_API icode_protect_page(uint8_t read_pass_index, uint8_t write_pass_index,

uint8_t protect_page_address, uint8_t low_read_prot, uint8_t low_write_prot, uint8_t high_read_prot, uint8_t high_write_prot); //reader's EEPROM passwords

[Version 6.0.12] - 2025-04-11

General Changes

Bug fix

  • MRTDParseDG1ToHeap() data trimming bug fixed with TD1 format;
  • MRTD_ReadDocumentData() minor JSON format fixup.