mirror of https://github.com/openssl/openssl.git
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
|
#endif
|
||||||
char *prog;
|
char *prog;
|
||||||
OPTION_CHOICE o;
|
OPTION_CHOICE o;
|
||||||
const char *tmp;
|
|
||||||
|
|
||||||
prog = opt_init(argc, argv, version_options);
|
prog = opt_init(argc, argv, version_options);
|
||||||
while ((o = opt_next()) != OPT_EOF) {
|
while ((o = opt_next()) != OPT_EOF) {
|
||||||
|
@ -134,18 +133,12 @@ opthelp:
|
||||||
}
|
}
|
||||||
if (cflags)
|
if (cflags)
|
||||||
printf("%s\n", OpenSSL_version(OPENSSL_CFLAGS));
|
printf("%s\n", OpenSSL_version(OPENSSL_CFLAGS));
|
||||||
if (dir) {
|
if (dir)
|
||||||
tmp = OpenSSL_version(OPENSSL_DIR);
|
printf("%s\n", OpenSSL_version(OPENSSL_DIR));
|
||||||
printf("OPENSSLDIR: %s\n", tmp == NULL ? "Undefined" : tmp);
|
if (engdir)
|
||||||
}
|
printf("%s\n", OpenSSL_version(OPENSSL_ENGINES_DIR));
|
||||||
if (engdir) {
|
if (moddir)
|
||||||
tmp = OpenSSL_version(OPENSSL_ENGINES_DIR);
|
printf("%s\n", OpenSSL_version(OPENSSL_MODULES_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 (seed) {
|
if (seed) {
|
||||||
const char *src = OPENSSL_info(OPENSSL_INFO_SEED_SOURCE);
|
const char *src = OPENSSL_info(OPENSSL_INFO_SEED_SOURCE);
|
||||||
printf("Seeding source: %s\n", src ? src : "N/A");
|
printf("Seeding source: %s\n", src ? src : "N/A");
|
||||||
|
@ -154,7 +147,7 @@ opthelp:
|
||||||
printf("%s\n", OpenSSL_version(OPENSSL_CPU_INFO));
|
printf("%s\n", OpenSSL_version(OPENSSL_CPU_INFO));
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
if (windows)
|
if (windows)
|
||||||
printf("OSSL_WINCTX: %s\n", OpenSSL_version(OPENSSL_WINCTX));
|
printf("%s\n", OpenSSL_version(OPENSSL_WINCTX));
|
||||||
#endif
|
#endif
|
||||||
ret = 0;
|
ret = 0;
|
||||||
end:
|
end:
|
||||||
|
|
|
@ -7,8 +7,12 @@
|
||||||
* https://www.openssl.org/source/license.html
|
* 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/cryptlib.h"
|
||||||
#include "internal/common.h"
|
#include "internal/common.h"
|
||||||
|
#include "internal/thread_once.h"
|
||||||
|
|
||||||
#include "buildinf.h"
|
#include "buildinf.h"
|
||||||
|
|
||||||
|
@ -44,8 +48,41 @@ const char *OPENSSL_version_build_metadata(void)
|
||||||
|
|
||||||
extern char ossl_cpu_info_str[];
|
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)
|
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) {
|
switch (t) {
|
||||||
case OPENSSL_VERSION:
|
case OPENSSL_VERSION:
|
||||||
return OPENSSL_VERSION_TEXT;
|
return OPENSSL_VERSION_TEXT;
|
||||||
|
@ -59,19 +96,44 @@ const char *OpenSSL_version(int t)
|
||||||
return compiler_flags;
|
return compiler_flags;
|
||||||
case OPENSSL_PLATFORM:
|
case OPENSSL_PLATFORM:
|
||||||
return PLATFORM;
|
return PLATFORM;
|
||||||
|
#if defined(_WIN32) && defined(OSSL_WINCTX)
|
||||||
case OPENSSL_DIR:
|
case OPENSSL_DIR:
|
||||||
return ossl_get_openssldir();
|
return openssldir;
|
||||||
case OPENSSL_ENGINES_DIR:
|
case OPENSSL_ENGINES_DIR:
|
||||||
return ossl_get_enginesdir();
|
return enginesdir;
|
||||||
case OPENSSL_MODULES_DIR:
|
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:
|
case OPENSSL_CPU_INFO:
|
||||||
if (OPENSSL_info(OPENSSL_INFO_CPU_SETTINGS) != NULL)
|
if (OPENSSL_info(OPENSSL_INFO_CPU_SETTINGS) != NULL)
|
||||||
return ossl_cpu_info_str;
|
return ossl_cpu_info_str;
|
||||||
else
|
else
|
||||||
return "CPUINFO: N/A";
|
return "CPUINFO: N/A";
|
||||||
case OPENSSL_WINCTX:
|
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";
|
return "not available";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue