1=pod 2 3=head1 NAME 4 5OPENSSL_config, OPENSSL_no_config - simple OpenSSL configuration functions 6 7=head1 SYNOPSIS 8 9 #include <openssl/conf.h> 10 11 void OPENSSL_config(const char *config_name); 12 void OPENSSL_no_config(void); 13 14=head1 DESCRIPTION 15 16OPENSSL_config() configures OpenSSL using the standard B<openssl.cnf> 17configuration file name using B<config_name>. If B<config_name> is NULL then 18the default name B<openssl_conf> will be used. Any errors are ignored. Further 19calls to OPENSSL_config() will have no effect. The configuration file format 20is documented in the L<conf(5)|conf(5)> manual page. 21 22OPENSSL_no_config() disables configuration. If called before OPENSSL_config() 23no configuration takes place. 24 25=head1 NOTES 26 27It is B<strongly> recommended that B<all> new applications call OPENSSL_config() 28or the more sophisticated functions such as CONF_modules_load() during 29initialization (that is before starting any threads). By doing this 30an application does not need to keep track of all configuration options 31and some new functionality can be supported automatically. 32 33It is also possible to automatically call OPENSSL_config() when an application 34calls OPENSSL_add_all_algorithms() by compiling an application with the 35preprocessor symbol B<OPENSSL_LOAD_CONF> #define'd. In this way configuration 36can be added without source changes. 37 38The environment variable B<OPENSSL_CONF> can be set to specify the location 39of the configuration file. 40 41Currently ASN1 OBJECTs and ENGINE configuration can be performed future 42versions of OpenSSL will add new configuration options. 43 44There are several reasons why calling the OpenSSL configuration routines is 45advisable. For example new ENGINE functionality was added to OpenSSL 0.9.7. 46In OpenSSL 0.9.7 control functions can be supported by ENGINEs, this can be 47used (among other things) to load dynamic ENGINEs from shared libraries (DSOs). 48However very few applications currently support the control interface and so 49very few can load and use dynamic ENGINEs. Equally in future more sophisticated 50ENGINEs will require certain control operations to customize them. If an 51application calls OPENSSL_config() it doesn't need to know or care about 52ENGINE control operations because they can be performed by editing a 53configuration file. 54 55Applications should free up configuration at application closedown by calling 56CONF_modules_free(). 57 58=head1 RESTRICTIONS 59 60The OPENSSL_config() function is designed to be a very simple "call it and 61forget it" function. As a result its behaviour is somewhat limited. It ignores 62all errors silently and it can only load from the standard configuration file 63location for example. 64 65It is however B<much> better than nothing. Applications which need finer 66control over their configuration functionality should use the configuration 67functions such as CONF_load_modules() directly. 68 69=head1 RETURN VALUES 70 71Neither OPENSSL_config() nor OPENSSL_no_config() return a value. 72 73=head1 SEE ALSO 74 75L<conf(5)|conf(5)>, L<CONF_load_modules_file(3)|CONF_load_modules_file(3)>, 76L<CONF_modules_free(3),CONF_modules_free(3)> 77 78=head1 HISTORY 79 80OPENSSL_config() and OPENSSL_no_config() first appeared in OpenSSL 0.9.7 81 82=cut 83