Skip to content

Releases: openemv/tr31

0.6.2

01 Nov 18:31
0.6.2
Compare
Choose a tag to compare

Changes since 0.6.1:

  • Update to latest OpenEMV common crypto submodule:
    • Support MbedTLS 3.6.1 LTS for self-contained builds
    • Update MbedTLS download for CMake policy CMP0169
    • Improve memory cleansing
  • Minor improvement to cmdline option parsing for tr31-tool
  • Remove builds for Fedora 39 and add builds for Fedora 41

NOTE: This release can be installed on MacOS via Homebrew using brew install openemv/tap/tr31

0.6.1

24 May 17:43
0.6.1
Compare
Choose a tag to compare

Changes since 0.6.0:

  • Remove 32-bit builds from Windows workflow. MSYS2 has deprecated many 32-bit packages.
  • Add Clang builds for Windows workflow
  • Update to latest OpenEMV common crypto submodule to support MbedTLS 3.6.0 LTS for self-contained builds
  • Add Ubuntu 24.04 builds
  • Remove builds for Fedora 37 and Fedora 38 because they are EOL
  • Add builds for Fedora 40
  • Update MacOS builds to use MacOS 13 and MacOS 14. Note that Github's MacOS 14 runners are arm64, not x86_64.
  • Minor Clang and doxygen improvements

This is a maintenance release that is mostly aimed at Ubuntu 24.04 and Fedora 40.

0.6.0

28 Dec 10:07
0.6.0
Compare
Choose a tag to compare

Changes since 0.5.2:

  • Many architectural changes, API changes and various new API functions. These changes are not backward compatible with 0.5.x and the SONAME version has been updated accordingly.
    • Parsing, validation and decoding of optional blocks have been split into separate activities. Optional blocks are no longer decoded immediately during import and instead decoded by new dedicated decoding API functions.
    • Internal storage of optional block payloads is now only in format PA (printable ASCII as defined by ANSI X9.143)
    • Memory management has been improved and key block processing buffers have been moved from tr31_ctx_t to an internal state object. The intention is that, in future, embedded builds can provide alternative memory management strategies that suit their needs.
    • Various bugfixes and improvements related to data format validation, memory management, error reporting and documentation generation.
    • Validation of data formats has been improved and dependence on ctype.h has been removed
    • New tr31_init_from_header() API function allows more flexible processing of headers that aren't correctly padded, or are padded but may gain additional optional blocks. The --export-header command line option also benefits from these improvements.
    • All string functions, except tr31_get_error_string(), have been moved to tr31_strings and renamed
  • New features
    • Key block header validation can be disabled using the TR31_IMPORT_NO_STRICT_VALIDATION API flag or the --import-no-strict-validation command line option. This is typically useful when decoding/importing non-standard key blocks.
    • Non-standard or verbatim optional blocks can be added to a key block using the --export-opt-block command line option
    • Support for key algorithms H, I and J as defined by ISO 20038
    • Support for the key context header attribute as defined by ANSI X9.143
    • Basic support for parsing IBM proprietary key block headers

0.5.2

24 Dec 21:42
0.5.2
Compare
Choose a tag to compare

Changes since 0.5.1:

  • Remove Fedora 36 builds and add Fedora 39 debug and release builds
  • Remove MacOS 11 test builds and add MacOS 13 test builds
  • Persist CMake variables used during multiple builds in cache
  • Let CMake configuration file for tr31 library specify COMPATIBILITY as SameMinorVersion to match the SONAME versioning as well as the intended API compatibility

This is a maintenance release for projects that wish to continue using the 0.5.x API because the future 0.6.x API will be incompatible. But note that there is no intention to maintain this branch long term.

0.5.1

06 Aug 07:32
0.5.1
Compare
Choose a tag to compare

Changes since 0.4.6:

  • Misc fixes and improvements
    • Fix import and export of optional blocks that contain non-hex data
    • Improve import and export of optional block PB (see commit bd6e50d)
    • Implement import and export of extended length optional blocks
    • Fix key version handling to support format AN
    • Update to latest OpenEMV common crypto submodule to support MbedTLS 3.x and OpenSSL 3.x
    • Update to latest libargp to fix build warnings on MacOS
    • Add builds for Microsoft Universal C Runtime (UCRT) using MSYS2's UCRT64 environment to Github Actions workflows for Windows
  • ANSI X9.143 support
    • Update various description strings for ANSI X9.143
    • Implement key length obfuscation as required by ANSI X9.143 (backward compatible with ASC TR-31:2018)
    • Improve support for optional blocks HM, IK and KS
    • Implement ISO 8601 for optional blocks TC and TS
    • Implement date/time representation according to the current locale
    • Implement "now" for tr31-tool when specifying optional blocks TC and TS
    • Implement optional block AL
    • Implement optional block BI
    • Implement optional block CT
    • Implement optional block DA
    • Implement optional block FL
    • Implement optional block LB
    • Implement optional block PK
    • Implement optional block WP

NOTE:

  • Version 0.5.1 is intended to replace 0.5.0 and the latter release has been removed. This is due to a bug in the CMake package configuration file for 0.5.0 that renders it useless to packages that depend on it when MbedTLS 3.x is used
  • This release can be installed on MacOS via Homebrew using brew install openemv/tap/tr31

0.4.6

22 Apr 14:32
0.4.6
Compare
Choose a tag to compare

Changes since 0.4.5:

  • Add Fedora 38 debug and release builds
  • Improve CTest usage
  • Add -Wall option for AppleClang compiler
  • Misc Doxygen updates

Note that this release does not provide any new functionality and only provides minor aesthetic changes along with Fedora 38 builds.

0.4.5

10 Dec 08:55
0.4.5
Compare
Choose a tag to compare

Changes since 0.4.4:

  • Fix return values for tr31_key_set_data()
  • Fix typo in TR-31 command line tool help output
  • Improve Github Actions testing of static and shared library builds on Windows
  • Update Github Actions for Fedora 37
  • Use git describe string when possible
  • Update CMake module for finding argp (this makes brew formulas possible)

NOTE: This release can be installed on MacOS via Homebrew using brew install openemv/tap/tr31

0.4.4

09 Oct 14:34
0.4.4
Compare
Choose a tag to compare

Changes since 0.4.3:

  • Implement BUILD_TR31_TOOL option (ON by default) to determine whether tr31-tool will be built and whether argp is required.
  • Ensure that tests can find required DLLs (if any) for Windows builds
  • Fix missing library dependency for Windows builds
  • Use CMake policy CMP0135 for CMake >=3.24 to suppress warning

0.4.3

13 Aug 08:23
0.4.3
Compare
Choose a tag to compare

Changes since 0.4.2:

  • Allow TR-31 command line tool to read raw bytes from stdin
  • Deprecate TR31_KEY_USAGE_DUKPT_IPEK in favour of TR31_KEY_USAGE_DUKPT_IK
  • Improve generation of CMake config file and pkgconfig file
  • Support Ubuntu 20.04 as well as Ubuntu 22.04 and release separate packages
  • Improve Fedora release package by adding dist tag to release version
  • Fix Gentoo ebuild to use source tarballs instead of Github sources (due to submodules)
  • Remove deprecated MacOS 10.15 from Github Actions

0.4.2

03 Jul 07:49
0.4.2
Compare
Choose a tag to compare

Changes since 0.4.1:

  • Add Github Actions workflows for Ubuntu, MacOS and Windows builds
  • Update to latest OpenEMV common crypto submodule to fix MacOS builds with AppleClang 13.1 and later
  • Add header checks to fix Windows builds
  • Allow use of platform-provided standalone argp implementation
  • Replace argp-standalone-1.3 with libargp
  • Misc CMake and Doxygen improvements