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 Boost 1.73.0+ in time::toIsoString()

  • 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