mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-05 20:13:44 +02:00
Some AES cleanup and include controller with Go build.
This commit is contained in:
parent
33269cd29d
commit
3621fe8897
4 changed files with 569 additions and 533 deletions
|
@ -120,4 +120,4 @@ add_custom_target(zerotier ALL
|
|||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/go
|
||||
COMMAND rm -f ../build/zerotier && go build -trimpath -ldflags -s -o ../build/zerotier cmd/zerotier/zerotier.go
|
||||
)
|
||||
add_dependencies(zerotier zt_osdep zt_core zt_go_native)
|
||||
add_dependencies(zerotier zt_osdep zt_core zt_controller zt_go_native)
|
||||
|
|
1053
node/AES.cpp
1053
node/AES.cpp
File diff suppressed because it is too large
Load diff
45
node/AES.hpp
45
node/AES.hpp
|
@ -507,7 +507,7 @@ private:
|
|||
#ifdef ZT_AES_AESNI
|
||||
struct {
|
||||
__m128i k[28];
|
||||
__m128i h,hh,hhh,hhhh;
|
||||
__m128i h[4]; // h, hh, hhh, hhhh
|
||||
} ni;
|
||||
#endif
|
||||
|
||||
|
@ -519,8 +519,6 @@ private:
|
|||
} _k;
|
||||
|
||||
#ifdef ZT_AES_AESNI
|
||||
static const __m128i s_shuf;
|
||||
|
||||
void _init_aesni(const uint8_t key[32]) noexcept;
|
||||
|
||||
ZT_INLINE void _encrypt_aesni(const void *const in,void *const out) const noexcept
|
||||
|
@ -562,47 +560,6 @@ private:
|
|||
tmp = _mm_aesdec_si128(tmp,_k.ni.k[27]);
|
||||
_mm_storeu_si128((__m128i *)out,_mm_aesdeclast_si128(tmp,_k.ni.k[0]));
|
||||
}
|
||||
|
||||
static ZT_INLINE __m128i _mult_block_aesni(const __m128i shuf,const __m128i h,__m128i y) noexcept
|
||||
{
|
||||
y = _mm_shuffle_epi8(y,shuf);
|
||||
__m128i t1 = _mm_clmulepi64_si128(h,y,0x00);
|
||||
__m128i t2 = _mm_clmulepi64_si128(h,y,0x01);
|
||||
__m128i t3 = _mm_clmulepi64_si128(h,y,0x10);
|
||||
__m128i t4 = _mm_clmulepi64_si128(h,y,0x11);
|
||||
t2 = _mm_xor_si128(t2,t3);
|
||||
t3 = _mm_slli_si128(t2,8);
|
||||
t2 = _mm_srli_si128(t2,8);
|
||||
t1 = _mm_xor_si128(t1,t3);
|
||||
t4 = _mm_xor_si128(t4,t2);
|
||||
__m128i t5 = _mm_srli_epi32(t1,31);
|
||||
t1 = _mm_slli_epi32(t1,1);
|
||||
__m128i t6 = _mm_srli_epi32(t4,31);
|
||||
t4 = _mm_slli_epi32(t4,1);
|
||||
t3 = _mm_srli_si128(t5,12);
|
||||
t6 = _mm_slli_si128(t6,4);
|
||||
t5 = _mm_slli_si128(t5,4);
|
||||
t1 = _mm_or_si128(t1,t5);
|
||||
t4 = _mm_or_si128(t4,t6);
|
||||
t4 = _mm_or_si128(t4,t3);
|
||||
t5 = _mm_slli_epi32(t1,31);
|
||||
t6 = _mm_slli_epi32(t1,30);
|
||||
t3 = _mm_slli_epi32(t1,25);
|
||||
t5 = _mm_xor_si128(t5,t6);
|
||||
t5 = _mm_xor_si128(t5,t3);
|
||||
t6 = _mm_srli_si128(t5,4);
|
||||
t4 = _mm_xor_si128(t4,t6);
|
||||
t5 = _mm_slli_si128(t5,12);
|
||||
t1 = _mm_xor_si128(t1,t5);
|
||||
t4 = _mm_xor_si128(t4,t1);
|
||||
t5 = _mm_srli_epi32(t1,1);
|
||||
t2 = _mm_srli_epi32(t1,2);
|
||||
t3 = _mm_srli_epi32(t1,7);
|
||||
t4 = _mm_xor_si128(t4,t2);
|
||||
t4 = _mm_xor_si128(t4,t3);
|
||||
t4 = _mm_xor_si128(t4,t5);
|
||||
return _mm_shuffle_epi8(t4,shuf);
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include "Tests.h"
|
||||
|
||||
//#define ZT_ENABLE_TESTS
|
||||
#define ZT_ENABLE_TESTS
|
||||
#ifdef ZT_ENABLE_TESTS
|
||||
|
||||
#include "Constants.hpp"
|
||||
|
|
Loading…
Add table
Reference in a new issue