Skip to content

QCBOR v1.5

Compare
Choose a tag to compare
@laurencelundblade laurencelundblade released this 06 Nov 19:31
· 2 commits to master since this release
24cd62a

This has small feature additions, bug fixes and adjustments.

Very minor behavior changes were made:

  • Decoding of maps limited to 32K items
  • Decoding unexpected tag numbers on strings no longer an error
  • Decoding of some negative big number mantissa's no longer off by one
  • This should be compatible for the vast majority of uses by far and it is generally better to upgrade to this.

Bug fixes:

  • QCBORDecode_GetBigFloatBig() and QCBORDecode_GetDecimalFractionBig() return negative big number mantissas consistently. They inconsistently applied the negative 1 offset.
  • QCBORDecode_DoubleConvertAll() was off by 1 when the input to decode was a decimal fraction with a negative big number mantissa.

Changes:

  • Map decoding is limited to 32K items rather than 65K so encoding and decoding map sizes are the same (inconsistency was turned up while bringing test coverage to 100%).
  • QCBORDecode_GetXxxxString() no longer errors on the presence of tag numbers to be consistent with all the other spiffy decode functions QCBORDecode_GetXxxx() functions. Use QCBORDecode_GetNthTagOfLast() to check and error on the presence of tag numbers.
  • Set SOVERSION in CMAKE to indicate version when built as a shared library.

Features:

  • Add Encode_SubString() to get partial encoded results; useful for hashing/signing sub-parts of encoded output
  • Add Encode_Tell() to current encoding offset
  • Add QCBORDecode_RetrieveUndecodedInput() to get original input string back from decoder context
  • Add QCBOREncode_RetrieveOutputStorage() to get original output buffer back from encoder context

Other:

  • Restored some license text that was missing
  • Consolidated all license stuff in the LICENSE file
  • Test coverage for encode to 100%
  • All functions that encode with string labels are named consistently ending in "SZ"
  • Deprecated functions are better organized (deprecated functions will never be removed from QCBOR to keep backward compatibility).