Configuration is handled by boost::program_options with support for command line parsing and configuration file parsing. There are multiple levels of options, an option can have options itself.
The command line has the following general form:
programname [top-level-options] command [command-options]
Some top level options are required but this also depends on the command. The requirement hints below are given for the generate command. If there is only one choice with default suboptions then it does not need to be specified (*)
The toplevel options are:
--logger name:options
This controls the logging output.
--algorithm name:options
This specifies the algorithm that the table is for. (required)
--implementation name:options
This is the implementation of the algorithm to use. (required)
--roundfunc name:options
The round function is the colors of rainbow tables or the table id of hellman tables.
--condition name:options
A condition which determines the chain end. This option basically sets the chain length.
--work name:options
The work option selects the generator of table start values. (required)
--consume name:options
The work consumer processes the table end values. (required)
--device name:options
The hardware that the implementation runs on. (required)
--randomizer name:options
the function to use to introduce noise into the start value generated by the increment work generator.
--operations XXX
The number of rounds of the algorithm to do at each kernel invocation. Shorthand for the operations suboption of --device.
--advance XXX
The table id that distinguishes tables from one another. Shorthand for the advance suboption of the round function generator.
--config <filename>
a configuration file to use.
--options
print out the combined options from the executable, the configuration file and the command line.
--network name:options
The networking client
