| ndn-cxx version 0.5.1 |
| --------------------- |
| |
| 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`) |
| |
| The released version of the library only supports the new version of the security (v2 |
| certificate format) and features a number of updates of KeyChain and Validator |
| interfaces. At the same time, management APIs for :ndn-cxx:`ValidatorConfig` remained |
| intact; transition to the new framework would require only adjusting |
| :ndn-cxx:`Validator::validate` calls and updating configuration files to follow the new |
| naming conventions of :ref:`NDN Certificate Format Version 2.0`. |
| |
| - 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 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 variables in ``FaceStatus`` and ``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 enable logging, set environment variable ``NDN_LOG`` to enable specific, subset, or all |
| logging module at appropriate levels. Examples: |
| |
| :: |
| |
| export NDN_LOG=*=ALL |
| export NDN_LOG=ndn.*=ALL |
| export NDN_LOG=ndn.security=DEBUG:ndn.TcpTransport=ALL |
| |
| - Ensure that ``Face`` sends ``Nack`` only after every ``InterestCallback`` has responded |
| (:issue:`4228`) |
| |
| - Fix potential overflow in ``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:: |
| 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 InMemoryStorage 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`) |