blob: f402bbe95006704771f6b84c150e09d9a05d83eb [file] [log] [blame]
Alexander Afanasyeva6fc7272014-06-13 11:58:06 -07001Changes
2=======
3
4Since version 0.1
5-----------------
6
7- **Signature**
8
9 + New ``SignatureSha256WithEcdsa`` signature type for Elliptic Curve Digital Signature Algorithm (ECDSA)
10
11Since CCNx 0.7.2
12----------------
13
14- **General**
15
16 + XML-based ccnb packet encoding is replaced by TLV encoding
17
18- **Name**
19
20 + The name encoding is changed from binary XML to TLV format
21 + 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
22 + Deprecated zero-length name component
23
24- **Interest Packet**
25
26 + ``Nonce`` is changed from optional to required
27 + ``PublisherPublicKeyDigest`` is replaced by ``PublisherPublicKeyLocator``
28 + ``AnswerOriginKind`` is simplified from 4bits to a 1-bit ``MustBeFresh``
29 + ``FaceID`` has been removed
30 + ``InterestLifetime`` changes the unit to the number of milliseconds
31 + Removed Bloom Filter from Exclude
32 + Changed default semantics of staleness
33
34 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.
35 With Binary XML encoded Interests, the default behavior was to bring "fresh" data and return "stale" data only when ``AnswerOriginKind`` was set to 3.
36
37 Application developers must be aware of this change, reexamine the Interest expression code, and enable ``MustBeFresh`` selector when necessary.
38
39- **Data Packet**
40
41 + The structure of Data packet is changed:
42
43 * ``Name``, ``MetaInfo``, ``Content``, ``Signature{SignatureInfo, SignatureValue}``
44
45 + ``SignedInfo`` is renamed to ``MetaInfo`` and its content is changed
46 + ``PublisherPublicKeyDigest`` and ``ExtOpt`` are removed.
47 + ``Timestamp`` is removed
48 + ``KeyLocator`` is moved to be inside the ``Signature`` (``SignatureInfo``) block
49 + Three content types, ENCR, GONE, and NACK are removed
50 + ``FreshnessSeconds`` is renamed to ``FreshnessPeriod`` and is expressed in units of milliseconds
51
52- **Signature**
53
54 + ``Signature`` is moved to the end of Data packet.
55 + ``KeyLocator`` is moved to be a part of the ``SignatureInfo`` block, if it is applicable for the specific signature type.
56
57 The rationale for the move is to make Signature (sequence of ``SignatureInfo`` and ``SignatureValue`` TLVs) self-contained and self-sufficient.
58
59 + Signature type (or signing method information) is expressed as an assigned integer value (with no assumed default), rather than OID.
60 + Added support for hash-only "signature"
61 + 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