Import OpenSSL 1.1.0h
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1998-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1998-2018 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
|
||||
@@ -46,12 +46,24 @@ void OPENSSL_cpuid_setup(void)
|
||||
if (!sscanf(env + off, "%lli", (long long *)&vec))
|
||||
vec = strtoul(env + off, NULL, 0);
|
||||
# endif
|
||||
if (off)
|
||||
vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P) & ~vec;
|
||||
else if (env[0] == ':')
|
||||
if (off) {
|
||||
IA32CAP mask = vec;
|
||||
vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P) & ~mask;
|
||||
if (mask & (1<<24)) {
|
||||
/*
|
||||
* User disables FXSR bit, mask even other capabilities
|
||||
* that operate exclusively on XMM, so we don't have to
|
||||
* double-check all the time. We mask PCLMULQDQ, AMD XOP,
|
||||
* AES-NI and AVX. Formally speaking we don't have to
|
||||
* do it in x86_64 case, but we can safely assume that
|
||||
* x86_64 users won't actually flip this flag.
|
||||
*/
|
||||
vec &= ~((IA32CAP)(1<<1|1<<11|1<<25|1<<28) << 32);
|
||||
}
|
||||
} else if (env[0] == ':') {
|
||||
vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P);
|
||||
}
|
||||
|
||||
OPENSSL_ia32cap_P[2] = 0;
|
||||
if ((env = strchr(env, ':'))) {
|
||||
unsigned int vecx;
|
||||
env++;
|
||||
@@ -61,9 +73,12 @@ void OPENSSL_cpuid_setup(void)
|
||||
OPENSSL_ia32cap_P[2] &= ~vecx;
|
||||
else
|
||||
OPENSSL_ia32cap_P[2] = vecx;
|
||||
} else {
|
||||
OPENSSL_ia32cap_P[2] = 0;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P);
|
||||
}
|
||||
|
||||
/*
|
||||
* |(1<<10) sets a reserved bit to signal that variable
|
||||
@@ -84,7 +99,7 @@ void OPENSSL_cpuid_setup(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
#if defined(_WIN32)
|
||||
# include <tchar.h>
|
||||
# include <signal.h>
|
||||
# ifdef __WATCOMC__
|
||||
@@ -293,7 +308,7 @@ void OPENSSL_die(const char *message, const char *file, int line)
|
||||
{
|
||||
OPENSSL_showfatal("%s:%d: OpenSSL internal error: %s\n",
|
||||
file, line, message);
|
||||
#if !defined(_WIN32) || defined(__CYGWIN__)
|
||||
#if !defined(_WIN32)
|
||||
abort();
|
||||
#else
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user