Browse Source

Merge pull request #113 from arabesc/master

Fix build under FreeBSD 10.1 + Clang
pull/115/head
orignal 10 years ago
parent
commit
4d77dad9cc
  1. 18
      aes.cpp
  2. 1
      build/CMakeLists.txt

18
aes.cpp

@ -25,7 +25,7 @@ namespace crypto @@ -25,7 +25,7 @@ namespace crypto
"movaps %%xmm3, %%xmm4 \n" \
"pslldq $4, %%xmm4 \n" \
"pxor %%xmm4, %%xmm3 \n" \
"pslldq $4, %%xmm4 \n" \
"pslldq $4, %%xmm4 \n" \
"pxor %%xmm4, %%xmm3 \n" \
"pslldq $4, %%xmm4 \n" \
"pxor %%xmm4, %%xmm3 \n" \
@ -163,7 +163,7 @@ namespace crypto @@ -163,7 +163,7 @@ namespace crypto
__asm__
(
"movups (%[iv]), %%xmm1 \n"
"block_e: \n"
"1: \n"
"movups (%[in]), %%xmm0 \n"
"pxor %%xmm1, %%xmm0 \n"
EncryptAES256(sched)
@ -172,7 +172,7 @@ namespace crypto @@ -172,7 +172,7 @@ namespace crypto
"add $16, %[in] \n"
"add $16, %[out] \n"
"dec %[num] \n"
"jnz block_e; \n"
"jnz 1b \n"
"movups %%xmm1, (%[iv]) \n"
:
: [iv]"r"(&m_LastBlock), [sched]"r"(m_ECBEncryption.GetKeySchedule ()),
@ -222,7 +222,7 @@ namespace crypto @@ -222,7 +222,7 @@ namespace crypto
__asm__
(
"movups (%[iv]), %%xmm1 \n"
"block_d: \n"
"1: \n"
"movups (%[in]), %%xmm0 \n"
"movaps %%xmm0, %%xmm2 \n"
DecryptAES256(sched)
@ -232,7 +232,7 @@ namespace crypto @@ -232,7 +232,7 @@ namespace crypto
"add $16, %[in] \n"
"add $16, %[out] \n"
"dec %[num] \n"
"jnz block_d; \n"
"jnz 1b \n"
"movups %%xmm1, (%[iv]) \n"
:
: [iv]"r"(&m_IV), [sched]"r"(m_ECBDecryption.GetKeySchedule ()),
@ -289,7 +289,7 @@ namespace crypto @@ -289,7 +289,7 @@ namespace crypto
EncryptAES256(sched_iv)
"movups %%xmm0, (%[payload]) \n"
// encrypt data, IV is xmm1
"block_et: \n"
"1: \n"
"add $16, %[payload] \n"
"movups (%[payload]), %%xmm0 \n"
"pxor %%xmm1, %%xmm0 \n"
@ -297,7 +297,7 @@ namespace crypto @@ -297,7 +297,7 @@ namespace crypto
"movaps %%xmm0, %%xmm1 \n"
"movups %%xmm0, (%[payload]) \n"
"dec %[num] \n"
"jnz block_et; \n"
"jnz 1b \n"
:
: [sched_iv]"r"(m_IVEncryption.GetKeySchedule ()), [sched_l]"r"(m_LayerEncryption.GetKeySchedule ()),
[payload]"r"(payload), [num]"r"(63) // 63 blocks = 1008 bytes
@ -324,7 +324,7 @@ namespace crypto @@ -324,7 +324,7 @@ namespace crypto
DecryptAES256(sched_iv)
"movups %%xmm0, (%[payload]) \n"
// decrypt data, IV is xmm1
"block_dt: \n"
"1: \n"
"add $16, %[payload] \n"
"movups (%[payload]), %%xmm0 \n"
"movaps %%xmm0, %%xmm2 \n"
@ -333,7 +333,7 @@ namespace crypto @@ -333,7 +333,7 @@ namespace crypto
"movups %%xmm0, (%[payload]) \n"
"movaps %%xmm2, %%xmm1 \n"
"dec %[num] \n"
"jnz block_dt; \n"
"jnz 1b \n"
:
: [sched_iv]"r"(m_IVDecryption.GetKeySchedule ()), [sched_l]"r"(m_LayerDecryption.GetKeySchedule ()),
[payload]"r"(payload), [num]"r"(63) // 63 blocks = 1008 bytes

1
build/CMakeLists.txt

@ -29,6 +29,7 @@ set (SOURCES @@ -29,6 +29,7 @@ set (SOURCES
"${CMAKE_SOURCE_DIR}/SOCKS.cpp"
"${CMAKE_SOURCE_DIR}/SSU.cpp"
"${CMAKE_SOURCE_DIR}/SSUData.cpp"
"${CMAKE_SOURCE_DIR}/SSUSession.cpp"
"${CMAKE_SOURCE_DIR}/Streaming.cpp"
"${CMAKE_SOURCE_DIR}/Destination.cpp"
"${CMAKE_SOURCE_DIR}/TransitTunnel.cpp"

Loading…
Cancel
Save