1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- Configuration modules. These are a set of modules which can perform
- various configuration functions.
- Currently the routines should be called at most once when an application
- starts up: that is before it starts any threads.
- The routines read a configuration file set up like this:
- -----
- #default section
- openssl_conf=init_section
- [init_section]
- module1=value1
- #Second instance of module1
- module1.1=valueX
- module2=value2
- module3=dso_literal
- module4=dso_section
- [dso_section]
- path=/some/path/to/some/dso.so
- other_stuff=other_value
- ----
- When this file is loaded a configuration module with the specified string
- (module* in the above example) is looked up and its init function called as:
- int conf_init_func(CONF_IMODULE *md, CONF *cnf);
- The function can then take whatever action is appropriate, for example further
- lookups based on the value. Multiple instances of the same config module can be
- loaded.
- When the application closes down the modules are cleaned up by calling an
- optional finish function:
- void conf_finish_func(CONF_IMODULE *md);
- The finish functions are called in reverse order: that is the last module
- loaded is the first one cleaned up.
- If no module exists with a given name then an attempt is made to load a DSO
- with the supplied name. This might mean that "module3" attempts to load a DSO
- called libmodule3.so or module3.dll for example. An explicit DSO name can be
- given by including a separate section as in the module4 example above.
- The DSO is expected to at least contain an initialization function:
- int OPENSSL_init(CONF_IMODULE *md, CONF *cnf);
- and may also include a finish function:
- void OPENSSL_finish(CONF_IMODULE *md);
- Static modules can also be added using,
- int CONF_module_add(char *name, dso_mod_init_func *ifunc, dso_mod_finish_func
- *ffunc);
- where "name" is the name in the configuration file this function corresponds
- to.
- A set of builtin modules (currently only an ASN1 non functional test module)
- can be added by calling OPENSSL_load_builtin_modules().
- The function OPENSSL_config() is intended as a simple configuration function
- that any application can call to perform various default configuration tasks.
- It uses the file openssl.cnf in the usual locations.
|