Changes since version 0.3.2

Release date: July 1, 2015

New features:

- Allow compilation of ndn-cxx as a shared library (Issue 2243)

  In this release, by default, only a static library is compiled. The
  next release will change the default behavior to compile only a
  shared library.

- Introduce concept of PartialName (Issue 1962)

  Semantically, PartialName abstraction represents an arbitrary
  sequence of name components, while Name represents an absolute name.
  Currently, PartialName is typedef alias to Name, but it can be
  changed in the future releases.

- Introduce generalized signing API in KeyChain (Issues 2871, 1705)

  A new API in KeyChain introduces a general interface to sign
  interest and data packets and supply necessary signing information,
  such as signing identity name, signing key name, or signing
  certificate name. In addition, the supplied signing information can
  include additional information that signer wants to include in the
  SignatureInfo of the signed packet.

- Introduce helpers to create SigningInfo for the generalized signing
  API (Issue 2922)
- Sqlite3Statement utility helper that wraps an SQLite3 statements and
  provide automatic memory cleanup
- Introduce PibSqlite3 based on PibImpl (Issue 2807)
- Make public interface of Pib, Identity, and Key as read-only (Issue 2928)
- New encoding block helpers to simplify operations with std::string
  (Issue 2951):
  - prependStringBlock
  - makeStringBlock
  - readString

Improvements and bug fixes:

- Use C++11 lambda expression and smart pointers in Face
  implementation (Issue 2112)
- Fix compilation failure on OS X 10.10 with cryptopp from MacPorts
- Update client.conf manpage
- Change Name::compare to return negative, zero, or positive integer
  (instead of strictly -1, 0, 1) when the first name comes before the
  other in canonical ordering, is equal, or comes after (Issue 2445)
- IdentityCertificate sets default FreshnessPeriod to 1 hour (Issue 2872)
- Unify TPM creation (Issue 2722)
- Allow negative start index in Name::getSubName method (Issue 1962)
- Improved documentation of PibImpl interfaces (Issues 2896, 2898)
- Simplify CommandOptions with SigningInfo (Issue 2893)
- Refactor internal PIT to use scheduled events (Issues 1372, 2518)
- Improve structure and documentation of block helpers (Issue 2951)
- Declare all move constructors as noexcept to ensure move operations
  are used even when a restrictive move operation (move_if_noexcept)
  is used (e.g., in STL library's containers) (Issue 2966)

Deprecated:

- The following KeyChain::sign* methods, in favor of generalized
  KeyChain::sign(..., SigningInfo)
  - KeyChain::sign(Packet, Name)
  - KeyChain::sign(uint8_t*, size_t, Name)
  - KeyChain::signByIdentity(Packet, Name)
  - KeyChain::signByIdentity(uint8_t*, size_t, Name)
  - KeyChain::signWithSha256(Data)
  - KeyChain::signWithSha256(Interest)
- The following encoding block helper functions:
  - nonNegativeIntegerBlock (use makeNonNegativeIntegerBlock)
  - prependBooleanBlock (use prependEmptyBlock)
  - booleanBlock (use makeEmptyBlock)
  - dataBlock (use makeBinaryBlock)
  - nestedBlock (use makeNestedBlock)
- The following methods of CommandOptions class, use setSigningInfo()
  instead (Issue 2893):
  - CommandOptions::getSigningParamsKind
  - CommandOptions::getSigningIdentity
  - CommandOptions::getSigningCertificate
  - CommandOptions::setSigningDefault
  - CommandOptions::setSigningIdentity
  - CommandOptions::setSigningCertificate

Removed:

- Remove SCOPE from Interests and all references to it in the related
  code (Issue 2345)
- Direct FIB management in Face class (Issue 2533)

  Face::register and Face::setInterestFilter methods now only support
  NFD RIB management protocol.

  For special needs, FIB management can be implemented using
  nfd::Controller (start<FibAddNextHopCommand>, and
  start<FibRemoveNextHopCommand>)

Upcoming features (partially finished in development branches):

- NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2,
  Issues 2520, 2879, 2763, 2883, 2841, 2866)
- New NDN certificate format (Issues 2861, 2868)
- NDN trust schema as a description of application trust model, which
  can help automate data and interest packet signing and
  authentication (Issue 2829)
- Refactored KeyChain abstraction (Issue 2926)
  1. 7284a40 exclude: avoid segfault when decoding empty Exclude element by Junxiao Shi · 10 years ago
  2. 7520302 exclude: move function definition to .cpp by Junxiao Shi · 10 years ago
  3. 9ad2d72 util: Add toString and operator<< for util::Digest by Yingdi Yu · 10 years ago
  4. bc5030d key-locator: KeyDigest by Junxiao Shi · 10 years ago
  5. de222c7 util: Add stateful digest by Yingdi Yu · 10 years ago
  6. 6fcdde2 face: Fix bug with removePendingInterest by Alexander Afanasyev · 10 years ago
  7. f3cfab5 util: Implement helper class to fetch multi-segmented data by Alexander Afanasyev · 10 years ago
  8. 370d260 tests: Small correction to make test case more stable by Alexander Afanasyev · 10 years ago
  9. 680e77a util: Ensure ndn::RegexComponentMatcher works with Boost >= 1.56 by Alexander Afanasyev · 10 years ago
  10. d1de397 encoding: Adding missing include by Alexander Afanasyev · 10 years ago
  11. 7091165 management: avoid CommandInterestGenerator in nfd::Controller by Junxiao Shi · 10 years ago
  12. 4abdbf1 util: Porting NotificationSubscriber, FaceMonitor, and NotificationStream from NFD by Alexander Afanasyev · 10 years ago
  13. fe14015 util: Add EventEmitter by Yingdi Yu · 10 years ago
  14. 15f6731 name: Make use of naming conventions for segment, version, timestamp, and sequence number encoding by Alexander Afanasyev · 10 years ago
  15. 54ce668 all: rename Tlv namespace to tlv for consistency by Steve DiBenedetto · 10 years ago
  16. 49bb1fb face: Throw Face::Error if supplied Interest or Data exceeds maximum packet size by Alexander Afanasyev · 10 years ago
  17. 21f13b0 management: Update nfd::RibControlCommand::applyDefaults to reflect spec update by Alexander Afanasyev · 10 years ago
  18. dbf3f70 management: Add RibEntry and Route data structures by Vince Lehman · 10 years ago
  19. 13e637f management: link-layer byte counts in FaceStatus by Junxiao Shi · 10 years ago
  20. 7508867 util: Redefine method for random number generation by Alexander Afanasyev · 10 years ago
  21. 7ae4bf5 util: Introduce Scheduler::cancelAllEvents to cancel all previously scheduled events by Alexander Afanasyev · 10 years ago
  22. c393217 interest: Allow in-wire refreshing of Interest's nonce by Alexander Afanasyev · 10 years ago
  23. a7c7f9d security: Introduce unsetKeyLocator method into SignatureInfo and Signature by Alexander Afanasyev · 10 years ago
  24. 1c6976d security: Fixing compilation errors and providing backward compatible interface for Signature* by Alexander Afanasyev · 10 years ago
  25. 4a55705 security: Update Signature abstraction to match 0.1.1 spec by Yingdi Yu · 10 years ago
  26. e63eaf6 management: Add ExpirationPeriod to nfd::FaceStatus by Alexander Afanasyev · 10 years ago
  27. 9d9d599 security: Enable exporting/importing ECDSA key by Yingdi Yu · 10 years ago
  28. 5ec0ee3 security: Support ECDSA verification in all related classes. by Yingdi Yu · 10 years ago
  29. 5aa8c74 name: New method to get "successor" of a name by Shuo Chen · 10 years ago
  30. c8f883c security: Add ECDSA signature signing and validation by Yingdi Yu · 10 years ago
  31. 7036ce2 security: Add KeyParams to support multiple types of keys. by Yingdi Yu · 10 years ago
  32. 72a1178 utils: Removing concept of periodic event from Scheduler by Alexander Afanasyev · 10 years ago
  33. a0c5f83 data+interest: Fixing operator<< by Alexander Afanasyev · 10 years ago
  34. 40b5309 security: Support KeyType in SecPublicInfo by Yingdi Yu · 10 years ago
  35. 0f5fb69 security: Include timestamp and nonce in signed interest and provide timestamp checking in ValidatorConf by Yingdi Yu · 10 years ago
  36. bf6a281 security: rename SignatureSha256 to DigestSha256 by Yingdi Yu · 10 years ago
  37. ebfa4cb security: Add SignatureSha256WithEcdsa by Yingdi Yu · 10 years ago
  38. 2620b1c security: Add key type in PublicKey (in order to support multiple signature type) by Yingdi Yu · 10 years ago
  39. 0eb5d72 security+tools: Allow user to explicitly specify the cert name prefix before 'KEY' component in ndnsec-certgen by Yingdi Yu · 10 years ago
  40. 3b70310 data: Implementing Data::getFullName() method to get Data packet name with implicit digest by Alexander Afanasyev · 10 years ago
  41. b465065 security: Add 'type dir' trust-anchor in ValidatorConfig by Yingdi Yu · 10 years ago
  42. e881e93 interest: Correcting encoding/decoding of Nonce field by Alexander Afanasyev · 10 years ago
  43. 24b75c8 src: Minor corrections and improvements by Alexander Afanasyev · 10 years ago
  44. 8b1674a build: Reviving support for precompiled headers by Alexander Afanasyev · 10 years ago
  45. c169a81 src: Switching to LGPL 3.0 license by Alexander Afanasyev · 10 years ago
  46. caac54e management: make FaceId optional in fib/add|remove-nexthop commands by Junxiao Shi · 10 years ago
  47. 4671bf7 management: Implementing ChannelStatus and StrategyChoice dataset abstractions by Alexander Afanasyev · 10 years ago
  48. 9c57818 src: Making use of DEPRECATED macro and updating library code not to use deprecated methods by Alexander Afanasyev · 10 years ago
  49. 258ec2b src: Refactoring common.hpp and minimizing exposed includes by Alexander Afanasyev · 10 years ago
  50. ee8bb1e face+management: Removing ndnd::Controller and re-designing controllers by Alexander Afanasyev · 10 years ago
  51. 9016496 face: Implementing InterestFilter abstraction to be used with setInterestFilter by Alexander Afanasyev · 11 years ago
  52. b6b21b3 util: Correcting code style in regular expression implementation by Alexander Afanasyev · 10 years ago
  53. f82d13a security: Fixing memory leaks and properly handling non-existing keys by Alexander Afanasyev · 10 years ago ndn-cxx-0.1.0-rc1
  54. b67090a build+tests: Fixing c++11 mode compilation and correcting integrated test with faces by Alexander Afanasyev · 10 years ago
  55. 0fc447c security: Adding wildcard support in CommandInterestValidator by Yingdi Yu · 10 years ago
  56. a06fdda src: Centralize version number by Alexander Afanasyev · 10 years ago
  57. 58f3371 security: Clean up ValidatorConfig when it is re-loaded. by Yingdi Yu · 10 years ago
  58. f56c68f security: Construct KeyChain from configuration file. by Yingdi Yu · 10 years ago
  59. dfa52c4 docs: Updating documentation and license boilerplates in all files by Alexander Afanasyev · 10 years ago
  60. 766cea7 ====== Renaming library to ndn-cxx ====== by Alexander Afanasyev · 10 years ago
  61. 5e96e00 security: Bug fixing by Yingdi Yu · 10 years ago
  62. 0bb9aae tests: Fixing compilation on 32-bit platform with gcc 4.2.1 by Alexander Afanasyev · 10 years ago
  63. 5c785d6 management: nfd::Controller allows specifying timeout by Junxiao Shi · 10 years ago
  64. 96e6406 security: IMPORTANT CHANGE!! Change Validator constructor to accept Face& instead of shared_ptr<Face> by Yingdi Yu · 10 years ago
  65. 5f6c74f management: NFD RIB Management by Junxiao Shi · 10 years ago
  66. 53af7a1 util: Implementing conversion to/from system_clock::TimePoint with customized format by Alexander Afanasyev · 10 years ago
  67. b78bc4d build: add -std=c++03 (in non C++11 mode) and -pedantic to the default CXXFLAGS by Alexander Afanasyev · 10 years ago
  68. d1b5c41 management: Removing deprecated NFD management elements by Alexander Afanasyev · 10 years ago
  69. fcb4f6d build: Suppressing openssl deprecation flags on OSX by Alexander Afanasyev · 10 years ago
  70. 59d67a5 build: Correction of OSX Security Framework detection by Alexander Afanasyev · 10 years ago
  71. ff2d08f data+interest+selectors+meta-info+signature: Implementing EqualityComparable concept by Alexander Afanasyev · 10 years ago
  72. b1db7c6 build: Warnings correction for gcc 4.2 by Alexander Afanasyev · 10 years ago
  73. 8527800 build: Fixing a couple of warnings from clang 5.1 (clang-503.0.38) by Alexander Afanasyev · 10 years ago
  74. af8eeea interest: Interest::matchesData function by Junxiao Shi · 10 years ago
  75. b332e78 interest: add PublisherPublicKeyLocator selector by Junxiao Shi · 10 years ago
  76. 482ccc5 build: suppress CryptoPP warnings by Junxiao Shi · 10 years ago
  77. 6888bc1 management: nfd::FaceLocalControlCommand validates LocalControlFeature value by Junxiao Shi · 10 years ago
  78. 7b1ba1a management: add LocalUri field to nfd::FaceStatus and nfd::FaceEventNotification by Junxiao Shi · 10 years ago
  79. 5e1288e docs: Updated installation instructions, AUTHORs, and other small updates by Alexander Afanasyev · 10 years ago
  80. 5109dee management: nfd::ForwarderStatus by Junxiao Shi · 10 years ago
  81. 7b6b79d management: convert nfd::Controller to use ControlCommand by Junxiao Shi · 10 years ago
  82. 5ec8022 management: nfd::ControlCommand by Junxiao Shi · 10 years ago
  83. 21ef239 encoding: fix strict-aliasing warning and extending TLV test cases by Alexander Afanasyev · 10 years ago
  84. bc19b37 management: nfd::ControlParameters by Junxiao Shi · 10 years ago
  85. c07b3a2 util, transport: add configuration file support and make default unix socket configurable by Steve DiBenedetto · 10 years ago
  86. 1c5a1a9 management: nfd::FibEntry encoding corrections by Alexander Afanasyev · 10 years ago
  87. 937aa78 decoding+transport: Exception-safe Block parsing by Alexander Afanasyev · 10 years ago
  88. 2c75331 management: Adding FaceFlags into nfd::FaceEventNotification by Alexander Afanasyev · 10 years ago
  89. 04fa37a management: Adding nfd::FaceStatus data structure by Alexander Afanasyev · 10 years ago
  90. 44b438a management: Adding nfd::FaceEventNotification data structure by Alexander Afanasyev · 10 years ago
  91. aa0e7da all: Refactoring work with time using boost::chrono by Alexander Afanasyev · 10 years ago
  92. 6d792d7 management: add objects for encoding/decoding NFD FIB enumeration protocol units by Steve DiBenedetto · 10 years ago
  93. 28908b7 management: NFD Status by Junxiao Shi · 10 years ago
  94. c145d49 tlv, name: add missing FaceEventKind TLV, deprecate Name::appendVersion/Segment by Steve DiBenedetto · 10 years ago
  95. 6e7f5f1 management: adding all high-level methods in nrd::Controller by Obaid · 10 years ago
  96. 83cdc5b tests: Making schedule test more resilient by Alexander Afanasyev · 11 years ago
  97. c234429 name: Make 'at' method to check if requested components is in bounds by Alexander Afanasyev · 11 years ago
  98. 2115716 security: Add SignatureSha256 by Yingdi Yu · 11 years ago
  99. 64c3fb4 security: Add a wrapper for export/import information. by Yingdi Yu · 11 years ago
  100. c55680b security: Add prepareUnsignedIdentityCertificate method in KeyChain by Yingdi Yu · 11 years ago