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