Alexander Afanasyev | a6fc727 | 2014-06-13 11:58:06 -0700 | [diff] [blame] | 1 | Changes |
| 2 | ======= |
| 3 | |
| 4 | Since version 0.1 |
| 5 | ----------------- |
| 6 | |
| 7 | - **Signature** |
| 8 | |
| 9 | + New ``SignatureSha256WithEcdsa`` signature type for Elliptic Curve Digital Signature Algorithm (ECDSA) |
Alexander Afanasyev | f3e5e85 | 2014-06-13 22:44:02 -0700 | [diff] [blame^] | 10 | + ``KeyLocatorDigest`` renamed to ``KeyDigest``. The specification now explicitly allows KeyDigest to be a SHA256 of any type of the key. |
Alexander Afanasyev | a6fc727 | 2014-06-13 11:58:06 -0700 | [diff] [blame] | 11 | |
| 12 | Since CCNx 0.7.2 |
| 13 | ---------------- |
| 14 | |
| 15 | - **General** |
| 16 | |
| 17 | + XML-based ccnb packet encoding is replaced by TLV encoding |
| 18 | |
| 19 | - **Name** |
| 20 | |
| 21 | + The name encoding is changed from binary XML to TLV format |
| 22 | + The discussions on naming conventions and the use of special markers inside NameComponents are removed from packet specification, and will be covered by a separate technical document |
| 23 | + Deprecated zero-length name component |
| 24 | |
| 25 | - **Interest Packet** |
| 26 | |
| 27 | + ``Nonce`` is changed from optional to required |
| 28 | + ``PublisherPublicKeyDigest`` is replaced by ``PublisherPublicKeyLocator`` |
| 29 | + ``AnswerOriginKind`` is simplified from 4bits to a 1-bit ``MustBeFresh`` |
| 30 | + ``FaceID`` has been removed |
| 31 | + ``InterestLifetime`` changes the unit to the number of milliseconds |
| 32 | + Removed Bloom Filter from Exclude |
| 33 | + Changed default semantics of staleness |
| 34 | |
| 35 | Specifically, NDN-TLV Interest without any selectors will bring any data that matches the name, and only when ``MustBeFresh`` selector is enabled it will try to honor freshness, specified in Data packets. |
| 36 | With Binary XML encoded Interests, the default behavior was to bring "fresh" data and return "stale" data only when ``AnswerOriginKind`` was set to 3. |
| 37 | |
| 38 | Application developers must be aware of this change, reexamine the Interest expression code, and enable ``MustBeFresh`` selector when necessary. |
| 39 | |
| 40 | - **Data Packet** |
| 41 | |
| 42 | + The structure of Data packet is changed: |
| 43 | |
| 44 | * ``Name``, ``MetaInfo``, ``Content``, ``Signature{SignatureInfo, SignatureValue}`` |
| 45 | |
| 46 | + ``SignedInfo`` is renamed to ``MetaInfo`` and its content is changed |
| 47 | + ``PublisherPublicKeyDigest`` and ``ExtOpt`` are removed. |
| 48 | + ``Timestamp`` is removed |
| 49 | + ``KeyLocator`` is moved to be inside the ``Signature`` (``SignatureInfo``) block |
| 50 | + Three content types, ENCR, GONE, and NACK are removed |
| 51 | + ``FreshnessSeconds`` is renamed to ``FreshnessPeriod`` and is expressed in units of milliseconds |
| 52 | |
| 53 | - **Signature** |
| 54 | |
| 55 | + ``Signature`` is moved to the end of Data packet. |
| 56 | + ``KeyLocator`` is moved to be a part of the ``SignatureInfo`` block, if it is applicable for the specific signature type. |
| 57 | |
| 58 | The rationale for the move is to make Signature (sequence of ``SignatureInfo`` and ``SignatureValue`` TLVs) self-contained and self-sufficient. |
| 59 | |
| 60 | + Signature type (or signing method information) is expressed as an assigned integer value (with no assumed default), rather than OID. |
| 61 | + Added support for hash-only "signature" |
| 62 | + The current specification does not define Merkle Hash Tree Aggregated Signatures, but it is expected that such (or similar) signatures will be defined in future version of this specification |