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(
             (),


Reply via email to