mirror of
https://github.com/AxioDL/nod.git
synced 2025-12-08 21:17:51 +00:00
Fixed AES-NI decrypting
This commit is contained in:
46
lib/aes.cpp
46
lib/aes.cpp
@@ -471,52 +471,50 @@ static inline __m128i AES_128_ASSIST (__m128i temp1, __m128i temp2)
|
||||
void NiAES::setKey(const uint8_t* key)
|
||||
{
|
||||
__m128i temp1, temp2;
|
||||
__m128i* Key_Schedule = m_ekey;
|
||||
__m128i* Dec_Key_Schedule = m_dkey;
|
||||
|
||||
temp1 = _mm_loadu_si128((__m128i*)key);
|
||||
Key_Schedule[0] = temp1;
|
||||
Dec_Key_Schedule[0] = temp1;
|
||||
m_ekey[0] = temp1;
|
||||
m_dkey[10] = temp1;
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x1);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[1] = temp1;
|
||||
Dec_Key_Schedule[1] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[1] = temp1;
|
||||
m_dkey[9] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x2);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[2] = temp1;
|
||||
Dec_Key_Schedule[2] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[2] = temp1;
|
||||
m_dkey[8] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x4);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[3] = temp1;
|
||||
Dec_Key_Schedule[3] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[3] = temp1;
|
||||
m_dkey[7] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x8);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[4] = temp1;
|
||||
Dec_Key_Schedule[4] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[4] = temp1;
|
||||
m_dkey[6] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x10);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[5] = temp1;
|
||||
Dec_Key_Schedule[5] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[5] = temp1;
|
||||
m_dkey[5] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x20);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[6] = temp1;
|
||||
Dec_Key_Schedule[6] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[6] = temp1;
|
||||
m_dkey[4] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x40);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[7] = temp1;
|
||||
Dec_Key_Schedule[7] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[7] = temp1;
|
||||
m_dkey[3] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x80);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[8] = temp1;
|
||||
Dec_Key_Schedule[8] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[8] = temp1;
|
||||
m_dkey[2] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x1b);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[9] = temp1;
|
||||
Dec_Key_Schedule[9] = _mm_aesimc_si128(temp1);
|
||||
m_ekey[9] = temp1;
|
||||
m_dkey[1] = _mm_aesimc_si128(temp1);
|
||||
temp2 = _mm_aeskeygenassist_si128 (temp1,0x36);
|
||||
temp1 = AES_128_ASSIST(temp1, temp2);
|
||||
Key_Schedule[10] = temp1;
|
||||
Dec_Key_Schedule[10] = temp1;
|
||||
m_ekey[10] = temp1;
|
||||
m_dkey[0] = temp1;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user