ndn-cxx version 0.5.0¶
Release date: October 4, 2016
Note
As of version 0.5.0, ndn-cxx requires a modern compiler (gcc >= 4.8.2, clang >= 3.4) and a relatively new version of Boost libraries (>= 1.54). This means that the code no longer compiles with the packaged version of gcc and boost libraries on Ubuntu 12.04. ndn-cxx can still be compiled on such systems, but requires separate installation of a newer version of the compiler (e.g., clang-3.4) and dependencies.
Note
The library now has a dependency on OpenSSL >= 1.0.1
Changes since version 0.4.1:
New features:¶
New transformation API (Issue #3009)
- base64 and hex encoding/decoding
- digest calculation (SHA256)
- HMAC calculation
- block cipher operations (AES in CBC mode)
- public key signing/verification
Introduce environment variables to set/override transport, pib, and tpm configurations (Issue #2925, Issue #2514)
NDN_CLIENT_TRANSPORT
: equivalent of transport in client.confNDN_CLIENT_PIB
: equivalent of pib in client.confNDN_CLIENT_TPM
: equivalent of tpm in client.conf
Whenever an environment variable is set, it takes precedence over any values specified in the configuration file.
Introduce logging facility based on Boost.Log (Issue #3562)
The logging can be enabled on selected moduled at the selected log level through
NDN_LOG
environment variable. For example,export NDN_LOG=ndn.mgmt.Dispatcher=TRACE
Introduce
Name::deepCopy
to allow memory optimizations when working withName
objects (Issue #3618)New
ndn::security::CommandInterestValidator
class (Issue #2376)Add
StatusDataset
client functionality intondn::nfd::Controller
(Issue #3329)New
FaceUpdateCommand
structure for NFD management protocols (Issue #3232)breaking change Add Flags and Mask fields to faces/create and faces/update, add Flags field to FaceStatus (Issue #3731, Issue #3732)
New
SafeBag
structure for private key export/import (Issue #3048)ndn::io::loadBlock
andsaveBlock
(Issue #3741)Backport of C++17
std::clamp
andstd::optional
(Issue #3636, Issue #3753)
Improvements and bug fixes¶
- breaking change Expose
ControlResponse
as part ofController::CommandFailCallback
(Issue #3739) - breaking change Change security constants to corresponding strongly typed enumerations (Issue #3083)
- Fix
SegmentFetcher
restarting from segment 0 upon Nack (Issue #3554) - Fix support for
ImplicitSha256Digest
name component inExclude
selector (Issue #3665) - Enable
KeyChain
customization inDummyClientFace
(Issue #3435) - Make
ValidatorConfig
to evaluate all checkers inside a rule (Issue #3645) - Add validation of
StatusDataset
andControlCommand
responses inndn::nfd::Controller
(Issue #3653) - Enable handling of NACKs in Validator and NotificationSubscriber classes (Issue #3332, Issue #3662)
- Several fixes in
Scheduler
class (Issue #3722, Issue #3691) - Add option to override
processEvents
method inDummyClientFace
class (Issue #3769) - Several other improvements, including fixes of potential segmentation faults and memory leaks (Issue #3136, Issue #3248, Issue #3723, Issue #3727)
Deprecated¶
- Constant
io::BASE_64
, useio::BASE64
instead (Issue #3741) - Headers
management/nfd-*
, usemgmt/nfd/*
instead (Issue #3760) ndn::crypto::sha256
in favor ofndn::crypto::computeSha256Digest
security/cryptopp.hpp
header. Usesecurity/v1/cryptopp.hpp
when needed, avoid direct include as CryptoPP dependency may be removed from future versions of the library.security/identity-certificate.hpp
header. Usesecurity/v1/identity-certificate.hpp
instead.ndn::PublicKey
,ndn::Certificate
,ndn::IdentityCertificate
,ndn::CertificateExtension
,ndn::CertificateSubjectDescription
. When necessary, usesecurity::v1::PublicKey
,security::v1::Certificate
,security::v1::IdentityCertificate
,security::v1::CertificateExtension
,security::v1::CertificateSubjectDescription
instead. The next release will feature a new version of NDN Certificate format.
Removed¶
- Previously deprecated LocalControlHeader (Issue #3755)
- Previously deprecated
makeDummyClientFace
function, useDummyClientFace
constructors directly (Issue #3383) - Previously deprecated
Name::set
, use constructors directly (Issue #2506) - Previously deprecated
Block::fromBuffer
and block helpers (Issue #2950, Issue #2636)Block::fromBuffer
overloads with output parameterndn::encoding::prependBlock
ndn::encoding::prependByteArrayBlock
ndn::encoding::nonNegativeIntegerBlock
ndn::encoding::prependBooleanBlock
ndn::encoding::booleanBlock
ndn::encoding::dataBlock
ndn::encoding::nestedBlock
- Previously deprecated Command Interest classes (Issue #2008)
CommandInterestGenerator
, replaced byKeyChain::sign
ndn::util::CommandInterestValidator
, replaced byndn::security::CommandInterestValidator
- ndncatchunks3 and ndnputchunks3 apps. Use ndncatchunks and ndnputchunks from NDN Essential Tools (ndn-tools) (Issue #3547)
ndn::ndn_digestSha256
function. Usendn::crypto::computeSha256Digest
instead.- potentially breaking change Headers
security/certificate-extension.hpp
,security/certificate-subject-description.hpp
, andsecurity/certificate.hpp
. When necessary, use the corresponding headers insecurity/v1/*
orsecurity/v1/identity-certificate.hpp
.