Alexander Afanasyev | 3647af0 | 2017-10-16 16:29:23 -0400 | [diff] [blame^] | 1 | ndn-cxx version 0.6.0 |
Alexander Afanasyev | c381bca | 2017-10-15 14:51:49 -0400 | [diff] [blame] | 2 | --------------------- |
| 3 | |
| 4 | Release date: October 16, 2017 |
| 5 | |
| 6 | Changes since version 0.5.1: |
| 7 | |
| 8 | New features: |
| 9 | ^^^^^^^^^^^^^ |
| 10 | |
| 11 | - **breaking change** Security framework version 2 (:issue:`3098`, :issue:`3920`, |
| 12 | :issue:`3644`, :issue:`4085`, :issue:`4323`, :issue:`4339`) |
| 13 | |
| 14 | The released version of the library only supports the new version of the security (v2 |
| 15 | certificate format) and features a number of updates of KeyChain and Validator |
| 16 | interfaces. At the same time, management APIs for :ndn-cxx:`ValidatorConfig` remained |
| 17 | intact; transition to the new framework would require only adjusting |
| 18 | :ndn-cxx:`Validator::validate` calls and updating configuration files to follow the new |
| 19 | naming conventions of :ref:`NDN Certificate Format Version 2.0`. |
| 20 | |
| 21 | - Integration of fetching certificates using Certificate Bundle as part of specialized |
| 22 | ``CertificateFetcher`` (:issue:`3891`) |
| 23 | |
| 24 | - ``ForwardingHint``, ``Delegation``, and ``DelegationList``; refactoring of Interest encoding |
| 25 | to include ``ForwardingHint`` instead of ``LinkObject``, following the latest NDN |
| 26 | specification updates (:issue:`4054`, :issue:`4055`) |
| 27 | |
| 28 | - Fine-grained signals on interface/address changes in NetworkMonitor |
| 29 | for all supported platforms (:issue:`3353`, :issue:`4025`, :issue:`3817`, :issue:`4024`) |
| 30 | |
| 31 | - Addition of ``TxSequence`` field and ``Ack``, the first repeatable field in |
| 32 | NDNLPv2 (:issue:`3931`) |
| 33 | |
| 34 | - Optional ``LocalUri`` as part of ``ControlParameters`` and adjusting face creation command |
| 35 | and responses to handle the new optional field (:issue:`4014`, :issue:`4015`, :issue:`3956`) |
| 36 | |
| 37 | - ``LpReliability`` flag in Face management data structures (:issue:`4003`) |
| 38 | |
| 39 | - Backported implementation of C++17 classes ``ostream_joiner`` and ``optional`` |
| 40 | (:issue:`3962`, :issue:`3753`) |
| 41 | |
| 42 | Improvements and bug fixes |
| 43 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 44 | |
| 45 | - Removed dependency on CryptoPP library. All cryptographic operations are now realized using |
| 46 | OpenSSL library routines and/or with the help of ``security::transform`` framework |
| 47 | (:issue:`3006`, :issue:`3946`, :issue:`3924`, :issue:`3886`). |
| 48 | |
| 49 | - Improved APIs for NFD management data structures, including equality comparators, formatted |
| 50 | output, etc. (:issue:`3932`, :issue:`3903`, :issue:`3864`) |
| 51 | |
| 52 | - FaceUri now accepts link-local IPv6 addresses (:issue:`1428`) |
| 53 | |
| 54 | - Rename variables in ``FaceStatus`` and ``ForwarderStatus`` ('datas' => 'data') |
| 55 | (:issue:`3955`) |
| 56 | |
| 57 | - Improve logging framework and its uses |
| 58 | |
| 59 | * Add API to enumerate Logger modules (:issue:`4013`) |
| 60 | |
| 61 | * Advanced filtering of the logging modules (:issue:`3918`) |
| 62 | |
| 63 | * Add logging capabilities to ``Face``, ``UnixTransport``, ``TcpTransport``, and the new |
| 64 | security framework (:issue:`3563`) |
| 65 | |
| 66 | To enable logging, set environment variable ``NDN_LOG`` to enable specific, subset, or all |
| 67 | logging module at appropriate levels. Examples: |
| 68 | |
| 69 | :: |
| 70 | |
| 71 | export NDN_LOG=*=ALL |
| 72 | export NDN_LOG=ndn.*=ALL |
| 73 | export NDN_LOG=ndn.security=DEBUG:ndn.TcpTransport=ALL |
| 74 | |
| 75 | - Ensure that ``Face`` sends ``Nack`` only after every ``InterestCallback`` has responded |
| 76 | (:issue:`4228`) |
| 77 | |
| 78 | - Fix potential overflow in ``time::toIsoString`` (:issue:`3915`) |
| 79 | |
| 80 | - Fix potentially misaligned memory accesses (:issue:`4172`, :issue:`4097`, :issue:`4175`, |
| 81 | :issue:`4190`, :issue:`4191`) |
| 82 | |
| 83 | - Fix potential memory access error in ``Face/PendingInterest`` (:issue:`4228`) |
| 84 | |
| 85 | - Improvements and streamlining of the ``security::transform`` framework |
| 86 | |
| 87 | - Source/header reorganization (:issue:`3940`) |
| 88 | |
| 89 | * Move network-related files to ``src/net`` |
| 90 | |
| 91 | .. note:: |
| 92 | Namespace changes |
| 93 | |
| 94 | * ndn::util::FaceUri is now ndn::FaceUri |
| 95 | * ndn::util::ethernet is now ndn::ethernet |
| 96 | * ndn::util::NetworkMonitor and related classes are now in ndn::net |
| 97 | |
| 98 | * Move signal-related files into ``src/util/signal/`` directory, except for |
| 99 | the main include ``signal.hpp`` |
| 100 | |
| 101 | * Move InMemoryStorage to ``src/ims`` |
| 102 | |
| 103 | * Rename ``digest.hpp`` to ``sha256.hpp`` to match the ``Sha256`` class declared within |
| 104 | |
| 105 | Removed |
| 106 | ^^^^^^^ |
| 107 | |
| 108 | - Old security framework. |
| 109 | |
| 110 | * ``v1::KeyChain``, use :ndn-cxx:`v2::KeyChain` instead |
| 111 | |
| 112 | * ``v1::Validator`` interface and ``ValidatorRegex`` implementation of this |
| 113 | interface. ``ValidatorConfig``, ``ValidatorNull`` implementation refactored to be based on |
| 114 | the new validation framework. |
| 115 | |
| 116 | * ``v1::SecPublicInfo`` and its implementation (``SecPublicInfoSqlite``), ``SecTpm`` and its |
| 117 | implementations (``SecTpmFile``, ``SecTpmOsx``). These classes are internal implementation |
| 118 | and not intended to be used without ``v1::KeyChain``. :ndn-cxx:`v2::KeyChain` internally |
| 119 | uses the newly introduced :ndn-cxx:`Pib` and :ndn-cxx:`Tpm` interfaces with their |
| 120 | corresponding implementations. |
| 121 | |
| 122 | * ``v1::Certificate``, ``v1::IdentityCertificate``, ``v1::CertificateExtension``, |
| 123 | ``v1::CertificateSubjectDescription``, use :ndn-cxx:`v2::Certificate` and |
| 124 | :ndn-cxx:`AdditionalDescription` |
| 125 | |
| 126 | * ``v1::SecuredBag``, use ``v2::SafeBag`` instead |
| 127 | |
| 128 | - Constant ``io::BASE_64``, use ``io::BASE64`` instead (:issue:`3741`) |
| 129 | |
| 130 | - Headers ``management/nfd-*``, use ``mgmt/nfd/*`` instead (:issue:`3760`) |
| 131 | |
| 132 | - ``security/cryptopp.hpp`` header |
| 133 | |
| 134 | - ``security/identity-certificate.hpp`` header |
| 135 | |
| 136 | - ``ndn::PublicKey``, ``ndn::Certificate``, ``ndn::IdentityCertificate``, |
| 137 | ``ndn::CertificateExtension``, ``ndn::CertificateSubjectDescription``. |
| 138 | |
| 139 | - ``Link`` and ``SelectedDelegation`` fields in ``Interest``, replaced by |
| 140 | ``ForwardingHint`` following the latest version of NDN specification (:issue:`4055`) |
| 141 | |
| 142 | - ``LocalControlHeader`` constants (:issue:`3755`) |
| 143 | |
| 144 | - ``NInDatas`` and ``NOutDatas`` (:issue:`3955`) |
| 145 | |
| 146 | - Overload of ``Block::Block`` that parses a ``Block`` from a ``void*`` buffer |
| 147 | |
| 148 | - Duplicate ``buf()`` and ``get()`` methods from ``Buffer`` class in favor of ``data()`` |
| 149 | |
| 150 | - ``util/crypto.hpp``, ``crypto::sha256()``, and ``crypto::computeSha256Digest()`` in favor of |
| 151 | ``Sha256::computeDigest()`` |
| 152 | |
| 153 | - Previously deprecated functions (:issue:`4055`) |