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 includeForwardingHint
instead 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
TxSequence
field andAck
, the first repeatable field in NDNLPv2 (Issue #3931)Optional
LocalUri
as part ofControlParameters
and adjusting face creation command and responses to handle the new optional field (Issue #4014, Issue #4015, Issue #3956)LpReliability
flag in Face management data structures (Issue #4003)Backported implementation of C++17 classes
ostream_joiner
andoptional
(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::transform
framework (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
FaceStatus
andForwarderStatus
(‘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_LOG
to 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
Face
sendsNack
only after everyInterestCallback
has 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::transform
frameworkSource/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 includesignal.hpp
Move InMemoryStorage to
src/ims
Rename
digest.hpp
tosha256.hpp
to match theSha256
class declared within
Removed¶
- Old security framework.
v1::KeyChain
, use v2::KeyChain insteadv1::Validator
interface andValidatorRegex
implementation of this interface.ValidatorConfig
,ValidatorNull
implementation refactored to be based on the new validation framework.v1::SecPublicInfo
and its implementation (SecPublicInfoSqlite
),SecTpm
and 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::SafeBag
instead
- Constant
io::BASE_64
, useio::BASE64
instead (Issue #3741) - Headers
management/nfd-*
, usemgmt/nfd/*
instead (Issue #3760) security/cryptopp.hpp
headersecurity/identity-certificate.hpp
headerndn::PublicKey
,ndn::Certificate
,ndn::IdentityCertificate
,ndn::CertificateExtension
,ndn::CertificateSubjectDescription
.Link
andSelectedDelegation
fields inInterest
, replaced byForwardingHint
following the latest version of NDN specification (Issue #4055)LocalControlHeader
constants (Issue #3755)NInDatas
andNOutDatas
(Issue #3955)- Overload of
Block::Block
that parses aBlock
from avoid*
buffer - Duplicate
buf()
andget()
methods fromBuffer
class in favor ofdata()
util/crypto.hpp
,crypto::sha256()
, andcrypto::computeSha256Digest()
in favor ofSha256::computeDigest()
- Previously deprecated functions (Issue #4055)