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

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.