| 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`) |