News

4.2

  • Removed lenindef, ber_encoded attributes from the Choice – they must be taken from underlying value, as Choice does not have its own encoding
  • Do not yield extra EOC PP for Any, having indefinite length encoding and containing autodecoded DEFINED BY value

4.1

  • bered attribute, meaning if object has BER-specific encoding, is renamed to ber_encoded
  • bered attribute is replace with property showing if any of underlying values are BER-encoded. If value has length indefinite encoded explicit tag, value, if value contains BER-related encoding, or if it contains other objects that are bered, then it is bered

4.0

  • Default value is checked also for Sets, not for Sequences only
  • Incompatible change: defaulted values in Sequence/Set are always strictly checked, unless allow_default_values context option is set. strict_default_existence option disappeared
  • Strict Set/Set Of’s values ordering check

3.14

  • Additional encoding validness check: explicit tag must contain exactly one object inside. Throw DecodeError otherwise
  • allow_expl_oob context and command-line options allow skipping of that check

3.13

  • DecodeError’s decode paths are separated with :, instead of ., because of colliding with dots in OIDs
  • Ability to print element decode paths with --print-decode-path command line option (and corresponding keyword argument)
  • Ability to print tree’s branch specified with --decode-path-only

3.12

  • Fix possible uncaught TypeError in Py2 with zero bytes inside the value
  • Fix SequenceOf/SetOf raising BoundsError instead of DecodeError

3.11

  • Fix uncaught UTCTime/GeneralizedTime decode error when dealing with non ASCII-encoded values

3.10

  • Fix long-standing bug with explicitly tagged objects inside the Choice. If Choice had explicitly tagged value, then its .tlvlen reports the size without taking value’s explicit tag in advance
  • Add .fulllen and .fulloffset properties for all objects

3.9

  • SEQUENCE’s values are printed with field’s name. Previously there was the following output:

    AlgorithmIdentifier SEQUENCE[OBJECT IDENTIFIER 1.3.14.3.2.26, [UNIV 5] ANY 0500 OPTIONAL]
    

    now it is:

    AlgorithmIdentifier SEQUENCE[algorithm: OBJECT IDENTIFIER 1.3.14.3.2.26; parameters: [UNIV 5] ANY 0500 OPTIONAL]
    
  • Fixed EOC (Unicode character) repr printing issues under Python2

3.8

BER’s EOC is explicitly shown during pprinting. Following notation:

15-2 [0,0,1576]-4  . content: [0] EXPLICIT [UNIV 16] ANY

is replaced with:

  15-2∞ [0,0,1576]∞  . content: [0] EXPLICIT [UNIV 16] ANY
[...]
1587    [1,1,   0]   . content:  BER EOC
1589    [1,1,   0]   . content: EXPLICIT BER EOC

3.7

  • BER decoding support
  • BitString’s ‘’H notation support
  • termcolor package is included in the tarball

3.6

  • Ability to set values during Sequence initialization

3.5

  • Fix TagMismatch exception completeness during Choice and Set decoding. Previously we will loose offset and decode_path information about concrete TagMismatched entity

3.4

  • Strict NumericString’s value sanitation
  • Invalid encoding in string types will raise DecodeError exception, instead of Unicode*Error
  • Fixed DecodePathDefBy workability with Python 2.x

3.3

  • Fix nasty BitString decoding bug: it could fail when data follows encoded BitString value. There weren’t any problems when BitString is at the end of Sequence

3.2

  • Slightly corrected colours, now visible on white background

3.1

  • Fix bug related to DecodeError showing with DecodePathDefBy entities
  • Respect NO_COLOR environment variable

3.0

  • pyderasn.decode_path_defby() is replaced with pyderasn.DecodePathDefBy
  • Ability to turn colourized terminal output by calling pprint(..., with_colours=True). You will need termcolor package

2.1

  • Fixed invalid offset calculation when dealing with DEFINED BY objects having explicit tags

2.0

  • BIT STRINGs can also be DEFINED BY
  • Decoding process can be governed with optional ctx keyword argument to decode() method
  • defines_by_path option is now decode context option, not a keyword argument
  • Ability to do strict validation of defaulted values met in sequence, raising an exception

1.6

Ability to skip specified number of bytes (--skip) in command line utility.

1.5

  • Generic decoder’s scheme and pretty printer (pyderasn.generic_decoder()) can be used in libraries
  • Ability to specify defines_by_path during command line invocation

1.4

Ability to automatically decode DEFINED BY fields inside SEQUENCEs.

1.3

Removed __lt__/__eq__ from base class, as pylint likes it.

1.2

Full rich comparison operators added.

1.1

Trivial README addition.

1.0

Initial release.