ndn-cxx version 0.5.1¶
Release date: January 25, 2017
Note
This is the last release of the library that supports NDN Certificate format version 1 and the existing implementations of validators. The upcoming 0.6.0 release will include multiple breaking changes of the security framework.
Changes since version 0.5.0:
New features¶
Add version 2 of the security framework in
security::v2
namespaceNew Public Information Base (PIB) and Trusted Platform Module (TPM) framework to manage public/private keys and NDN Certificate version 2.0 (issue #2948, issue #3202)
New KeyChain implementation (issue #2926)
New Validator implementation (issue #3289, issue #1872)
New security-supporting utilities: trust anchor container and certificate cache
Creation of Command Interests delegated to
CommandInterestSigner
class, while the new KeyChain only signs Interests (issue #3912)
Enable validator to fetch certificates directly from the signed/command interest sender (issue #3921)
Add UP and DOWN kinds to FaceEventNotification (issue:3794)
Add support for NIC-associated permanent faces in FaceUri (issue #3522)
Add support for CongestionMark and Ack NDNLPv2 fields (issue #3797, issue #3931)
Add StrategyChoice equality operators and formatted output (issue #3903)
Improvements and bug fixes¶
Ensure that NACK callback is called for matching Interests, regardless of their nonce (issue #3908)
Optimize name::Component::compare() implementation (issue #3807)
Fix memory leak in ndn-cxx:Regex (issue #3673)
Correct NDNLPv2 rules for whether an unknown field can be ignored (issue #3884)
Ensure that port numbers in FaceUri are 16 bits wide
Correct ValidityPeriod::isValid check (issue #2868)
Fix encoding of type-specific TLV (issue #3914)
Rename previously incorrectly named EcdsaKeyParams to EcKeyParams (issue #3135)
Various documentation improvements, including ndn-cxx code style updates (issue #3795, issue #3857)
Deprecated¶
Old security framework. All old security framework classes are moved to the
ndn::security::v1
namespace in this release and will be removed in the next release.v1::KeyChain
; usev2::KeyChain
instead.v1::Validator
interface and all implementations of this interface (ValidatorRegex
,ValidatorConfig
,ValidatorNull
). Usev2::Validator
and the corresponding implementations of ValidationPolicy interfaces (will be introduced before the 0.6.0 release).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
; usev2::Certificate
andAdditionalDescription
instead.v1::SecuredBag
; use SafeBag instead.
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 will 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.