If you want to contribute (implement something from the current list, or
anything), contact the developer's mailing list ...,
in order to avoid having people working on the same thing.

Current list:
+ Audit the code
+ C structure generation instead of a single array
- Add the checking of default value (e.g. 'INTEGER DEFAULT v1')
- Check _asn1_objectid_der, crashes on "0" input, gives incorrect encoding?

(+) Means high priority
(*) Means medium priority
(-) Means low priority (ie. nobody is interested to develop that)

----------------------------------------------------------------------
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
