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 <https://docs.named-data.net/NDN-packet-spec/0.3/signed-interest.html>`__
  according to Packet Specification v0.3 (:issue:`4804`)

- Add "in-order" mode to :ndn-cxx:`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 :ndn-cxx:`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 :ndn-cxx:`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
