ndn-cxx version 0.7.0

BREAKING CHANGE

This release features support of only NDN packet format version 0.3
(Issues 4527, 4567, 4709, 4913). The library encodes and interprets Interest
and Data packets only in 0.3 format; support for version 0.2 has been
completely removed. In addition, the URI representation of Interest
packets has also been changed following the packet format updates.

New features:

- HMAC signing support (3075)

- Support for ParametersSha256DigestComponent in Name and Interest
  classes (4658)

- Encoding/decoding of HopLimit field in Interest (4806)

- PIT token (4532).

  PIT token is a hop-by-hop header field that identifies an
  Interest-Data exchange. The downstream node can assign an opaque token
  to an outgoing Interest, and the upstream node is expected to return
  the same token on the Data or Nack in reply to that Interest. This
  would allow the downstream node to accelerate its processing,
  especially in PIT lookup.

- io::loadBuffer and io::saveBuffer helper functions

Improvements and bug fixes:

- Various improvements in the Linux implementation of NetworkMonitor
  class
- Rework of RttEstimator class:
  - split into two classes: RttEstimator and RttEstimatorWithStats
    (4887)
  - add a getter for the smoothed RTT value (4892)
  - switch to use time::nanoseconds (4887)
- Make use of attributes in logging facilities and generalize logger
  backend support (4969, 3782)
- Silently accept an empty validation policy instead of throwing an
  exception (5049)
- Introduce alternative URI syntax for component types used in naming
  conventions, with ability to choose between canonical and alternate
  format (4777)
- Don't force the generation of an Interest nonce during decoding (4685)
- Various documentation improvements

Removals:

- ndn::util::Scheduler (use ndn::Scheduler or ndn::scheduler::Scheduler)
  and ndn::EventId (use ndn::scheduler::EventId) (4883)
- Unused KeyClass and AclType enums
- Unused v2::PublicKey alias of transform::PublicKey
- HmacFilter class, use SignerFilter and VerifierFilter instead
- Ill-defined equality operators for Interest, MetaInfo, Signature
  (4569)
- Implicit conversion from the xyzHandle types to const xyzId* (where
  xyz is PendingInterest, RegisteredPrefixId, and InterestFilterId)
- Deprecated KeyLocator::Type enum
- Private header files of concrete PIB, TPM, and KeyHandle
  implementations are no longer installed (4782)
- Renamed util/backports-ostream-joiner.hpp to util/ostream-joiner.hpp
  1. 570b20d encoding+lp: declare constexpr and noexcept where possible by Davide Pesavento · 6 years ago
  2. 14883ad encoding: use Boost.Endian for endianness conversions by Davide Pesavento · 6 years ago
  3. 2b765f8 util: eliminate selector usage in SegmentFetcher by Eric Newberry · 6 years ago
  4. e345baa util: augment SegmentFetcher with congestion control by Eric Newberry · 6 years ago
  5. 31fd467 security: Correctly handle Sha256-signed Command Interests by Alexander Afanasyev · 6 years ago
  6. 57d02b6 security: Fix bug preventing customization of KeyChain's TPM on macOS by Alexander Afanasyev · 6 years ago
  7. db4da5e Improve and simplify code with modern C++ features by Davide Pesavento · 6 years ago
  8. 3c9bc04 mgmt: add Mtu to faces/create and FaceStatus by Eric Newberry · 6 years ago
  9. 59e266a net: deprecate ndn::ip::address{,V6}FromString by Davide Pesavento · 6 years ago
  10. 1fd0024 build: switch to C++14 by Davide Pesavento · 6 years ago
  11. e240422 face: use post instead of dispatch to avoid re-entrancy issues by Ashlesh Gawande · 6 years ago
  12. cc910cd util: use signals instead of callbacks in SegmentFetcher by Eric Newberry · 6 years ago
  13. c93c2ce encoding: add route origin for self-learning by Teng Liang · 6 years ago
  14. 1c9c96c util: fix Logging::getLoggerNames() by Davide Pesavento · 6 years ago
  15. 974b81a lp: encode sequence number as fixed-width integer by Junxiao Shi · 6 years ago
  16. 72c0c64 encoding: provide FormattedOutputFunction for Block by Junxiao Shi · 6 years ago
  17. 9c9672e name: don't strip whitespace when parsing URI by Junxiao Shi · 6 years ago
  18. 7d9039b data: recognize Data in Packet Format v0.3 by Junxiao Shi · 6 years ago
  19. 6efa3b7 interest: recognize Interest in Packet Format v0.3 by Junxiao Shi · 6 years ago
  20. 0c145ec util: support declaring loggers as class members by Davide Pesavento · 6 years ago
  21. a2550a9 encoding: declare TLV-TYPE constants for Packet Format v0.3 by Junxiao Shi · 6 years ago
  22. 3688d72 util: backport optional::reset by Junxiao Shi · 6 years ago
  23. 8d3f834 interest: deprecate selectors by Junxiao Shi · 6 years ago
  24. a36f15d name: allow appending typed name components by Junxiao Shi · 6 years ago
  25. ebfe4a2 meta-info: allow typed name component in FinalBlockId by Junxiao Shi · 6 years ago
  26. b849f61 util: give examples for NDN_CXX_DEPRECATED by Junxiao Shi · 6 years ago
  27. 4ffbb9d interest+exclude: rename NameComponent to GenericNameComponent by Junxiao Shi · 6 years ago
  28. cf4ac5b name-component: recognize typed name components by Junxiao Shi · 6 years ago
  29. 8a8c01b tests: fix several instances of the most vexing parse by Davide Pesavento · 6 years ago
  30. 5560fd4 build: update waf to version 2.0.6 by Alexander Afanasyev · 7 years ago
  31. 5e2ccca mgmt: fix conflicting TLV-TYPE assignment by Davide Pesavento · 7 years ago
  32. df50538 mgmt: declare cs/erase command by Junxiao Shi · 7 years ago
  33. 38a061d util: introduce escape() and use it in Component::toUri() by Davide Pesavento · 7 years ago
  34. 5b323d1 lp: wrap Data in PrefixAnnouncement field by Teng Liang · 7 years ago
  35. 08378cb name: fix encoding of "+" and "~" in Component::toUri() by Davide Pesavento · 7 years ago
  36. be86d98 mgmt: fix CsInfo.Capacity decoding by Junxiao Shi · 7 years ago
  37. a7ab06d mgmt: add capacity and enablement flags to CsInfo by Junxiao Shi · 7 years ago
  38. c5ba65b util: fix Y2038 problem in time::toString() by Davide Pesavento · 7 years ago
  39. d567aab mgmt: make congestion marking parameters optional by Eric Newberry · 7 years ago
  40. b984e32 net: parse interface names more loosely in FaceUri by Davide Pesavento · 7 years ago
  41. 07d05c9 mgmt: add congestion marking parameters by Eric Newberry · 7 years ago
  42. e66040e util: Fix conversion of large dates from strings to internal type by Alexander Afanasyev · 7 years ago
  43. 22f8568 mgmt: declare cs/config command by Junxiao Shi · 7 years ago
  44. 0f83080 util: add literal operators for duration types by Davide Pesavento · 7 years ago
  45. 1c109b4 util: add signals to SegmentFetcher for segment retrieval/validation by Muktadir Chowdhury · 7 years ago
  46. 5afbb0b util: switch to boost::asio::basic_waitable_timer by Davide Pesavento · 7 years ago
  47. e84d1eb util/io: catch invalid_argument generated by trying to load empty file by Ashlesh Gawande · 7 years ago
  48. 720f3ba security: add support for BLAKE2 hash function by Davide Pesavento · 7 years ago
  49. 82d6a4c security: fix error handling in KeyChain::importSafeBag() by Davide Pesavento · 7 years ago
  50. 34429cc util: Add BroadcastLink to DummyClientFace by Zhiyi Zhang · 8 years ago
  51. 7dffab6 Fix missing 'typename' prior to dependent type name error by Ashlesh Gawande · 7 years ago
  52. 7f01247 mgmt: encode/decode CS Information Dataset by Junxiao Shi · 7 years ago
  53. b682891 face: Interest loopback by Junxiao Shi · 7 years ago
  54. 0296074 lp: add NonDiscovery field and tag by Teng Liang · 7 years ago
  55. 7e6f6f8 encoding: avoid UB when casting to tlv::SignatureTypeValue by Davide Pesavento · 7 years ago
  56. e245b05 encoding: don't call memcmp() with null pointer by Davide Pesavento · 7 years ago
  57. a1302f6 security: enable direct fetch for data sig validation by Zhiyi Zhang · 7 years ago
  58. bdcedf4 security+util: remove overloaded operator!() by Davide Pesavento · 7 years ago
  59. 5d0b010 encoding: remove duplicate buf() and get() methods from Buffer class by Davide Pesavento · 7 years ago
  60. 5759be3 security: Identity/Key comparison operators by Junxiao Shi · 7 years ago
  61. c4a0176 security: fix bugs in keylocator checker of validator config by Zhiyi Zhang · 7 years ago
  62. ac8b4ca net: support link-local IPv6 addresses in FaceUri by Yanbiao Li · 7 years ago
  63. b3d0a8e util: add missing assignment in Regex test case by Junxiao Shi · 7 years ago
  64. c3a4679 base: add PacketBase to provide wrappers for congestion tags by Eric Newberry · 7 years ago
  65. b10024c encoding: delete deprecated overload of Block::Block by Davide Pesavento · 7 years ago
  66. eaa93f4 security: fix AES IV length check in transform::BlockCipher by Davide Pesavento · 7 years ago
  67. 8a14b9b security: use EVP_DigestVerify* routines in VerifierFilter by Davide Pesavento · 7 years ago
  68. 8aad372 security: add missing out-of-line destructors for transform classes by Davide Pesavento · 7 years ago
  69. 06f1bdf security: use EVP_DigestSign* routines in SignerFilter by Davide Pesavento · 7 years ago
  70. cafa402 security: use DES-EDE3-CBC to encrypt private keys in PKCS #8 format by Davide Pesavento · 7 years ago
  71. c3dfc24 security: move {Rsa,Ec,Aes}KeyParamsInfo into namespace detail by Davide Pesavento · 7 years ago
  72. 1c31a71 security: simplify/cleanup PublicKey implementation by Davide Pesavento · 7 years ago
  73. f45fa21 security: simplify PrivateKey implementation and improve error handling by Davide Pesavento · 7 years ago
  74. 859888f face: retain PendingInterest during Interest processing by Junxiao Shi · 7 years ago
  75. b88c6bf tests: fix build with clang-5.0 by Davide Pesavento · 7 years ago
  76. 79a7a16 face: send Nack after every InterestCallback has responded by Junxiao Shi · 7 years ago
  77. 941fd8c security: insert OpenSSL initialization call in PrivateKey::loadPkcs8 by Luca Keidel · 7 years ago
  78. e062a18 util: Advanced filtering of the logging modules by dmcoomes · 7 years ago
  79. 6fd26cf security: Allow key for root namespace identity by Alexander Afanasyev · 7 years ago
  80. 6aff024 security: Allow reloading ValidationPolicyConfig / ValidatorConfig by Alexander Afanasyev · 7 years ago
  81. 605671d signature: disallow encoding invalid SignatureInfo by Junxiao Shi · 7 years ago
  82. 1ad0b4b face: insert pending Interest records for Interests from forwarder by Junxiao Shi · 7 years ago
  83. adc7184 security: Remove old security framework by Alexander Afanasyev · 8 years ago
  84. e5a19b8 security: Convert ValidatorConfig to ValidationPolicyConfig by Alexander Afanasyev · 8 years ago
  85. a84f464 Cleanup iostream includes by Davide Pesavento · 7 years ago
  86. cdcde90 Fix compilation with Boost 1.65.0 by Davide Pesavento · 7 years ago
  87. 2bea5c4 tests: revamp Face integrated tests by Junxiao Shi · 7 years ago
  88. b6e276f face: move packet encoding to Impl class by Junxiao Shi · 7 years ago
  89. 5174232 Check integer range during decoding by Junxiao Shi · 7 years ago
  90. 6158f47 tests: eliminate cryptopp use from Test{Signer,Verifier}Filter by Davide Pesavento · 7 years ago
  91. 5d75fd9 mgmt: check enum range during decoding by Junxiao Shi · 7 years ago
  92. d9153ce link: delete deprecated functions by Junxiao Shi · 7 years ago
  93. baab732 tests: avoid misaligned memory access in InMemoryStorage test by Junxiao Shi · 7 years ago
  94. d701e5b interest: delete Link and SelectedDelegation fields by Junxiao Shi · 7 years ago
  95. 6938e34 util: rename digest.hpp to sha256.hpp by Junxiao Shi · 7 years ago
  96. 81206d5 data: reorganize code and test cases by Junxiao Shi · 7 years ago
  97. 760cc7b encoding: Block::fromStream properly handles TLV-LENGTH=0 by Junxiao Shi · 7 years ago
  98. 6dfeffe mgmt: Switch nfd::Controller to use v2::Validator interface by Alexander Afanasyev · 8 years ago
  99. 2dd711d interest: setNonce resets wire buffer by Junxiao Shi · 7 years ago
  100. c542f63 ims: move InMemoryStorage from util/ by Junxiao Shi · 7 years ago