Permalink
Fetching contributors…
Cannot retrieve contributors at this time
415 lines (357 sloc) 20.1 KB
Interim changes since PyNDN v2.9beta1 (2018-11-01)
--------------------------------------------------
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.
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.