$Id: TODO,v 1.20 2005/02/14 09:19:20 rsh Exp $

Write a user guide.  The README is getting too long now: a seperate document
with proper formatting is required.  This will probably be written in LyX.

Write custom packet creation code.  This would allow an arbitary IKE packet
to be created and sent.  The generation rules would be some sort of
specification file as command-line arguments are not flexible enough for this
task.  Probably parse with yacc/lex to avoid having to write C string handling
and pattern matching.  This would override any command-line options that
define the packet such as --aggressive, --auth, --trans, --dhgroup Etc.

Add option for XML output for easier machine readability.

Decode the currently unhandled ID types: ID_IPV6_ADDR, ID_IPV6_ADDR_SUBNET,
ID_IPV6_ADDR_RANGE, ID_DER_ASN1_DN, and ID_DER_ASN1_GN (I've never seen these
used though).

Use Token Bucket algorithm for packet transmission to allow higher output
rates, esp. when minimum select() wait is relatively large.

Allow --trans options to be specified as inclusive ranges.  This would add
a host entry for each transform attribute in the range, which could be used
to determine which attributes a server supports.

Add an option to include all known vendor IDs to the outgoing packet.
Suggested by Max Kosmach.  This would require a more complex structure to
hold the vendor IDs as the current one only contains the pattern to match
which cannot simply be used as the outgoing VendorID as it may contain
metacharacters.

Allow a variable number of packets in the UDP backoff pattern.  Some VPN
servers will return different numbers of packets, but still have a unique
pattern.

Add support for Nortel Contivity PSK cracking.  This system uses a non-
standard algorithm for calculating the hash, which is a variant of Mamro's
method.  This support can be merged from the file: psk-crack-nortel.c

Add support for Main Mode PSK cracking using a MitM attack.  Suggested by
Anton Rager.
