Browse Source

Merge pull request #1921 from contextswap/openssl

limit aes-ni assembly to x86
pull/1925/head
orignal 1 year ago committed by GitHub
parent
commit
a9e9e14c42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 30
      libi2pd/Crypto.cpp

30
libi2pd/Crypto.cpp

@ -555,7 +555,7 @@ namespace crypto @@ -555,7 +555,7 @@ namespace crypto
}
// AES
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
#define KeyExpansion256(round0,round1) \
"pshufd $0xff, %%xmm2, %%xmm2 \n" \
"movaps %%xmm1, %%xmm4 \n" \
@ -580,7 +580,7 @@ namespace crypto @@ -580,7 +580,7 @@ namespace crypto
"movaps %%xmm3, "#round1"(%[sched]) \n"
#endif
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
void ECBCryptoAESNI::ExpandKey (const AESKey& key)
{
__asm__
@ -621,7 +621,7 @@ namespace crypto @@ -621,7 +621,7 @@ namespace crypto
#endif
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
#define EncryptAES256(sched) \
"pxor (%["#sched"]), %%xmm0 \n" \
"aesenc 16(%["#sched"]), %%xmm0 \n" \
@ -642,7 +642,7 @@ namespace crypto @@ -642,7 +642,7 @@ namespace crypto
void ECBEncryption::Encrypt (const ChipherBlock * in, ChipherBlock * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -660,7 +660,7 @@ namespace crypto @@ -660,7 +660,7 @@ namespace crypto
}
}
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
#define DecryptAES256(sched) \
"pxor 224(%["#sched"]), %%xmm0 \n" \
"aesdec 208(%["#sched"]), %%xmm0 \n" \
@ -681,7 +681,7 @@ namespace crypto @@ -681,7 +681,7 @@ namespace crypto
void ECBDecryption::Decrypt (const ChipherBlock * in, ChipherBlock * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -699,7 +699,7 @@ namespace crypto @@ -699,7 +699,7 @@ namespace crypto
}
}
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
#define CallAESIMC(offset) \
"movaps "#offset"(%[shed]), %%xmm0 \n" \
"aesimc %%xmm0, %%xmm0 \n" \
@ -708,7 +708,7 @@ namespace crypto @@ -708,7 +708,7 @@ namespace crypto
void ECBEncryption::SetKey (const AESKey& key)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
ExpandKey (key);
@ -722,7 +722,7 @@ namespace crypto @@ -722,7 +722,7 @@ namespace crypto
void ECBDecryption::SetKey (const AESKey& key)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
ExpandKey (key); // expand encryption key first
@ -754,7 +754,7 @@ namespace crypto @@ -754,7 +754,7 @@ namespace crypto
void CBCEncryption::Encrypt (int numBlocks, const ChipherBlock * in, ChipherBlock * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -799,7 +799,7 @@ namespace crypto @@ -799,7 +799,7 @@ namespace crypto
void CBCEncryption::Encrypt (const uint8_t * in, uint8_t * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -823,7 +823,7 @@ namespace crypto @@ -823,7 +823,7 @@ namespace crypto
void CBCDecryption::Decrypt (int numBlocks, const ChipherBlock * in, ChipherBlock * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -869,7 +869,7 @@ namespace crypto @@ -869,7 +869,7 @@ namespace crypto
void CBCDecryption::Decrypt (const uint8_t * in, uint8_t * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -893,7 +893,7 @@ namespace crypto @@ -893,7 +893,7 @@ namespace crypto
void TunnelEncryption::Encrypt (const uint8_t * in, uint8_t * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__
@ -934,7 +934,7 @@ namespace crypto @@ -934,7 +934,7 @@ namespace crypto
void TunnelDecryption::Decrypt (const uint8_t * in, uint8_t * out)
{
#ifdef __AES__
#if defined(__AES__) && (defined(__x86_64__) || defined(__i386__))
if(i2p::cpu::aesni)
{
__asm__

Loading…
Cancel
Save