/* * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ #include "internal/cryptlib.h" #include "internal/common.h" #include "buildinf.h" unsigned long OpenSSL_version_num(void) { return OPENSSL_VERSION_NUMBER; } unsigned int OPENSSL_version_major(void) { return OPENSSL_VERSION_MAJOR; } unsigned int OPENSSL_version_minor(void) { return OPENSSL_VERSION_MINOR; } unsigned int OPENSSL_version_patch(void) { return OPENSSL_VERSION_PATCH; } const char *OPENSSL_version_pre_release(void) { return OPENSSL_VERSION_PRE_RELEASE; } const char *OPENSSL_version_build_metadata(void) { return OPENSSL_VERSION_BUILD_METADATA; } extern char ossl_cpu_info_str[]; const char *OpenSSL_version(int t) { switch (t) { case OPENSSL_VERSION: return OPENSSL_VERSION_TEXT; case OPENSSL_VERSION_STRING: return OPENSSL_VERSION_STR; case OPENSSL_FULL_VERSION_STRING: return OPENSSL_FULL_VERSION_STR; case OPENSSL_BUILT_ON: return DATE; case OPENSSL_CFLAGS: return compiler_flags; case OPENSSL_PLATFORM: return PLATFORM; case OPENSSL_DIR: return ossl_get_openssldir(); case OPENSSL_ENGINES_DIR: return ossl_get_enginesdir(); case OPENSSL_MODULES_DIR: return ossl_get_modulesdir(); 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(); } return "not available"; }