121 lines
4.8 KiB
Markdown
121 lines
4.8 KiB
Markdown
|
|
# 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](https://code.d-logic.com/nfc-rfid-reader-sdk/ufr-doc/-/blob/master/uFR_Series_NFC_reader_API.pdf). For quick insight and functions' prototypes, check **/include/ufCoder.h** header file.
|
|
|
|
### Prerequisites
|
|
|
|
[**uFR**](https://webshop.d-logic.com/products/nfc-rfid-reader-writer/ufr-series-dev-tools-with-sdk.html) or [**uFR Zero**](https://webshop.d-logic.com/products/nfc-rfid-reader-writer/ufr-zero-series.html) Series reader.
|
|
|
|
## License
|
|
|
|
See the [uFR_library_license.md](/license/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. |