Skip to content

0.6.0

Compare
Choose a tag to compare
@leonlynch leonlynch released this 28 Dec 10:07
· 17 commits to master since this release
0.6.0

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