Permalink
Fetching contributors…
Cannot retrieve contributors at this time
560 lines (496 sloc) 30.7 KB
Interim changes since NDN-JS v0.17.0 (2018-10-22)
-------------------------------------------------
Changes
* https://redmine.named-data.net/issues/4111 In the browser, put the classes in
the ndn namespace, and by default also add the classes to the global
namespace (for backward compatibility). If a class in the global namespace
conflicts with a different API (for example, the Blob class) then your
application can call ndn.noConflict() and explicitly use the ndn namespace
(for example, ndn.Blob). In your browser, try running
examples/browser/noconflict.html .
* https://github.com/named-data/ndn-js/pull/68 security (Node.js): Don't use
deprecated 'constant' module.
Bug fixes
* https://github.com/named-data/ndn-js/pull/67 Fix checking against NaN.
NDN-JS v0.17.0 (2018-09-17)
---------------------------
Changes
* https://redmine.named-data.net/issues/4591 Accept Interests encoded with
packet format v0.3.
* https://redmine.named-data.net/issues/4397 In Name, API for typed name components.
* examples: Added firefly-chat which uses FireflyFace.
* https://redmine.named-data.net/issues/4701 Added ComponentType.PARAMETERS_SHA256_DIGEST,
and support params-sha256=<hex-value> in the name URI.
* https://github.com/named-data/ndn-js/pull/63 Removed obsolete wsproxy. If you
want to use the code, see previous release versions.
Bug fixes
* In ChronoSync2013 timeout, get the digest component based on the broadcast
prefix size instead of a hard-coded value.
* https://github.com/named-data/jndn/pull/22 In decodeLpPacket, fix the check for
ignoring an unrecognized field type.
* https://redmine.named-data.net/issues/4736 In MemoryContentCache, use a default
InterestLifetime and removed support for infinite lifetime.
* In examples/browser/test-encode-decode-data and -interest, need to use Log.LOG
instead of LOG.
NDN-JS v0.16.0 (2018-04-17)
---------------------------
Bug fixes
* https://redmine.named-data.net/issues/4428 MustBeFresh should be false if the
decoded Interest has no selectors.
Changes
* https://redmine.named-data.net/issues/3812 In encrypt GroupManager, save private
keys in memory to avoid regenerate group key pairs.
* https://redmine.named-data.net/issues/4064 Rename KeyType.ECDSA and EcdsaKeyParams
to KeyType.EC and EcKeyParams. Deprecated KeyType.ECDSA and EcdsaKeyParams.
* https://redmine.named-data.net/issues/4449 In Data, added getCongestionMark().
* Added security CommandInterestSigner.
* Added security ValidationPolicyCommandInterest.
* In MemoryContentCache, added setMinimumCacheLifetime which can extend the
cache lifetime of content to match an Interest where MustBeFresh is false.
Deprecated
* In the Interest constructor, deprecated params for selectors such as
minSuffixComponents. Use setMinSuffixComponents(), etc.
* Deprecated KeyType.ECDSA. Use KeyType.EC.
* Deprecated EcdsaKeyParams. Use EcKeyParams.
NDN-JS v0.15.0 (2018-02-20)
---------------------------
Changes
* https://redmine.named-data.net/issues/4046
Added the security v2 Validator and policies such as ValidationPolicyConfig.
Updated examples to use the security v2 Validator.
Added security v2 Validator integration tests.
NDN-JS v0.14.0 (2018-02-05)
---------------------------
Bug fixes
* https://redmine.named-data.net/issues/4023 Ported the latest NDN regex code
from ndn-cxx which fixes errors for complex expressions.
* https://redmine.named-data.net/issues/4466 In KeyChain.importSafeBag, handle
exceptions from Tpm.importPrivateKey.
Changes
* https://redmine.named-data.net/issues/4045 Major update to add security v2.
Added CertificateV2, SafeBag and classes related to Pib and Tpm.
In KeyChain, added security v2 constructors and methods.
The default KeyChain constructor checks for and uses security v2 storage.
Updated ConfigPolicyManager to support CertficiateV2.
Updated SelfVerifyPolicyManager to support security v2 PibImpl,
Updated examples to use the security v2 KeyChain.
Added security v2 unit and integration tests.
(The security v2 Validator will be available soon.)
* https://redmine.named-data.net/issues/4251 Added Interest get/setForwardingHint.
Deprecated
* In Interest, deprecated link object and selected delegation methods.
Use get/setForwardingHint.
NDN-JS v0.13.0 (2017-03-16)
---------------------------
Changes
* https://redmine.named-data.net/issues/3798 In KeyChain.verifyData and verifyInterest,
use onValidationFailed callbacks which include a reason string.
* https://redmine.named-data.net/issues/3543 Support for Link objects in the
encrypt package Producer and Consumer.
* https://redmine.named-data.net/issues/3922 In ChronoSync2013, support optional
application info in the SyncState messages.
* ChronoSync2013: Added method getProducerPrefixes().
* Examples: Added fetch-media.html .
NDN-JS v0.12.0 (2016-11-02)
---------------------------
Changes
* http://redmine.named-data.net/issues/3337 In MetaInfo, added get/setOtherTypeCode
to allow unrecognized content type codes in the packet.
* In FilePrivateKeyStorage.generateKeyPair, update mapping.txt for the generated key.
* Added NdnCommon.checkIndexedDb to check for Indexed DB support.
* Added support for the Name component type ImplicitSha256Digest, and methods:
Name.Component.fromImplicitSha256Digest, isGeneric and isImplicitSha256Digest.
Name.appendImplicitSha256Digest.
* https://redmine.named-data.net/issues/3447 In Data, added getFullName, and
in Interest added matchesData to use it.
* In SegmentFetcher.fetch, allow a validatorKeyChain for asynchronous Data validation.
* In ProtobufTlv, added utility method toName and support for Protobuf double.
* https://redmine.named-data.net/issues/3675 In Name.get, don't copy the
returned component (for efficiency).
* In tools/micro-forwarder, generalize to use WebSocketTransport or RuntimePortTransport.
* In tools/micro-forwarder, use Native Messaging to connect to the ndn_multicast app.
* In Face.makeCommandInterest, added an optional onComplete callback.
* Examples: In test-encode-decode-fib-entry, etc, use ProtobufTlv.toName.
* Examples: Added browser/test-list-faces.html.
* Unit tests: In test-name-methods, added test ImplicitSha256Digest.
* Unit tests: In test-interest-methods, added test MatchesData.
* Unit tests: In test-data-methods, added test FullName.
Bug fixes
* http://redmine.named-data.net/issues/3616 Respect tpm= setting in client.conf.
NDN-JS v0.11 (2016-05-05)
-------------------------
Breaking changes
* In encrypt/Consumer, moved ErrorCode to encrypt/EncryptError, affecting the
onError callback to Consumer.consume.
Changes
* In MemoryContentCache.registerPrefix, added optional onRegisterSuccess. (Thanks to Zhehao Wang.)
* http://redmine.named-data.net/issues/3152 In API callbacks, catch and log exceptions.
* http://redmine.named-data.net/issues/2366 Default KeyChain constructor for Node.js in Linux.
* Added HmacWithSha256Signature. In KeyChain, added experimental static methods
sign/verifyDataWithHmacWithSha256.
* Added classes Link and DelegationSet to support link objects.
* In Interest, added methods to support link objects and SelectedDelegation:
hasLink, getLink, unsetLink, get/setLinkWireEncoding, get/setSelectedDelegationIndex.
* Added support for NDNLPv2:
In Face.expressInterest, added an OnNetworkNack callback.
In Interest and Data, the method getIncomingFaceId provides the incoming face ID (if configured).
* http://redmine.named-data.net/issues/3260 Added GenericSignature.
* http://redmine.named-data.net/issues/3449 Added Name.isPrefixOf and getSuccessor.
In compare, support compare(int, int, Name, int, int).
* http://redmine.named-data.net/issues/3450 Added Name.Component.isSegment,
isSegmentOffset, isVersion, isTimestamp and isSequenceNumber.
* http://redmine.named-data.net/issues/3451 Added static Name.Component.fromSegment,
fromSegmentOffset, fromVersion, fromTimestamp and fromSequenceNumber.
* http://redmine.named-data.net/issues/3452 Added Interest.refreshNonce.
* http://redmine.named-data.net/issues/3355 In Producer.createContentKey and produce,
added an optional onError callback.
* http://redmine.named-data.net/issues/3590 Added MemoryContentCache.setInterestFilter.
* In IdentityManager, added prepareUnsignedIdentityCertificate, getAllIdentities
and getAllCertificateNamesOfKey.
* In KeyChain, removed getAnyCertificate and getAnyIdentityCertificate.
* In transport, added MicroForwarderTransport from the NDN Hackathon.
* Merged tools/micro-forwarder from the NDN Hackathon. Removed outdated tools/forwarder.
* Updated pure JavaScript crypto to KJUR 5.05. https://github.com/kjur/jsrsasign/commit/30711ac6e1b9c600b0bf3904234f2eacf9314868
* Examples: Added test-sign-verify-data-hmac.
* Unit tests: Added test-link.
* Integration tests: In test-face-methods, added test NetworkNack and TestFaceRegisterMethods.
Deprecated
* In KeyChain, deprecated getIdentityCertificate. Use getCertificate.
* http://redmine.named-data.net/issues/3587 In Name.Component, deprecated direct access
to value. Use getValue() which returns Blob.
Bug fixes
* http://redmine.named-data.net/issues/3401 Sign the Firefox add-on.
* http://redmine.named-data.net/issues/3589 Update examples face-status.proto.
* http://redmine.named-data.net/issues/1517 Use the onInterest callback only on registerPrefix success.
* Fix bug in encrypt/Schedule to solve problems when the black repetitive interval list is empty.
* In Producer, the produced data name should not use a rounded timestamp.
NDN-JS v0.10 (2016-01-07)
-------------------------
Changes
* http://redmine.named-data.net/issues/3005 In Face.registerPrefix, added the
optional onRegisterSuccess callback.
* Added the encrypt package for the Group-Based Encryption Protocol, ported from
https://github.com/named-data/ndn-group-encrypt
* In MemoryPrivateKeyStorage.generateKeyPairPromise, support RSA keygen in the browser.
* Added BasicIdentityStorage which uses the Node.js sqlite3 module.
* http://redmine.named-data.net/issues/3378 Support specifying the full URI in WebSocketTransport.
* In contrib/securityLib, Added prng4 and rng.
* In Name, added method toString() which calls toUri().
* In integration-tests, added test-registration-callbacks.
NDN-JS v0.9 (2015-09-24)
------------------------
Changes
* In security, added KeyChain.createIdentityAndCertificate which returns the
certificate name, instead of the deprecated createIdentity which returns the
key name.
* In security ConfigPolicyManager, added load(input, inputName) to read
configuration rules from a string.
* Integration tests: Added test-policy-manager. Thanks to Jiayi Meng!
* Firefox add-on: Increased the number of outstanding interests to help streaming video.
* In security IdentityStorage and PrivateKeyStorage added promise-based methods
like getKeyPromise, which the subclasses like MemoryIdentityStorage now implement.
* In security, added IndexedDbIdentityStorage and IndexedDbPrivateKeyStorage for
persistent in-browser storage of user keys using IndexedDB.
* In KeyChain, added optional onComplete and onError callbacks to all methods
which use (possibly async) IdentityStorage and PrivateKeyStorage.
Changes to remove deprecated NDNx support
* In Face.registerPrefix, removed deprecated support to register with NDNx.
* In Face.expressInterest and registerPrefix, removed deprecated support for NDNx Closure.
* In the Face constructor, removed deprecated support for the NDNx verify flag.
* In Interest, removed deprecated NDNx get/setPublisherPublicKeyDigest,
get/setScope and get/setAnswerOriginKind.
* In Data, removed deprecated NDNx methods sign and verify.
* In Sha256WithRsaSignature, removed deprecated NDNx get/setPublisherPublicKeyDigest,
get/setWitness and get/setDigestAlgorithm.
* In ForwardingFlags, removed deprecated NDNx flags active, advertise, last,
local, tap and captureOK.
* In KeyLocator, removed deprecated NDNx types KEY and CERTIFICATE.
* In MetaInfo, removed deprecated NDNx setFields and get/setTimestamp.
* In MetaInfo get/setType, removed deprecated NDNx types DATA, ENCR and GONE.
* In MetaInfo, removed NDNx locator. You should use get/setKeyLocator in the
Signature object get/setKeyLocator().
* Removed deprecated NDNx classes ForwardingEntry, FaceInstance, KeyManager,
NameEnumeration, ExponentialReExpressClosure, Closure, KeyName, KeyNameType,
PublisherID, PublisherType, NDNTime, SignedInfo (use MetaInfo),
Signature (use Sha256WithRsaSignature), ContentObject (use Data) and NDN (use Face).
* Removed deprecated NDNx BinaryXmlWireFormat and support for binary XML packets.
* In WireFormat, removed ENABLE_NDNX since all NDNx support is now removed.
Deprecated
* Deprecated KeyChain.createIdentity. Use createIdentityAndCertificate which
returns the certificate name instead of the key name.
Bug fixes
* http://redmine.named-data.net/issues/2846 Self-signed cert name needs a version component.
* http://redmine.named-data.net/issues/2847 Lower-case "ksk-" in generated key name.
* http://redmine.named-data.net/issues/3036 test-encode-decode-data.html fails.
NDN-JS v0.8.1 (2015-05-14)
--------------------------
Changes
* http://redmine.named-data.net/issues/2624 By default, throw an exception when
using the deprecated NDNx and binary XML wire format, or when using NDNx-style
key management with globalKeyManager and the Key class. To enable support while
you upgrade your code to use NFD, in your main application set
WireFormat.ENABLE_NDNX = true
* http://redmine.named-data.net/issues/2388 Moved example programs from "tests" to "examples".
* Browser support for crypto.subtle native speedups, automatically used for verify and
KeyChain.sign (if using the onComplete callback). Tested in Chrome and Firefox.
Thanks to Ryan Bennett!
* http://redmine.named-data.net/issues/1921 In Face, added getMaxNdnPacketSize().
expressInterest throws an exception if the encoded interest size exceeds it.
* http://redmine.named-data.net/issues/2566 In Face, added setInterestFilter. In
registerPrefix, make the onInterest callback optional.
* Face: In registerPrefix, changed the onInterest callback to pass interestFilterId
instead of registeredPrefixId.
* http://redmine.named-data.net/issues/2579 In registerPrefix and setInterestFilter,
support the onInterest callback form
onInterest(prefix, interest, face, interestFilterId, filter).
The new callback form is passed the Face instead of Transport so that you can
supply the Data with face.putData(). It also takes the InterestFilter supplied
to setInterestFilter.
* MemoryContentCache: In registerPrefix, changed the onDataNotFound callback to call
onDataNotFound(prefix, interest, face, interestFilterId, filter).
If your application uses onDataNotFound, you must update your callback function.
* Implemented FilePrivateKeyStorage for Node.js. Thanks to Andrew Brown!
* In ControlParameters, added support for Uri and Strategy. Allow the Name to be optional. Thanks to Andrew Brown!
* http://redmine.named-data.net/issues/2532#change-8836 In Face.registerPrefix,
if connected to a remote NFD then use localhop to do remote registration. (For
remote registration, the remote NFD must be configured for localhop_security.)
Added the optional method Face.isLocal() for the application to check if the
connection is local.
* In the default WireFormat, implemented decodeControlParameters. Thanks again to Andrew Brown!
* In Interest setter methods, return this so that you can chain calls to update values.
* Added class util/SegmentFetcher, ported from ndn-cxx. Use it in examples/node/test-list-rib, etc.
* examples: Added test-list-channels, test-list-faces, test-list-rib and
test-register-route to query NFD.
* In MemoryContentCache, added support for storePendingInterest. add(data) will
check if the added Data packet satisfies any pending interest. You can use
getStorePendingInterest() for onDataNotFound in registerPrefix().
* examples: In ndnping/ndn-ping.js, changed to use onData instead of a deprecated Closure.
* examples: In node/repo-ng added basic-insertion.js and watched-insertion.js and
in browser/repo-ng added basic-insertion.html and watched-insertion.html to
show interaction with the repo-ng repository.
* examples: In browser, removed the old-style test-publish-async.html and added
test-publish-async-nfd.html and test-echo-consumer.html, similar to Node.js.
* examples: Removed browser/test-encode-decode-interest-with-forwarding-entry and
node/test-publish-async-ndnx because NDNx support is deprecated.
* Moved tests which need NFD from tests/unit_tests to tests/integration_tests.
* Unit tests: Added test-der-encode-decode tests for CertificateExtension.
* Unit tests: In test-interest-methods, added ExcludeMatches.
* Integration tests: Added test-file-private-key-storage. Thanks to Andrew Brown!
Deprecated
* Deprecated support for NDNx and binary XML. See WireFormat.ENABLE_NDNX above.
* In Data, deprecated sign/verify. Use KeyChain sign/verifyData. See WireFormat.ENABLE_NDNX above.
* In MetaInfo, deprecated setFields. Use KeyChain sign/verifyData. See WireFormat.ENABLE_NDNX above.
* Deprecated Key, globalKeyManager and security/KeyManager. Use KeyChain sign/verifyData.
See WireFormat.ENABLE_NDNX above.
* In Face, deprecated NDNx-style verification in Closure.upcall. Use KeyChain.verifyData.
See WireFormat.ENABLE_NDNX above.
* In Face, deprecated registerPrefix where the onInterest callback has the form
onInterest(prefix, interest, transport, interestFilterId). Use the
registerPrefix where onInterest has the form
onInterest(prefix, interest, face, interestFilterId, filter) so you can call
face.putData().
Bug fixes
* http://redmine.named-data.net/issues/2001 Change the Face pending interest table,
etc. from static to member variables of each face.
* In ProtobufTlv.encode (in Node.js), instead of toBinary() to convert a binary
value, use toBuffer() to produce a Node.js Buffer.
* http://redmine.named-data.net/issues/2758 ControlParameters with empty name not properly encoded.
NDN-JS v0.7.0 (2014-12-22)
--------------------------
Changes
* Added DigestSha256Signature. Support encoding/decoding it in interests and data packets.
* In KeyChain, added signWithSha256.
* Unit tests: In test-data-methods, added VerifyDigestSha256.
* Unit tests: In test-interest-methods, added VerifyDigestSha256.
NDN-JS v0.6.0 (2014-10-15)
--------------------------
Changes
* In MetaInfo, added get/setFinalBlockId (replaces the deprecated get/setFinalBlockID).
* In KeyChain, added verifyInterest.
* In MemoryContentCache, added unregisterAll.
* In Name, added wireEncode and wireDecode.
* Added class sync/ChronoSync2013. Thanks to Zhehao Wang!
* In tests/node, added test-chrono-chat. Thanks to Zhehao Wang!
* In tests/node, added test-encode-decode-interest including sign/verify.
* Unit tests: Added test-name-conventions.
* Use version v0.6.0 instead of v0.6 to be consistent with npmjs.org
* Added package.json for publishing on npmjs.org. Thanks to Ryan Bennett!
* Fixed copyright headers to all say "Lesser" GPL. Thanks to Felix Rabe!
Deprecated
* In MetaInfo, deprecated get/setFinalBlockID. Use get/setFinalBlockId.
Bug fixes
* http://redmine.named-data.net/issues/1986 TLV encode/decode of large nonNegativeInteger.
NDN-JS v0.5 (2014-08-27)
------------------------
Changes
* Renamed Signature class to Sha256WithRsaSignature. The deprecated Signature
class is still available.
* As described below, the return type is changed for the following methods. If
these changes cause unexpected behavior in your application, you can revert
to NDN-JS version v0.4 while updating your application.
- Changed Name.Component.getValue() to return a Blob, not Buffer. If you need the
former behavior, call the deprecated method getValueAsBuffer().
- Changed Name.fromEscapedString(escapedString) to return a Blob, not Buffer. If you need the
former behavior, call the deprecated method fromEscapedStringAsBuffer().
- Changed Interest.getNonce() to return a Blob, not Buffer. If you need the
former behavior, call the deprecated method getNonceAsBuffer().
- Changed Data.getContent() to return a Blob, not Buffer. If you need the
former behavior, call the deprecated method getContentAsBuffer().
- Changed Sha256WithRsaSignature.getSignature() to return a Blob, not Buffer. If you need the
former behavior, call the deprecated method getSignatureAsBuffer().
- Changed KeyLocator.getKeyData() to return a Blob, not Buffer. If you need the
former behavior, call the deprecated method getKeyDataAsBuffer().
- Changed MetaInfo.getFinalBlockID() to return a Name.Component, not Buffer. If you need the
former behavior, call the deprecated method getFinalBlockIDAsBuffer().
* http://redmine.named-data.net/issues/1704 Remove trailing whitespace
* In Name.Component, added toSegment and toVersion.
* In Name.appendSegment and appendVersion, encode the number as nonNegativeInteger which is always 1, 2, 4 or 8 bytes.
This means that appendSegment(0) now encodes as %00%00 instead of just %00.
* In Name, added appendSegmentOffset, appendTimestamp and appendSequenceNumber.
* In Name.Component, added toSegmentOffset, toTimestamp and toSequenceNumber.
* In Face.expressInterest, return the pendingInterestId. Added Face.removePendingInterest.
* In Face.registerPrefix, return the registeredPrefixId. Added Face.removeRegisteredPrefix.
* Added classes for the security API: KeyChain, MemoryIdentityStorage, MemoryPrivateKeyStorage, SelfVerifyPolicyManager.
* In tests, make test-encode-decode-data use KeyChain to sign.
* In tests/node, renamed publish.js to test-publish-async-ndnx.js and use KeyChain to sign.
* In Face, added setCommandSigningInfo and makeCommandInterest.
* In Face, support NFD for registerPrefix if setCommandSigningInfo has been called.
* https://github.com/named-data/ndn-js/pull/41 Changes from Ryan Bennett to use the feross Buffer wrapper to support npm.
* In tests/node, added test-publish-async-nfd.js .
Bug fixes
* http://redmine.named-data.net/issues/1617 Second call to expressInterest gives "connection not established"
* http://redmine.named-data.net/issues/1925 Should encode non-negative integers 253 through 255 as one byte.
Deprecated
* Deprecated the Signature class. Use new Sha256WithRsaSignature.
* Direct use of object fields is deprecated. Use the get/set methods.
For example, interest.name is deprecated. Use interest.getName() and setName(name).
The names and data type of object fields may change in the future.
* Name.Component: Deprecated getValueAsBuffer(). Use getValue().
* Name: Deprecated fromEscapedStringAsBuffer(). Use fromEscapedString().
* Interest: Deprecated getNonceAsBuffer(). Use getNonce().
* Data: Deprecated getContentAsBuffer(). Use getContent().
* Sha256WithRsaSignature: Deprecated getSignatureAsBuffer(). Use getSignature().
* KeyLocator: Deprecated getKeyDataAsBuffer(). Use getKeyData().
* MetaInfo: Deprecated getFinalBlockIDAsBuffer(). Use getFinalBlockID().
* Name: Deprecated cut(nComponents). Use getPrefix(-nComponents).
NDN-JS v0.4 (2014-06-18)
------------------------
Changes
* In Node, by default connect on port 6363 to a random testbed hub.
* In the Firefox add-on, by default connect on port 6363 to a random testbed hub.
* In Name, added method appendVersion.
* In Name.Component, added method compare.
* Added a default Name.Component constructor to create a zero-length value.
* Face constructor: Support settings.connectionInfo.
* Face constructor: Renamed settings.getHostAndPort to getConnectionInfo.
* Renamed internal class Tlv1_0a2WireFormat to Tlv0_1WireFormat.
* COPYING: Changed the license to LGPLv3.
* Changed the default RSA key to 2048 bits.
* Added ProtobufTlv support for node.js and the browser.
* Added MemoryContentCache. See http://named-data.net/doc/ndn-ccl-api/memory-content-cache.html .
* Added UnixTransport for Unix socket support in Node.js .
Bug fixes
* http://redmine.named-data.net/issues/1336 Make Interest.getMustBeFresh() return default true.
* http://redmine.named-data.net/issues/1339 Fix FinalBlockID TLV encoding.
* http://redmine.named-data.net/issues/1549 expressInterest overwrites interestLifetime.
* For TLV packets over UDP, ignore packets starting with 0x80.
* Fix bug for signing old format Binary XML data packets (after adding TLV code).
* Fix bug for generating a random nonce on Ubuntu.
* Fix bug for generating a hash on older versions of Node-js.
* Fix bug in DataUtils.toString: Need to call Buffer.toString('binary').
* Fix bug for encoding/decoding the TLV Interest PublisherPublicKeyLocator.
Deprecated
* Deprecated getting the connection info with face.host and face.port. Use face.connectionInfo.
NDN-JS v0.3 (2014-02-27)
------------------------
This release uses NDN-TLV for the default wire format.
Changes
* You should use get/setKeyLocator in the Signature object instead of locator in the Data signedInfo.
* Added get/setKeyLocator in the Signature object.
* http://redmine.named-data.net/issues/1073 In Face.expressInterest, support onData and onTimeout callbacks.
* http://redmine.named-data.net/issues/1087 In Name.getPrefix, support a negative argument, e.g. getPrefix(-1).
* In Face.registerPrefix, add support for onInterest and onRegisterFailed callbacks and ForwardingFlags.
* http://redmine.named-data.net/issues/1084 Internal: Binary XML decoding speed up to only support DTags.
* http://redmine.named-data.net/issues/1121 In Name.get, allow a negative index.
* In Name, added method getSubName.
* Added utility classes Blob and SignedBlob.
* In WireFormat, added getDefaultWireFormat and setDefaultWireFormat.
* In Data, added wireEncode (which returns a SignedBlob) and wireDecode.
* In Interest, added wireEncode (which returns a Blob) and wireDecode.
* Added class MetaInfo and deprecated SignedInfo.
* Moved classes Exclude, Signature, MetaInfo and KeyLocator into their own source files.
* In Interest, added get/setKeyLocator.
* In Interest, added get/setMustBeFresh.
* In KeyLocatorType, added KEY_LOCATOR_DIGEST.
* In MetaInfo (formerly SignedInfo) setFields, set a KeyLocatorType.KEY_LOCATOR_DIGEST instead of a KEY.
* In EncodingUtils.decodeHexData, etc., added an optional wireFormat argument.
Deprecated
* SignedInfo (MetaInfo): Deprecated the locator. You should use get/setKeyLocator in the Signature object.
* Interest: Deprecated getAnswerOriginKind. Use getMustBeFresh.
* Interest: Deprecated setAnswerOriginKind. Use setMustBeFresh.
* Interest: Deprecated getPublicKeyLocator. If the interest has a public key locator, its keyLocator has
type KeyLocatorType.KEY_LOCATOR_DIGEST and the key data has the digest.
* SignedInfo: Deprecated class SignedInfo. Use MetaInfo.
* Face/NDN: Deprecated expressInterest(name, closure [, template]). You should use
expressInterest which uses callbacks, not Closure.
* Face/NDN: Deprecated registerPrefix(name, closure [, intFlags]). You should use
registerPrefix which uses callbacks, not Closure.
* Data: Deprecated encode and decode. You should use wireEncode (which returns a SignedBlob) and wireDecode.
* Interest: Deprecated encode and decode. You should use wireEncode (which returns a Blob) and wireDecode.
Bug fixes
* http://redmine.named-data.net/issues/1303 Call all callbacks where the interest matches the incoming data packet.
Documentation
* wsproxy: In the README, document option -n for the remote ndnd port.
NDN-JS v0.2 (2013-11-08)
------------------------
Changes
* http://redmine.named-data.net/issues/1060 Rename the combined files ndn-js.js and ndn-js.min.js to ndn.js and ndn.min.js.
* http://redmine.named-data.net/issues/1048 Add support for Node.js to merge with NDN-On-Node.
* http://redmine.named-data.net/issues/1071 Renamed the main NDN class to Face.
* Updated the main Face object to use a TcpTransport by default for Node.js.
* Change all code to use new Buffer instead of new Uint8Array.
* Moved global LOG variable to file Log.js. If you want to change the log level, change Log.LOG .
* http://redmine.named-data.net/issues/1051 If a host is specified, the Face constructor defaults to port 6363 instead of port 9695.
* Added Name.Component class and changed Name to use it. Name.getComponent still returns the component value but is deprecated.
* Added Name.get which returns a Name.Component (not the component byte array).
* Added Name.size. Deprecated Name.getComponentCount.
* Change Exclude to hold Name.Component instead of Buffer. The Exclude constructor accepts an array of Name.Component or Buffer.
* Renamed ContentObject class to Data. In the UpcallInfo object, renamed contentObject to data.
* EncodingUtils: Added encodeToHexData, decodeHexData and dataToHtml.
* Moved files in tests/ to tests/browser/ .
* Added test files from NDN-On-Node to tests/node/ .
* http://redmine.named-data.net/issues/1052 wsproxy: Added -n command line option to set the ndnd port.
* In EncodingUtils.js, made all functions static members of EncodingUtils.
* http://redmine.named-data.net/issues/1038 Default to not verify data packets until crypto API is updated.
* Added NameEnumeration support and a test in tests/browser/test-name-enumeration.html.
* Updated security library to use 'RSA-Sign JavaScript Library' and 'crypto.js'.
* Removed unsupported Witness.js (Merkle trees). Rename Signature.Witness to witness (lower case) and it is just a Buffer.
* Removed unimplemented TextXML encoder, especially since we will move away from XML wire formats.
* Internally changed "ccn" to "ndn" in function names and comments.
* Added Interest.toUri().
* http://redmine.named-data.net/issues/1059 Changed file names to lower case. Applications include build/ndn.js, so are unaffected.
* Firefox add-on: Support NDNFS: If the returned data name has %C1.FS.file, remove it and request the actual file.
Deprecated
* build/ndn-js.js and build/ndn-js.min.js. You should use build/ndn.js and build/ndn.min.js.
* ndnProtocol.xpi. Use ndn-protocol.xpi which is the new name of the Firefox add-on file.
* NDN: This class is deprecated. Use Face.
* ContentObject: This class is deprecated. Use Data.
* Name: Deprecated getComponent. Use get(i).getValue().
* Name: Deprecated getComponentCount. Use size().
* Name: Deprecated to_uri. Use toUri.
* Name: Deprecated getName. Use toUri.
* Name: Deprecated add and addSegment. Use append and appendSegment.
* Name: Deprecated equalsName. Use equals.
* Name: Deprecated matches_name. Use matchesName.
* EncodingUtils.js: Deprecated using the global functions. Use static members of EncodingUtils class.
* EncodingUtils.js: Deprecated encodeToBinaryInterest. Use interest.encode().
* EncodingUtils.js: Deprecated encodeToBinaryContentObject. Use data.encode().
* EncodingUtils.js: Deprecated encodeToHexContentObject. Use EncodingUtils.encodeToHexData.
* EncodingUtils.js: Deprecated decodeHexContentObject. Use EncodingUtils.decodeHexData.
* EncodingUtils.js: Deprecated contentObjectToHtml. Use EncodingUtils.dataToHtml.
Bug fixes
* http://redmine.named-data.net/issues/1034 BinaryXMLDecoder.decodeTypeAndVal does not stop at end of stream.
NDN-JS v0.1 (2013-08-06)
------------------------
This is the initial release, compatible with the API in use for about the past year.
The API will change soon for v0.2 .