Release Notes

ndn-cxx version 0.7.1

Release date: October 8, 2020

The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python >= 3.6. Meanwhile, it is recommended to use GCC >= 7.4.0 and Boost >= 1.65.1. This effectively drops official support for Ubuntu 16.04 when using distribution-provided Boost packages – ndn-cxx may still work on this platform, but we provide no official support for it. Additionally, this release drops support for CentOS 7 and adds support for CentOS 8.

New features

  • Signed Interests according to Packet Specification v0.3 (issue #4804)
  • Add “in-order” mode to SegmentFetcher and a corresponding signal that is emitted after each segment is received and validated in segment order. Segments that arrive out-of-order will be buffered internally until all earlier segments have arrived and passed validation.
  • Allow KeyLocator to either identify the full name of a certificate, an unversioned certificate prefix, or the name of a public key (without issuer and version) (issue #5115)
  • Allow face MTU to be changed via management (issue #5056)

Improvements and bug fixes

  • Change default key type generated by ndnsec to ECDSA
  • Use named curve when encoding ECDSA public keys (issue #5037)
  • Allow non-default key to be exported for an identity via ndnsec-export (issue #5043)
  • Fix spurious error message from ndnsec-key-gen when key-id is specified (issue #5057)
  • Provide more fine-grained choices for name::UriFormat (issue #4777)
  • Allow automatic log flushing to be disabled (issue #3668)
  • Avoid unnecessarily invalidating cached wire encodings of Data packets
  • Correct extraction of signed portion of Data packets to be compatible with Packet Specification v0.3 (issue #4583)
  • Fix regression in CertificateBundleFetcher with FinalBlockId handling
  • Improve error handling during TPM signing (issue #4585, issue #5086)
  • Correctly handle non-existent identity in PibImpl::setDefaultIdentity
  • Fix incompatibility with time::toIsoString in Boost 1.73.0+
  • Fix incompatibility with <version> header in C++20
  • Various fixes for Android
  • Various improvements to documentation, test suite structure, and authors list

Deprecations

  • Deprecate old Signed Interest and Command Interest formats (issue #4804)
  • Deprecate Signature in favor of SignatureInfo in Data packets and certificates (issue #4804)
  • SignatureInfo::unsetKeyLocator and SignatureInfo::unsetValidityPeriod have been deprecated
  • Header files under ndn/security/v2 have been moved into the main ndn/security directory

Removals

  • Remove deprecated PendingInterestId, InterestFilterId, and RegisteredPrefixId (issue #4885)
  • Remove a number of long-deprecated functions and enums