ndn-cxx version 0.6.0¶
Release date: October 16, 2017
Changes since version 0.5.1:
New features¶
(breaking change) Security framework version 2 (issue #3098, issue #3920, issue #3644, issue #4085, issue #4323, issue #4339).
The released version of the library only supports the new version of the security (v2 certificate format) and features a number of updates of KeyChain and Validator interfaces. At the same time, management APIs for ValidatorConfig remained intact; transition to the new framework would require only adjusting Validator::validate() calls and updating configuration files to follow the new naming conventions of NDN Certificate Format Version 2.0.
Integration of fetching certificates using Certificate Bundle as part of specialized
CertificateFetcher(issue #3891)ForwardingHint,Delegation, andDelegationList; refactoring of Interest encoding to includeForwardingHintinstead ofLinkObject, following the latest NDN specification updates (issue #4054, issue #4055)Fine-grained signals on interface/address changes in NetworkMonitor for all supported platforms (issue #3353, issue #4025, issue #3817, issue #4024)
Addition of
TxSequencefield andAck, the first repeatable field in NDNLPv2 (issue #3931)Optional
LocalUrias part ofControlParametersand adjusting face creation command and responses to handle the new optional field (issue #4014, issue #4015, issue #3956)LpReliabilityflag in Face management data structures (issue #4003)Backported implementation of C++17 classes
ostream_joinerandoptional(issue #3962, issue #3753)
Improvements and bug fixes¶
Removed dependency on CryptoPP library. All cryptographic operations are now realized using OpenSSL library routines and/or with the help of
security::transformframework (issue #3006, issue #3946, issue #3924, issue #3886).Improved APIs for NFD management data structures, including equality comparators, formatted output, etc. (issue #3932, issue #3903, issue #3864)
FaceUri now accepts link-local IPv6 addresses (issue #1428)
Rename variables in
FaceStatusandForwarderStatus(‘datas’ => ‘data’) (issue #3955)Improve logging framework and its uses
Add API to enumerate Logger modules (issue #4013)
Advanced filtering of the logging modules (issue #3918)
Add logging capabilities to
Face,UnixTransport,TcpTransport, and the new security framework (issue #3563)
To enable logging, set environment variable
NDN_LOGto enable specific, subset, or all logging module at appropriate levels. Examples:export NDN_LOG=*=ALL export NDN_LOG=ndn.*=ALL export NDN_LOG=ndn.security=DEBUG:ndn.TcpTransport=ALL
Ensure that
FacesendsNackonly after everyInterestCallbackhas responded (issue #4228)Fix potential overflow in
time::toIsoString(issue #3915)Fix potentially misaligned memory accesses (issue #4172, issue #4097, issue #4175, issue #4190, issue #4191)
Fix potential memory access error in
Face/PendingInterest(issue #4228)Improvements and streamlining of the
security::transformframeworkSource/header reorganization (issue #3940)
Move network-related files to
src/netNote
Namespace changes
ndn::util::FaceUri is now ndn::FaceUri
ndn::util::ethernet is now ndn::ethernet
ndn::util::NetworkMonitor and related classes are now in ndn::net
Move signal-related files into
src/util/signal/directory, except for the main includesignal.hppMove InMemoryStorage to
src/imsRename
digest.hpptosha256.hppto match theSha256class declared within
Removed¶
Old security framework.
v1::KeyChain, use v2::KeyChain insteadv1::Validatorinterface andValidatorRegeximplementation of this interface.ValidatorConfig,ValidatorNullimplementation refactored to be based on the new validation framework.v1::SecPublicInfoand its implementation (SecPublicInfoSqlite),SecTpmand its implementations (SecTpmFile,SecTpmOsx). These classes are internal implementation and not intended to be used withoutv1::KeyChain. v2::KeyChain internally uses the newly introduced Pib and Tpm interfaces with their corresponding implementations.v1::Certificate,v1::IdentityCertificate,v1::CertificateExtension,v1::CertificateSubjectDescription, use v2::Certificate and AdditionalDescriptionv1::SecuredBag, usev2::SafeBaginstead
Constant
io::BASE_64, useio::BASE64instead (issue #3741)Headers
management/nfd-*, usemgmt/nfd/*instead (issue #3760)security/cryptopp.hppheadersecurity/identity-certificate.hppheaderndn::PublicKey,ndn::Certificate,ndn::IdentityCertificate,ndn::CertificateExtension,ndn::CertificateSubjectDescription.LinkandSelectedDelegationfields inInterest, replaced byForwardingHintfollowing the latest version of NDN specification (issue #4055)LocalControlHeaderconstants (issue #3755)NInDatasandNOutDatas(issue #3955)Overload of
Block::Blockthat parses aBlockfrom avoid*bufferDuplicate
buf()andget()methods fromBufferclass in favor ofdata()util/crypto.hpp,crypto::sha256(), andcrypto::computeSha256Digest()in favor ofSha256::computeDigest()Previously deprecated functions (issue #4055)