This repository has been archived by the owner on Oct 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathCHANGELOG
455 lines (389 loc) · 21.7 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
PyNDN v2.13beta1 (2021-03-07)
-----------------------------
Changes
* Added Tlv0_3WireFormat.
* https://redmine.named-data.net/issues/4988 Changed the default wire format to TLV v0.3.
* Other improvements to setup.py, .travis.yml, etc. See https://github.com/named-data/PyNDN2/pull/11
PyNDN v2.12beta1 (2019-08-07)
-----------------------------
Changes
* In Interest, change default MustBeFresh to false https://redmine.named-data.net/issues/5053
* sync: Added FullPSync2017 and FullPSync2017WithUsers, implementing the Full PSync protocol.
* examples: Added test_full_psync and test_full_psync_with_users.
PyNDN v2.11beta1 (2019-08-07)
-----------------------------
Changes
* https://redmine.named-data.net/issues/4807 Print a warning if the application
didn't call Interest.setDefaultCanBePrefix() or set the Interest's CanBePrefix.
* https://redmine.named-data.net/issues/4869 Renamed ForwardingFlags to RegistrationOptions.
* https://redmine.named-data.net/issues/4869 In RegistrationOptions, added setOrigin()
to use in the flags argument of registerPrefix.
* https://redmine.named-data.net/issues/4813 In Face, added putNack().
Deprecated
* Deprecated ForwardingFlags. Use RegistrationOptions.
Bug fixes
* https://github.com/named-data/PyNDN2/pull/6 Change asyncio.async to ensure_future
for compatibility with Python 3. (Thanks to Nabil Schear!)
* https://redmine.named-data.net/issues/4926 In decoding Data, make MetaInfo
and Content optional.
* https://redmine.named-data.net/issues/4968 In examples, updated ControlParameters protobuf.
PyNDN v2.10beta1 (2019-03-05)
----------------------------
Changes
* https://redmine.named-data.net/issues/4655 Added name-based access control v2,
EncryptorV2, DecryptorV2 and AccessControlV2, with integration tests.
* In Face, added method setInterestLoopbackEnabled.
Deprecated
* In Interest, deprecated getParameters, setParameters and hasParameters. Use
getApplicationParameters, setApplicationParameters and hasApplicationParameters.
PyNDN v2.9beta1 (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.
* https://redmine.named-data.net/issues/4593 UdpTransport: specify local port.
* https://redmine.named-data.net/issues/4701 Added ComponentType.PARAMETERS_SHA256_DIGEST,
and support params-sha256=<hex-value> in the name URI.
Bug fixes
* https://redmine.named-data.net/issues/4605 Support years > 2038 on 32-bit processors.
* 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.
PyNDN v2.8beta1 (2018-04-17)
----------------------------
Bug fixes
* https://redmine.named-data.net/issues/4428 MustBeFresh should be false if the
decoded Interest has no selectors.
* https://redmine.named-data.net/issues/1860 Recompile Protobuf files with
protoc from protobuf 3, so that they work with Python 3.
Changes
* 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().
* https://redmine.named-data.net/issues/4576 Update deprecated signer/verifier to
sign/verify. You may need to do `sudo pip install --upgrade cryptography` .
* 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
* Deprecated KeyType.ECDSA. Use KeyType.EC.
* Deprecated EcdsaKeyParams. Use EcKeyParams.
PyNDN v2.7beta1 (2018-02-26)
----------------------------
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.
PyNDN v2.6beta1 (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/3812 In encrypt GroupManager, save private
keys in memory to avoid regenerate group key pairs.
* https://redmine.named-data.net/issues/4251 Added Interest get/setForwardingHint.
Deprecated
* In Interest, deprecated link object and selected delegation methods.
Use get/setForwardingHint.
PyNDN v2.5beta1 (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://github.com/named-data/PyNDN2/pull/3 In Node, support a callable object
for onInterest. (Thanks Pedro!)
* 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.
* In Blob, if isNull(), changed toRawStr() to return "" instead of None.
* ChronoSync2013: Added method getProducerPrefixes().
Deprecated
* In KeyChain, deprecated verifyData that takes an onValidationFailed(data)
callback without a reason string. You should use the callback with the reason
string.
* In KeyChain, deprecated verifyInterest that takes an onValidationFailed(interest)
callback without a reason string. You should use the callback with the reason
string.
PyNDN v2.4beta1 (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.
* In ProtobufTlv, added utility method toName.
* Added support for the Name component type ImplicitSha256Digest, and methods:
Name.Component.fromImplicitSha256Digest, isGeneric and isImplicitSha256Digest.
Name.appendImplicitSha256Digest.
* In SegmentFetcher.fetch, allow a validatorKeyChain for asynchronous Data validation.
* https://redmine.named-data.net/issues/3447 In Data, added getFullName, and
in Interest added matchesData to use it.
* INSTALL: Added instructions to build the optional _pyndn C module for faster
encoding/decoding.
* INSTALL: Added macOS 10.12.
* Examples: In test_encode_decode_fib_entry, etc, use ProtobufTlv.toName.
* Unit tests: In test_name_methods, added test_implicit_sha256_digest.
* Unit tests: In test_interest_methods, added test_matches_data.
* Unit tests: In test_data_methods, added test_full_name.
Bug fixes
* http://redmine.named-data.net/issues/2760 Respect tpm= setting in client.conf.
* https://redmine.named-data.net/issues/3785 getNowMilliseconds() doesn't return UTC.
* Fix bug in OSXPrivateKeyStorage.sign for Python 3.
PyNDN v2.3beta1 (2016-05-06)
----------------------------
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.)
* Added Sha256WithEcdsaSignature. Support encoding/decoding it in interests and data packets.
* In KeyChain, added generateEcdsaKeyPair and generateEcdsaKeyPairAsDefault.
* In util, added ExponentialReExpress.
* 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/3152 In API callbacks, catch and log exceptions.
* 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.
* Unit tests: In test_data_methods, added test_verify_ecdsa.
* Unit tests: Added test_link.
* Integration tests: In test_face_methods, added test_network_nack.
* Examples: Added test_sign_verify_data_hmac.
Deprecated
* In KeyChain, deprecated getIdentityCertificate. Use getCertificate.
Bug fixes
* 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.
PyNDN v2.2beta1 (2016-02-03)
----------------------------
Changes
* Use the cryptography package instead of pycrypto. See INSTALL.md to update.
* In OSXPrivateKeyStorage, implemented generateKeyPair.
PyNDN v2.1beta2 (2016-01-07)
----------------------------
Changes
* Added the pyndn.encrypt package for the Group-Based Encryption Protocol, ported from
https://github.com/named-data/ndn-group-encrypt
* In Name, added support for hash(name). (A Name can be a dictionary key.)
* INSTALL: Removed unsupported OS X 10.8.4.
* INSTALL: Added OS X 10.11, Ubuntu 15.04 (64 bit) and Raspbian Jessie.
Bug fixes
* Fix bug in BasicIdentityStorage.getCertificate (Thanks Zhehao)
* http://redmine.named-data.net/issues/3342 In expressInterest, call onTimeout when there is no interest lifetime.
PyNDN v2.1beta1 (2015-09-24)
----------------------------
Changes
* In security, added KeyChain.createIdentityAndCertificate which returns the
certificate name, instead of the deprecated createIdentity which returns the
key name.
* Added AsyncTcpTransport and AsyncUnixTransport which use asyncio and do not
require the application to call processEvents.
* http://redmine.named-data.net/issues/3005 In Face.registerPrefix, added the
optional onRegisterSuccess callback.
* In ThreadsafeFace, for the constructors ThreadsafeFace(loop) and
ThreadsafeFace(loop, host, port) use AsyncTcpTransport or AsyncUnixTransport
which do not require the application to call processEvents.
* In ThreadsafeFace, remove support for stopWhen() since this requires a
processEvents loop which we want to avoid when using asyncio. The application
must stop the asyncio loop - see examples/test_get_async_threadsafe.py .
* In ThreadsafeFace, do not automatically run a processEvents loop since the
default AsyncTcpTransport and AsyncUnixTransport don't need it. (If your
application uses a different transport which does not use the asyncio loop,
then it needs to run a processEvents loop.)
* In ThreadsafeFace, don't automatically import it into the pyndn module since
asyncio is optional. To explicitly import it, use:
from pyndn.threadsafe_face import ThreadsafeFace
* In security ConfigPolicyManager, added load(input, inputName) to read
configuration rules from a string.
* In integration_tests, added test_registration_callbacks.
* In Face.registerPrefix, removed deprecated support to register with NDNx.
* In Interest, removed deprecated NDNx get/setScope.
* In ForwardingFlags, removed deprecated NDNx flags active, advertise, last,
local, tap and captureOK.
* Removed deprecated NDNx ForwardingEntry.
* Removed deprecated NDNx 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.
* In Interest, deprecated get/setScope since it is for NDNx and NFD does not use it.
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.
PyNDN v2.0beta4 (2015-05-13)
----------------------------
Changes
* http://redmine.named-data.net/issues/2624 By default, throw an exception when
using the deprecated NDNx and binary XML wire format. 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/1921 In Face, added getMaxNdnPacketSize().
expressInterest and putData throw an exception if the encoded 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.
* 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 test_list_rib.
* 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 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().
* Make Blob.__str__ return "" instead of None if the blob isNull().
* In ControlParameters, added support for Uri and Strategy.
* In the default WireFormat, implemented decodeControlParameters.
* Moved tests which need NFD from tests/unit_tests to tests/integration_tests.
* examples: Added test_list_channels, test_list_faces, test_list_rib and
test_register_route to query NFD.
* examples: In repo_ng added basic_insertion.py and watched_insertion.py to
show interaction with the repo-ng repository.
* examples: Removed test_encode_decode_forwarding_entry and
test_publish_async_ndnx because NDNx support is deprecated.
* Unit tests: In test_interest_methods, added test_exclude_matches.
Deprecated
* Deprecated support for NDNx and binary XML. 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/2478 Fix ProtobufTlv for Python 3.
* http://redmine.named-data.net/issues/2544 Fix test_chrono_chat bug affecting OS X 10.10.
* http://redmine.named-data.net/issues/2758 ControlParameters with empty name not properly encoded.
PyNDN v2.0beta3 (2015-02-03)
----------------------------
Changes
* http://redmine.named-data.net/issues/2388 Moved example programs from "tests" to "examples".
* In KeyChain.createIdentity, added an optional KeyParams argument.
* Unit tests: Added test-der-encode-decode tests for CertificateExtension.
Bug fixes
* http://redmine.named-data.net/issues/2472 Fixes to support Python 3
PyNDN v2.0beta2 (2014-12-23)
----------------------------
Changes
* Support getter and setter properties in the classes Interest, Data, MetaInfo,
KeyLocator and ForwardingFlags, plus the internal ForwardingEntry and
ControlParameters.
* In Name, support slice notation to call getSubName, e.g. name[2:4].
* Added ChronoSync2013 and test_chrono_chat.py.
* In Name, added wireEncode and wireDecode.
* In MetaInfo, added get/setFinalBlockId (replaces the deprecated get/setFinalBlockID).
* In MemoryContentCache, added unregisterAll.
* Added ConfigPolicyManager for heirarchical verification using an NDN config file. (Thanks to Adeola Bannis.)
* Added DigestSha256Signature. Support encoding/decoding it in interests and data packets.
* In KeyChain, added signWithSha256.
* In registerPrefix, use logging.info to log success or the reason for failure.
* In each __init__.py, added import statements for each module (required by pylint).
* In unit tests, added test_name_conventions, test-policy_manager and test_verification_rules.
* Unit tests: In test-data-methods, added VerifyDigestSha256.
* Unit tests: In test-interest-methods, added VerifyDigestSha256.
Deprecated
* In MetaInfo, deprecated get/setFinalBlockID. Use get/setFinalBlockId.
PyNDN v2.0beta1 (2014-08-31)
----------------------------
Changes
* 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.
Bug fixes
* http://redmine.named-data.net/issues/1925 Should encode non-negative integers 253 through 255 as one byte.
* http://redmine.named-data.net/issues/1955 Return the registeredPrefixId from registerPrefix.
PyNDN v2.0alpha3 (2014-08-14)
-----------------------------
Changes
* Implemented SelfVerifyPolicyManager for use with KeyChain.verifyData, and use
it in the sample test_encode_decode_data.
* Implemented OSXPrivateKeyStorage to use keys in the OS X Keychain.
* Performance improvements for Python versions before 3.3.
* Name: Added methods appendSegment and appendVersion.
* Name: Added method equals(name) and operators __eq__ and __ne__.
* Name: Added method compare(other) and operators __lt__, etc.
* Name: Added a default Name.Component constructor to make a zero-length value.
* Renamed test_publish_async to test_publish_async_ndnx.
* Added test-publish-async-nfd.
* Added ThreadsafeFace which uses asyncio.
* Added test_get_async_threadsafe
* Renamed internal class Tlv1_0a2WireFormat to Tlv0_1WireFormat.
* COPYING: Changed the license to LGPLv3.
* In Blob, added __str__ operator.
* Added encoding.ProtobufTlv for converting a Protobuf message object to TLV encoding.
* In test_encode_decode_data and test_encode_decode_benchmark, change the RSA test key to 2048 bits.
* Added UnixTransport. If using the default Face(), try to connect using a Unix socket.
* Added MemoryContentCache. See http://named-data.net/doc/ndn-ccl-api/memory-content-cache.html .
* KeyChain: added verifyInterest.
* Added instructions for building the Sphinx documentation.
* Added setup.py to support easy_install. Added instructions in the README file.
Deprecated
* MemoryPrivateKeyStorage: Deprecated setKeyPairForKeyName without an explicit keyType. Use
setKeyPairForKeyName passing the explicit key type such as KeyType.RSA.
Bug fixes
* http://redmine.named-data.net/issues/1333 Make Interest MustBeFresh default True.
* http://redmine.named-data.net/issues/1337 Fix FinalBlockID encoding.
* http://redmine.named-data.net/issues/1647 Trollius 0.3 doesn't import asyncio.
* For TLV packets over UDP, ignore packets starting with 0x80.
* Fix bug for encoding/decoding the TLV Interest PublisherPublicKeyLocator.
* In the Blob constructor, Name.append, etc. treat a Python 2 str as a raw string.
Support to be added soon:
* Package install support.
PyNDN v2.0alpha2 (2014-02-27)
-----------------------------
Changes
* Added UdpTransport in module pyndn.transport to support a UDP connection.
* In Blob, added method toRawStr and static method fromRawStr.
Bug fixes
* Fix Interest.setExclude to properly copy the Exclude object.
PyNDN v2.0alpha1 (2014-02-21)
-----------------------------
This is the Python 2.0 initial release, with support for the NDN-TLV wire format in pure Python.