summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Ramacher <sebastian+dev@ramacher.at>2013-11-05 13:44:57 +0100
committerDwayne Litzenberger <dlitz@dlitz.net>2014-06-22 17:26:16 -0700
commit8dcd95ed3ce3bcf799c2da66d9650ba24e875763 (patch)
tree10664f0f1a95308aa21c08a42b3bd8360c4ed246
parent0bf79348351d9f505458325be0fd69a8f0ce4641 (diff)
downloadpycrypto-8dcd95ed3ce3bcf799c2da66d9650ba24e875763.tar.gz
Fix compilation with clang-3.3
clang-3.3 is stricter regarding the second argument of _mm_shuffle_epi32. Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
-rw-r--r--src/AESNI.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/AESNI.c b/src/AESNI.c
index 50f0cd6..3f1e061 100644
--- a/src/AESNI.c
+++ b/src/AESNI.c
@@ -75,13 +75,11 @@ static void* aligned_malloc_wrapper(size_t alignment, size_t size)
/* Helper functions to expand keys */
-static __m128i aes128_keyexpand(__m128i key, __m128i keygened, int shuf)
+static __m128i aes128_keyexpand(__m128i key)
{
key = _mm_xor_si128(key, _mm_slli_si128(key, 4));
key = _mm_xor_si128(key, _mm_slli_si128(key, 4));
- key = _mm_xor_si128(key, _mm_slli_si128(key, 4));
- keygened = _mm_shuffle_epi32(keygened, shuf);
- return _mm_xor_si128(key, keygened);
+ return _mm_xor_si128(key, _mm_slli_si128(key, 4));
}
static __m128i aes192_keyexpand_2(__m128i key, __m128i key2)
@@ -91,11 +89,14 @@ static __m128i aes192_keyexpand_2(__m128i key, __m128i key2)
return _mm_xor_si128(key, key2);
}
-#define KEYEXP128(K, I) aes128_keyexpand(K, _mm_aeskeygenassist_si128(K, I), 0xff)
-#define KEYEXP192(K1, K2, I) aes128_keyexpand(K1, _mm_aeskeygenassist_si128(K2, I), 0x55)
+#define KEYEXP128_H(K1, K2, I, S) _mm_xor_si128(aes128_keyexpand(K1), \
+ _mm_shuffle_epi32(_mm_aeskeygenassist_si128(K2, I), S))
+
+#define KEYEXP128(K, I) KEYEXP128_H(K, K, I, 0xff)
+#define KEYEXP192(K1, K2, I) KEYEXP128_H(K1, K2, I, 0x55)
#define KEYEXP192_2(K1, K2) aes192_keyexpand_2(K1, K2)
-#define KEYEXP256(K1, K2, I) aes128_keyexpand(K1, _mm_aeskeygenassist_si128(K2, I), 0xff)
-#define KEYEXP256_2(K1, K2) aes128_keyexpand(K1, _mm_aeskeygenassist_si128(K2, 0x00), 0xaa)
+#define KEYEXP256(K1, K2, I) KEYEXP128_H(K1, K2, I, 0xff)
+#define KEYEXP256_2(K1, K2) KEYEXP128_H(K1, K2, 0x00, 0xaa)
/* Encryption key setup */
static void aes_key_setup_enc(__m128i rk[], const u8* cipherKey, int keylen)