| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
Added ability of combining `SingleValueConstraint` and
`PermittedAlphabetConstraint` objects into one for proper
modeling `FROM ... EXCEPT ...` ASN.1 clause.
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Added `WithComponentsConstraint` along with related
`ComponentPresentConstraint` and `ComponentAbsentConstraint` classes
to be used with `Sequence`/`Set` types representing
`SET ... WITH COMPONENTS ...` like ASN.1 constructs.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also many fixes here and there to docs and docstrings.
|
| |
|
| |
|
|
|
|
|
| |
It seems to clutter representation printout, especially in the
rendered docs.
|
| |
|
|
|
|
| |
Also fix references to exception objects in other docstrings.
|
| |
|
|
|
|
|
| |
Prior to this fix, recursively encoded open types won't get
fully decoded all the way.
|
|
|
|
|
|
| |
* Fix CER/DER encoders to respect open types
Added a bunch of unit tests to CER/DER codecs covering open types.
|
| |
|
|
|
|
| |
This change adds more explanations and examples on ASN.1 ANY
DEFINED BY syntax (OpenType).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
- Added support for subseconds CER/DER encoding edge cases in
`GeneralizedTime` codec
- Fixed 3-digit fractional seconds value CER/DER encoding of
`GeneralizedTime`
|
|
|
|
|
|
|
| |
The new exception classes names are `PyAsn1UnicodeDecodeError`
and `PyAsn1UnicodeEncodeError`.
Also, unit tests added.
|
|
|
| |
This change helps telling unicode-related exceptions from other PyAsn1Error exceptions.
|
|
|
|
|
|
| |
Fixes `AnyDecoder` to accept `TagMap` as `asn1Spec`.
The use-case is to make `AnyDecoder` operational when
dumping raw value on error condition is enabled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
(#161)
|
| |
|
|
|
|
| |
Also extend copyright to the year 2019
|