From 2384b491563b0dc9da40ac304d5cc0f5a82da5e1 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Mon, 12 Aug 2019 15:28:30 -0700 Subject: [PATCH 1/2] set cmake windows build target to Windows 7 --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a9088011..77e67f357 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 3.8) +if(WIN32) + # If building on Windows, set minimum target to Windows 7 + set(CMAKE_SYSTEM_VERSION "7" CACHE STRING INTERNAL FORCE) +endif(WIN32) + # ZeroTier One Version Config set(ZEROTIER_ONE_VERSION_MAJOR 1) From e4ce1ffd85ef42dbe48e26ca5ceed06ed3d2b6c2 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Mon, 12 Aug 2019 15:28:42 -0700 Subject: [PATCH 2/2] Windows detection of AES-NI --- node/AES.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/node/AES.cpp b/node/AES.cpp index c36bb19fd..9da072e7c 100644 --- a/node/AES.cpp +++ b/node/AES.cpp @@ -26,15 +26,26 @@ #include "AES.hpp" +#if (defined(__amd64) || defined(__amd64__) || defined(__x86_64) || defined(__x86_64__) || defined(__AMD64) || defined(__AMD64__) || defined(_M_X64)) +#include +#include +#include +#endif +#ifdef _WIN32 +#include +#endif + namespace ZeroTier { #if (defined(__amd64) || defined(__amd64__) || defined(__x86_64) || defined(__x86_64__) || defined(__AMD64) || defined(__AMD64__) || defined(_M_X64)) -#include -#include -#include static inline bool _zt_aesni_supported() { +#ifdef WIN32 + int regs[4]; + __cpuid(regs, 1); + return (regs[2] >> 25) & 1; +#else uint32_t eax,ebx,ecx,edx; __asm__ __volatile__ ( "cpuid" @@ -42,6 +53,7 @@ static inline bool _zt_aesni_supported() : "a"(1), "c"(0) ); return ((ecx & (1 << 25)) != 0); +#endif } const bool AES::HW_ACCEL = _zt_aesni_supported();