From cda3ae5bd0798c56fef5a5c1462d51ca1776504e Mon Sep 17 00:00:00 2001 From: Rich Salz Date: Sun, 12 Jun 2016 21:49:40 -0400 Subject: [PATCH] RT4562: Fix misleading doc on OPENSSL_config Also changed the code to use "appname" not "filename" Reviewed-by: Matt Caswell --- crypto/conf/conf_lib.c | 18 +++++++++--------- crypto/conf/conf_sap.c | 10 +++++----- crypto/init.c | 8 ++++---- doc/crypto/OPENSSL_config.pod | 11 ++++++----- doc/crypto/OPENSSL_init_crypto.pod | 12 ++++++------ include/internal/conf.h | 4 ++-- include/openssl/crypto.h | 4 ++-- util/libcrypto.num | 2 +- 8 files changed, 35 insertions(+), 34 deletions(-) diff --git a/crypto/conf/conf_lib.c b/crypto/conf/conf_lib.c index c99837387e..3532114917 100644 --- a/crypto/conf/conf_lib.c +++ b/crypto/conf/conf_lib.c @@ -340,19 +340,19 @@ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void) #ifndef OPENSSL_NO_STDIO -int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, - const char *config_file) +int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, + const char *appname) { - char *new_config_file = NULL; + char *newappname = NULL; - if (config_file != NULL) { - new_config_file = strdup(config_file); - if (new_config_file == NULL) + if (appname != NULL) { + newappname = strdup(appname); + if (newappname == NULL) return 0; } - free(settings->config_name); - settings->config_name = new_config_file; + free(settings->appname); + settings->appname = newappname; return 1; } @@ -360,6 +360,6 @@ int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings) { - free(settings->config_name); + free(settings->appname); free(settings); } diff --git a/crypto/conf/conf_sap.c b/crypto/conf/conf_sap.c index a1c25b3ee6..bed95abea4 100644 --- a/crypto/conf/conf_sap.c +++ b/crypto/conf/conf_sap.c @@ -24,18 +24,18 @@ static int openssl_configured = 0; #if OPENSSL_API_COMPAT < 0x10100000L -void OPENSSL_config(const char *config_name) +void OPENSSL_config(const char *appname) { OPENSSL_INIT_SETTINGS settings; memset(&settings, 0, sizeof(settings)); - if (config_name != NULL) - settings.config_name = strdup(config_name); + if (appname != NULL) + settings.appname = strdup(appname); OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, &settings); } #endif -void openssl_config_int(const char *config_name) +void openssl_config_int(const char *appname) { if (openssl_configured) return; @@ -47,7 +47,7 @@ void openssl_config_int(const char *config_name) #endif ERR_clear_error(); #ifndef OPENSSL_SYS_UEFI - CONF_modules_load_file(NULL, config_name, + CONF_modules_load_file(NULL, appname, CONF_MFLAGS_DEFAULT_SECTION | CONF_MFLAGS_IGNORE_MISSING_FILE); #endif diff --git a/crypto/init.c b/crypto/init.c index 2344f991d2..693037fe00 100644 --- a/crypto/init.c +++ b/crypto/init.c @@ -153,15 +153,15 @@ static void ossl_init_no_add_algs(void) static CRYPTO_ONCE config = CRYPTO_ONCE_STATIC_INIT; static int config_inited = 0; -static const char *config_filename; +static const char *appname; static void ossl_init_config(void) { #ifdef OPENSSL_INIT_DEBUG fprintf(stderr, "OPENSSL_INIT: ossl_init_config: openssl_config(%s)\n", - config_filename==NULL?"NULL":config_filename); + appname == NULL ? "NULL" : appname); #endif - openssl_config_int(config_filename); + openssl_config_int(appname); config_inited = 1; } static void ossl_init_no_config(void) @@ -512,7 +512,7 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) if (opts & OPENSSL_INIT_LOAD_CONFIG) { int ret; CRYPTO_THREAD_write_lock(init_lock); - config_filename = (settings == NULL) ? NULL : settings->config_name; + appname = (settings == NULL) ? NULL : settings->appname; ret = CRYPTO_THREAD_run_once(&config, ossl_init_config); CRYPTO_THREAD_unlock(init_lock); if (!ret) diff --git a/doc/crypto/OPENSSL_config.pod b/doc/crypto/OPENSSL_config.pod index 1a8af869c0..eae634a8fa 100644 --- a/doc/crypto/OPENSSL_config.pod +++ b/doc/crypto/OPENSSL_config.pod @@ -8,15 +8,16 @@ OPENSSL_config, OPENSSL_no_config - simple OpenSSL configuration functions #include - void OPENSSL_config(const char *config_name); + #if OPENSSL_API_COMPAT < 0x10100000L + void OPENSSL_config(const char *appname); void OPENSSL_no_config(void); + #endif =head1 DESCRIPTION -OPENSSL_config() configures OpenSSL using the standard B -configuration file name using B. If B is NULL then -the file specified in the environment variable B will be used, -and if that is not set then a system default location is used. +OPENSSL_config() configures OpenSSL using the standard B and +reads from the application section B. If B is NULL then +the default section, B, will be used. Errors are silently ignored. Multiple calls have no effect. diff --git a/doc/crypto/OPENSSL_init_crypto.pod b/doc/crypto/OPENSSL_init_crypto.pod index a35325b3f2..ff2c2e8282 100644 --- a/doc/crypto/OPENSSL_init_crypto.pod +++ b/doc/crypto/OPENSSL_init_crypto.pod @@ -16,8 +16,8 @@ initialisation and deinitialisation functions void OPENSSL_thread_stop(void); OPENSSL_INIT_SETTINGS *OPENSSL_init_new(void); - int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *init, - const char* name); + int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *init, + const char* name); void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *init); =head1 DESCRIPTION @@ -191,8 +191,8 @@ described in the NOTES section below. The B flag will load a default configuration file. To specify a different file, an B must be created and used. The routines -OPENSSL_init_new() and OPENSSL_INIT_set_config_filename() can be used to -allocate the object and set the configuration filename, and then the +OPENSSL_init_new() and OPENSSL_INIT_set_config_appname() can be used to +allocate the object and set the application name, and then the object can be released with OPENSSL_INIT_free() when done. =head1 NOTES @@ -220,7 +220,7 @@ call should use the RTLD_NODELETE flag (where available on the platform). =head1 RETURN VALUES The functions OPENSSL_init_crypto, OPENSSL_atexit() and -OPENSSL_INIT_set_config_filename() return 1 on success or 0 on error. +OPENSSL_INIT_set_config_appname() return 1 on success or 0 on error. =head1 SEE ALSO @@ -229,7 +229,7 @@ L =head1 HISTORY The OPENSSL_init_crypto(), OPENSSL_cleanup(), OPENSSL_atexit(), -OPENSSL_thread_stop(), OPENSSL_init_new(), OPENSSL_INIT_set_config_filename() +OPENSSL_thread_stop(), OPENSSL_init_new(), OPENSSL_INIT_set_config_appname() and OPENSSL_INIT_free() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/include/internal/conf.h b/include/internal/conf.h index 8f3e09c896..ada3f92b4d 100644 --- a/include/internal/conf.h +++ b/include/internal/conf.h @@ -18,10 +18,10 @@ extern "C" { struct ossl_init_settings_st { - char *config_name; + char *appname; }; -void openssl_config_int(const char *config_name); +void openssl_config_int(const char *appname); void openssl_no_config_int(void); void conf_modules_free_int(void); diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index c4b31d92f3..0f593498db 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -380,8 +380,8 @@ void OPENSSL_thread_stop(void); /* Low-level control of initialization */ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); #ifndef OPENSSL_NO_STDIO -int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, - const char *config_file); +int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, + const char *config_file); #endif void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); diff --git a/util/libcrypto.num b/util/libcrypto.num index 45a60b9635..44e0a655b3 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -1126,7 +1126,7 @@ i2d_X509_EXTENSIONS 1116 1_1_0 EXIST::FUNCTION: X509_STORE_CTX_get0_store 1117 1_1_0 EXIST::FUNCTION: PKCS12_pack_p7data 1118 1_1_0 EXIST::FUNCTION: RSA_print_fp 1119 1_1_0 EXIST::FUNCTION:RSA,STDIO -OPENSSL_INIT_set_config_filename 1120 1_1_0 EXIST::FUNCTION:STDIO +OPENSSL_INIT_set_config_appname 1120 1_1_0 EXIST::FUNCTION:STDIO EC_KEY_print_fp 1121 1_1_0 EXIST::FUNCTION:EC,STDIO BIO_dup_chain 1122 1_1_0 EXIST::FUNCTION: PKCS8_PRIV_KEY_INFO_it 1123 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: -- 2.34.1