xref: /openssl/crypto/cversion.c (revision 7ed6de99)
1 /*
2  * Copyright 1995-2024 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 "internal/cryptlib.h"
11 #include "internal/common.h"
12 
13 #include "buildinf.h"
14 
OpenSSL_version_num(void)15 unsigned long OpenSSL_version_num(void)
16 {
17     return OPENSSL_VERSION_NUMBER;
18 }
19 
OPENSSL_version_major(void)20 unsigned int OPENSSL_version_major(void)
21 {
22     return OPENSSL_VERSION_MAJOR;
23 }
24 
OPENSSL_version_minor(void)25 unsigned int OPENSSL_version_minor(void)
26 {
27     return OPENSSL_VERSION_MINOR;
28 }
29 
OPENSSL_version_patch(void)30 unsigned int OPENSSL_version_patch(void)
31 {
32     return OPENSSL_VERSION_PATCH;
33 }
34 
OPENSSL_version_pre_release(void)35 const char *OPENSSL_version_pre_release(void)
36 {
37     return OPENSSL_VERSION_PRE_RELEASE;
38 }
39 
OPENSSL_version_build_metadata(void)40 const char *OPENSSL_version_build_metadata(void)
41 {
42     return OPENSSL_VERSION_BUILD_METADATA;
43 }
44 
45 extern char ossl_cpu_info_str[];
46 
OpenSSL_version(int t)47 const char *OpenSSL_version(int t)
48 {
49     switch (t) {
50     case OPENSSL_VERSION:
51         return OPENSSL_VERSION_TEXT;
52     case OPENSSL_VERSION_STRING:
53         return OPENSSL_VERSION_STR;
54     case OPENSSL_FULL_VERSION_STRING:
55         return OPENSSL_FULL_VERSION_STR;
56     case OPENSSL_BUILT_ON:
57         return DATE;
58     case OPENSSL_CFLAGS:
59         return compiler_flags;
60     case OPENSSL_PLATFORM:
61         return PLATFORM;
62     case OPENSSL_DIR:
63         return ossl_get_openssldir();
64     case OPENSSL_ENGINES_DIR:
65         return ossl_get_enginesdir();
66     case OPENSSL_MODULES_DIR:
67         return ossl_get_modulesdir();
68     case OPENSSL_CPU_INFO:
69         if (OPENSSL_info(OPENSSL_INFO_CPU_SETTINGS) != NULL)
70             return ossl_cpu_info_str;
71         else
72             return "CPUINFO: N/A";
73     case OPENSSL_WINCTX:
74         return ossl_get_wininstallcontext();
75     }
76     return "not available";
77 }
78