Skip to content
  1. Dec 09, 2019
  2. Nov 25, 2019
  3. Nov 20, 2019
  4. Nov 18, 2019
  5. Nov 14, 2019
  6. Nov 12, 2019
  7. Nov 07, 2019
  8. Nov 05, 2019
    • developer4's avatar
      version 5.0.21 · 12322127
      developer4 authored
      For Windows, Linux, macOS and Android targets:
         Implemented Secure Hash Algorithm functions:
            DLGetHashName()
            DLGetHashOutputByteLength()
            DLGetHash()
            DLGetHashToHeap()
            DLHashInitChunked()
            DLHashUpdateChunked()
            DLHashFinishChunked()
            DLHashFinishChunkedToHeap()
         Implemented digital signature verification and apropriate supporting functions:
            DigitalSignatureVerifyHash()
            DLGetEccCurveName()
            DLGetSignatureSchemeName()
         Implemented PKCS#7 parsing and manipulation functions:
            All functions with prefix 'pkcs7'
         Implemented X.509 parsing and manipulation functions:
            All functions with prefix 'X509'
         Implemented ICAO Master List files parsing and manipulation functions:
            icaoMlOpen()
            icaoMlClearSearchCriteria()
            icaoMlFindCert()
            icaoMlClose()
      
         Added bunch of new UFR_STATUS codes that returns newly implemented functions (in rage 0x6100 to 0x6307).
         This changes are not applied to UWP, ESP32 and Arduino targets.
      12322127
  9. Nov 04, 2019
  10. Oct 28, 2019
  11. Oct 17, 2019
  12. Oct 16, 2019
  13. Sep 25, 2019
    • developer2's avatar
      Version 5.0.16. · 5048bf28
      developer2 authored
      Functions with DES and 2K3DES keys into SAM added
      New functions:
      UFR_STATUS DL_API CheckUidChangeable(void);
      UFR_STATUS DL_API ReaderRfReset(void);
      5048bf28
  14. Sep 16, 2019
  15. Sep 10, 2019
  16. Sep 05, 2019
  17. Aug 28, 2019
  18. Aug 12, 2019
  19. Aug 08, 2019
  20. Aug 05, 2019
  21. Jul 23, 2019
    • developer4's avatar
      uFCoder.h update · 99611756
      developer4 authored
      Updated to include IN/OUT/VAR parameter designators for MRTD functions.
      99611756
    • developer4's avatar
      version 5.0.12 · 8c520a1a
      developer4 authored
      MRTD Basic Access Control implementation
      
      New functions:
      MRTDAppSelectAndAuthenticateBac()
      MRTDFileReadBacToHeap()
      MRTDAppSelectAndAuthenticateBacM()
      MRTDFileReadBacToHeapM()
      MRTD helper functions:
      MRTD_MRZDataToMRZProtoKey();
      MRTD_MRZSubjacentToMRZProtoKey();
      8c520a1a
  22. Jul 19, 2019
  23. Jul 15, 2019
  24. Jun 20, 2019
    • developer4's avatar
      version 5.0.10 · 66bd3121
      developer4 authored
      -BugFix: fixed JCAppPinEnable() and JCAppPinDisable() functions which are used with JCDLStorage cards.
      5.0.10
      66bd3121
  25. Jun 06, 2019
    • developer4's avatar
      Some minor additions to uFCoder.h · 80c9691c
      developer4 authored
      80c9691c
    • developer4's avatar
      version 5.0.9 · 221de75b
      developer4 authored
      -BugFix: opening uFR device using ReaderOpenEX() not working for Virtual COM port on Linux since library version 4.4.2. ReaderOpenEX() was also unstable in library 4.4.1. Last good known library version, regarding ReaderOpenEX() using Virtual COM port on Linux, is 4.3.16. Library version 4.3.16 was issued right before 4.4.1. Problem is fixed now in version 5.0.9.
      
      -BugFix: frequently returned UFR_COMMUNICATION_BREAK and UFR_COMMUNICATION_ERROR on Raspbian and macOS, from various uFR communication functions, has been fixed.
      5.0.9
      221de75b
  26. May 16, 2019
    • developer4's avatar
    • developer4's avatar
      version 5.0.8 · 8785023c
      developer4 authored
      Implemented support for JC DL Storage cards.
      New functions:
      UFR_STATUS DL_API SetISO14443_4_DLStorage(void);
      UFR_STATUS DL_API JCStorageGetFilesListSize(VAR uint32_t *list_size);
      UFR_STATUS DL_API JCStorageListFiles(OUT uint8_t *list, uint32_t list_bytes_allocated);
      UFR_STATUS DL_API JCStorageGetFileSize(uint8_t card_file_index, VAR uint32_t *file_size);
      UFR_STATUS DL_API JCStorageReadFile(uint8_t card_file_index, OUT uint8_t *data, uint32_t data_bytes_allocated);
      UFR_STATUS DL_API JCStorageReadFileToFileSystem(uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageWriteFile(uint8_t card_file_index, IN const uint8_t *data, uint32_t data_size);
      UFR_STATUS DL_API JCStorageWriteFileFromFileSystem(uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageDeleteFile(uint8_t file_index);
      
      UFR_STATUS DL_API SetISO14443_4_DLStorageM(UFR_HANDLE hndUFR);
      UFR_STATUS DL_API JCStorageGetFilesListSizeM(UFR_HANDLE hndUFR, VAR uint32_t *list_size);
      UFR_STATUS DL_API JCStorageListFilesM(UFR_HANDLE hndUFR, OUT uint8_t *list, uint32_t list_bytes_allocated);
      UFR_STATUS DL_API JCStorageGetFileSizeM(UFR_HANDLE hndUFR, uint8_t card_file_index, VAR uint32_t *file_size);
      UFR_STATUS DL_API JCStorageReadFileM(UFR_HANDLE hndUFR, uint8_t card_file_index, OUT uint8_t *data, uint32_t data_bytes_allocated);
      UFR_STATUS DL_API JCStorageReadFileToFileSystemM(UFR_HANDLE hndUFR, uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageWriteFileM(UFR_HANDLE hndUFR, uint8_t card_file_index, IN const uint8_t *data, uint32_t data_size);
      UFR_STATUS DL_API JCStorageWriteFileFromFileSystemM(UFR_HANDLE hndUFR, uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageDeleteFileM(UFR_HANDLE hndUFR, uint8_t file_index);
      
      New helper function:
      c_string DL_API UFR_DLCardType2String(uint8_t dl_type_code);
      
      New error codes:
      UFR_FILE_SYSTEM_ERROR = 0x1003,
      UFR_FILE_SYSTEM_PATH_NOT_EXISTS = 0x1004,
      UFR_FILE_NOT_EXISTS = 0x1005,
      UFR_APDU_SW_WRONG_LENGTH = 0x000A6700,
      UFR_APDU_SW_AUTHENTICATION_METHOD_BLOCKED = 0x000A6983,
      UFR_APDU_SW_FILE_NOT_FOUND = 0x000A6A82
      
      Implemented fast reading mechanism for a JC DL Storage cards using extended APDU format for case 2E and water-level algorithm for PCD FIFO data retrieving using maximum reported FSD.
      For a fast reading mechanism functions SetISO14443_4_DLStorage() and JCStorageReadFile() / JCStorageReadFileToFileSystem() or SetISO14443_4_DLStorageM() and JCStorageReadFileM() / JCStorageReadFileToFileSystemM() have to be used.
      8785023c
    • developer4's avatar
      version 5.0.8 · 67420bd5
      developer4 authored
      Implemented support for JC DL Storage cards.
      New functions:
      UFR_STATUS DL_API SetISO14443_4_DLStorage(void);
      UFR_STATUS DL_API JCStorageGetFilesListSize(VAR uint32_t *list_size);
      UFR_STATUS DL_API JCStorageListFiles(OUT uint8_t *list, uint32_t list_bytes_allocated);
      UFR_STATUS DL_API JCStorageGetFileSize(uint8_t card_file_index, VAR uint32_t *file_size);
      UFR_STATUS DL_API JCStorageReadFile(uint8_t card_file_index, OUT uint8_t *data, uint32_t data_bytes_allocated);
      UFR_STATUS DL_API JCStorageReadFileToFileSystem(uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageWriteFile(uint8_t card_file_index, IN const uint8_t *data, uint32_t data_size);
      UFR_STATUS DL_API JCStorageWriteFileFromFileSystem(uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageDeleteFile(uint8_t file_index);
      
      UFR_STATUS DL_API SetISO14443_4_DLStorageM(UFR_HANDLE hndUFR);
      UFR_STATUS DL_API JCStorageGetFilesListSizeM(UFR_HANDLE hndUFR, VAR uint32_t *list_size);
      UFR_STATUS DL_API JCStorageListFilesM(UFR_HANDLE hndUFR, OUT uint8_t *list, uint32_t list_bytes_allocated);
      UFR_STATUS DL_API JCStorageGetFileSizeM(UFR_HANDLE hndUFR, uint8_t card_file_index, VAR uint32_t *file_size);
      UFR_STATUS DL_API JCStorageReadFileM(UFR_HANDLE hndUFR, uint8_t card_file_index, OUT uint8_t *data, uint32_t data_bytes_allocated);
      UFR_STATUS DL_API JCStorageReadFileToFileSystemM(UFR_HANDLE hndUFR, uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageWriteFileM(UFR_HANDLE hndUFR, uint8_t card_file_index, IN const uint8_t *data, uint32_t data_size);
      UFR_STATUS DL_API JCStorageWriteFileFromFileSystemM(UFR_HANDLE hndUFR, uint8_t card_file_index, IN const char *file_system_path_name);
      UFR_STATUS DL_API JCStorageDeleteFileM(UFR_HANDLE hndUFR, uint8_t file_index);
      
      New helper function:
      c_string DL_API UFR_DLCardType2String(uint8_t dl_type_code);
      
      New error codes:
      UFR_FILE_SYSTEM_ERROR = 0x1003,
      UFR_FILE_SYSTEM_PATH_NOT_EXISTS = 0x1004,
      UFR_FILE_NOT_EXISTS = 0x1005,
      UFR_APDU_SW_WRONG_LENGTH = 0x000A6700,
      UFR_APDU_SW_AUTHENTICATION_METHOD_BLOCKED = 0x000A6983,
      UFR_APDU_SW_FILE_NOT_FOUND = 0x000A6A82
      
      Implemented fast reading mechanism for a JC DL Storage cards using extended APDU format for case 2E and water-level algorithm for PCD FIFO data retrieving using maximum reported FSD.
      For a fast reading mechanism functions SetISO14443_4_DLStorage() and JCStorageReadFile() / JCStorageReadFileToFileSystem() or SetISO14443_4_DLStorageM() and JCStorageReadFileM() / JCStorageReadFileToFileSystemM() have to be used.
      67420bd5
    • developer2's avatar
      4073e6da
  27. May 14, 2019
  28. Apr 04, 2019
  29. Mar 27, 2019
    • developer4's avatar
      version 5.0.4 · 5a5b1734
      developer4 authored
      -Improved Linux and macOS time-out measurement.
      -Updated error descriptors in function: c_string UFR_Status2String(const UFR_STATUS status);
      -Windows dll: added details in file properties.
      -Windows dll: from now, SHA2-256 digest is in use for file signature.
      5.0.4
      5a5b1734
  30. Mar 20, 2019
  31. Mar 09, 2019