summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into deprecate-size-specdeprecate-size-specIlya Etingof2019-08-251-1/+1
|\
| * Add `isInconsistent` property hook to all constructed types (#170)Ilya Etingof2019-08-2514-28/+57
| | | | | | | | | | | | | | Added `isInconsistent` property to all constructed types. This property conceptually replaces `verifySizeSpec` method to serve a more general purpose e.g. ensuring all required fields are in a good shape. By default this check invokes subtype constraints verification and is run by codecs on value de/serialisation.
* | Deprecate `sizeSpec` in favor of `subtypeSpec`Ilya Etingof2019-08-2411-93/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit deprecates `subtypeSpec` attributes and keyword argument. It is now recommended to pass `ValueSizeConstraint`, as well as all other constraints, to `subtypeSpec`. By way of the change mentioned above, this commit fixes a design bug in a way of how the items assigned to constructed types are verified. Now if `Asn1Type`-based object is assigned, its compatibility is verified based on having all tags and constraint objects as the type in field definition. When a bare Python value is assigned, then field type object is cloned and initialized with the bare value (constraints verificaton would run at this moment).
* | Add `isInconsistent` property hook to all constructed typesadd-consistency-check-hookIlya Etingof2019-08-2414-28/+57
|/ | | | | | | | Added `isInconsistent` property to all constructed types. This property conceptually replaces `verifySizeSpec` method to serve a more general purpose e.g. ensuring all required fields are in a good shape. By default this check invokes subtype constraints verification and is run by codecs on value de/serialisation.
* Fix ConstraintsUnion docstringIlya Etingof2019-08-131-3/+3
|
* Prepare 0.4.7Ilya Etingof2019-08-132-1/+6
|
* Release 0.4.6v0.4.6Ilya Etingof2019-07-312-2/+2
|
* Fix failing unit tests on Py25Ilya Etingof2019-07-312-4/+16
|
* Remove a couple of `except as` statements to benefit old PythonsIlya Etingof2019-07-312-3/+15
|
* Document base ASN.1 typesIlya Etingof2019-07-1312-97/+231
| | | | Also many fixes here and there to docs and docstrings.
* Fix Python builtins ReST references in docstringsIlya Etingof2019-07-134-65/+72
|
* Fix Travis docs build on Python 3.4+Ilya Etingof2019-07-132-1/+9
|
* Remove Python `id` from `repr`Ilya Etingof2019-07-136-23/+28
| | | | | It seems to clutter representation printout, especially in the rendered docs.
* Enable docs build in TravisIlya Etingof2019-07-131-0/+1
|
* Add exception classes documentationIlya Etingof2019-07-1314-33/+122
| | | | Also fix references to exception objects in other docstrings.
* Add docstring for `.reset()` and `.clear()` methodsIlya Etingof2019-07-135-4/+31
|
* Fix to pass decoder `options` to open type decoderIlya Etingof2019-07-121-5/+6
| | | | | Prior to this fix, recursively encoded open types won't get fully decoded all the way.
* Fix CER/DER encoders to respect open types (#167)Ilya Etingof2019-07-128-124/+1165
| | | | | | * Fix CER/DER encoders to respect open types Added a bunch of unit tests to CER/DER codecs covering open types.
* Add `SequenceOf`/`SetOf` list-like slicing support (#168)Ilya Etingof2019-07-123-4/+44
|
* Add more docs on `OpenType` (#166)Ilya Etingof2019-07-098-42/+139
| | | | This change adds more explanations and examples on ASN.1 ANY DEFINED BY syntax (OpenType).
* Update FUNDING.ymlIlya Etingof2019-07-071-1/+1
|
* Add `SET|SEQUENCE OF ANY` encoding support (#165)Ilya Etingof2019-07-066-46/+410
| | | | | | | | | | | | | | | | | | | | | | | | | For example: AttributeTypeAndValues ::= SEQUENCE { type OBJECT IDENTIFIER, values SET OF ANY DEFINED BY type } This patch adds support of the above ASN.1 syntax to BER/DER/CER codecs. It appears that to implement this feature properly, `SetOf`/`SequenceOf` pyasn1 types need to have `.componentType` wrapped into something similar to `NamedType` that `Set`/`Sequence` have. That additional layer would then carry the open type meta information. Without it, `Sequence`/`Set` codec needs to signal `SetOf`/`SequenceOf` codec of the open type being processed, which is a slight hack. A other inconvenience is that when `SetOf`/`SequenceOf` deal with an open type component, they should not verify types on component assignment. Without open type property in `SetOf`/`SequenceOf`, the code checks for `Any` component type which is another hack. The above shortcomings should be addressed in the follow up patch.
* Add GitHub funding buttonIlya Etingof2019-07-041-0/+1
|
* Improve CER/DER encoding of GeneralizedTime (#164)Ilya Etingof2019-06-303-23/+76
| | | | | | - Added support for subseconds CER/DER encoding edge cases in `GeneralizedTime` codec - Fixed 3-digit fractional seconds value CER/DER encoding of `GeneralizedTime`
* Rename pyasn1 unicode exceptionsIlya Etingof2019-06-295-42/+89
| | | | | | | The new exception classes names are `PyAsn1UnicodeDecodeError` and `PyAsn1UnicodeEncodeError`. Also, unit tests added.
* Add specific exceptions for String issues (#155)Alex Shafer2019-06-293-24/+52
| | | This change helps telling unicode-related exceptions from other PyAsn1Error exceptions.
* Fix `AnyDecoder` to accept `TagMap` as `asn1Spec` (#152)Ilya Etingof2019-06-283-4/+58
| | | | | | Fixes `AnyDecoder` to accept `TagMap` as `asn1Spec`. The use-case is to make `AnyDecoder` operational when dumping raw value on error condition is enabled
* SequenceOf/SetOf to remain a schema objects (#162)Ilya Etingof2019-06-238-86/+346
| | | | | | | | | | | | | | | | | | | | | | | | * Add `omitEmptyOptionals` encoder option Added `omitEmptyOptionals` option which is respected by `Sequence` and `Set` encoders. When `omitEmptyOptionals` is set to `True`, empty initialized optional components are not encoded. Default is `False`. * Change `SequenceOf`/`SetOf` behaviour - New elements to `SequenceOf`/`SetOf` objects can now be added at any position - the requirement for the new elements to reside at the end of the existing ones (i.e. s[len(s)] = 123) is removed. - Removed default initializer from `SequenceOf`/`SetOf` types to ensure consistent behaviour with the rest of ASN.1 types. Before this change, `SequenceOf`/`SetOf` instances immediately become value objects behaving like an empty list. With this change, `SequenceOf`/`SetOf` objects remain schema objects unless a component is added or `.clear()` is called. - Added `.reset()` method to all constructed types to turn value object into a schema object.
* Remove invalid escape sequences to get rid of DeprecationWarning in Python3. ↵Harrison2019-06-202-6/+6
| | | | (#161)
* Prepare for 0.4.6Ilya Etingof2018-12-293-11/+6
|
* Release 0.4.5v0.4.5Ilya Etingof2018-12-2962-62/+63
| | | | Also extend copyright to the year 2019
* Switch Travis to xenial just for Py3.7Ilya Etingof2018-12-291-1/+1
|
* Switch Travis to trustyIlya Etingof2018-12-291-11/+11
| | | | | In hope to get more builds and because Trusty should be the way to go.
* Switch Travis to preciseIlya Etingof2018-12-291-11/+11
| | | | In hope to get more builds back to life.
* Fix defaulted constructed SEQUENCE component initialization (#146)Ilya Etingof2018-12-293-2/+21
| | | | | When SEQUENCE has defaulted component of constructed type, recursively instantiate defaulted component and assign instantiated asn1 object to SEQUENCE field.
* Fix encoder debugging under Py2Ilya Etingof2018-12-291-3/+4
|
* Fix the entrypoint of asn1ate (#145)nde2018-10-171-1/+1
| | | Use `asn1ate` entry point in the documentation.
* Fix typo in example-use-case.rstIlya Etingof2018-08-071-1/+1
|
* Add more debug logging to *ER codecs (#139)Ilya Etingof2018-08-043-44/+361
| | | | | | | | | | More debug logging added to BER family of codecs to ease encoding problems troubleshooting. Also: * code layout made a bit more sparse * potential bug in open type decoding in indefinite mode fixed
* Refactor debug logging (#138)Ilya Etingof2018-08-036-92/+97
| | | | | | | | Debug logging refactored for more efficiency when disabled and for more functionality when in use. Specifically, the global LOG object can easily be used from any function/method, not just from codec main loop as it used to be.
* Fix some typos and prepare for 0.4.5Ilya Etingof2018-07-2914-41/+49
|
* Fix package versionv0.4.4Ilya Etingof2018-07-261-1/+1
|
* Fix Travis build for Py3.7Ilya Etingof2018-07-262-2/+2
|
* Release 0.4.4Ilya Etingof2018-07-261-1/+1
|
* Fix Sequence/Set.prettyPrint crashIlya Etingof2018-07-242-1/+3
| | | | | | | When calling `.prettyPrint()` on Sequence/Set components, make sure the component is a value object (not schema) because calling `.prettyPrint` on a schema object is likely to fail.
* Switch back to offical Python 3.7 buildIlya Etingof2018-07-031-2/+2
| | | | | | It appears that Python 3.7 use in Travis-CI is finally fixed. However, it requires use of xenial distribution and sudo: true. Those have now been added to the matrix.
* Fix native encoder type map (#132)Ilya Etingof2018-06-302-2/+34
| | | | | | | | | The type map should include all ASN.1 types rather than just ambiguous ones for performance reasons. Incomplete type ID map triggers building a new TagSet out of the value being encoded. If that value does not have base tags set, that leads to a crash.
* switch back to 3.7-devIlya Etingof2018-06-291-12/+46
|
* Merge branch 'master' of github.com:etingof/pyasn1Ilya Etingof2018-06-290-0/+0
|\
| * bumped up to Python 3.7Ilya Etingof2018-06-284-2/+4
| |