Commit cda3ae5b authored by Rich Salz's avatar Rich Salz
Browse files

RT4562: Fix misleading doc on OPENSSL_config



Also changed the code to use "appname" not "filename"

Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
parent 036e61b1
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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);
}
+5 −5
Original line number Diff line number Diff line
@@ -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
+4 −4
Original line number Diff line number Diff line
@@ -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)
+6 −5
Original line number Diff line number Diff line
@@ -8,15 +8,16 @@ OPENSSL_config, OPENSSL_no_config - simple OpenSSL configuration functions

 #include <openssl/conf.h>

 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<openssl.cnf>
configuration file name using B<config_name>. If B<config_name> is NULL then
the file specified in the environment variable B<OPENSSL_CONF> will be used,
and if that is not set then a system default location is used.
OPENSSL_config() configures OpenSSL using the standard B<openssl.cnf> and
reads from the application section B<appname>. If B<appname> is NULL then
the default section, B<openssl_conf>, will be used.
Errors are silently ignored.
Multiple calls have no effect.

+6 −6
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ 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,
 int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *init,
                                     const char* name);
 void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *init);

@@ -191,8 +191,8 @@ described in the NOTES section below.
The B<OPENSSL_INIT_LOAD_CONFIG> flag will load a default configuration
file.  To specify a different file, an B<OPENSSL_INIT_SETTINGS> 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<OPENSSL_init_ssl(3)>
=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
Loading