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

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; 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 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 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 instead.

    • v1::SecuredBag; use 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.