diff options
Diffstat (limited to 'src/lib/libcrypto/conf')
| -rw-r--r-- | src/lib/libcrypto/conf/README | 73 | ||||
| -rw-r--r-- | src/lib/libcrypto/conf/conf_api.c | 12 |
2 files changed, 2 insertions, 83 deletions
diff --git a/src/lib/libcrypto/conf/README b/src/lib/libcrypto/conf/README deleted file mode 100644 index 96e53b34ed..0000000000 --- a/src/lib/libcrypto/conf/README +++ /dev/null | |||
| @@ -1,73 +0,0 @@ | |||
| 1 | Configuration modules. These are a set of modules which can perform | ||
| 2 | various configuration functions. | ||
| 3 | |||
| 4 | Currently the routines should be called at most once when an application | ||
| 5 | starts up: that is before it starts any threads. | ||
| 6 | |||
| 7 | The routines read a configuration file set up like this: | ||
| 8 | |||
| 9 | ----- | ||
| 10 | #default section | ||
| 11 | openssl_conf=init_section | ||
| 12 | |||
| 13 | [init_section] | ||
| 14 | |||
| 15 | module1=value1 | ||
| 16 | #Second instance of module1 | ||
| 17 | module1.1=valueX | ||
| 18 | module2=value2 | ||
| 19 | module3=dso_literal | ||
| 20 | module4=dso_section | ||
| 21 | |||
| 22 | [dso_section] | ||
| 23 | |||
| 24 | path=/some/path/to/some/dso.so | ||
| 25 | other_stuff=other_value | ||
| 26 | ---- | ||
| 27 | |||
| 28 | When this file is loaded a configuration module with the specified string | ||
| 29 | (module* in the above example) is looked up and its init function called as: | ||
| 30 | |||
| 31 | int conf_init_func(CONF_IMODULE *md, CONF *cnf); | ||
| 32 | |||
| 33 | The function can then take whatever action is appropriate, for example further | ||
| 34 | lookups based on the value. Multiple instances of the same config module can be | ||
| 35 | loaded. | ||
| 36 | |||
| 37 | When the application closes down the modules are cleaned up by calling an | ||
| 38 | optional finish function: | ||
| 39 | |||
| 40 | void conf_finish_func(CONF_IMODULE *md); | ||
| 41 | |||
| 42 | The finish functions are called in reverse order: that is the last module | ||
| 43 | loaded is the first one cleaned up. | ||
| 44 | |||
| 45 | If no module exists with a given name then an attempt is made to load a DSO | ||
| 46 | with the supplied name. This might mean that "module3" attempts to load a DSO | ||
| 47 | called libmodule3.so or module3.dll for example. An explicit DSO name can be | ||
| 48 | given by including a separate section as in the module4 example above. | ||
| 49 | |||
| 50 | The DSO is expected to at least contain an initialization function: | ||
| 51 | |||
| 52 | int OPENSSL_init(CONF_IMODULE *md, CONF *cnf); | ||
| 53 | |||
| 54 | and may also include a finish function: | ||
| 55 | |||
| 56 | void OPENSSL_finish(CONF_IMODULE *md); | ||
| 57 | |||
| 58 | Static modules can also be added using, | ||
| 59 | |||
| 60 | int CONF_module_add(char *name, dso_mod_init_func *ifunc, dso_mod_finish_func | ||
| 61 | *ffunc); | ||
| 62 | |||
| 63 | where "name" is the name in the configuration file this function corresponds | ||
| 64 | to. | ||
| 65 | |||
| 66 | A set of builtin modules (currently only an ASN1 non functional test module) | ||
| 67 | can be added by calling OPENSSL_load_builtin_modules(). | ||
| 68 | |||
| 69 | The function OPENSSL_config() is intended as a simple configuration function | ||
| 70 | that any application can call to perform various default configuration tasks. | ||
| 71 | It uses the file openssl.cnf in the usual locations. | ||
| 72 | |||
| 73 | |||
diff --git a/src/lib/libcrypto/conf/conf_api.c b/src/lib/libcrypto/conf/conf_api.c index f986243b65..0d5a67d9a5 100644 --- a/src/lib/libcrypto/conf/conf_api.c +++ b/src/lib/libcrypto/conf/conf_api.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: conf_api.c,v 1.26 2025/03/08 09:35:53 tb Exp $ */ | 1 | /* $OpenBSD: conf_api.c,v 1.29 2025/12/21 07:31:22 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -56,16 +56,10 @@ | |||
| 56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
| 57 | */ | 57 | */ |
| 58 | 58 | ||
| 59 | /* Part of the code in here was originally in conf.c, which is now removed */ | ||
| 60 | |||
| 61 | #ifndef CONF_DEBUG | ||
| 62 | # undef NDEBUG /* avoid conflicting definitions */ | ||
| 63 | # define NDEBUG | ||
| 64 | #endif | ||
| 65 | |||
| 66 | #include <stdlib.h> | 59 | #include <stdlib.h> |
| 67 | #include <string.h> | 60 | #include <string.h> |
| 68 | #include <unistd.h> | 61 | #include <unistd.h> |
| 62 | |||
| 69 | #include <openssl/conf.h> | 63 | #include <openssl/conf.h> |
| 70 | 64 | ||
| 71 | #include "conf_local.h" | 65 | #include "conf_local.h" |
| @@ -77,7 +71,6 @@ static IMPLEMENT_LHASH_DOALL_ARG_FN(value_free_hash, CONF_VALUE, | |||
| 77 | LHASH_OF(CONF_VALUE)) | 71 | LHASH_OF(CONF_VALUE)) |
| 78 | static IMPLEMENT_LHASH_DOALL_FN(value_free_stack, CONF_VALUE) | 72 | static IMPLEMENT_LHASH_DOALL_FN(value_free_stack, CONF_VALUE) |
| 79 | 73 | ||
| 80 | /* Up until OpenSSL 0.9.5a, this was get_section */ | ||
| 81 | CONF_VALUE * | 74 | CONF_VALUE * |
| 82 | _CONF_get_section(const CONF *conf, const char *section) | 75 | _CONF_get_section(const CONF *conf, const char *section) |
| 83 | { | 76 | { |
| @@ -229,7 +222,6 @@ value_free_stack_doall(CONF_VALUE *a) | |||
| 229 | free(a); | 222 | free(a); |
| 230 | } | 223 | } |
| 231 | 224 | ||
| 232 | /* Up until OpenSSL 0.9.5a, this was new_section */ | ||
| 233 | CONF_VALUE * | 225 | CONF_VALUE * |
| 234 | _CONF_new_section(CONF *conf, const char *section) | 226 | _CONF_new_section(CONF *conf, const char *section) |
| 235 | { | 227 | { |
