mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Revert API change of OPENSSL_version()
There was an API change done as part of PR #24450. This patch reverts it. Fixes #25690 Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25692)
This commit is contained in:
parent
0f8ff8fc25
commit
f4c4674526
@ -56,7 +56,6 @@ int version_main(int argc, char **argv)
|
||||
#endif
|
||||
char *prog;
|
||||
OPTION_CHOICE o;
|
||||
const char *tmp;
|
||||
|
||||
prog = opt_init(argc, argv, version_options);
|
||||
while ((o = opt_next()) != OPT_EOF) {
|
||||
@ -134,18 +133,12 @@ opthelp:
|
||||
}
|
||||
if (cflags)
|
||||
printf("%s\n", OpenSSL_version(OPENSSL_CFLAGS));
|
||||
if (dir) {
|
||||
tmp = OpenSSL_version(OPENSSL_DIR);
|
||||
printf("OPENSSLDIR: %s\n", tmp == NULL ? "Undefined" : tmp);
|
||||
}
|
||||
if (engdir) {
|
||||
tmp = OpenSSL_version(OPENSSL_ENGINES_DIR);
|
||||
printf("ENGINESDIR: %s\n", tmp == NULL ? "Undefined" : tmp);
|
||||
}
|
||||
if (moddir) {
|
||||
tmp = OpenSSL_version(OPENSSL_MODULES_DIR);
|
||||
printf("MODULESDIR: %s\n", tmp == NULL ? "Undefined" : tmp);
|
||||
}
|
||||
if (dir)
|
||||
printf("%s\n", OpenSSL_version(OPENSSL_DIR));
|
||||
if (engdir)
|
||||
printf("%s\n", OpenSSL_version(OPENSSL_ENGINES_DIR));
|
||||
if (moddir)
|
||||
printf("%s\n", OpenSSL_version(OPENSSL_MODULES_DIR));
|
||||
if (seed) {
|
||||
const char *src = OPENSSL_info(OPENSSL_INFO_SEED_SOURCE);
|
||||
printf("Seeding source: %s\n", src ? src : "N/A");
|
||||
@ -154,7 +147,7 @@ opthelp:
|
||||
printf("%s\n", OpenSSL_version(OPENSSL_CPU_INFO));
|
||||
#if defined(_WIN32)
|
||||
if (windows)
|
||||
printf("OSSL_WINCTX: %s\n", OpenSSL_version(OPENSSL_WINCTX));
|
||||
printf("%s\n", OpenSSL_version(OPENSSL_WINCTX));
|
||||
#endif
|
||||
ret = 0;
|
||||
end:
|
||||
|
@ -7,8 +7,12 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <openssl/bio.h>
|
||||
#include "internal/e_os.h"
|
||||
#include "internal/cryptlib.h"
|
||||
#include "internal/common.h"
|
||||
#include "internal/thread_once.h"
|
||||
|
||||
#include "buildinf.h"
|
||||
|
||||
@ -44,8 +48,41 @@ const char *OPENSSL_version_build_metadata(void)
|
||||
|
||||
extern char ossl_cpu_info_str[];
|
||||
|
||||
#if defined(_WIN32) && defined(OSSL_WINCTX)
|
||||
/* size: MAX_PATH + sizeof("OPENSSLDIR: \"\"") */
|
||||
static char openssldir[MAX_PATH + 15];
|
||||
|
||||
/* size: MAX_PATH + sizeof("ENGINESDIR: \"\"") */
|
||||
static char enginesdir[MAX_PATH + 15];
|
||||
|
||||
/* size: MAX_PATH + sizeof("MODULESDIR: \"\"") */
|
||||
static char modulesdir[MAX_PATH + 15];
|
||||
|
||||
static CRYPTO_ONCE version_strings_once = CRYPTO_ONCE_STATIC_INIT;
|
||||
|
||||
DEFINE_RUN_ONCE_STATIC(version_strings_setup)
|
||||
{
|
||||
BIO_snprintf(openssldir, sizeof(openssldir), "OPENSSLDIR: \"%s\"",
|
||||
ossl_get_openssldir());
|
||||
BIO_snprintf(enginesdir, sizeof(enginesdir), "ENGINESDIR: \"%s\"",
|
||||
ossl_get_enginesdir());
|
||||
BIO_snprintf(modulesdir, sizeof(modulesdir), "MODULESDIR: \"%s\"",
|
||||
ossl_get_modulesdir());
|
||||
return 1;
|
||||
}
|
||||
|
||||
# define TOSTR(x) #x
|
||||
# define OSSL_WINCTX_STRING "OSSL_WINCTX: \"" ## TOSTR(OSSL_WINCTX) ## "\""
|
||||
|
||||
#endif
|
||||
|
||||
const char *OpenSSL_version(int t)
|
||||
{
|
||||
#if defined(_WIN32) && defined(OSSL_WINCTX)
|
||||
/* Cannot really fail but we would return empty strings anyway */
|
||||
(void)RUN_ONCE(&version_strings_once, version_strings_setup);
|
||||
#endif
|
||||
|
||||
switch (t) {
|
||||
case OPENSSL_VERSION:
|
||||
return OPENSSL_VERSION_TEXT;
|
||||
@ -59,19 +96,44 @@ const char *OpenSSL_version(int t)
|
||||
return compiler_flags;
|
||||
case OPENSSL_PLATFORM:
|
||||
return PLATFORM;
|
||||
#if defined(_WIN32) && defined(OSSL_WINCTX)
|
||||
case OPENSSL_DIR:
|
||||
return ossl_get_openssldir();
|
||||
return openssldir;
|
||||
case OPENSSL_ENGINES_DIR:
|
||||
return ossl_get_enginesdir();
|
||||
return enginesdir;
|
||||
case OPENSSL_MODULES_DIR:
|
||||
return ossl_get_modulesdir();
|
||||
return modulesdir;
|
||||
#else
|
||||
case OPENSSL_DIR:
|
||||
# ifdef OPENSSLDIR
|
||||
return "OPENSSLDIR: \"" OPENSSLDIR "\"";
|
||||
# else
|
||||
return "OPENSSLDIR: N/A";
|
||||
# endif
|
||||
case OPENSSL_ENGINES_DIR:
|
||||
# ifdef ENGINESDIR
|
||||
return "ENGINESDIR: \"" ENGINESDIR "\"";
|
||||
# else
|
||||
return "ENGINESDIR: N/A";
|
||||
# endif
|
||||
case OPENSSL_MODULES_DIR:
|
||||
# ifdef MODULESDIR
|
||||
return "MODULESDIR: \"" MODULESDIR "\"";
|
||||
# else
|
||||
return "MODULESDIR: N/A";
|
||||
# endif
|
||||
#endif
|
||||
case OPENSSL_CPU_INFO:
|
||||
if (OPENSSL_info(OPENSSL_INFO_CPU_SETTINGS) != NULL)
|
||||
return ossl_cpu_info_str;
|
||||
else
|
||||
return "CPUINFO: N/A";
|
||||
case OPENSSL_WINCTX:
|
||||
return ossl_get_wininstallcontext();
|
||||
#if defined(_WIN32) && defined(OSSL_WINCTX)
|
||||
return OSSL_WINCTX_STRING;
|
||||
#else
|
||||
return "OSSL_WINCTX: Undefined";
|
||||
#endif
|
||||
}
|
||||
return "not available";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user