blob: da6643696c589fe4ab2e1c469600cf8cc57cabdf [file] [log] [blame]
ndn-cxx version 0.6.0
---------------------
Release date: October 16, 2017
Changes since version 0.5.1:
New features
^^^^^^^^^^^^
- **(breaking change)** Security framework version 2 (:issue:`3098`, :issue:`3920`,
:issue:`3644`, :issue:`4085`, :issue:`4323`, :issue:`4339`).
This release of the library supports only the new version of the security framework
and features a number of updates to the KeyChain and Validator interfaces.
At the same time, management APIs for :ndn-cxx:`ValidatorConfig` remained intact;
transition to the new framework only requires adjusting :ndn-cxx:`Validator::validate`
calls and updating configuration files to follow the naming conventions of the new
`Certificate format <https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html>`__.
- Integration of fetching certificates using Certificate Bundle as part of specialized
``CertificateFetcher`` (:issue:`3891`)
- ``ForwardingHint``, ``Delegation``, and ``DelegationList``; refactoring of Interest encoding
to include ``ForwardingHint`` instead of ``LinkObject``, following the latest NDN
specification updates (:issue:`4054`, :issue:`4055`)
- Fine-grained signals on interface/address changes in :ndn-cxx:`NetworkMonitor`
for all supported platforms (:issue:`3353`, :issue:`4025`, :issue:`3817`, :issue:`4024`)
- Addition of ``TxSequence`` field and ``Ack``, the first repeatable field in
NDNLPv2 (:issue:`3931`)
- Optional ``LocalUri`` as part of ``ControlParameters`` and adjusting face creation command
and responses to handle the new optional field (:issue:`4014`, :issue:`4015`, :issue:`3956`)
- ``LpReliability`` flag in Face management data structures (:issue:`4003`)
- Backported implementation of C++17 classes ``ostream_joiner`` and ``optional``
(:issue:`3962`, :issue:`3753`)
Improvements and bug fixes
^^^^^^^^^^^^^^^^^^^^^^^^^^
- Removed dependency on CryptoPP library. All cryptographic operations are now realized using
OpenSSL library routines and/or with the help of ``security::transform`` framework
(:issue:`3006`, :issue:`3946`, :issue:`3924`, :issue:`3886`).
- Improved APIs for NFD management data structures, including equality comparators, formatted
output, etc. (:issue:`3932`, :issue:`3903`, :issue:`3864`)
- FaceUri now accepts link-local IPv6 addresses (:issue:`1428`)
- Rename fields in :ndn-cxx:`FaceStatus` and :ndn-cxx:`ForwarderStatus` ('datas' => 'data')
(:issue:`3955`)
- Improve logging framework and its uses
* Add API to enumerate Logger modules (:issue:`4013`)
* Advanced filtering of the logging modules (:issue:`3918`)
* Add logging capabilities to ``Face``, ``UnixTransport``, ``TcpTransport``, and the new
security framework (:issue:`3563`)
To configure logging, set the environment variable :doc:`NDN_LOG </manpages/ndn-log>`.
Examples:
.. code-block:: sh
export NDN_LOG="*=ALL"
export NDN_LOG="ndn.*=ALL"
export NDN_LOG="ndn.security=DEBUG:ndn.TcpTransport=ALL"
- Ensure that :ndn-cxx:`Face` sends a ``Nack`` only after every ``InterestCallback`` has
responded (:issue:`4228`)
- Fix potential overflow in :ndn-cxx:`time::toIsoString` (:issue:`3915`)
- Fix potentially misaligned memory accesses (:issue:`4172`, :issue:`4097`, :issue:`4175`,
:issue:`4190`, :issue:`4191`)
- Fix potential memory access error in ``Face/PendingInterest`` (:issue:`4228`)
- Improvements and streamlining of the ``security::transform`` framework
- Source/header reorganization (:issue:`3940`)
* Move network-related files to ``src/net``. Note the following namespace changes:
+ ``ndn::util::FaceUri`` is now ``ndn::FaceUri``
+ ``ndn::util::ethernet`` is now ``ndn::ethernet``
+ ``ndn::util::NetworkMonitor`` and related classes are now in ``ndn::net``
* Move signal-related files into ``src/util/signal`` directory, except for
the main include ``signal.hpp``
* Move :ndn-cxx:`InMemoryStorage` and related classes to ``src/ims``
* Rename ``digest.hpp`` to ``sha256.hpp`` to match the ``Sha256`` class declared within
Removed
^^^^^^^
- Old security framework.
* ``v1::KeyChain``, use :ndn-cxx:`v2::KeyChain` instead
* ``v1::Validator`` interface and ``ValidatorRegex`` implementation of this
interface. ``ValidatorConfig``, ``ValidatorNull`` implementation refactored to be based on
the new validation framework.
* ``v1::SecPublicInfo`` and its implementation (``SecPublicInfoSqlite``), ``SecTpm`` and its
implementations (``SecTpmFile``, ``SecTpmOsx``). These classes are internal implementation
and not intended to be used without ``v1::KeyChain``. :ndn-cxx:`v2::KeyChain` internally
uses the newly introduced :ndn-cxx:`Pib` and :ndn-cxx:`Tpm` interfaces with their
corresponding implementations.
* ``v1::Certificate``, ``v1::IdentityCertificate``, ``v1::CertificateExtension``,
``v1::CertificateSubjectDescription``, use :ndn-cxx:`v2::Certificate` and
:ndn-cxx:`AdditionalDescription`
* ``v1::SecuredBag``, use ``v2::SafeBag`` instead
- Constant ``io::BASE_64``, use ``io::BASE64`` instead (:issue:`3741`)
- Headers ``management/nfd-*``, use ``mgmt/nfd/*`` instead (:issue:`3760`)
- ``security/cryptopp.hpp`` header
- ``security/identity-certificate.hpp`` header
- ``ndn::PublicKey``, ``ndn::Certificate``, ``ndn::IdentityCertificate``,
``ndn::CertificateExtension``, ``ndn::CertificateSubjectDescription``.
- ``Link`` and ``SelectedDelegation`` fields in ``Interest``, replaced by
``ForwardingHint`` following the latest version of NDN specification (:issue:`4055`)
- ``LocalControlHeader`` constants (:issue:`3755`)
- ``NInDatas`` and ``NOutDatas`` (:issue:`3955`)
- Overload of ``Block::Block`` that parses a ``Block`` from a ``void*`` buffer
- Duplicate ``buf()`` and ``get()`` methods from ``Buffer`` class in favor of ``data()``
- ``util/crypto.hpp``, ``crypto::sha256()``, and ``crypto::computeSha256Digest()`` in favor of
``Sha256::computeDigest()``
- Previously deprecated functions (:issue:`4055`)