/src/openssl111/crypto/conf/conf_sap.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. |
3 | | * |
4 | | * Licensed under the OpenSSL license (the "License"). You may not use |
5 | | * this file except in compliance with the License. You can obtain a copy |
6 | | * in the file LICENSE in the source distribution or at |
7 | | * https://www.openssl.org/source/license.html |
8 | | */ |
9 | | |
10 | | #include <stdio.h> |
11 | | #include <openssl/crypto.h> |
12 | | #include "internal/cryptlib.h" |
13 | | #include "internal/conf.h" |
14 | | #include <openssl/x509.h> |
15 | | #include <openssl/asn1.h> |
16 | | #include <openssl/engine.h> |
17 | | |
18 | | #ifdef _WIN32 |
19 | | # define strdup _strdup |
20 | | #endif |
21 | | |
22 | | /* |
23 | | * This is the automatic configuration loader: it is called automatically by |
24 | | * OpenSSL when any of a number of standard initialisation functions are |
25 | | * called, unless this is overridden by calling OPENSSL_no_config() |
26 | | */ |
27 | | |
28 | | static int openssl_configured = 0; |
29 | | |
30 | | #if OPENSSL_API_COMPAT < 0x10100000L |
31 | | void OPENSSL_config(const char *appname) |
32 | 0 | { |
33 | 0 | OPENSSL_INIT_SETTINGS settings; |
34 | |
|
35 | 0 | memset(&settings, 0, sizeof(settings)); |
36 | 0 | if (appname != NULL) |
37 | 0 | settings.appname = strdup(appname); |
38 | 0 | settings.flags = DEFAULT_CONF_MFLAGS; |
39 | 0 | OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, &settings); |
40 | 0 | } |
41 | | #endif |
42 | | |
43 | | int openssl_config_int(const OPENSSL_INIT_SETTINGS *settings) |
44 | 0 | { |
45 | 0 | int ret = 0; |
46 | 0 | #if defined(OPENSSL_INIT_DEBUG) || !defined(OPENSSL_SYS_UEFI) |
47 | 0 | const char *filename; |
48 | 0 | const char *appname; |
49 | 0 | unsigned long flags; |
50 | 0 | #endif |
51 | |
|
52 | 0 | if (openssl_configured) |
53 | 0 | return 1; |
54 | 0 | #if defined(OPENSSL_INIT_DEBUG) || !defined(OPENSSL_SYS_UEFI) |
55 | 0 | filename = settings ? settings->filename : NULL; |
56 | 0 | appname = settings ? settings->appname : NULL; |
57 | 0 | flags = settings ? settings->flags : DEFAULT_CONF_MFLAGS; |
58 | 0 | #endif |
59 | |
|
60 | | #ifdef OPENSSL_INIT_DEBUG |
61 | | fprintf(stderr, "OPENSSL_INIT: openssl_config_int(%s, %s, %lu)\n", |
62 | | filename, appname, flags); |
63 | | #endif |
64 | |
|
65 | 0 | OPENSSL_load_builtin_modules(); |
66 | 0 | #ifndef OPENSSL_NO_ENGINE |
67 | | /* Need to load ENGINEs */ |
68 | 0 | ENGINE_load_builtin_engines(); |
69 | 0 | #endif |
70 | 0 | ERR_clear_error(); |
71 | 0 | #ifndef OPENSSL_SYS_UEFI |
72 | 0 | ret = CONF_modules_load_file(filename, appname, flags); |
73 | 0 | #endif |
74 | 0 | openssl_configured = 1; |
75 | 0 | return ret; |
76 | 0 | } |
77 | | |
78 | | void openssl_no_config_int(void) |
79 | 0 | { |
80 | 0 | openssl_configured = 1; |
81 | 0 | } |