ndn-cxx version 0.8.0
---------------------

Release date: February 15, 2022

Important changes
^^^^^^^^^^^^^^^^^

- Flip default value of ``CanBePrefix`` to **false** (:issue:`4582`). This means that
  Interests created without explicitly specifying ``CanBePrefix`` option will be treated
  as Interests for exact Data name.

- Change default name component encoding convention to ``TYPED`` (:issue:`5044`)

- Update TLV-TYPE numbers to revision 3 of the `naming conventions`_

.. _naming conventions:
   https://named-data.net/publications/techreports/ndn-tr-22-3-ndn-memo-naming-conventions/

- Change TLV-TYPE number of ``IncomingFaceId`` field in NDNLP (:issue:`5185`)

- Update Interest ``ForwardingHint`` format (:issue:`5187`)

Improvements and bug fixes
^^^^^^^^^^^^^^^^^^^^^^^^^^

- Support certificate name, versionless certificate name, and key name options for
  KeyLocator name in ``ValidatorConfig`` (:issue:`5142`)

- Generalize signature verification to allow ``digest-sha256``, effectively adding
  support of digest integrity verification in ``ValidatorConfig``

- Enforce ``sig-type`` check in ``ValidatorConfig`` (:issue:`4524`)

- Fix ``ValidatorConfig`` rule processing bug (:issue:`5145`)

- Prevent potential dereferencing of past-the-end iterator in ``Block::value()``

- Fail early in :ndn-cxx:`Block::blockFromValue` if TLV length is zero

- Refactor and cleanup of :ndn-cxx:`StatusDatasetContext`, including increase of maximum
  payload size of each produced segment to 8000 bytes

- Improve error reporting when loading a ``Certificate`` or ``SafeBag`` fails

- Add API to get the keyword name component for Metadata and Prefix Announcements

- Backport C++20 ``std::span`` and convert most APIs to use it

- Introduce ``time::{to,from}IsoExtendedString()`` utility functions

- Add support for OpenSSL 3.0. Note that because of the API changes, HMAC implementation
  does not currently work when compiled with OpenSSL 3.0+, use older version of OpenSSL
  when needed.

- Various build system and documentation extension and fixes

Deprecations
^^^^^^^^^^^^

- ``Interest::setDefaultCanBePrefix()``

- ``Name::append(Block)`` overload, as it has confusing semantics (:issue:`5186`)

- ``ndnsec`` tool aliases: ``ndnsec-certgen``, ``ndnsec-dump-certificate``,
  ``ndnsec-install-cert``, ``ndnsec-keygen``, ``ndnsec-ls-identity``

Removals
^^^^^^^^

- Previously deprecated ``Signature`` class, its subclasses, and deprecated methods from
  ``Data``, ``KeyChain``, ``SignatureInfo``, and ``SigningInfo``

- Redundant overloads of ``verifySignature()`` and ``verifyDigest()``

- Previously deprecated ``security/v2`` headers

- Previously deprecated ``CommandInterestSigner``

- Unused ``Transport::send()`` overload

- Remove HTTP download feature in ``ndnsec cert-install``, as it does not support HTTPS
  retrieval.  The recommended way of installing certificates published over HTTP/HTTPS has
  been changed to use ``curl`` or ``wget`` (:issue:`4506`)
