123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- WARNING WARNING WARNING!!!
- This stuff is experimental, may change radically or be deleted altogether
- before OpenSSL 0.9.7 release. You have been warned!
- 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_init=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.
|