Release Notes

ndn-cxx version 0.5.1

Release date: January 25, 2017


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:

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)


  • Old security framework. All old security framework classes are moved to ndn::security::v1 namespace in this release and will be removed in the next release.
    • v1::KeyChain, use v2::KeyChain instead
    • v1::Validator interface and all implementations of this interface (ValidatorRegex, ValidatorConfig, ValidatorNull). Use v2::Validator and the corresponding implementations of ValidationPolicy interfaces (will be introduced before 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 without v1::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 AdditionalDescription
    • v1::SecuredBag, use v2::SafeBag instead
  • Constant io::BASE_64, use io::BASE64 instead (Issue #3741)
  • Headers management/nfd-*, use mgmt/nfd/* instead (Issue #3760)
  • ndn::crypto::sha256 in favor of ndn::crypto::computeSha256Digest
  • security/cryptopp.hpp header. Use security/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. Use security/v1/identity-certificate.hpp instead.
  • ndn::PublicKey, ndn::Certificate, ndn::IdentityCertificate, ndn::CertificateExtension, ndn::CertificateSubjectDescription. When necessary, use security::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.