blob: da6643696c589fe4ab2e1c469600cf8cc57cabdf [file] [log] [blame]
Alexander Afanasyev3647af02017-10-16 16:29:23 -04001ndn-cxx version 0.6.0
Alexander Afanasyevc381bca2017-10-15 14:51:49 -04002---------------------
3
4Release date: October 16, 2017
5
6Changes since version 0.5.1:
7
Davide Pesavento933a5672020-07-03 22:32:43 -04008New features
9^^^^^^^^^^^^
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040010
Davide Pesavento933a5672020-07-03 22:32:43 -040011- **(breaking change)** Security framework version 2 (:issue:`3098`, :issue:`3920`,
12 :issue:`3644`, :issue:`4085`, :issue:`4323`, :issue:`4339`).
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040013
Davide Pesavento576c21b2022-11-29 20:00:22 -050014 This release of the library supports only the new version of the security framework
15 and features a number of updates to the KeyChain and Validator interfaces.
16 At the same time, management APIs for :ndn-cxx:`ValidatorConfig` remained intact;
17 transition to the new framework only requires adjusting :ndn-cxx:`Validator::validate`
18 calls and updating configuration files to follow the naming conventions of the new
19 `Certificate format <https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html>`__.
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040020
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
Davide Pesavento576c21b2022-11-29 20:00:22 -050028- Fine-grained signals on interface/address changes in :ndn-cxx:`NetworkMonitor`
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040029 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
42Improvements 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
Davide Pesavento576c21b2022-11-29 20:00:22 -050054- Rename fields in :ndn-cxx:`FaceStatus` and :ndn-cxx:`ForwarderStatus` ('datas' => 'data')
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040055 (: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
Davide Pesavento576c21b2022-11-29 20:00:22 -050066 To configure logging, set the environment variable :doc:`NDN_LOG </manpages/ndn-log>`.
67 Examples:
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040068
Davide Pesavento576c21b2022-11-29 20:00:22 -050069 .. code-block:: sh
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040070
Davide Pesavento576c21b2022-11-29 20:00:22 -050071 export NDN_LOG="*=ALL"
72 export NDN_LOG="ndn.*=ALL"
73 export NDN_LOG="ndn.security=DEBUG:ndn.TcpTransport=ALL"
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040074
Davide Pesavento576c21b2022-11-29 20:00:22 -050075- Ensure that :ndn-cxx:`Face` sends a ``Nack`` only after every ``InterestCallback`` has
76 responded (:issue:`4228`)
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040077
Davide Pesavento576c21b2022-11-29 20:00:22 -050078- Fix potential overflow in :ndn-cxx:`time::toIsoString` (:issue:`3915`)
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040079
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
Davide Pesavento576c21b2022-11-29 20:00:22 -050089 * Move network-related files to ``src/net``. Note the following namespace changes:
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040090
Davide Pesavento576c21b2022-11-29 20:00:22 -050091 + ``ndn::util::FaceUri`` is now ``ndn::FaceUri``
92 + ``ndn::util::ethernet`` is now ``ndn::ethernet``
93 + ``ndn::util::NetworkMonitor`` and related classes are now in ``ndn::net``
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040094
Davide Pesavento576c21b2022-11-29 20:00:22 -050095 * Move signal-related files into ``src/util/signal`` directory, except for
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040096 the main include ``signal.hpp``
Davide Pesavento576c21b2022-11-29 20:00:22 -050097 * Move :ndn-cxx:`InMemoryStorage` and related classes to ``src/ims``
Alexander Afanasyevc381bca2017-10-15 14:51:49 -040098 * Rename ``digest.hpp`` to ``sha256.hpp`` to match the ``Sha256`` class declared within
99
100Removed
101^^^^^^^
102
103- Old security framework.
104
105 * ``v1::KeyChain``, use :ndn-cxx:`v2::KeyChain` instead
106
107 * ``v1::Validator`` interface and ``ValidatorRegex`` implementation of this
108 interface. ``ValidatorConfig``, ``ValidatorNull`` implementation refactored to be based on
109 the new validation framework.
110
111 * ``v1::SecPublicInfo`` and its implementation (``SecPublicInfoSqlite``), ``SecTpm`` and its
112 implementations (``SecTpmFile``, ``SecTpmOsx``). These classes are internal implementation
113 and not intended to be used without ``v1::KeyChain``. :ndn-cxx:`v2::KeyChain` internally
114 uses the newly introduced :ndn-cxx:`Pib` and :ndn-cxx:`Tpm` interfaces with their
115 corresponding implementations.
116
117 * ``v1::Certificate``, ``v1::IdentityCertificate``, ``v1::CertificateExtension``,
118 ``v1::CertificateSubjectDescription``, use :ndn-cxx:`v2::Certificate` and
119 :ndn-cxx:`AdditionalDescription`
120
121 * ``v1::SecuredBag``, use ``v2::SafeBag`` instead
122
123- Constant ``io::BASE_64``, use ``io::BASE64`` instead (:issue:`3741`)
124
125- Headers ``management/nfd-*``, use ``mgmt/nfd/*`` instead (:issue:`3760`)
126
127- ``security/cryptopp.hpp`` header
128
129- ``security/identity-certificate.hpp`` header
130
131- ``ndn::PublicKey``, ``ndn::Certificate``, ``ndn::IdentityCertificate``,
132 ``ndn::CertificateExtension``, ``ndn::CertificateSubjectDescription``.
133
134- ``Link`` and ``SelectedDelegation`` fields in ``Interest``, replaced by
135 ``ForwardingHint`` following the latest version of NDN specification (:issue:`4055`)
136
137- ``LocalControlHeader`` constants (:issue:`3755`)
138
139- ``NInDatas`` and ``NOutDatas`` (:issue:`3955`)
140
141- Overload of ``Block::Block`` that parses a ``Block`` from a ``void*`` buffer
142
143- Duplicate ``buf()`` and ``get()`` methods from ``Buffer`` class in favor of ``data()``
144
145- ``util/crypto.hpp``, ``crypto::sha256()``, and ``crypto::computeSha256Digest()`` in favor of
146 ``Sha256::computeDigest()``
147
148- Previously deprecated functions (:issue:`4055`)