/src/openssl30/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 Apache License 2.0 (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 "conf_local.h" | 
| 15 |  | #include <openssl/x509.h> | 
| 16 |  | #include <openssl/asn1.h> | 
| 17 |  | #include <openssl/engine.h> | 
| 18 |  |  | 
| 19 |  | #if defined(_WIN32) && !defined(__BORLANDC__) | 
| 20 |  | # define strdup _strdup | 
| 21 |  | #endif | 
| 22 |  |  | 
| 23 |  | /* | 
| 24 |  |  * This is the automatic configuration loader: it is called automatically by | 
| 25 |  |  * OpenSSL when any of a number of standard initialisation functions are | 
| 26 |  |  * called, unless this is overridden by calling OPENSSL_no_config() | 
| 27 |  |  */ | 
| 28 |  |  | 
| 29 |  | static int openssl_configured = 0; | 
| 30 |  |  | 
| 31 |  | #ifndef OPENSSL_NO_DEPRECATED_1_1_0 | 
| 32 |  | void OPENSSL_config(const char *appname) | 
| 33 | 0 | { | 
| 34 | 0 |     OPENSSL_INIT_SETTINGS settings; | 
| 35 |  | 
 | 
| 36 | 0 |     memset(&settings, 0, sizeof(settings)); | 
| 37 | 0 |     if (appname != NULL) | 
| 38 | 0 |         settings.appname = strdup(appname); | 
| 39 | 0 |     settings.flags = DEFAULT_CONF_MFLAGS; | 
| 40 | 0 |     OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, &settings); | 
| 41 | 0 | } | 
| 42 |  | #endif | 
| 43 |  |  | 
| 44 |  | int ossl_config_int(const OPENSSL_INIT_SETTINGS *settings) | 
| 45 | 30 | { | 
| 46 | 30 |     int ret = 0; | 
| 47 | 30 | #if defined(OPENSSL_INIT_DEBUG) || !defined(OPENSSL_SYS_UEFI) | 
| 48 | 30 |     const char *filename; | 
| 49 | 30 |     const char *appname; | 
| 50 | 30 |     unsigned long flags; | 
| 51 | 30 | #endif | 
| 52 |  |  | 
| 53 | 30 |     if (openssl_configured) | 
| 54 | 0 |         return 1; | 
| 55 |  |  | 
| 56 | 30 | #if defined(OPENSSL_INIT_DEBUG) || !defined(OPENSSL_SYS_UEFI) | 
| 57 | 30 |     filename = settings ? settings->filename : NULL; | 
| 58 | 30 |     appname = settings ? settings->appname : NULL; | 
| 59 | 30 |     flags = settings ? settings->flags : DEFAULT_CONF_MFLAGS; | 
| 60 | 30 | #endif | 
| 61 |  |  | 
| 62 |  | #ifdef OPENSSL_INIT_DEBUG | 
| 63 |  |     fprintf(stderr, "OPENSSL_INIT: ossl_config_int(%s, %s, %lu)\n", | 
| 64 |  |             filename, appname, flags); | 
| 65 |  | #endif | 
| 66 |  |  | 
| 67 | 30 | #ifndef OPENSSL_SYS_UEFI | 
| 68 | 30 |     ret = CONF_modules_load_file_ex(OSSL_LIB_CTX_get0_global_default(), | 
| 69 | 30 |                                     filename, appname, flags); | 
| 70 |  | #else | 
| 71 |  |     ret = 1; | 
| 72 |  | #endif | 
| 73 | 30 |     openssl_configured = 1; | 
| 74 | 30 |     return ret; | 
| 75 | 30 | } | 
| 76 |  |  | 
| 77 |  | void ossl_no_config_int(void) | 
| 78 | 0 | { | 
| 79 | 0 |     openssl_configured = 1; | 
| 80 | 0 | } |