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 :ndn-cxx:`ValidatorConfig` remained intact; transition to the new framework would require only adjusting :ndn-cxx:`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, and- DelegationList; refactoring of Interest encoding to include- ForwardingHintinstead of- LinkObject, 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 and- Ack, the first repeatable field in NDNLPv2 (issue #3931)
- Optional - LocalUrias part of- ControlParametersand 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_joinerand- optional(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 - FaceStatusand- ForwarderStatus(‘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 - Facesends- Nackonly after every- InterestCallbackhas 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::transformframework
- Source/header reorganization (issue #3940) - Move network-related files to - src/net- Note - 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 include- signal.hpp
- Move InMemoryStorage to - src/ims
- Rename - digest.hppto- sha256.hppto match the- Sha256class declared within
 
Removed¶
- Old security framework.- v1::KeyChain, use :ndn-cxx:`v2::KeyChain` instead
- v1::Validatorinterface and- ValidatorRegeximplementation 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 without- v1::KeyChain. :ndn-cxx:`v2::KeyChain` internally uses the newly introduced :ndn-cxx:`Pib` and :ndn-cxx:`Tpm` interfaces with their corresponding implementations.
- v1::Certificate,- v1::IdentityCertificate,- v1::CertificateExtension,- v1::CertificateSubjectDescription, use :ndn-cxx:`v2::Certificate` and :ndn-cxx:`AdditionalDescription`
- v1::SecuredBag, use- v2::SafeBaginstead
 
- Constant io::BASE_64, useio::BASE64instead (issue #3741)
- Headers management/nfd-*, usemgmt/nfd/*instead (issue #3760)
- security/cryptopp.hppheader
- security/identity-certificate.hppheader
- ndn::PublicKey,- ndn::Certificate,- ndn::IdentityCertificate,- ndn::CertificateExtension,- ndn::CertificateSubjectDescription.
- Linkand- SelectedDelegationfields in- Interest, replaced by- ForwardingHintfollowing the latest version of NDN specification (issue #4055)
- LocalControlHeaderconstants (issue #3755)
- NInDatasand- NOutDatas(issue #3955)
- Overload of Block::Blockthat parses aBlockfrom avoid*buffer
- Duplicate buf()andget()methods fromBufferclass in favor ofdata()
- util/crypto.hpp,- crypto::sha256(), and- crypto::computeSha256Digest()in favor of- Sha256::computeDigest()
- Previously deprecated functions (issue #4055)
