mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2024-11-11 19:10:55 +00:00
limit aesni inline asm to x86
Signed-off-by: contextswap <ctxswp@proton.me>
This commit is contained in:
parent
fb83ca42f4
commit
7418f11651
@ -555,7 +555,7 @@ namespace crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AES
|
// AES
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
#define KeyExpansion256(round0,round1) \
|
#define KeyExpansion256(round0,round1) \
|
||||||
"pshufd $0xff, %%xmm2, %%xmm2 \n" \
|
"pshufd $0xff, %%xmm2, %%xmm2 \n" \
|
||||||
"movaps %%xmm1, %%xmm4 \n" \
|
"movaps %%xmm1, %%xmm4 \n" \
|
||||||
@ -580,7 +580,7 @@ namespace crypto
|
|||||||
"movaps %%xmm3, "#round1"(%[sched]) \n"
|
"movaps %%xmm3, "#round1"(%[sched]) \n"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
void ECBCryptoAESNI::ExpandKey (const AESKey& key)
|
void ECBCryptoAESNI::ExpandKey (const AESKey& key)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -621,7 +621,7 @@ namespace crypto
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
#define EncryptAES256(sched) \
|
#define EncryptAES256(sched) \
|
||||||
"pxor (%["#sched"]), %%xmm0 \n" \
|
"pxor (%["#sched"]), %%xmm0 \n" \
|
||||||
"aesenc 16(%["#sched"]), %%xmm0 \n" \
|
"aesenc 16(%["#sched"]), %%xmm0 \n" \
|
||||||
@ -642,7 +642,7 @@ namespace crypto
|
|||||||
|
|
||||||
void ECBEncryption::Encrypt (const ChipherBlock * in, ChipherBlock * out)
|
void ECBEncryption::Encrypt (const ChipherBlock * in, ChipherBlock * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -660,7 +660,7 @@ namespace crypto
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
#define DecryptAES256(sched) \
|
#define DecryptAES256(sched) \
|
||||||
"pxor 224(%["#sched"]), %%xmm0 \n" \
|
"pxor 224(%["#sched"]), %%xmm0 \n" \
|
||||||
"aesdec 208(%["#sched"]), %%xmm0 \n" \
|
"aesdec 208(%["#sched"]), %%xmm0 \n" \
|
||||||
@ -681,7 +681,7 @@ namespace crypto
|
|||||||
|
|
||||||
void ECBDecryption::Decrypt (const ChipherBlock * in, ChipherBlock * out)
|
void ECBDecryption::Decrypt (const ChipherBlock * in, ChipherBlock * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -699,7 +699,7 @@ namespace crypto
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
#define CallAESIMC(offset) \
|
#define CallAESIMC(offset) \
|
||||||
"movaps "#offset"(%[shed]), %%xmm0 \n" \
|
"movaps "#offset"(%[shed]), %%xmm0 \n" \
|
||||||
"aesimc %%xmm0, %%xmm0 \n" \
|
"aesimc %%xmm0, %%xmm0 \n" \
|
||||||
@ -708,7 +708,7 @@ namespace crypto
|
|||||||
|
|
||||||
void ECBEncryption::SetKey (const AESKey& key)
|
void ECBEncryption::SetKey (const AESKey& key)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
ExpandKey (key);
|
ExpandKey (key);
|
||||||
@ -722,7 +722,7 @@ namespace crypto
|
|||||||
|
|
||||||
void ECBDecryption::SetKey (const AESKey& key)
|
void ECBDecryption::SetKey (const AESKey& key)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
ExpandKey (key); // expand encryption key first
|
ExpandKey (key); // expand encryption key first
|
||||||
@ -754,7 +754,7 @@ namespace crypto
|
|||||||
|
|
||||||
void CBCEncryption::Encrypt (int numBlocks, const ChipherBlock * in, ChipherBlock * out)
|
void CBCEncryption::Encrypt (int numBlocks, const ChipherBlock * in, ChipherBlock * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -799,7 +799,7 @@ namespace crypto
|
|||||||
|
|
||||||
void CBCEncryption::Encrypt (const uint8_t * in, uint8_t * out)
|
void CBCEncryption::Encrypt (const uint8_t * in, uint8_t * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -823,7 +823,7 @@ namespace crypto
|
|||||||
|
|
||||||
void CBCDecryption::Decrypt (int numBlocks, const ChipherBlock * in, ChipherBlock * out)
|
void CBCDecryption::Decrypt (int numBlocks, const ChipherBlock * in, ChipherBlock * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -869,7 +869,7 @@ namespace crypto
|
|||||||
|
|
||||||
void CBCDecryption::Decrypt (const uint8_t * in, uint8_t * out)
|
void CBCDecryption::Decrypt (const uint8_t * in, uint8_t * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -893,7 +893,7 @@ namespace crypto
|
|||||||
|
|
||||||
void TunnelEncryption::Encrypt (const uint8_t * in, uint8_t * out)
|
void TunnelEncryption::Encrypt (const uint8_t * in, uint8_t * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
@ -934,7 +934,7 @@ namespace crypto
|
|||||||
|
|
||||||
void TunnelDecryption::Decrypt (const uint8_t * in, uint8_t * out)
|
void TunnelDecryption::Decrypt (const uint8_t * in, uint8_t * out)
|
||||||
{
|
{
|
||||||
#ifdef __AES__
|
#ifdef __AES__ && (defined(__x86_64__) || defined(__i386__))
|
||||||
if(i2p::cpu::aesni)
|
if(i2p::cpu::aesni)
|
||||||
{
|
{
|
||||||
__asm__
|
__asm__
|
||||||
|
Loading…
Reference in New Issue
Block a user