simple OpenSSL configuration functions
() configures OpenSSL using the
configuration file name using config_name
then the default name
will be used. Any errors are
ignored. Further calls to OPENSSL_config
have no effect.
() disables configuration. If
called before OPENSSL_config
(), no configuration
It is strongly
new applications call
() or the more sophisticated
functions such as
during initialization (that is before starting any threads). By doing this, an
application does not need to keep track of all configuration options and some
new functionality can be supported automatically.
It is also possible to automatically call
() when an application calls
by compiling an application with the preprocessor symbol
#define'd. In this way
configuration can be added without source changes.
The environment variable
set to specify the location of the configuration file.
Currently ASN.1 OBJECT and ENGINE configuration can be performed.
There are several reasons why calling the OpenSSL configuration routines is
advisable. For example new ENGINE functionality was added to OpenSSL 0.9.7. In
OpenSSL 0.9.7 control functions can be supported by ENGINEs which can be used
(among other things) to load dynamic ENGINEs from shared libraries (DSOs).
However very few applications currently support the control interface and so
very few can load and use dynamic ENGINEs. Equally in future more
sophisticated ENGINEs will require certain control operations to customize
them. If an application calls OPENSSL_config
doesn't need to know or care about ENGINE control operations because they can
be performed by editing a configuration file.
Applications should free up configuration at application closedown by calling
() return a value.
- standard configuration file
() first appeared in OpenSSL
() function is designed to be a
very simple "call it and forget it" function. As a result its
behaviour is somewhat limited. It ignores all errors silently and it can only
load from the standard configuration file location for example.
It is however much
better than nothing.
Applications which need finer control over their configuration functionality
should use the configuration functions such as