New features:

-   Base
    -   The license under which the library is released is changed to Lesser GNU Public
        License version 3.0.
    -   New ways to use incoming Interest dispatching:
        -   New InterestFilter abstraction that supports filtering based on name prefixes
            and regular expressions.
        -   Separated Face::registerPrefix() and Face::setInterestFilter() methods allow
            distinct operations of registering with the local NDN forwarder and setting up
            application-specific OnInterest call dispatch using InterestFilters.
-   Security
    -   Add type dir trust-anchor in ValidatorConfig to add all certificates under the
        specified directory as trust anchors. The new option also allows periodic
        reloading trust anchors, allowing dynamic trust models.
    -   Added support for multiple signature types to PublicKey, SecPublicInfo
        abstractions
    -   New SignatureSha256WithEcdsa signature type
-   Wire encoding
    -   Data::getFullName() method to get Data packet name with implicit digest
    -   New Name::getSuccessor() method to get name successor
-   Management
    -   Support for ChannelStatus, StrategyChoice datasets
-   Build
    -   enabled support of precompiled headers for clang and gcc compilers to speed up
        compilation

Updates and bug fixes:

-   Wire encoding
    -   Nonce field is now encoded as 4-byte uint8_t value, as defined by NDN-TLV spec.
    -   Optimized Data packet signing

        KeyChain::sign method now pre-allocates EncodingBuffer, requests unsigned portion
        of Data using Data::wireEncode(EncodingBuffer, true), and then appends the
        resulting signature and prepends Data packet header. This way there is no extra
        memory allocation after Data packet is signed.

-   Security
    -   Allow user to explicitly specify the cert name prefix before 'KEY' component in
        ndnsec-certgen
    -   SignatureSha256 has been renamed to DigestSha256 to conform with NDN-TLV
        specification.
    -   Add checking of Timestamp and Nonce fields in signed Interest within
        ValidatorConfig
    -   Allow validator customization using hooks:

        Sub-classes of Validator class can use the following hooks to fine-tune the
        validation process:

          -   Validator::preCertificateValidation to process
              received certificate before validation.
          -   Validator::onTimeout to process interest timeout
          -   Validator::afterCheckPolicy to process validation
              requests.

-   Other minor fixes and corrections

Deprecated:

-   SignatureSha256 class, use DigestSha256 instead.
-   All Face constructors that accept shared_ptr<io_service>.

    Use versions that accept reference to io_service object.

-   Face::ioService method, use Face::getIoService instead.
-   Interest constructor that accepts name, individual selectors, and individual guiders
    as constructor parameters.

    Use Interest().setX(...).setY(...) or use the overload taking Selectors

-   name::Component::toEscapedString method, use name::Component::toUri instead.
-   SecPublicInfo::addPublicKey method, use SecPublicInfo::addKey instead.
-   Tlv::ConentType constant (typo), use Tlv::ContentType instead.

Removed:

-   support of ndnd-tlv (only NFD management protocol is supported now)
-   SecPublicInfoMemory and SecTpmMemory classes that were no longer used
-   Removing concept of periodic event from Scheduler.

    In applications, periodic events should be just re-scheduled within the callback for
    single-shot events.
docs: Adding release notes and bumping up version to 0.2.0

Change-Id: I0106c225a54fe09318d4a391c96626a8b06ceb2b
Refs: #1715
3 files changed
tree: d775d14aea4ed54a8544ffe6f7b1b30d3caed627
  1. .waf-tools/
  2. docs/
  3. examples/
  4. src/
  5. tests/
  6. tools/
  7. .gitignore
  8. .travis.yml
  9. AUTHORS.md
  10. client.conf.sample
  11. COPYING.md
  12. libndn-cxx.pc.in
  13. README-dev.md
  14. README.md
  15. waf
  16. wscript
README.md

ndn-cxx: NDN C++ library with eXperimental eXtensions

ndn-cxx is a C++ library, implementing Named Data Networking (NDN) primitives that can be used to implement various NDN applications. The library is currently being used as part of the following projects:

See the file docs/INSTALL.rst for build and install instructions.

Please submit any bugs or issues to the ndn-cxx issue tracker: http://redmine.named-data.net/projects/ndn-cxx/issues

More documentation

Extensive documentation of the library is available on the library's homepage: http://www.named-data.net/doc/ndn-cxx/

License

ndn-cxx is an open source project licensed under LGPL 3.0 license. For more information about the license, refer to COPYING.