blob: 2ba1ec1e7906b5532b08b2cac4cc27cd50e59142 [file] [log] [blame]
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -08001ndn-cxx version 0.5.1
2---------------------
3
4Release date: January 25, 2017
5
6.. note::
susmitf47cef62018-02-13 12:01:14 -07007 This is the last release of the library that supports NDN Certificate format version 1 and
8 the existing implementations of validators. The upcoming 0.6.0 release will include
9 multiple breaking changes of the security framework.
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080010
11Changes since version 0.5.0:
12
Davide Pesavento933a5672020-07-03 22:32:43 -040013New features
14^^^^^^^^^^^^
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080015
Davide Pesavento576c21b2022-11-29 20:00:22 -050016- Add version 2 of the security framework in ``security::v2`` namespace
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080017
Davide Pesavento576c21b2022-11-29 20:00:22 -050018 * `NDN Certificate Format version 2.0
Davide Pesavento02ed3322023-02-23 19:40:22 -050019 <https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html>`__ (:issue:`3103`)
Davide Pesavento576c21b2022-11-29 20:00:22 -050020 * New Public Information Base (PIB) and Trusted Platform Module (TPM) framework to manage
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080021 public/private keys and NDN Certificate version 2.0 (:issue:`2948`, :issue:`3202`)
22 * New KeyChain implementation (:issue:`2926`)
23 * New Validator implementation (:issue:`3289`, :issue:`1872`)
24 * New security-supporting utilities: trust anchor container and certificate cache
25 * Creation of `Command Interests
26 <https://redmine.named-data.net/projects/ndn-cxx/wiki/CommandInterest>`__ delegated to
Davide Pesavento77c5ce82021-05-07 16:12:02 -040027 ``CommandInterestSigner`` class, while the new KeyChain only :doc:`signs Interests
Davide Pesaventocad94b02021-04-09 21:23:03 -040028 </specs/signed-interest>` (:issue:`3912`)
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080029
30- Enable validator to fetch certificates directly from the signed/command interest sender
31 (:issue:`3921`)
32
33- Add UP and DOWN kinds to :ndn-cxx:`FaceEventNotification` (issue:`3794`)
34
35- Add support for NIC-associated permanent faces in FaceUri (:issue:`3522`)
36
37- Add support for CongestionMark and Ack NDNLPv2 fields (:issue:`3797`, :issue:`3931`)
38
39- Add StrategyChoice equality operators and formatted output (:issue:`3903`)
40
41Improvements and bug fixes
42^^^^^^^^^^^^^^^^^^^^^^^^^^
43
44- Ensure that NACK callback is called for matching Interests, regardless of their nonce
45 (:issue:`3908`)
46
47- Optimize :ndn-cxx:`name::Component::compare` implementation (:issue:`3807`)
48
49- Fix memory leak in ndn-cxx:`Regex` (:issue:`3673`)
50
51- Correct NDNLPv2 rules for whether an unknown field can be ignored (:issue:`3884`)
52
53- Ensure that port numbers in FaceUri are 16 bits wide
54
55- Correct ValidityPeriod::isValid check (:issue:`2868`)
56
57- Fix encoding of type-specific TLV (:issue:`3914`)
58
59- Rename previously incorrectly named EcdsaKeyParams to EcKeyParams (:issue:`3135`)
60
61- Various documentation improvements, including ndn-cxx code style updates (:issue:`3795`, :issue:`3857`)
62
63Deprecated
64^^^^^^^^^^
65
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040066- Old security framework. All old security framework classes are moved to the
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080067 ``ndn::security::v1`` namespace in this release and will be removed in the next release.
68
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040069 * ``v1::KeyChain``; use ``v2::KeyChain`` instead.
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080070
71 * ``v1::Validator`` interface and all implementations of this interface (``ValidatorRegex``,
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040072 ``ValidatorConfig``, ``ValidatorNull``). Use ``v2::Validator`` and the corresponding
73 implementations of :ndn-cxx:`ValidationPolicy` interfaces (will be introduced before
74 the 0.6.0 release).
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080075
76 * ``v1::SecPublicInfo`` and its implementation (``SecPublicInfoSqlite``), ``SecTpm`` and its
77 implementations (``SecTpmFile``, ``SecTpmOsx``). These classes are internal implementation
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040078 and not intended to be used without ``v1::KeyChain``. ``v2::KeyChain`` internally uses
79 the newly introduced :ndn-cxx:`Pib` and :ndn-cxx:`Tpm` interfaces with their corresponding
80 implementations.
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080081
82 * ``v1::Certificate``, ``v1::IdentityCertificate``, ``v1::CertificateExtension``,
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040083 ``v1::CertificateSubjectDescription``; use ``v2::Certificate`` and ``AdditionalDescription``
84 instead.
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080085
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040086 * ``v1::SecuredBag``; use :ndn-cxx:`SafeBag` instead.
Alexander Afanasyevaa8b3782017-01-19 20:04:31 -080087
88- Constant ``io::BASE_64``, use ``io::BASE64`` instead (:issue:`3741`)
89
90- Headers ``management/nfd-*``, use ``mgmt/nfd/*`` instead (:issue:`3760`)
91
92- ``ndn::crypto::sha256`` in favor of ``ndn::crypto::computeSha256Digest``
93
94- ``security/cryptopp.hpp`` header. Use ``security/v1/cryptopp.hpp`` when needed, avoid direct
95 include as CryptoPP dependency will be removed from future versions of the library.
96
97- ``security/identity-certificate.hpp`` header. Use ``security/v1/identity-certificate.hpp`` instead.
98
99- ``ndn::PublicKey``, ``ndn::Certificate``, ``ndn::IdentityCertificate``,
100 ``ndn::CertificateExtension``, ``ndn::CertificateSubjectDescription``. When necessary, use
101 ``security::v1::PublicKey``, ``security::v1::Certificate``, ``security::v1::IdentityCertificate``,
102 ``security::v1::CertificateExtension``, ``security::v1::CertificateSubjectDescription`` instead.