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. d5c48e0 encoding: Improving structure and documentation of block helpers by Alexander Afanasyev · 9 years ago
  2. 9d158f0 face: Refactor internal PIT to use scheduled events by Alexander Afanasyev · 9 years ago
  3. c6acc7a management: simplify CommandOptions with SigningInfo by Junxiao Shi · 9 years ago
  4. d82b07c security: Helpers to create SigningInfo by Eric Newberry · 9 years ago
  5. 11314b7 security: implement PibSqlite3 based on PibImpl by Mickey Sweatt · 9 years ago
  6. 7f17790 util: Sqlite3Statement helper by Mickey Sweatt · 9 years ago
  7. 1b0311c security: New generalized signing API in KeyChain by Yingdi Yu · 9 years ago
  8. 3bf91f5 security: adjust description of PibImpl interfaces by Yingdi Yu · 9 years ago
  9. 6f7cfd0 name: Allow negative start index in getSubName method by Joao Pereira · 9 years ago
  10. 8ca4325 security: IdentityCertificate sets default FreshnessPeriod to 1 hour by Junxiao Shi · 9 years ago
  11. 117f5ef encoding: Remove SCOPE from Interests and all references to it in the related code by Alexander Afanasyev · 9 years ago
  12. b8f8b34 security: define new abstraction for identity, key, and certificate by Yingdi Yu · 9 years ago
  13. adadb71 security: Add in-memory pib by Yingdi Yu · 9 years ago
  14. c8188b3 interest: Add Link and SelectedDelegation fields by Spyridon Mastorakis · 9 years ago
  15. 3b54e85 link: add Link abstraction by Spyridon Mastorakis · 9 years ago
  16. f0da789 encoding: Block::fromStream TLV-LENGTH bugfix by Junxiao Shi · 9 years ago
  17. c076e6d exclude: Allow excluding empty name component by Alexander Afanasyev · 9 years ago
  18. d7eacc7 name: Make sure empty name component (...) is not skipped during URI decoding by Alexander Afanasyev · 9 years ago
  19. 17ef37d util: Avoid output duplication in IndentedStream by Alexander Afanasyev · 9 years ago
  20. 50df562 tests: increase canonize timeout in FaceUri tests to avoid spurious failures by Davide Pesavento · 9 years ago
  21. 741771f exclude: allow decoding Exclude containing ImplicitSha256DigestComponent by Ilya Moiseenko · 9 years ago
  22. bbb2435 util: disallow destruction of Signal from handler by Junxiao Shi · 9 years ago
  23. 4427345 util: fix use-after-free in UtilSignal/DisconnectSelfInHandler test case by Junxiao Shi · 9 years ago
  24. c89efb4 name: Deprecation of Name::set methods, move constructors to .cpp, and documentation update by Alexander Afanasyev · 9 years ago
  25. 02a4bf3 encoding: change Block::fromBuffer return type by Junxiao Shi · 9 years ago
  26. 429634f tests: Change to updated naming conventions by Spyridon Mastorakis · 9 years ago
  27. c759a20 management: add CachingPolicy to LocalControlHeader by Jiewen Tan · 9 years ago
  28. 6bf0adf name: fix global buffer overflow in ImplicitSha256Digest test case by Junxiao Shi · 9 years ago
  29. ea71967 util: Extend DummyClientFace to process LocalControlHeader by Alexander Afanasyev · 9 years ago
  30. 7463389 encoding: Refactoring EncodingBuffer by Alexander Afanasyev · 9 years ago
  31. f46482c util: add isConnected() in signal::Connection and signal::ScopedConnection by Chengyu Fan · 9 years ago
  32. 5946ed1 docs: Prepare release notes for version 0.3.0 by Alexander Afanasyev · 10 years ago ndn-cxx-0.3.0
  33. 2586be4 name-component: add test case for ZeroLengthComponent by Junxiao Shi · 9 years ago
  34. 8cf2f2c tests: InMemoryStorage test cases for ImplicitSha256DigestComponent by Alexander Afanasyev · 9 years ago
  35. e6c65e2 util: NetworkMonitor helper to detect network state changes by Alexander Afanasyev · 9 years ago
  36. 9a9952f util: scheduler::ScopedEventId to automatically cancel scheduled events upon destruction by Alexander Afanasyev · 9 years ago
  37. a6452ac name: partial Name comparison by Junxiao Shi · 10 years ago
  38. 1286e02 util: Use default resolver behavior in util::dns::Resolver by Alexander Afanasyev · 9 years ago
  39. af99f46 src: Update copyright notices for files modified in 2015 by Alexander Afanasyev · 10 years ago
  40. 728873f util: replace EventEmitter with Signal in NotificationSubscriber by Junxiao Shi · 10 years ago
  41. 34a3763 security: Canonize PIB and TPM scheme names by Alexander Afanasyev · 10 years ago
  42. 0711380 security: Refactoring creation of SecPublicInfo and SecTpm during KeyChain creation by Alexander Afanasyev · 10 years ago
  43. 4154634 security: Pair-up Tpm and Pib in KeyChain by Yingdi Yu · 10 years ago
  44. 0151579 build: Several updates of the build scripts by Alexander Afanasyev · 10 years ago
  45. ecc57b5 util: Signal::connectSingleShot by Junxiao Shi · 10 years ago
  46. a3887ae base: Interest and Data packets can now be tagged with arbitrary information by Alexander Afanasyev · 10 years ago
  47. a1ea506 face: connect to Transport during construction by Junxiao Shi · 10 years ago
  48. 018e30d util: allow emitSignal with non-zero arguments by Junxiao Shi · 10 years ago
  49. 2cec707 util: fix segfault in UtilSignal/DisconnectSelfInHandler test case by Junxiao Shi · 10 years ago
  50. a8659ff face: Make default transport configurable by Steve DiBenedetto · 10 years ago
  51. 8d71fdb util: Signal by Junxiao Shi · 10 years ago
  52. a4c5048 util: ensure concepts.hpp can compile on its own by Junxiao Shi · 10 years ago
  53. 23f9e78 management: change ForwarderStatus.NfdVersion to string by Hila Ben Abraham · 10 years ago
  54. 2af905b selectors/interest: delete deprecated constructors by Junxiao Shi · 10 years ago
  55. bbb31f9 util: Exposing IndentedStream class as part of public API by Alexander Afanasyev · 10 years ago
  56. 6ab6781 security: Allow KeyChain to sign interest using SHA256 digest by Yingdi Yu · 10 years ago
  57. 3e8b52e tools: Allow verbose option in ndnsec-list/ndnsec-ls-identity command line tools by Yingdi Yu · 10 years ago
  58. 2c3cbe4 name: fix Component wireDecode logic error by Qiuhan Ding · 10 years ago
  59. 80979ba security: Handle certificate decoding error in validation process by Yingdi Yu · 10 years ago
  60. dfb8a61 util: specialize std::hash<> for ethernet::Address by Davide Pesavento · 10 years ago
  61. d3a55b2 tests: Converting test cases to use UnitTestClock by Alexander Afanasyev · 10 years ago
  62. 3b4c314 security: Display SignatureInfo when printing a certificate by Yingdi Yu · 10 years ago
  63. 8b88160 ci: Add ability to generate unit test reports in XML format (for xUnit processing) by Alexander Afanasyev · 10 years ago
  64. 8e15854 face: Reset io_service after io_service::poll() by Alexander Afanasyev · 10 years ago
  65. a464b92 meta-info: deprecate MetaInfo::TYPE_* constants by Junxiao Shi · 10 years ago
  66. 415b17c management: mark Controller methods deprecated by Junxiao Shi · 10 years ago
  67. a60d936 util: make DummyClientFace public API by Junxiao Shi · 10 years ago
  68. eabffdf tests: Fix issue with UnitTestClock-based event scheduling (extra sleep required) by Alexander Afanasyev · 10 years ago
  69. 72e4a5d tests: Rewrite SecurityTestCertificateCache test to use UnitTestClock by Alexander Afanasyev · 10 years ago
  70. 85b17b8 time: Add ability to specialize system and steady clocks by Alexander Afanasyev · 10 years ago
  71. 95fdebe common.hpp: avoid conflict between std::placeholders and Boost placeholders by Junxiao Shi · 10 years ago
  72. 56860f5 interest: Updating Interest::matchesData to use ImplicitSha256DigestComponent by Alexander Afanasyev · 10 years ago
  73. afee0a5 data: Enable use of ImplicitSha256Digest component in Data::getFullName by Alexander Afanasyev · 10 years ago
  74. 6486d52 name: Add support for ImplicitSha256DigestComponent by Alexander Afanasyev · 10 years ago
  75. 90e2358 name: Add std::hash<Name> to support unordered_map container by Yingdi Yu · 10 years ago
  76. 51dc2ef util: use C++11 features in ethernet::Address class. by Davide Pesavento · 10 years ago
  77. f4f541f build: disable assertions in release builds by Junxiao Shi · 10 years ago
  78. c2b8d24 base: ensure Element::Error inherits from tlv::Error by Junxiao Shi · 10 years ago
  79. e36322a security: get KeyDigest from PublicKey. by Yingdi Yu · 10 years ago
  80. 6f9ec93 build: Fix compilation with tests and precompiled headers enabled by Alexander Afanasyev · 10 years ago
  81. dfe9c6b Always build in C++11 mode. by Davide Pesavento · 10 years ago
  82. 5de006b management: Controller accepts CommandOptions by Junxiao Shi · 10 years ago ndn-cxx-0.3.0-dev-pre-c++11
  83. 4c53b0f encoding: add missing include in nfd-constants.hpp by Junxiao Shi · 10 years ago
  84. 0eba1aa management: CommandOptions by Junxiao Shi · 10 years ago
  85. 0f232c5 name: Introducing new name::Component::is* methods by Alexander Afanasyev · 10 years ago
  86. 5fc795f tests: Add partial unit test coverage for Face class by Alexander Afanasyev · 10 years ago
  87. 937e461 name: correct Marker in Name::appendVersion() by Junxiao Shi · 10 years ago
  88. fc8aebb management: add FaceQueryFilter type by Chengyu Fan · 10 years ago
  89. 3ed09d0 tests: Manage identity/certificate creation in test cases through IdentityManagementFixture. by Yingdi Yu · 10 years ago
  90. d9715e3 tests: Add test suite shared identity management fixture by Yingdi Yu · 10 years ago
  91. 6a90f37 management: delete deprecated Command Interest by Junxiao Shi · 10 years ago
  92. 3ccc6f7 tests: Small corrections in cases by Alexander Afanasyev · 10 years ago
  93. 4083c8d util: FaceUri canonization for udp,tcp,ether by Junxiao Shi · 10 years ago
  94. 9913596 util: in-memory storage by Jiewen Tan · 10 years ago
  95. ca7ea70 meta-info: Add support for application-defined meta information blocks by Shock Jiang · 10 years ago
  96. e3ef6ee util: Restore original copyright notice for the imported Ethernet and FaceUri files by Junxiao Shi · 10 years ago
  97. 77dcadd util: import Ethernet and FaceUri by Junxiao Shi · 10 years ago
  98. 7a6bb35 util: Add DNS resolver utility class by Vince Lehman · 10 years ago
  99. 36dca99 management: replace FaceFlags with individual fields by Chengyu Fan · 10 years ago
  100. ba09605 exclude: Provide EqualityComparable concept by Alexander Afanasyev · 10 years ago