Skip to main content

buildstatus coverage

About

A Python package for ASN.1 parsing, encoding and decoding.

This project is under development and does only support a subset of the ASN.1 specification syntax. BER and PER codecs are also under development.

Project homepage: https://github.com/eerimoq/asn1tools

Documentation: http://asn1tools.readthedocs.org/en/latest

Installation

pip install asn1tools

Example Usage

This is an example ASN.1 specification defining the messages of a fictitious Foo protocol (based on the FooProtocol on Wikipedia).

Foo DEFINITIONS ::= BEGIN

    Question ::= SEQUENCE {
        id        INTEGER,
        question  IA5String
    }

    Answer ::= SEQUENCE {
        id        INTEGER,
        answer    BOOLEAN
    }

END

Compile the ASN.1 specification, and encode and decode a question using the default codec (BER).

>>> import asn1tools
>>> foo = asn1tools.compile_file('tests/files/foo.asn')
>>> encoded = foo.encode('Question', {'id': 1, 'question': 'Is 1+1=3?'})
>>> encoded
bytearray(b'0\x0e\x02\x01\x01\x16\x09Is 1+1=3?')
>>> foo.decode('Question', encoded)
{'id': 1, 'question': 'Is 1+1=3?'}

The same ASN.1 specification, but using the PER codec.

>>> import asn1tools
>>> foo = asn1tools.compile_file('tests/files/foo.asn', 'per')
>>> encoded = foo.encode('Question', {'id': 1, 'question': 'Is 1+1=3?'})
>>> encoded
bytearray(b'\x01\x01\tIs 1+1=3?')
>>> foo.decode('Question', encoded)
{'id': 1, 'question': 'Is 1+1=3?'}

See the examples folder for additional examples

Contributing

  1. Fork the repository.

  2. Implement the new feature or bug fix.

  3. Implement test case(s) to ensure that future changes do not break legacy.

  4. Run the tests.

    make test
  5. Create a pull request.

Metadata

Release files for asn1tools 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asn1tools 0.9.0
File Size Uploaded
asn1tools-0.9.0.tar.gz 103.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asn1tools 0.9.0
File Interpreter ABI Platform
asn1tools-0.9.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 121.5 kB

Release files / asn1tools-0.9.0.tar.gz

Download URL asn1tools-0.9.0.tar.gz
Size 103.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fa7fae40e890868ec1cec3329609d0fd4dd9c38e45f49559f30e3f60a1b085ef
BLAKE2b-256 checksum
How to use checksums
e9096ab03748d3839ebf584abc2d32791dc01802de76717bd002131eeb7927b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / asn1tools-0.9.0-py2.py3-none-any.whl

Download URL asn1tools-0.9.0-py2.py3-none-any.whl
Size 17.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
790fd80e6b8245223c4f471dbb0cba841e81d82e0dd2f572426a15f61e3570ac
BLAKE2b-256 checksum
How to use checksums
925a1b53329020eaef2335014a1f875177acefb93d6f90ae0e9ef7468c2b834c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.168.0

1 release file

0.167.0

1 release file

0.166.0

1 release file

0.165.0

1 release file

0.164.0

1 release file

0.160.0

1 release file

0.159.0

1 release file

0.158.0

1 release file

0.157.0

1 release file

0.155.3

1 release file

0.155.2

1 release file

0.155.1

1 release file

0.155.0

1 release file

0.153.2

1 release file

0.92.0

2 release files

0.91.0

2 release files

0.90.0

2 release files

0.89.0

2 release files

0.88.0

2 release files

0.87.0

2 release files

0.86.0

2 release files

0.85.0

2 release files

0.84.0

2 release files

0.83.0

2 release files

0.82.0

2 release files

0.81.0

2 release files

0.80.1

2 release files

0.80.0

2 release files

0.79.0

2 release files

0.78.0

2 release files

0.77.0

2 release files

0.76.0

2 release files

0.75.0

2 release files

0.74.0

2 release files

0.73.0

2 release files

0.65.0

2 release files

0.64.0

2 release files

0.63.0

2 release files

0.62.0

2 release files

0.61.0

2 release files

0.60.0

2 release files

0.59.0

2 release files

0.58.0

2 release files

0.57.0

2 release files

0.55.0

2 release files

0.54.0

2 release files

0.53.0

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.0

2 release files

0.49.0

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.0

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.28.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.18.0

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.3.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page