1e1051a39Sopenharmony_ci/* 2e1051a39Sopenharmony_ci * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3e1051a39Sopenharmony_ci * 4e1051a39Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License"). You may not use 5e1051a39Sopenharmony_ci * this file except in compliance with the License. You can obtain a copy 6e1051a39Sopenharmony_ci * in the file LICENSE in the source distribution or at 7e1051a39Sopenharmony_ci * https://www.openssl.org/source/license.html 8e1051a39Sopenharmony_ci */ 9e1051a39Sopenharmony_ci 10e1051a39Sopenharmony_ci#include "internal/cryptlib.h" 11e1051a39Sopenharmony_ci 12e1051a39Sopenharmony_ci#include "buildinf.h" 13e1051a39Sopenharmony_ci 14e1051a39Sopenharmony_ciunsigned long OpenSSL_version_num(void) 15e1051a39Sopenharmony_ci{ 16e1051a39Sopenharmony_ci return OPENSSL_VERSION_NUMBER; 17e1051a39Sopenharmony_ci} 18e1051a39Sopenharmony_ci 19e1051a39Sopenharmony_ciunsigned int OPENSSL_version_major(void) 20e1051a39Sopenharmony_ci{ 21e1051a39Sopenharmony_ci return OPENSSL_VERSION_MAJOR; 22e1051a39Sopenharmony_ci} 23e1051a39Sopenharmony_ci 24e1051a39Sopenharmony_ciunsigned int OPENSSL_version_minor(void) 25e1051a39Sopenharmony_ci{ 26e1051a39Sopenharmony_ci return OPENSSL_VERSION_MINOR; 27e1051a39Sopenharmony_ci} 28e1051a39Sopenharmony_ci 29e1051a39Sopenharmony_ciunsigned int OPENSSL_version_patch(void) 30e1051a39Sopenharmony_ci{ 31e1051a39Sopenharmony_ci return OPENSSL_VERSION_PATCH; 32e1051a39Sopenharmony_ci} 33e1051a39Sopenharmony_ci 34e1051a39Sopenharmony_ciconst char *OPENSSL_version_pre_release(void) 35e1051a39Sopenharmony_ci{ 36e1051a39Sopenharmony_ci return OPENSSL_VERSION_PRE_RELEASE; 37e1051a39Sopenharmony_ci} 38e1051a39Sopenharmony_ci 39e1051a39Sopenharmony_ciconst char *OPENSSL_version_build_metadata(void) 40e1051a39Sopenharmony_ci{ 41e1051a39Sopenharmony_ci return OPENSSL_VERSION_BUILD_METADATA; 42e1051a39Sopenharmony_ci} 43e1051a39Sopenharmony_ci 44e1051a39Sopenharmony_ciextern char ossl_cpu_info_str[]; 45e1051a39Sopenharmony_ci 46e1051a39Sopenharmony_ciconst char *OpenSSL_version(int t) 47e1051a39Sopenharmony_ci{ 48e1051a39Sopenharmony_ci switch (t) { 49e1051a39Sopenharmony_ci case OPENSSL_VERSION: 50e1051a39Sopenharmony_ci return OPENSSL_VERSION_TEXT; 51e1051a39Sopenharmony_ci case OPENSSL_VERSION_STRING: 52e1051a39Sopenharmony_ci return OPENSSL_VERSION_STR; 53e1051a39Sopenharmony_ci case OPENSSL_FULL_VERSION_STRING: 54e1051a39Sopenharmony_ci return OPENSSL_FULL_VERSION_STR; 55e1051a39Sopenharmony_ci case OPENSSL_BUILT_ON: 56e1051a39Sopenharmony_ci return DATE; 57e1051a39Sopenharmony_ci case OPENSSL_CFLAGS: 58e1051a39Sopenharmony_ci return compiler_flags; 59e1051a39Sopenharmony_ci case OPENSSL_PLATFORM: 60e1051a39Sopenharmony_ci return PLATFORM; 61e1051a39Sopenharmony_ci case OPENSSL_DIR: 62e1051a39Sopenharmony_ci#ifdef OPENSSLDIR 63e1051a39Sopenharmony_ci return "OPENSSLDIR: \"" OPENSSLDIR "\""; 64e1051a39Sopenharmony_ci#else 65e1051a39Sopenharmony_ci return "OPENSSLDIR: N/A"; 66e1051a39Sopenharmony_ci#endif 67e1051a39Sopenharmony_ci case OPENSSL_ENGINES_DIR: 68e1051a39Sopenharmony_ci#ifdef ENGINESDIR 69e1051a39Sopenharmony_ci return "ENGINESDIR: \"" ENGINESDIR "\""; 70e1051a39Sopenharmony_ci#else 71e1051a39Sopenharmony_ci return "ENGINESDIR: N/A"; 72e1051a39Sopenharmony_ci#endif 73e1051a39Sopenharmony_ci case OPENSSL_MODULES_DIR: 74e1051a39Sopenharmony_ci#ifdef MODULESDIR 75e1051a39Sopenharmony_ci return "MODULESDIR: \"" MODULESDIR "\""; 76e1051a39Sopenharmony_ci#else 77e1051a39Sopenharmony_ci return "MODULESDIR: N/A"; 78e1051a39Sopenharmony_ci#endif 79e1051a39Sopenharmony_ci case OPENSSL_CPU_INFO: 80e1051a39Sopenharmony_ci if (OPENSSL_info(OPENSSL_INFO_CPU_SETTINGS) != NULL) 81e1051a39Sopenharmony_ci return ossl_cpu_info_str; 82e1051a39Sopenharmony_ci else 83e1051a39Sopenharmony_ci return "CPUINFO: N/A"; 84e1051a39Sopenharmony_ci } 85e1051a39Sopenharmony_ci return "not available"; 86e1051a39Sopenharmony_ci} 87