Files
GmSSL/crypto/cversion.c
2017-11-05 21:00:36 +08:00

97 lines
2.0 KiB
C

/*
* Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (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"
#ifndef NO_WINDOWS_BRAINDEATH
# include "buildinf.h"
#endif
unsigned long OpenSSL_version_num(void)
{
return OPENSSL_VERSION_NUMBER;
}
const char *OpenSSL_version(int t)
{
if (t == OPENSSL_VERSION)
return OPENSSL_VERSION_TEXT;
if (t == OPENSSL_BUILT_ON) {
#ifdef DATE
# ifdef OPENSSL_USE_BUILD_DATE
return (DATE);
# else
return ("built on: reproducible build, date unspecified");
# endif
#else
return ("built on: date not available");
#endif
}
if (t == OPENSSL_CFLAGS) {
#ifdef CFLAGS
return (CFLAGS);
#else
return ("compiler: information not available");
#endif
}
if (t == OPENSSL_PLATFORM) {
#ifdef PLATFORM
return (PLATFORM);
#else
return ("platform: information not available");
#endif
}
if (t == OPENSSL_DIR) {
#ifdef OPENSSLDIR
return "OPENSSLDIR: \"" OPENSSLDIR "\"";
#else
return "OPENSSLDIR: N/A";
#endif
}
if (t == OPENSSL_ENGINES_DIR) {
#ifdef ENGINESDIR
return "ENGINESDIR: \"" ENGINESDIR "\"";
#else
return "ENGINESDIR: N/A";
#endif
}
return ("not available");
}
char *GmSSL_version(void)
{
char *ret = NULL;
int len = 0;
/*
// use BIO_snprintf, not snprintf, VC does not support this!!
len = snprintf(NULL, 0, "%s\n%s\n%s\n%s\n%s\n%s\n",
OpenSSL_version(0),
OpenSSL_version(1),
OpenSSL_version(2),
OpenSSL_version(3),
OpenSSL_version(4),
OpenSSL_version(5));
if (!(ret = OPENSSL_malloc(len))) {
return NULL;
}
snprintf(ret, len, "%s\n%s\n%s\n%s\n%s\n%s\n",
OpenSSL_version(0),
OpenSSL_version(1),
OpenSSL_version(2),
OpenSSL_version(3),
OpenSSL_version(4),
OpenSSL_version(5));
*/
return ret;
}