summaryrefslogtreecommitdiff
path: root/TODO.rst
blob: 5c79ee7cdfdd2a9de4cc9fee98905b378d12151b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

Things to be done
=================

Big things to tackle, anyone interested is welcome to fork pyasn1, work on
it and come up with a PR!

New codecs
----------

* PER
* OER
* XER
* LWER
* JSON (alinged with existing experimental schemas)

Lazy codecs
-----------

Implement a thin layer over base types to cache pieces
of substrate being decoded till the very moment of ASN.1
object access in the parse tree.

Codecs generator interface
--------------------------

For indefinite length or chunked encoding mode, make codecs
iterable producing/consuming substrate/objects.

ASN.1 schema compiler
---------------------

Ideally, the compiler should parse modern schema files and be
designed to emit code for arbitrary languages (including SQL).

Base types
----------

Implement X.680 constructs, including information schema.

Examples
--------

Add examples, including advanced/obscure use cases.

Documentation
-------------

Document more API, add notes and example snippets.

More fresh modules
------------------

Compile and ship more Pythonized ASN.1 modules for
various ASN.1-based protocols (e.g. Kerberos etc).
Refresh outdated modules in pyasn1-packages.

Minor, housekeeping things
--------------------------

* more PEP8'ing at places
* consider simplifying repr(), otherwise it tend to be too hard to grasp
* Specialize ASN.1 character and useful types

* ber.decoder:

    * suspend codec on underrun error ?
    * present subtypes ?
    * component presence check wont work at innertypeconst
    * type vs value, defaultValue

* ber.encoder:

    * Asn1Item.clone() / shallowcopy issue
    * large length encoder?
    * lookup type by tag first to allow custom codecs for non-base types

* type.useful:

    * may need to implement prettyIn/Out

* type.char:

    * may need to implement constraints

* type.namedtypes

    * type vs tagset name convention

* how untagged TagSet should be initialized?

* type and codecs for Real needs refactoring