| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
In hope to get more builds and because Trusty should be the way
to go.
|
|
|
|
| |
In hope to get more builds back to life.
|
|
|
|
|
| |
When SEQUENCE has defaulted component of constructed type,
recursively instantiate defaulted component and assign instantiated
asn1 object to SEQUENCE field.
|
| |
|
|
|
| |
Use `asn1ate` entry point in the documentation.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\ |
|
| | |
|
|/ |
|
|
|
|
|
|
|
| |
Slightly speed up builds and reduce load on PyPI servers.
For more information, see:
https://docs.travis-ci.com/user/caching/#pip-cache
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The wheel package format supports including the license file. This is
done using the [metadata] section in the setup.cfg file. For additional
information on this feature, see:
https://wheel.readthedocs.io/en/stable/index.html#including-the-license-in-the-generated-wheel-file
Helps the package comply with its own license:
> 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.
|
| |
|
|
|
|
|
| |
Not all implementations have to implement getsizeof() and may raise
TypeError instead. Notably, Pypy will always raise TypeError (unless a
default value is provided).
|
| |
|
|
|
|
|
|
| |
localize explicit tag slitting to chunked mode at OctetString and BitString encoders
The inner chunks tagging logic is to be researched -- I'm not certain it works as it supposed to
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
* __str__() of ASN.1 types reworked to serve instead of .prettyPrint()
Related changes: `str()` on enumerations and boolean will return
a string label rather than a number.
|
| |
| |
| | |
At the same time __repr__() stopped being eval()-compliant
|
| |
| |
| |
| | |
* `default` kwarg added to .getComponentBy*() methods
|