./security/py-asn1, ITU Abstract Syntax Notification for Python

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.4.2, Package name: py27-asn1-0.4.2, Maintainer: pkgsrc-users

ASN.1 tools for Python

Whenever data structures are described in some machine and programming
language independent and unambiguous way, such specification is called
abstract syntax, by contrast with machine/language specific methods,
which are called 'concrete' or 'transfer' syntaxes.

Abstract syntaxes appear useful in networking as a tool for engineering
protocols in a clear and portable way. Moreover, once a protocol is
described in some abstract language, protocol parsers and builders
could be automatically generated for various computing
architectures/programming languages, thus saving engineers from
implementing low-level transport details by hand.

Abstract Syntax Notation One (ASN.1) is a set of ITU standards
defining particular implementation of abstract data description
language accompanied by a collection of transfer encoding methods.
Perhaps the most widely used among these data serialization methods
is Basic Encoding Rules (BER) together with its derivatives (DER and
CER), while Packed Encoding Rules (PER) aims at most compact data
representation whilst in the wire.


Required to run:
[devel/py-setuptools] [lang/python27]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 6f997e4b9aace55948e45cffe32980bb92985ce2
RMD160: 500f1a7ea274d5ed41af67609b5df6617f3c4223
Filesize: 115.629 KB

Version history: (Expand)


CVS history: (Expand)


   2017-11-28 10:14:34 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-asn1: updated to 0.4.2

Revision 0.4.2:
---------------
- Fixed explicit tag splitting in chunked encoding mode at
  OctetString and BitString encoders

Revision 0.4.1:
---------------
- ANY DEFINED BY clause support implemented
- Encoders refactored to take either a value (as ASN.1 object)
  or a Python value plus ASN.1 schema
- BitString decoder optimised for better performance when running on
  constructed encoding
- Constructed types' .getComponentBy*() methods accept the default
  parameter to return instead if schema object is to be returned
- Constructed types' .getComponentBy*() methods accept the instantiate
  parameter to disable automatic inner component instantiation
- The ASN.1 types' __repr__ implementation reworked for better readability
  at the cost of not being eval-compliant
- Most ASN.1 types' __str__ magic methods (except for OctetString and
  character types) reworked to call .prettyPrint() rather than
  .prettyPrint calling __str__ as it was before. The intention is
  to eventually deprecate .prettyPrint() in favor of str().
  The other related change is that str() of enumerations and boolean
  types will return string label instead of number.
- Fixed Choice.clear() to fully reset internal state of the object
- Sphinx documentation rearranged, simplified and reworded
- The isValue singleton is now the only way to indicate ASN.1 schema
  as opposed to ASN.1 schema instance. The legacy None initializer
  support has been removed.
- Changed Null object initialization behaviour: previous default
  value ('') is not set anymore. Thus Null() call produces a
  ASN.1 schema object, while Null('') - value object.
- Migrated all docs and references from SourceForge
- Imports PEP8'ed
- Fixed ASN.1 encoder not to omit empty substrate produced for inner
  component if the inner component belongs to the simple class (as
  opposed to constructed class)
- Fixed CER/DER encoders to respect tagged CHOICE when ordering
  SET components
- Fixed ASN.1 types not to interfere with the Pickle protocol
- Fixed Sequence/SequenceOf types decoding heuristics in schema-less
  decoding mode
   2017-10-06 08:34:36 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-asn1: update to 0.3.7

Revision 0.3.7:
Fixed ASN.1 time types pickling/deepcopy'ing
   2017-09-30 17:12:30 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-asn1: update to 0.3.6

Revision 0.3.6:
* End-of-octets encoding optimized at ASN.1 encoders
* The __getitem__/__setitem__ behavior of Set/Sequence and SetOf/SequenceOf \ 
objects aligned with the canonical Mapping and Sequence protocols in part
* Fixed crash in ASN.1 encoder when encoding an explicitly tagged component of a \ 
Sequence
   2017-09-17 12:18:41 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-asn1: update to 0.3.5

Revision 0.3.5:
Codecs signatures unified and pass the options kwargs through the call chain
Explicit tag encoding optimized to avoid unnecessary copying
End-of-octets sentinel encoding optimized
Refactored ASN.1 codecs properties to silently enforce proper length and chunk \ 
size encoding modes
Fixed DER encoder to always produce primitive encoding
Fixed crash at SequenceOf native decoder
Fixed Real.prettyPrint() to fail gracefully on overflow
Fixed a couple of crashes when debug mode is enabled
   2017-09-08 09:28:31 by Adam Ciarcinski | Files touched by this commit (2)
Log message:
Revision 0.3.4:
- Fixed Native encoder to handle SEQUENCE/SET objects without
  the componentType property
- Added missing component-less SEQUENCE/SET objects dict duck-typing support
- Fixed unnecessary duplicate tags detection at NamesType.tagMap
- Fixed crash at SEQUENCE and SEQUENCE OF CER encoder when running
  in schemaless mode
- Fixed Character types instantiation from OctetString type -- double
  unicode decoding may have scrambled the data
   2017-09-04 06:50:26 by Adam Ciarcinski | Files touched by this commit (1) | Package updated
Log message:
PLIST update
   2017-08-06 21:25:45 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
Revision 0.3.2:
- Fixed SequenceOf/SetOf types initialization syntax to remain
  backward compatible with pyasn1 0.2.*
- Rectified thread safety issues by moving lazy, run-time computation
  into object initializer.
- Fixed .isValue property to return True for empty SetOf/SequenceOf
  objects
- Fixed GeneralizedTime/UTCTime CER/DER codecs to actually get invoked
- Fixed DER/CER encoders handling optional SEQUENCE/SET fields containing
  nested SEQUENCE/SET with optional fields.
- Fixed crash in SequenceOf/SetOf pretty printing and decoding (in some
  cases)
- Fixed documentation markup issues.
   2017-07-27 20:36:10 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
Revision 0.3.1:
- ASN.1 types __init__(), .clone() and .subtype() signatures
  refactored into keyword arguments to simplify their signatures.
- ASN.1 types initialization refactored to minimize the use of
  relatively expensive isNoValue() call
- Lazily pre-populate list of values of Sequence/Set/Choice types
- NamedTypes comparison made more efficient
- More efficient constraints computation and code clean up
- The __getitem__() implementation of some ASN.1 types & tag object
  refactored for better performance
- BER/CER/DER value encoders refactored to produce either tuple of
  bytes or octet-stream depending on what is more optimal
- Reduced the frequency of expensive isinstance() calls
- Tag-related classes optimized, refactored into properties and
  documented.
- The NamedValues implementation refactored to mimic Python dict, its use
  in ASN.1 types refactored into properties and better documented.
  WARNING: this change introduces a deviation from original API.
- NamedType family of classes overhauled, optimized and documented.
- The `componentType` attribute of constructed ASN.1 types turned
  read-only on instances.
- Sequence/Set DER/CER/DER decoder optimized to skip the case of
  reordered components handling when not necessary.
- Tags and constraints-related getter methods refactored into read-only
  instance attributes.
- The .hasValue() method refactored into .isValue property. All ASN.1
  objects now support them, not just scalars.
- The Real.{isInfinity, isPlusInfinity, isMinusInfinity} methods
  refactored into properties and renamed into IsInf, IsPlusInf and isMinusInf
- The end-of-octets type refactored to ensure it is a singleton. Codecs
  changed to rely on that for better performance.
- Codecs lookup made more efficient at BER/CER/DER decoder main loop by
  assigning `typeId` to every ASN.1 type, not just ambiguous ones.
- The .getComponent*() methods of constructed ASN.1 types changed
  to lazily instantiate underlying type rather than return `None`.
  This should simplify its API as initialization like `X[0][1] = 2` becomes
  possible.
  WARNING: this change introduces a deviation from the original API.
- The .setComponent*() methods of SetOf/SequenceOf types changed not
  to allow uninitialized "holes" inside the sequences of their components.
  They now behave similarly to Python lists.
  WARNING: this change introduces a deviation from the original API.
- Default and optional components en/decoding of Constructed type
  refactored towards better efficiency and more control.
- OctetsString and Any decoder optimized to avoid creating ASN.1
  objects for chunks of substrate. Instead they now join substrate
  chunks together and create ASN.1 object from it just once.
- The GeneralizedTime and UTCTime types now support to/from Python
  datetime object conversion.
- Unit tests added for the `compat` sub-package.
- Fixed BitString named bits initialization bug.
- Fixed non-functional tag cache (when running Python 2) at DER decoder.
- Fixed chunked encoding restriction on DER encoder.
- Fixed SET components ordering at DER encoder.
- Fixed BIT STRING & OCTET STRING encoding to be always non-chunked (e.g.
  primitive) at DER encoder
- Fixed `compat.integer.from_bytes()` behaviour on empty input.