Commit ce974305 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

More autoconfig docs.

parent 3b7dd6d3
Loading
Loading
Loading
Loading
+78 −3
Original line number Diff line number Diff line
@@ -87,8 +87,8 @@ section containing configuration module specific information. E.g.

 ... engine stuff here ...

Currently there are two supported configuration modules supported. One for
ASN1 objects another for ENGINE configuration.
Currently there are two configuration modules. One for ASN1 objects another
for ENGINE configuration.

=head2 ASN1 OBJECT CONFIGURATION MODULE

@@ -107,7 +107,82 @@ as any compliant applications. For example:

=head2 ENGINE CONFIGURATION MODULE

To be continued...
This ENGINE configuration module has the name B<engines>. The value of this
variable points to a section containing further ENGINE configuration
information.

The section pointed to by B<engines> is a table of engine names (though see
B<engine_id> below) and further sections containing configuration informations
specific to each ENGINE.

Each ENGINE specific section is used to set default algorithms, load
dynamic, perform initialization and send ctrls. The actual operation performed
depends on the I<command> name which is the name of the name value pair. The
currently supported commands are listed below.

For example:

 [engine_section]

 # Configure ENGINE named "foo"
 foo = foo_section
 # Configure ENGINE named "bar"
 bar = bar_section

 [foo_section]
 ... foo ENGINE specific commands ...

 [bar_section]
 ... "bar" ENGINE specific commands ...

The command B<engine_id> is used to give the ENGINE name. If used this 
command must be first. For example:

 [engine_section]
 # This would normally handle an ENGINE named "foo"
 foo = foo_section

 [foo_section]
 # Override default name and use "myfoo" instead.
 engine_id = myfoo

The command B<dynamic_path> loads and adds an ENGINE from the given path. It
is equivalent to sending the ctrls B<SO_PATH> with the path argument followed
by B<LIST_ADD> with value 2 and B<LOAD> to the dynamic ENGINE. If this is
not the required behaviour then alternative ctrls can be sent directly
to the dynamic ENGINE using ctrl commands.

The command B<init> determines whether to initialize the ENGINE. If the value
is B<0> the ENGINE will not be initialized, if B<1> and attempt it made to
initialized the ENGINE immediately. If the B<init> command is not present
then an attempt will be made to initialize the ENGINE after all commands in
its section have been processed.

The command B<default_algorithms> sets the default algorithms an ENGINE will
supply using the functions B<ENGINE_set_default_string()>

If the name matches none of the above command names it is assumed to be a
ctrl command which is sent to the ENGINE. The value of the command is the 
argument to the ctrl command. If the value is the string B<EMPTY> then no
value is sent to the command.

For example:


 [engine_section]

 # Configure ENGINE named "foo"
 foo = foo_section

 [foo_section]
 # Load engine from DSO
 dynamic_path = /some/path/fooengine.so
 # A foo specific ctrl.
 some_ctrl = some_value
 # Another ctrl that doesn't take a value.
 other_ctrl = EMPTY
 # Supply all default algorithms
 default_algorithms = ALL

=head1 NOTES