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).
This release of the library supports only the new version of the security framework and features a number of updates to the KeyChain and Validator interfaces. At the same time, management APIs for ValidatorConfig remained intact; transition to the new framework only requires adjusting Validator::validate() calls and updating configuration files to follow the naming conventions of the new Certificate format.
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 fields in FaceStatus and 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 configure logging, set the environment variable NDN_LOG. Examples:
export NDN_LOG="*=ALL" export NDN_LOG="ndn.*=ALL" export NDN_LOG="ndn.security=DEBUG:ndn.TcpTransport=ALL"
Ensure that Face sends a
Nack
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 the following namespace changes:ndn::util::FaceUri
is nowndn::FaceUri
ndn::util::ethernet
is nowndn::ethernet
ndn::util::NetworkMonitor
and related classes are now inndn::net
Move signal-related files into
src/util/signal
directory, except for the main includesignal.hpp
Move InMemoryStorage and related classes to
src/ims
Rename
digest.hpp
tosha256.hpp
to match theSha256
class declared within
Removed¶
Old security framework.
v1::KeyChain
; use KeyChain instead.v1::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
. The new KeyChain internally uses the newly introduced Pib and Tpm interfaces with their corresponding implementations.v1::Certificate
,v1::IdentityCertificate
,v1::CertificateExtension
,v1::CertificateSubjectDescription
; use the new Certificate and AdditionalDescription instead.v1::SecuredBag
; use 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*
bufferDuplicate
buf()
andget()
methods fromBuffer
class in favor ofdata()
util/crypto.hpp
,crypto::sha256()
, andcrypto::computeSha256Digest()
in favor ofSha256::computeDigest()
Previously deprecated functions (issue #4055)