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-elandlinux/static-armelwill no longer be receiving regular updates from v6.0.16 onward as it consideredDeprecated.
[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.