1 % file: .../doc/future-work.tex
3 % $Header: /cvs/root/Security/SecuritySNACCRuntime/doc/Attic/future-work.tex,v 1.1.1.1 2001/05/18 23:14:10 mb Exp $
4 % $Log: future-work.tex,v $
5 % Revision 1.1.1.1 2001/05/18 23:14:10 mb
6 % Move from private repository to open source repository
8 % Revision 1.1.1.1 1999/03/16 18:05:52 aram
9 % Originals from SMIME Free Library.
11 % Revision 1.1 1997/01/01 22:47:45 rj
15 \chapter{\label{concl-chapter
}Future Work
}
17 There are still many interesting and useful things that can be done to
18 Snacc. To name a few, Snacc could be improved to:
20 \item{support the new features of
1993 ASN
.1}
21 \item{generate forward encoders that use only the indefinite length form for constructed BER values
}
22 \item{support new encoding rules such as the variants of Packed Encoding Rules (PER),
23 Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER).
}
24 \item{parse complex values.
}
27 1993 ASN
.1 has many improvements such as eliminating macros and adding
28 stronger mechanisms for adding type semantics. With stronger
29 semantics, the compiler can do more for the user.
31 New encoding rules such as PER offer improved compression and
32 possibly better performance in certain cases. They can be added to
33 the compiler by adding a new backend to the compiler and providing a
36 The ability to parse complex ASN
.1 value notation values is useful for
37 protocol testing. It allows PDUs to be defined in a human readable
38 form and converted into their encoded representation. The combination
39 of an interpreted encoder and decoder with complex value parsing and
40 support for newer encoding rules would very useful for protocol
44 Here is a list of the things that I didn't get time to do:
48 \item {Add contexts to nibble memory. It's a pain if you decode
49 a table and then a value---you can't free the value without freeing
50 the table. This one should be relatively easy and only requires
51 modifications to the libraries and the example/user code.
}
53 \item Spiff up the table stuff.
55 \item {add subtype info (available in big parse tree) to tbl data struct
}
56 \item {add enumerated types name/value info to tbl data struct
}
57 \item {Add ANY DEFINED BY id to type mappings to tbl data struct (available in parse tree if using OBJECT-TYPE macro)
}
58 \item {Support for C++ table drivers.
}
59 \item {I'm sure there's more
}
62 \item {existing bugs!
}
64 \item {The hash stuff for ANY DEFINED BY mappings will bomb if you go more than
4 levels deep (unlikely, but
\dots). Add linear chaining at the bottom level.
}
65 \item {add the ability to handle CMIP style ANY DEFINED BY ids. Currently snacc gripes about this and stops.
}
67 Eg ::= SEQUENCE
{ id Foo, ANY DEFINED BY id
}
68 Foo::= CHOICE
{ a OBJECT IDENTIFIER, b INTEGER
}
72 \item {Bigger changes
}
74 \item {punt yacc and lex and use PCCTS (Purdue Compiler Construction
\dots) (better error reporting, easier to deal with (top down), etc.)
}
75 \item {make an ASN
.1 '
93 version (no more macros!!!)
}
77 \item {make forwards encoders (use only indefinite lengths, though) for C, C++ and tables. Allows simpler buffer writing.
}