Hello community, here is the log from the commit of package python-pyasn1 for openSUSE:Factory checked in at 2015-10-14 16:42:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pyasn1 (Old) and /work/SRC/openSUSE:Factory/.python-pyasn1.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyasn1" Changes: -------- --- /work/SRC/openSUSE:Factory/python-pyasn1/python-pyasn1.changes 2015-08-29 20:02:14.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-pyasn1.new/python-pyasn1.changes 2015-10-14 16:42:42.000000000 +0200 @@ -1,0 +2,10 @@ +Tue Oct 6 11:18:26 UTC 2015 - [email protected] + +- updated to upstream release 0.1.9 + - Wheel distribution format now supported. + - Extensions added to text files, CVS attic flushed. + - Fix to make uninitilaized pyasn1 objects failing properly on hash(). + - Fix to ObjectIdentifier initialization from unicode string. + - Fix to CER/DER Boolean decoder - fail on non single-octet payload. + +------------------------------------------------------------------- Old: ---- pyasn1-0.1.8.tar.gz New: ---- pyasn1-0.1.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pyasn1.spec ++++++ --- /var/tmp/diff_new_pack.6Fvgyu/_old 2015-10-14 16:42:42.000000000 +0200 +++ /var/tmp/diff_new_pack.6Fvgyu/_new 2015-10-14 16:42:42.000000000 +0200 @@ -17,7 +17,7 @@ Name: python-pyasn1 -Version: 0.1.8 +Version: 0.1.9 Release: 0 Summary: ASN.1 types and codecs License: BSD-2-Clause @@ -56,7 +56,7 @@ %files %defattr(-,root,root,-) -%doc CHANGES LICENSE README THANKS TODO doc +%doc CHANGES.txt LICENSE.txt README.txt THANKS.txt TODO.txt doc %{python_sitelib}/* %changelog ++++++ pyasn1-0.1.8.tar.gz -> pyasn1-0.1.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/CHANGES new/pyasn1-0.1.9/CHANGES --- old/pyasn1-0.1.8/CHANGES 2015-06-21 22:49:41.000000000 +0200 +++ new/pyasn1-0.1.9/CHANGES 1970-01-01 01:00:00.000000000 +0100 @@ -1,343 +0,0 @@ -Revision 0.1.8 --------------- - -- ObjectIdentifier codec fixed to work properly with arc 0 and arc 2 values. -- Explicit limit on ObjectIdentifier arc value size removed. -- Unicode initializer support added to OctetString type and derivatives. -- New prettyPrintType() abstract method implemented to base pyasn1 types - to facilitate encoding errors analisys. -- The __str__() method implemented to Tag, TagSet and TagMap classes to - ease encoding errors troubleshooting. - easing encoding errors -- Fix to SEQUENCE and SET types to give them their private componentTypes - collection (which is a NamedTypes object) so that they won't collide in - a MT execution environment. -- Missing T61String,ISO646String character types and ObjectDescriptor useful - type added. -- Distribute is gone, switched to setuptools completely. -- Missing NamedValues.__repr__() added. -- The base.NoValue() class, that indicates uninitialized ASN.1 object, - made public. -- The base.NoValue() class instances now support __repr__() what makes - possible to perform repr() on uninitialized pyasn1 types objects. -- When comparing ASN.1 types, by-tag and/or by-constraints matching - can now be performed with the isSuperTypeOf()/isSameTypeWith() optional - flags. -- Constructed types now verify their consistency by invoking - isSameTypeWith(matchTags=True, matchConstraints=False) and - isSuperTypeOf(matchTags=False, matchConstraints=True) for each of their - components rather than isSuperTypeOf() as it used to be. Constriants check - could be enforced to isSameTypeWith() with the strictConstraints=True - constructed classes attribute. -- Constructed types can now be initialized with new .setComponents() method - which accepts both var-args and keyword-args. Default repr() modified to - reflect this change. -- NamedTypes() and NamedValues() made comparable. -- Test coverage extended to cover pyasn1 types __repr__() function. -- The abs(Integer()) & abs(Real()) operation now returns respective pyasn1 - type, not a Python type. -- More Python magic methods implementations added to Integer & Real classes - (e.g. __pos__, __neg__, __round__, __floor__, __ceil__, __trunc__) -- The Integer.__invert__ Python magic method implemented. -- The OctetString.__int__() and .__float__() magic methods implemented. -- Handle the case of null writer at Debug printer. -- BitString encoder/decoder performance improved. -- Built-in debugging is now based on Python logging module. -- Fix to NamedType.__repr__() to work properly. -- Fixes to __repr__() implementation of many built-in ASN.1 types to take into - account all of their initializers such as tagSet, subtypeSpec etc. -- String typed float initializer to REAL type now supported. -- Float typed mantissa initializer to REAL type for base 2 added. -- Encoding bases 8 and 16 support for REAL type binary encoder added. -- More strict CER/DER encoders added for GeneralizedTime and UTCTime types. -- Asn1Item.hasValue() added to easily distinguish initalized ASN.1 objects - from uninitialized ones (e.g. pure types). -- Fix to REAL type binary decoder to handle different bases and scale factor. -- Fix to TagSet.repr() to include [obsolete] baseTag information. -- Fix to broken REAL type decoding handling. -- Fix to BitString and OctetString decoders dealing with constructed - encoding -- it used to be possible to embed other types in substrate. -- Fix to end-of-octest sentinel handling: - * require strict two-zeros sentinel encoding - * recognize EOO sentinel only when explicitly requested by caller - of the decoder via allowEoo=True parameter (warning: API change) -- DER codec hardened not to tolerate indefinite length encoding/decoding. - -Revision 0.1.7 --------------- - -- License updated to vanilla BSD 2-Clause to ease package use - (http://opensource.org/licenses/BSD-2-Clause). -- Test suite made discoverable by unittest/unittest2 discovery feature. -- Fix to decoder working on indefinite length substrate -- end-of-octets - marker is now detected by both tag and value. Otherwise zero values may - interfere with end-of-octets marker. -- Fix to decoder to fail in cases where tagFormat indicates inappropriate - format for the type (e.g. BOOLEAN is always PRIMITIVE, SET is always - CONSTRUCTED and OCTET STRING is either of the two) -- Fix to REAL type encoder to force primitive encoding form encoding. -- Fix to CHOICE decoder to handle explicitly tagged, indefinite length - mode encoding -- Fix to REAL type decoder to handle negative REAL values correctly. Test - case added. - -Revision 0.1.6 --------------- - -- The compact (valueless) way of encoding zero INTEGERs introduced in - 0.1.5 seems to fail miserably as the world is filled with broken - BER decoders. So we had to back off the *encoder* for a while. - There's still the IntegerEncoder.supportCompactZero flag which - enables compact encoding form whenever it evaluates to True. -- Report package version on debugging code initialization. - -Revision 0.1.5 --------------- - -- Documentation updated and split into chapters to better match - web-site contents. -- Make prettyPrint() working for non-initialized pyasn1 data objects. It - used to throw an exception. -- Fix to encoder to produce empty-payload INTEGER values for zeros -- Fix to decoder to support empty-payload INTEGER and REAL values -- Fix to unit test suites imports to be able to run each from - their current directory - -Revision 0.1.4 --------------- - -- Built-in codec debugging facility added -- Added some more checks to ObjectIdentifier BER encoder catching - posible 2^8 overflow condition by two leading sub-OIDs -- Implementations overriding the AbstractDecoder.valueDecoder method - changed to return the rest of substrate behind the item being processed - rather than the unprocessed substrate within the item (which is usually - empty). -- Decoder's recursiveFlag feature generalized as a user callback function - which is passed an uninitialized object recovered from substrate and - its uninterpreted payload. -- Catch inappropriate substrate type passed to decoder. -- Expose tagMap/typeMap/Decoder objects at DER decoder to uniform API. -- Obsolete __init__.MajorVersionId replaced with __init__.__version__ - which is now in-sync with distutils. -- Package classifiers updated. -- The __init__.py's made non-empty (rumors are that they may be optimized - out by package managers). -- Bail out gracefully whenever Python version is older than 2.4. -- Fix to Real codec exponent encoding (should be in 2's complement form), - some more test cases added. -- Fix in Boolean truth testing built-in methods -- Fix to substrate underrun error handling at ObjectIdentifier BER decoder -- Fix to BER Boolean decoder that allows other pre-computed - values besides 0 and 1 -- Fix to leading 0x80 octet handling in DER/CER/DER ObjectIdentifier decoder. - See http://www.cosic.esat.kuleuven.be/publications/article-1432.pdf - -Revision 0.1.3 --------------- - -- Include class name into asn1 value constraint violation exception. -- Fix to OctetString.prettyOut() method that looses leading zero when - building hex string. - -Revision 0.1.2 --------------- - -- Fix to __long__() to actually return longs on py2k -- Fix to OctetString.__str__() workings of a non-initialized object. -- Fix to quote initializer of OctetString.__repr__() -- Minor fix towards ObjectIdentifier.prettyIn() reliability -- ObjectIdentifier.__str__() is aliased to prettyPrint() -- Exlicit repr() calls replaced with '%r' - -Revision 0.1.1 --------------- - -- Hex/bin string initializer to OctetString object reworked - (in a backward-incompatible manner) -- Fixed float() infinity compatibility issue (affects 2.5 and earlier) -- Fixed a bug/typo at Boolean CER encoder. -- Major overhawl for Python 2.4 -- 3.2 compatibility: - + get rid of old-style types - + drop string module usage - + switch to rich comparation - + drop explicit long integer type use - + map()/filter() replaced with list comprehension - + apply() replaced with */**args - + switched to use 'key' sort() callback function - + support both __nonzero__() and __bool__() methods - + modified not to use py3k-incompatible exception syntax - + getslice() operator fully replaced with getitem() - + dictionary operations made 2K/3K compatible - + base type for encoding substrate and OctetString-based types - is now 'bytes' when running py3k and 'str' otherwise - + OctetString and derivatives now unicode compliant. - + OctetString now supports two python-neutral getters: asOcts() & asInts() - + print OctetString content in hex whenever it is not printable otherwise - + in test suite, implicit relative import replaced with the absolute one - + in test suite, string constants replaced with numerics - -Revision 0.0.13 ---------------- - -- Fix to base10 normalization function that loops on univ.Real(0) - -Revision 0.0.13b ----------------- - -- ASN.1 Real type is now supported properly. -- Objects of Constructed types now support __setitem__() -- Set/Sequence objects can now be addressed by their field names (string index) - and position (integer index). -- Typo fix to ber.SetDecoder code that prevented guided decoding operation. -- Fix to explicitly tagged items decoding support. -- Fix to OctetString.prettyPrint() to better handle non-printable content. -- Fix to repr() workings of Choice objects. - -Revision 0.0.13a ----------------- - -- Major codec re-design. -- Documentation significantly improved. -- ASN.1 Any type is now supported. -- All example ASN.1 modules moved to separate pyasn1-modules package. -- Fix to initial sub-OID overflow condition detection an encoder. -- BitString initialization value verification improved. -- The Set/Sequence.getNameByPosition() method implemented. -- Fix to proper behaviour of PermittedAlphabetConstraint object. -- Fix to improper Boolean substrate handling at CER/DER decoders. -- Changes towards performance improvement: - + all dict.has_key() & dict.get() invocations replaced with modern syntax - (this breaks compatibility with Python 2.1 and older). - + tag and tagset caches introduced to decoder - + decoder code improved to prevent unnecessary pyasn1 objects creation - + allow disabling components verification when setting components to - structured types, this is used by decoder whilst running in guided mode. - + BER decoder for integer values now looks up a small set of pre-computed - substrate values to save on decoding. - + a few pre-computed values configured to ObjectIdentifier BER encoder. - + ChoiceDecoder split-off SequenceOf one to save on unnecessary checks. - + replace slow hasattr()/getattr() calls with isinstance() introspection. - + track the number of initialized components of Constructed types to save - on default/optional components initialization. - + added a shortcut ObjectIdentifier.asTuple() to be used instead of - __getitem__() in hotspots. - + use Tag.asTuple() and pure integers at tag encoder. - + introduce and use in decoder the baseTagSet attribute of the built-in - ASN.1 types. - -Revision 0.0.12a ----------------- - -- The individual tag/length/value processing methods of - encoder.AbstractItemEncoder renamed (leading underscore stripped) - to promote overloading in cases where partial substrate processing - is required. -- The ocsp.py, ldap.py example scripts added. -- Fix to univ.ObjectIdentifier input value handler to disallow negative - sub-IDs. - -Revision 0.0.11a ----------------- - -- Decoder can now treat values of unknown types as opaque OctetString. -- Fix to Set/SetOf type decoder to handle uninitialized scalar SetOf - components correctly. - -Revision 0.0.10a ----------------- - -- API versioning mechanics retired (pyasn1.v1 -> pyasn1) what makes - it possible to zip-import pyasn1 sources (used by egg and py2exe). - -Revision 0.0.9a ---------------- - -- Allow any non-zero values in Boolean type BER decoder, as it's in - accordnance with the standard. - -Revision 0.0.8a ---------------- - -- Integer.__index__() now supported (for Python 2.5+). -- Fix to empty value encoding in BitString encoder, test case added. -- Fix to SequenceOf decoder that prevents it skipping possible Choice - typed inner component. -- Choice.getName() method added for getting currently set component - name. -- OctetsString.prettyPrint() does a single str() against its value - eliminating an extra quotes. - -Revision 0.0.7a ---------------- - -- Large tags (>31) now supported by codecs. -- Fix to encoder to properly handle explicitly tagged untagged items. -- All possible value lengths (up to 256^126) now supported by encoders. -- Fix to Tag class constructor to prevent negative IDs. - -Revision 0.0.6a ---------------- - -- Make use of setuptools. -- Constraints derivation verification (isSuperTypeOf()/isSubTypeOf()) fixed. -- Fix to constraints comparation logic -- can't cmp() hash values as it - may cause false positives due to hash conflicts. - -Revision 0.0.5a ---------------- - -- Integer BER codec reworked fixing negative values encoding bug. -- clone() and subtype() methods of Constructed ASN.1 classes now - accept optional cloneValueFlag flag which controls original value - inheritance. The default is *not* to inherit original value for - performance reasons (this may affect backward compatibility). - Performance penalty may be huge on deeply nested Constructed objects - re-creation. -- Base ASN.1 types (pyasn1.type.univ.*) do not have default values - anymore. They remain uninitialized acting as ASN.1 types. In - this model, initialized ASN.1 types represent either types with - default value installed or a type instance. -- Decoders' prototypes are now class instances rather than classes. - This is to simplify initial value installation to decoder's - prototype value. -- Bugfix to BitString BER decoder (trailing bits not regarded). -- Bugfix to Constraints use as mapping keys. -- Bugfix to Integer & BitString clone() methods -- Bugix to the way to distinguish Set from SetOf at CER/DER SetOfEncoder -- Adjustments to make it running on Python 1.5. -- In tests, substrate constants converted from hex escaped literals into - octals to overcome indefinite hex width issue occuring in young Python. -- Minor performance optimization of TagSet.isSuperTagSetOf() method -- examples/sshkey.py added - -Revision 0.0.4a ---------------- - -* Asn1ItemBase.prettyPrinter() -> *.prettyPrint() - -Revision 0.0.3a ---------------- - -* Simple ASN1 objects now hash to their Python value and don't - depend upon tag/constraints/etc. -* prettyIn & prettyOut methods of SimplleAsn1Object become public -* many syntax fixes - -Revision 0.0.2a ---------------- - -* ConstraintsIntersection.isSuperTypeOf() and - ConstraintsIntersection.hasConstraint() implemented -* Bugfix to NamedValues initialization code -* +/- operators added to NamedValues objects -* Integer.__abs__() & Integer.subtype() added -* ObjectIdentifier.prettyOut() fixes -* Allow subclass components at SequenceAndSetBase -* AbstractConstraint.__cmp__() dropped -* error.Asn1Error replaced with error.PyAsn1Error - -Revision 0.0.1a ---------------- - -* Initial public alpha release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/CHANGES.txt new/pyasn1-0.1.9/CHANGES.txt --- old/pyasn1-0.1.8/CHANGES.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pyasn1-0.1.9/CHANGES.txt 2015-09-28 12:29:42.000000000 +0200 @@ -0,0 +1,352 @@ +Revision 0.1.9, released 28-09-2015 +----------------------------------- + +- Wheel distribution format now supported. +- Extensions added to text files, CVS attic flushed. +- Fix to make uninitilaized pyasn1 objects failing properly on hash(). +- Fix to ObjectIdentifier initialization from unicode string. +- Fix to CER/DER Boolean decoder - fail on non single-octet payload. + +Revision 0.1.8, released 22-06-2015 +----------------------------------- + +- ObjectIdentifier codec fixed to work properly with arc 0 and arc 2 values. +- Explicit limit on ObjectIdentifier arc value size removed. +- Unicode initializer support added to OctetString type and derivatives. +- New prettyPrintType() abstract method implemented to base pyasn1 types + to facilitate encoding errors analisys. +- The __str__() method implemented to Tag, TagSet and TagMap classes to + ease encoding errors troubleshooting. + easing encoding errors +- Fix to SEQUENCE and SET types to give them their private componentTypes + collection (which is a NamedTypes object) so that they won't collide in + a MT execution environment. +- Missing T61String,ISO646String character types and ObjectDescriptor useful + type added. +- Distribute is gone, switched to setuptools completely. +- Missing NamedValues.__repr__() added. +- The base.NoValue() class, that indicates uninitialized ASN.1 object, + made public. +- The base.NoValue() class instances now support __repr__() what makes + possible to perform repr() on uninitialized pyasn1 types objects. +- When comparing ASN.1 types, by-tag and/or by-constraints matching + can now be performed with the isSuperTypeOf()/isSameTypeWith() optional + flags. +- Constructed types now verify their consistency by invoking + isSameTypeWith(matchTags=True, matchConstraints=False) and + isSuperTypeOf(matchTags=False, matchConstraints=True) for each of their + components rather than isSuperTypeOf() as it used to be. Constriants check + could be enforced to isSameTypeWith() with the strictConstraints=True + constructed classes attribute. +- Constructed types can now be initialized with new .setComponents() method + which accepts both var-args and keyword-args. Default repr() modified to + reflect this change. +- NamedTypes() and NamedValues() made comparable. +- Test coverage extended to cover pyasn1 types __repr__() function. +- The abs(Integer()) & abs(Real()) operation now returns respective pyasn1 + type, not a Python type. +- More Python magic methods implementations added to Integer & Real classes + (e.g. __pos__, __neg__, __round__, __floor__, __ceil__, __trunc__) +- The Integer.__invert__ Python magic method implemented. +- The OctetString.__int__() and .__float__() magic methods implemented. +- Handle the case of null writer at Debug printer. +- BitString encoder/decoder performance improved. +- Built-in debugging is now based on Python logging module. +- Fix to NamedType.__repr__() to work properly. +- Fixes to __repr__() implementation of many built-in ASN.1 types to take into + account all of their initializers such as tagSet, subtypeSpec etc. +- String typed float initializer to REAL type now supported. +- Float typed mantissa initializer to REAL type for base 2 added. +- Encoding bases 8 and 16 support for REAL type binary encoder added. +- More strict CER/DER encoders added for GeneralizedTime and UTCTime types. +- Asn1Item.hasValue() added to easily distinguish initalized ASN.1 objects + from uninitialized ones (e.g. pure types). +- Fix to REAL type binary decoder to handle different bases and scale factor. +- Fix to TagSet.repr() to include [obsolete] baseTag information. +- Fix to broken REAL type decoding handling. +- Fix to BitString and OctetString decoders dealing with constructed + encoding -- it used to be possible to embed other types in substrate. +- Fix to end-of-octest sentinel handling: + * require strict two-zeros sentinel encoding + * recognize EOO sentinel only when explicitly requested by caller + of the decoder via allowEoo=True parameter (warning: API change) +- DER codec hardened not to tolerate indefinite length encoding/decoding. + +Revision 0.1.7 +-------------- + +- License updated to vanilla BSD 2-Clause to ease package use + (http://opensource.org/licenses/BSD-2-Clause). +- Test suite made discoverable by unittest/unittest2 discovery feature. +- Fix to decoder working on indefinite length substrate -- end-of-octets + marker is now detected by both tag and value. Otherwise zero values may + interfere with end-of-octets marker. +- Fix to decoder to fail in cases where tagFormat indicates inappropriate + format for the type (e.g. BOOLEAN is always PRIMITIVE, SET is always + CONSTRUCTED and OCTET STRING is either of the two) +- Fix to REAL type encoder to force primitive encoding form encoding. +- Fix to CHOICE decoder to handle explicitly tagged, indefinite length + mode encoding +- Fix to REAL type decoder to handle negative REAL values correctly. Test + case added. + +Revision 0.1.6 +-------------- + +- The compact (valueless) way of encoding zero INTEGERs introduced in + 0.1.5 seems to fail miserably as the world is filled with broken + BER decoders. So we had to back off the *encoder* for a while. + There's still the IntegerEncoder.supportCompactZero flag which + enables compact encoding form whenever it evaluates to True. +- Report package version on debugging code initialization. + +Revision 0.1.5 +-------------- + +- Documentation updated and split into chapters to better match + web-site contents. +- Make prettyPrint() working for non-initialized pyasn1 data objects. It + used to throw an exception. +- Fix to encoder to produce empty-payload INTEGER values for zeros +- Fix to decoder to support empty-payload INTEGER and REAL values +- Fix to unit test suites imports to be able to run each from + their current directory + +Revision 0.1.4 +-------------- + +- Built-in codec debugging facility added +- Added some more checks to ObjectIdentifier BER encoder catching + posible 2^8 overflow condition by two leading sub-OIDs +- Implementations overriding the AbstractDecoder.valueDecoder method + changed to return the rest of substrate behind the item being processed + rather than the unprocessed substrate within the item (which is usually + empty). +- Decoder's recursiveFlag feature generalized as a user callback function + which is passed an uninitialized object recovered from substrate and + its uninterpreted payload. +- Catch inappropriate substrate type passed to decoder. +- Expose tagMap/typeMap/Decoder objects at DER decoder to uniform API. +- Obsolete __init__.MajorVersionId replaced with __init__.__version__ + which is now in-sync with distutils. +- Package classifiers updated. +- The __init__.py's made non-empty (rumors are that they may be optimized + out by package managers). +- Bail out gracefully whenever Python version is older than 2.4. +- Fix to Real codec exponent encoding (should be in 2's complement form), + some more test cases added. +- Fix in Boolean truth testing built-in methods +- Fix to substrate underrun error handling at ObjectIdentifier BER decoder +- Fix to BER Boolean decoder that allows other pre-computed + values besides 0 and 1 +- Fix to leading 0x80 octet handling in DER/CER/DER ObjectIdentifier decoder. + See http://www.cosic.esat.kuleuven.be/publications/article-1432.pdf + +Revision 0.1.3 +-------------- + +- Include class name into asn1 value constraint violation exception. +- Fix to OctetString.prettyOut() method that looses leading zero when + building hex string. + +Revision 0.1.2 +-------------- + +- Fix to __long__() to actually return longs on py2k +- Fix to OctetString.__str__() workings of a non-initialized object. +- Fix to quote initializer of OctetString.__repr__() +- Minor fix towards ObjectIdentifier.prettyIn() reliability +- ObjectIdentifier.__str__() is aliased to prettyPrint() +- Exlicit repr() calls replaced with '%r' + +Revision 0.1.1 +-------------- + +- Hex/bin string initializer to OctetString object reworked + (in a backward-incompatible manner) +- Fixed float() infinity compatibility issue (affects 2.5 and earlier) +- Fixed a bug/typo at Boolean CER encoder. +- Major overhawl for Python 2.4 -- 3.2 compatibility: + + get rid of old-style types + + drop string module usage + + switch to rich comparation + + drop explicit long integer type use + + map()/filter() replaced with list comprehension + + apply() replaced with */**args + + switched to use 'key' sort() callback function + + support both __nonzero__() and __bool__() methods + + modified not to use py3k-incompatible exception syntax + + getslice() operator fully replaced with getitem() + + dictionary operations made 2K/3K compatible + + base type for encoding substrate and OctetString-based types + is now 'bytes' when running py3k and 'str' otherwise + + OctetString and derivatives now unicode compliant. + + OctetString now supports two python-neutral getters: asOcts() & asInts() + + print OctetString content in hex whenever it is not printable otherwise + + in test suite, implicit relative import replaced with the absolute one + + in test suite, string constants replaced with numerics + +Revision 0.0.13 +--------------- + +- Fix to base10 normalization function that loops on univ.Real(0) + +Revision 0.0.13b +---------------- + +- ASN.1 Real type is now supported properly. +- Objects of Constructed types now support __setitem__() +- Set/Sequence objects can now be addressed by their field names (string index) + and position (integer index). +- Typo fix to ber.SetDecoder code that prevented guided decoding operation. +- Fix to explicitly tagged items decoding support. +- Fix to OctetString.prettyPrint() to better handle non-printable content. +- Fix to repr() workings of Choice objects. + +Revision 0.0.13a +---------------- + +- Major codec re-design. +- Documentation significantly improved. +- ASN.1 Any type is now supported. +- All example ASN.1 modules moved to separate pyasn1-modules package. +- Fix to initial sub-OID overflow condition detection an encoder. +- BitString initialization value verification improved. +- The Set/Sequence.getNameByPosition() method implemented. +- Fix to proper behaviour of PermittedAlphabetConstraint object. +- Fix to improper Boolean substrate handling at CER/DER decoders. +- Changes towards performance improvement: + + all dict.has_key() & dict.get() invocations replaced with modern syntax + (this breaks compatibility with Python 2.1 and older). + + tag and tagset caches introduced to decoder + + decoder code improved to prevent unnecessary pyasn1 objects creation + + allow disabling components verification when setting components to + structured types, this is used by decoder whilst running in guided mode. + + BER decoder for integer values now looks up a small set of pre-computed + substrate values to save on decoding. + + a few pre-computed values configured to ObjectIdentifier BER encoder. + + ChoiceDecoder split-off SequenceOf one to save on unnecessary checks. + + replace slow hasattr()/getattr() calls with isinstance() introspection. + + track the number of initialized components of Constructed types to save + on default/optional components initialization. + + added a shortcut ObjectIdentifier.asTuple() to be used instead of + __getitem__() in hotspots. + + use Tag.asTuple() and pure integers at tag encoder. + + introduce and use in decoder the baseTagSet attribute of the built-in + ASN.1 types. + +Revision 0.0.12a +---------------- + +- The individual tag/length/value processing methods of + encoder.AbstractItemEncoder renamed (leading underscore stripped) + to promote overloading in cases where partial substrate processing + is required. +- The ocsp.py, ldap.py example scripts added. +- Fix to univ.ObjectIdentifier input value handler to disallow negative + sub-IDs. + +Revision 0.0.11a +---------------- + +- Decoder can now treat values of unknown types as opaque OctetString. +- Fix to Set/SetOf type decoder to handle uninitialized scalar SetOf + components correctly. + +Revision 0.0.10a +---------------- + +- API versioning mechanics retired (pyasn1.v1 -> pyasn1) what makes + it possible to zip-import pyasn1 sources (used by egg and py2exe). + +Revision 0.0.9a +--------------- + +- Allow any non-zero values in Boolean type BER decoder, as it's in + accordnance with the standard. + +Revision 0.0.8a +--------------- + +- Integer.__index__() now supported (for Python 2.5+). +- Fix to empty value encoding in BitString encoder, test case added. +- Fix to SequenceOf decoder that prevents it skipping possible Choice + typed inner component. +- Choice.getName() method added for getting currently set component + name. +- OctetsString.prettyPrint() does a single str() against its value + eliminating an extra quotes. + +Revision 0.0.7a +--------------- + +- Large tags (>31) now supported by codecs. +- Fix to encoder to properly handle explicitly tagged untagged items. +- All possible value lengths (up to 256^126) now supported by encoders. +- Fix to Tag class constructor to prevent negative IDs. + +Revision 0.0.6a +--------------- + +- Make use of setuptools. +- Constraints derivation verification (isSuperTypeOf()/isSubTypeOf()) fixed. +- Fix to constraints comparation logic -- can't cmp() hash values as it + may cause false positives due to hash conflicts. + +Revision 0.0.5a +--------------- + +- Integer BER codec reworked fixing negative values encoding bug. +- clone() and subtype() methods of Constructed ASN.1 classes now + accept optional cloneValueFlag flag which controls original value + inheritance. The default is *not* to inherit original value for + performance reasons (this may affect backward compatibility). + Performance penalty may be huge on deeply nested Constructed objects + re-creation. +- Base ASN.1 types (pyasn1.type.univ.*) do not have default values + anymore. They remain uninitialized acting as ASN.1 types. In + this model, initialized ASN.1 types represent either types with + default value installed or a type instance. +- Decoders' prototypes are now class instances rather than classes. + This is to simplify initial value installation to decoder's + prototype value. +- Bugfix to BitString BER decoder (trailing bits not regarded). +- Bugfix to Constraints use as mapping keys. +- Bugfix to Integer & BitString clone() methods +- Bugix to the way to distinguish Set from SetOf at CER/DER SetOfEncoder +- Adjustments to make it running on Python 1.5. +- In tests, substrate constants converted from hex escaped literals into + octals to overcome indefinite hex width issue occuring in young Python. +- Minor performance optimization of TagSet.isSuperTagSetOf() method +- examples/sshkey.py added + +Revision 0.0.4a +--------------- + +* Asn1ItemBase.prettyPrinter() -> *.prettyPrint() + +Revision 0.0.3a +--------------- + +* Simple ASN1 objects now hash to their Python value and don't + depend upon tag/constraints/etc. +* prettyIn & prettyOut methods of SimplleAsn1Object become public +* many syntax fixes + +Revision 0.0.2a +--------------- + +* ConstraintsIntersection.isSuperTypeOf() and + ConstraintsIntersection.hasConstraint() implemented +* Bugfix to NamedValues initialization code +* +/- operators added to NamedValues objects +* Integer.__abs__() & Integer.subtype() added +* ObjectIdentifier.prettyOut() fixes +* Allow subclass components at SequenceAndSetBase +* AbstractConstraint.__cmp__() dropped +* error.Asn1Error replaced with error.PyAsn1Error + +Revision 0.0.1a +--------------- + +* Initial public alpha release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/LICENSE new/pyasn1-0.1.9/LICENSE --- old/pyasn1-0.1.8/LICENSE 2015-01-13 12:16:40.000000000 +0100 +++ new/pyasn1-0.1.9/LICENSE 1970-01-01 01:00:00.000000000 +0100 @@ -1,24 +0,0 @@ -Copyright (c) 2005-2015, Ilya Etingof <[email protected]> -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/LICENSE.txt new/pyasn1-0.1.9/LICENSE.txt --- old/pyasn1-0.1.8/LICENSE.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pyasn1-0.1.9/LICENSE.txt 2015-01-01 16:11:04.000000000 +0100 @@ -0,0 +1,24 @@ +Copyright (c) 2005-2015, Ilya Etingof <[email protected]> +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/MANIFEST.in new/pyasn1-0.1.9/MANIFEST.in --- old/pyasn1-0.1.8/MANIFEST.in 2011-03-03 23:23:14.000000000 +0100 +++ new/pyasn1-0.1.9/MANIFEST.in 2015-07-05 14:59:38.000000000 +0200 @@ -1,3 +1,3 @@ -include CHANGES README LICENSE THANKS TODO +include *.txt recursive-include test *.py recursive-include doc *.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/PKG-INFO new/pyasn1-0.1.9/PKG-INFO --- old/pyasn1-0.1.8/PKG-INFO 2015-06-21 22:50:06.000000000 +0200 +++ new/pyasn1-0.1.9/PKG-INFO 2015-09-28 14:07:47.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 1.0 +Metadata-Version: 1.1 Name: pyasn1 -Version: 0.1.8 +Version: 0.1.9 Summary: ASN.1 types and codecs Home-page: http://sourceforge.net/projects/pyasn1/ Author: Ilya Etingof <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/README new/pyasn1-0.1.9/README --- old/pyasn1-0.1.8/README 2015-06-04 17:10:39.000000000 +0200 +++ new/pyasn1-0.1.9/README 1970-01-01 01:00:00.000000000 +0100 @@ -1,67 +0,0 @@ - -ASN.1 library for Python ------------------------- - -This is an implementation of ASN.1 types and codecs in Python programming -language. It has been first written to support particular protocol (SNMP) -but then generalized to be suitable for a wide range of protocols -based on ASN.1 specification. - -FEATURES --------- - -* Generic implementation of ASN.1 types (X.208) -* Fully standard compliant BER/CER/DER codecs -* 100% Python, works with Python 2.4 up to Python 3.4 -* MT-safe - -MISFEATURES ------------ - -* No ASN.1 compiler (by-hand ASN.1 spec compilation into Python code required) -* Codecs are not restartable - -INSTALLATION ------------- - -The pyasn1 package uses setuptools/distutils for installation. Thus do -either: - -$ easy_install pyasn1 - -or - -$ tar zxf pyasn1-0.1.8.tar.gz -$ cd pyasn1-0.1.8 -$ python setup.py install -$ python setup.py test # run unit tests (optional) - -OPERATION ---------- - -Perhaps a typical use would involve [by-hand] compilation of your ASN.1 -specification into pyasn1-backed Python code at your application. - -For more information on pyasn1 APIs, please, refer to the -doc/pyasn1-tutorial.html file in the distribution. - -Also refer to example modules. Take a look at pyasn1-modules package -- maybe -it already holds something useful to you. - -AVAILABILITY ------------- - -The pyasn1 package is distributed under terms and conditions of BSD-style -license. See LICENSE file in the distribution. Source code is freely -available from: - -http://pyasn1.sf.net - - -FEEDBACK --------- - -Please, send your comments and fixes to mailing lists at project web site. - -=-=-= -mailto: [email protected] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/README.txt new/pyasn1-0.1.9/README.txt --- old/pyasn1-0.1.8/README.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pyasn1-0.1.9/README.txt 2015-06-04 17:11:38.000000000 +0200 @@ -0,0 +1,67 @@ + +ASN.1 library for Python +------------------------ + +This is an implementation of ASN.1 types and codecs in Python programming +language. It has been first written to support particular protocol (SNMP) +but then generalized to be suitable for a wide range of protocols +based on ASN.1 specification. + +FEATURES +-------- + +* Generic implementation of ASN.1 types (X.208) +* Fully standard compliant BER/CER/DER codecs +* 100% Python, works with Python 2.4 up to Python 3.4 +* MT-safe + +MISFEATURES +----------- + +* No ASN.1 compiler (by-hand ASN.1 spec compilation into Python code required) +* Codecs are not restartable + +INSTALLATION +------------ + +The pyasn1 package uses setuptools/distutils for installation. Thus do +either: + +$ easy_install pyasn1 + +or + +$ tar zxf pyasn1-0.1.8.tar.gz +$ cd pyasn1-0.1.8 +$ python setup.py install +$ python setup.py test # run unit tests (optional) + +OPERATION +--------- + +Perhaps a typical use would involve [by-hand] compilation of your ASN.1 +specification into pyasn1-backed Python code at your application. + +For more information on pyasn1 APIs, please, refer to the +doc/pyasn1-tutorial.html file in the distribution. + +Also refer to example modules. Take a look at pyasn1-modules package -- maybe +it already holds something useful to you. + +AVAILABILITY +------------ + +The pyasn1 package is distributed under terms and conditions of BSD-style +license. See LICENSE file in the distribution. Source code is freely +available from: + +http://pyasn1.sf.net + + +FEEDBACK +-------- + +Please, send your comments and fixes to mailing lists at project web site. + +=-=-= +mailto: [email protected] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/THANKS new/pyasn1-0.1.9/THANKS --- old/pyasn1-0.1.8/THANKS 2015-04-30 20:06:02.000000000 +0200 +++ new/pyasn1-0.1.9/THANKS 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -Denis S. Otkidach -Gregory Golberg -Bud P. Bruegger -Jacek Konieczny -Tanya Tereschenko -Matěj Cepl -Alex Gaynor -Geoffrey Thomas -Daniel Bratell -Kim Gräsman diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/THANKS.txt new/pyasn1-0.1.9/THANKS.txt --- old/pyasn1-0.1.8/THANKS.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pyasn1-0.1.9/THANKS.txt 2015-04-30 20:09:04.000000000 +0200 @@ -0,0 +1,10 @@ +Denis S. Otkidach +Gregory Golberg +Bud P. Bruegger +Jacek Konieczny +Tanya Tereschenko +Matěj Cepl +Alex Gaynor +Geoffrey Thomas +Daniel Bratell +Kim Gräsman diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/TODO new/pyasn1-0.1.9/TODO --- old/pyasn1-0.1.8/TODO 2012-04-12 20:56:12.000000000 +0200 +++ new/pyasn1-0.1.9/TODO 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -* Specialize ASN.1 character and useful types -* Come up with simpler API for deeply nested constructed objects - addressing - -ber.decoder: -* suspend codec on underrun error ? -* class-static components map (in simple type classes) -* present subtypes ? -* component presence check wont work at innertypeconst -* add the rest of ASN1 types/codecs -* type vs value, defaultValue - -ber.encoder: -* Asn1Item.clone() / shallowcopy issue -* large length encoder? -* codec restart -* preserve compatible API whenever stateful codec gets implemented -* restartable vs incremental -* plan: make a stateless univeral decoder, then convert it to restartable - then to incremental - -type.useful: -* may need to implement prettyIn/Out - -type.char: -* may need to implement constraints - -type.univ: -* simpler API to constructed objects: value init, recursive - -type.namedtypes -* type vs tagset name convention - -general: - -* how untagged TagSet should be initialized? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/TODO.txt new/pyasn1-0.1.9/TODO.txt --- old/pyasn1-0.1.8/TODO.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pyasn1-0.1.9/TODO.txt 2012-04-12 20:56:07.000000000 +0200 @@ -0,0 +1,36 @@ +* Specialize ASN.1 character and useful types +* Come up with simpler API for deeply nested constructed objects + addressing + +ber.decoder: +* suspend codec on underrun error ? +* class-static components map (in simple type classes) +* present subtypes ? +* component presence check wont work at innertypeconst +* add the rest of ASN1 types/codecs +* type vs value, defaultValue + +ber.encoder: +* Asn1Item.clone() / shallowcopy issue +* large length encoder? +* codec restart +* preserve compatible API whenever stateful codec gets implemented +* restartable vs incremental +* plan: make a stateless univeral decoder, then convert it to restartable + then to incremental + +type.useful: +* may need to implement prettyIn/Out + +type.char: +* may need to implement constraints + +type.univ: +* simpler API to constructed objects: value init, recursive + +type.namedtypes +* type vs tagset name convention + +general: + +* how untagged TagSet should be initialized? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/doc/constraints.html new/pyasn1-0.1.9/doc/constraints.html --- old/pyasn1-0.1.8/doc/constraints.html 2012-09-10 17:00:26.000000000 +0200 +++ new/pyasn1-0.1.9/doc/constraints.html 2015-09-08 21:30:39.000000000 +0200 @@ -146,9 +146,51 @@ </td></tr></table> <p> -Value range constraint usually applies numeric types. +Value range constraint usually applies to numeric types. </p> +<p> +ASN.1 MIN and MAX operands can be substituted with floating +point infinity values. +</p> + +<table bgcolor="lightgray" border=0 width=100%><TR><TD> +<pre> +NegativeInt ::= INTEGER (MIN..-1) +PositiveInt ::= INTEGER (1..MAX) +</pre> +</td></tr></table> + +<p> +And in pyasn1 terms: +</p> + +<table bgcolor="lightgray" border=0 width=100%><TR><TD> +<pre> +>>> from pyasn1.type import univ, constraint +>>> class NegativeInt(univ.Integer): +... subtypeSpec = constraint.ValueRangeConstraint(float('-inf'), -1) +>>> NegativeInt(-1) +NegativeInt(-1) +>>> NegativeInt(0) +Traceback (most recent call last): +... +pyasn1.type.error.ValueConstraintError: + ValueConstraintError: ValueRangeConstraint() failed at: "0" at NegativeInt +>>> class PositiveInt(univ.Integer): +... subtypeSpec = constraint.ValueRangeConstraint(1, float('inf')) +>> PositiveInt(1) +PositiveInt(1) +>> PositiveInt(4) +PositiveInt(4) +>> PositiveInt(-1) +Traceback (most recent call last): +... +pyasn1.type.error.ValueConstraintError: + ValueConstraintError: ValueRangeConstraint() failed at: "-1" at PositiveInt +</pre> +</td></tr></table> + <a name="1.4.3"></a> <h4> 1.4.3 Size constraint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1/__init__.py new/pyasn1-0.1.9/pyasn1/__init__.py --- old/pyasn1-0.1.8/pyasn1/__init__.py 2013-06-05 14:17:21.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1/__init__.py 2015-07-05 14:59:38.000000000 +0200 @@ -1,7 +1,7 @@ import sys # http://www.python.org/dev/peps/pep-0396/ -__version__ = '0.1.8' +__version__ = '0.1.9' if sys.version_info[:2] < (2, 4): raise RuntimeError('PyASN1 requires Python 2.4 or later') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1/codec/cer/decoder.py new/pyasn1-0.1.9/pyasn1/codec/cer/decoder.py --- old/pyasn1-0.1.8/pyasn1/codec/cer/decoder.py 2012-06-26 12:03:44.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1/codec/cer/decoder.py 2015-09-15 20:06:22.000000000 +0200 @@ -9,8 +9,8 @@ def valueDecoder(self, fullSubstrate, substrate, asn1Spec, tagSet, length, state, decodeFun, substrateFun): head, tail = substrate[:length], substrate[length:] - if not head: - raise error.PyAsn1Error('Empty substrate') + if not head or length != 1: + raise error.PyAsn1Error('Not single-octet Boolean payload') byte = oct2int(head[0]) # CER/DER specifies encoding of TRUE as 0xFF and FALSE as 0x0, while # BER allows any non-zero value as TRUE; cf. sections 8.2.2. and 11.1 @@ -20,7 +20,7 @@ elif byte == 0x00: value = 0 else: - raise error.PyAsn1Error('Boolean CER violation: %s' % byte) + raise error.PyAsn1Error('Unexpected Boolean payload: %s' % byte) return self._createComponent(asn1Spec, tagSet, value), tail tagMap = decoder.tagMap.copy() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1/compat/iterfunc.py new/pyasn1-0.1.9/pyasn1/compat/iterfunc.py --- old/pyasn1-0.1.8/pyasn1/compat/iterfunc.py 2015-01-20 16:19:14.000000000 +0100 +++ new/pyasn1-0.1.9/pyasn1/compat/iterfunc.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -from sys import version_info - -if version_info[0] <= 2 and version_info[1] <= 4: - def all(iterable): - for element in iterable: - if not element: - return False - return True -else: - all = all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1/compat/octets.py new/pyasn1-0.1.9/pyasn1/compat/octets.py --- old/pyasn1-0.1.8/pyasn1/compat/octets.py 2012-05-28 11:57:58.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1/compat/octets.py 2015-09-10 21:59:23.000000000 +0200 @@ -9,6 +9,7 @@ str2octs = lambda x: x octs2str = lambda x: x isOctetsType = lambda s: isinstance(s, str) + isStringType = lambda s: isinstance(s, (str, unicode)) else: ints2octs = bytes int2oct = lambda x: ints2octs((x,)) @@ -18,3 +19,4 @@ str2octs = lambda x: x.encode() octs2str = lambda x: x.decode() isOctetsType = lambda s: isinstance(s, bytes) + isStringType = lambda s: isinstance(s, str) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1/type/base.py new/pyasn1-0.1.9/pyasn1/type/base.py --- old/pyasn1-0.1.8/pyasn1/type/base.py 2015-06-06 10:18:36.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1/type/base.py 2015-07-05 18:43:06.000000000 +0200 @@ -99,7 +99,8 @@ def __nonzero__(self): return bool(self._value) else: def __bool__(self): return bool(self._value) - def __hash__(self): return self.__hashedValue + def __hash__(self): + return self.__hashedValue is noValue and hash(noValue) or self.__hashedValue def hasValue(self): return not isinstance(self._value, NoValue) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1/type/univ.py new/pyasn1-0.1.9/pyasn1/type/univ.py --- old/pyasn1-0.1.8/pyasn1/type/univ.py 2015-06-04 16:46:34.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1/type/univ.py 2015-09-10 21:59:23.000000000 +0200 @@ -533,7 +533,7 @@ pass elif isinstance(value, ObjectIdentifier): return tuple(value) - elif isinstance(value, str): + elif octets.isStringType(value): r = [] for element in [ x for x in value.split('.') if x != '' ]: try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1.egg-info/PKG-INFO new/pyasn1-0.1.9/pyasn1.egg-info/PKG-INFO --- old/pyasn1-0.1.8/pyasn1.egg-info/PKG-INFO 2015-06-21 22:50:05.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1.egg-info/PKG-INFO 2015-09-28 14:07:47.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 1.0 +Metadata-Version: 1.1 Name: pyasn1 -Version: 0.1.8 +Version: 0.1.9 Summary: ASN.1 types and codecs Home-page: http://sourceforge.net/projects/pyasn1/ Author: Ilya Etingof <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/pyasn1.egg-info/SOURCES.txt new/pyasn1-0.1.9/pyasn1.egg-info/SOURCES.txt --- old/pyasn1-0.1.8/pyasn1.egg-info/SOURCES.txt 2015-06-21 22:50:05.000000000 +0200 +++ new/pyasn1-0.1.9/pyasn1.egg-info/SOURCES.txt 2015-09-28 14:07:47.000000000 +0200 @@ -1,9 +1,11 @@ -CHANGES -LICENSE +CHANGES.txt +LICENSE.txt MANIFEST.in -README -THANKS -TODO +README.txt +THANKS.txt +TODO.txt +requirements.txt +setup.cfg setup.py doc/codecs.html doc/constraints.html @@ -33,7 +35,6 @@ pyasn1/codec/der/encoder.py pyasn1/compat/__init__.py pyasn1/compat/binary.py -pyasn1/compat/iterfunc.py pyasn1/compat/octets.py pyasn1/type/__init__.py pyasn1/type/base.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/setup.cfg new/pyasn1-0.1.9/setup.cfg --- old/pyasn1-0.1.8/setup.cfg 2015-06-21 22:50:06.000000000 +0200 +++ new/pyasn1-0.1.9/setup.cfg 2015-09-28 14:07:47.000000000 +0200 @@ -1,5 +1,8 @@ +[bdist_wheel] +universal = 1 + [egg_info] -tag_build = -tag_date = 0 tag_svn_revision = 0 +tag_date = 0 +tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/test/codec/cer/test_decoder.py new/pyasn1-0.1.9/test/codec/cer/test_decoder.py --- old/pyasn1-0.1.8/test/codec/cer/test_decoder.py 2013-02-15 21:32:15.000000000 +0100 +++ new/pyasn1-0.1.9/test/codec/cer/test_decoder.py 2015-09-15 20:06:22.000000000 +0200 @@ -17,6 +17,16 @@ assert decoder.decode(ints2octs((1, 1, 255))) == (1, null) def testFalse(self): assert decoder.decode(ints2octs((1, 1, 0))) == (0, null) + def testEmpty(self): + try: + decoder.decode(ints2octs((1, 0))) + except PyAsn1Error: + pass + def testOverflow(self): + try: + decoder.decode(ints2octs((1, 2, 0, 0))) + except PyAsn1Error: + pass class OctetStringDecoderTestCase(unittest.TestCase): def testShortMode(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-0.1.8/test/type/test_univ.py new/pyasn1-0.1.9/test/type/test_univ.py --- old/pyasn1-0.1.8/test/type/test_univ.py 2014-06-17 16:25:13.000000000 +0200 +++ new/pyasn1-0.1.9/test/type/test_univ.py 2015-09-28 14:00:16.000000000 +0200 @@ -284,6 +284,11 @@ assert univ.ObjectIdentifier((1,3,6))==(1,3,6),'prettyIn() fails' def testInput3(self): assert univ.ObjectIdentifier(univ.ObjectIdentifier('1.3') + (6,))==(1,3,6),'prettyIn() fails' + def testUnicode(self): + s = '1.3.6' + if version_info[0] < 3: + s = s.decode() + assert univ.ObjectIdentifier(s) == (1,3,6), 'unicode init fails' def testTag(self): assert univ.ObjectIdentifier().getTagSet() == tag.TagSet( (),
