blob: a90a1804da7de74d8010574216d23cad181eeaa8 [file] [log] [blame]
Davide Pesavento81de5d92022-12-30 01:08:05 -05001ndn-cxx version 0.8.1
2---------------------
3
4Release date: December 31, 2022
5
6.. note::
7 This is the last release of ndn-cxx to support the C++14 standard.
8 Future versions will require C++17 to build.
9
10Important changes and new features
11^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12
13- The minimum build requirements have been increased as follows:
14
15 - Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
16 - On macOS, Xcode 11.3 or later is recommended; older versions may still work but are not
17 officially supported
18 - Boost >= 1.65.1 and OpenSSL >= 1.1.1 are required on all platforms
19 - Sphinx 4.0 or later is required to build the documentation
20
21- CentOS Stream 9 is now officially supported; CentOS 8 has been dropped (:issue:`5181`)
22
23- macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now officially supported
24 (:issue:`5135`)
25
26- Add the initial version of a :ndn-cxx:`Segmenter` API that applications can use to simplify
27 the process of chunking a large object into multiple signed Data packets (:issue:`5247`)
28
29- Add ``KeyChain::makeCertificate()`` to simplify the creation of certificates
30
31- Put the full certificate name in the ``KeyLocator`` field, instead of just the key name
32 (:issue:`5112`)
33
34- NFD management commands sent by :ndn-cxx:`nfd::Controller` now use the `new signed Interest
Davide Pesavento02ed3322023-02-23 19:40:22 -050035 format <https://docs.named-data.net/NDN-packet-spec/0.3/signed-interest.html>`__ (:issue:`4804`)
Davide Pesavento81de5d92022-12-30 01:08:05 -050036
37Improvements and bug fixes
38^^^^^^^^^^^^^^^^^^^^^^^^^^
39
40- Several enhancements and cleanups in :ndn-cxx:`Name` and :ndn-cxx:`Component` to make
41 the API more consistent and simpler to use (:issue:`5186`)
42
43- Various improvements in the validation framework and policies
44
45 - Avoid redundant TLV decoding during Interest validation
46 - Fix validation of signed Interests with malformed ``InterestSignatureInfo``
47 - More accurate validation error codes are returned in several cases
48 - Rename ``ValidationError::NO_SIGNATURE`` to ``MALFORMED_SIGNATURE``
49
50- Optimize parsing of PIB and TPM locators in :ndn-cxx:`KeyChain`
51
52- Major cleanup and modernization of PIB implementation
53
54- Gracefully handle invalid or unsupported public keys stored in the PIB
55
56- Fix OpenSSL 3.0 deprecation warnings in private key generation routines (:issue:`5154`)
57
58- Change ``Certificate::getPublicKey()`` to return a ``span``
59
60- Make :ndn-cxx:`Block` convertible to ``span<const uint8_t>``
61
62- Avoid assertion failure in :ndn-cxx:`OBufferStream` under certain conditions (:issue:`5240`)
63
64- Allow customizing the FaceId in :ndn-cxx:`DummyClientFace` (:issue:`5011`)
65
66- Improve pretty-printing of certificates, e.g., in ``ndnsec list`` and ``ndnsec cert-dump``
67
68- Relax restrictions on KeyId component type in ``ndnsec key-gen``
69
70- Fix handling of ``--without-osx-keychain`` configure option (:issue:`3338`)
71
72- Stop using the ``gold`` linker on Linux; prefer instead linking with ``lld`` if installed
73
74- Update waf build system to version 2.0.24
75
76- Various documentation improvements
77
78Deprecations
79^^^^^^^^^^^^
80
81- ``Name::append()`` overloads and :ndn-cxx:`Component` constructors that take a
82 ``const uint8_t*``. Use the ``span``-based overloads instead.
83
84- ``Component::fromImplicitSha256Digest()`` and ``Component::fromParametersSha256Digest()``.
85 Use one of the constructors directly instead.
86
87Removals
88^^^^^^^^
89
90- Obsolete TLV-TYPE definitions
91
92- Many previously deprecated functions that take raw byte buffers as ``uint8_t*`` + ``size_t``,
93 replaced by equivalent functions that take a ``span``. These include ``Data::setContent()``,
94 ``Interest::setApplicationParameters()``, ``Block::fromBuffer()``, ``verifySignature()``,
95 ``PublicKey::loadPkcs8()``, ``transform::bufferSource()``, ``random::generateSecureBytes()``,
96 ``printHex()``, ``toHex()``, and so on.
97
98- Previously deprecated ``Name::append(Block)`` overload
99
100- Previously deprecated ``Interest::setDefaultCanBePrefix()``
101
102- ``ndn::any`` and related functionality