blob: c2e045f329604359275bf77bbd704bd44805b5af [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 Pesavento933a5672020-07-03 22:32:43 -040014 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
Davide Pesaventocad94b02021-04-09 21:23:03 -040019 naming conventions of :doc:`/specs/certificate`.
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
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
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
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
105Removed
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`)