| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
In `BitString.__int__()`
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The goal of this change is to make the decoder yielding on input
data starvation and resuming from where it stopped whenever the
caller decides to try again (hopefully making sure that some more
input becomes available).
This change makes it possible for the decoder to operate on streams
of data (meaning that the entire DER blob might not be immediately
available on input).
On top of that, the decoder yields partially reconstructed ASN.1
object on input starvation making it possible for the caller to
inspect what has been decoded so far and possibly consume partial
ASN.1 data.
All these new feature are natively available through
`StreamingDecoder` class. Previously published API is implemented
as a thin wrapper on top of that ensuring backward compatibility.
|
| | |
|
| |\
| |/
|/| |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* Drop support for EOL Python 3.4
* Remove Py2.5 workarounds
* Change Travis setup to test on default Xenial
* Add support for Python 3.8 and update changelog
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Python 2.4, 2.5, 2.6, 3.2 and 3.3 are end of life. They are no longer
receiving bug fixes, including for security issues. These Pythons went
EOL on:
Python 2.6: 2013-10-29
Python 3.2: 2016-02-20
Python 3.3: 2017-09-29
For additional details on supported Python versions, see:
https://devguide.python.org/#status-of-python-branches
Removing support for EOL Pythons will reduce testing and maintenance
resources.
Using pypinfo, here are the download statistics of the project for the
last 30 days, showing limited downloads from EOL Pythons:
| python_version | percent | download_count |
| -------------- | ------: | -------------: |
| 2.7 | 90.33% | 7,975,885 |
| 3.6 | 4.95% | 437,261 |
| 3.5 | 2.99% | 263,637 |
| 3.4 | 1.02% | 89,723 |
| 2.6 | 0.69% | 60,511 |
| 3.7 | 0.02% | 2,024 |
| 3.3 | 0.00% | 441 |
| 3.2 | 0.00% | 38 |
| 3.8 | 0.00% | 9 |
| None | 0.00% | 2 |
By removing support for older Pythons, can remove or update the
following workarounds and code:
* Built-in function bin() is always available.
* Built-in function callable() is always available.
* Built-in function all() is always available.
* The collections.OrderedDict class is always available.
* The datetime.strptime() method is always available.
* The platform module is always available.
* The string.partition() method is always available.
* The NullHandler class is always available.
* The method .__trunc__() is always available.
* Can use set literals.
* Updated unittest is always available. The unittest2 module is
unnecessary.
Users on older versions of Python can continue to download, install, and
use older versions of the library that continue to have support for
older Pythons.
|
| | |
|
| | |
|
| |\
| | |
| | | |
Turn BER decoder into a suspendible generator
|
| | |
| | |
| | |
| | |
| | | |
This change should simplify decoder specialization by means
of parameterization in addition to subclassing.
|
| | |
| | |
| | |
| | | |
Make it looking more uniform and easier to override if needed.
|
| | | |
|
| | |\
| | | |
| | | |
| | | | |
into support-incomplete-substrate
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Try to reuse `SingleItemDecoder` object to leverage its caches.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | | |
Co-Authored-By: Jan Pipek <jan.pipek@gmail.com>
|
| | | |
| | | |
| | | | |
Co-Authored-By: Jan Pipek <jan.pipek@gmail.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The goal of this change is to make the decoder stopping on input
data starvation and resuming from where it stopped whenever the
caller decides to try again (hopefully making sure that some more
input becomes available).
This change makes it possible for the decoder to operate on streams
of data (meaning that the entire DER blob might not be immediately
available on input).
On top of that, the decoder yields partially reconstructed ASN.1
object on input starvation making it possible for the caller to
inspect what has been decoded so far and possibly consume partial
ASN.1 data.
All these new feature are natively available through
`StreamingDecoder` class. Previously published API is implemented
as a thin wrapper on top of that ensuring backward compatibility.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Try to reuse `SingleItemDecoder` object to leverage its caches.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | | |
Co-Authored-By: Jan Pipek <jan.pipek@gmail.com>
|
| | | |
| | | |
| | | | |
Co-Authored-By: Jan Pipek <jan.pipek@gmail.com>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The goal of this change is to make the decoder stopping on input
data starvation and resuming from where it stopped whenever the
caller decides to try again (hopefully making sure that some more
input becomes available).
This change makes it possible for the decoder to operate on streams
of data (meaning that the entire DER blob might not be immediately
available on input).
On top of that, the decoder yields partially reconstructed ASN.1
object on input starvation making it possible for the caller to
inspect what has been decoded so far and possibly consume partial
ASN.1 data.
All these new feature are natively available through
`StreamingDecoder` class. Previously published API is implemented
as a thin wrapper on top of that ensuring backward compatibility.
|
| |\ \
| | |/
| | |
| | | |
streamoptimum37
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rewrite Decoder in terms of BytesIO
BER Decoders implemented with BytesIO but for the most complex
BER UniversalConstructedTypeDecoder in terms of BytesIO
BER Decoder (stream-based) suggestion
Fixed some of the failing tests
Fixed several failed tests
Fix all remaining tests but the non-implemented Any
Implement untagged Any with back-seek
Fix cer and der to work with streams
Simplify unnecessary added complexity
Make use of IOBase hierarchy (properly?) - in progress
Tests failing
Fixed most failing tests
1 remaining
Severaů small optimizations
Fix logging
Note: As we do not want to read the whole stream, explicit output of remaining bytes is not used.
Rename and document utility functions for BER decoder
Fixed ínverted condition in BitStringDecoder.valueDecoder
Fixed wrongly acquired fullPosition in AnyDecoder.indefLenValueDecoder
Fixed logging None length
endOfStream(BytesIO) working in 2.7
Microoptimizations for endOfStream (not using it)
Test for checking binary files as substrate
Python 2.7 BytesIO wrapper for `file`s
Refactor keep API compatibility with original version
|