BLOCK_CIPHER_NO_DECRYPT: call encrypt direction unconditionally
Signed-off-by: Yanray Wang <yanray.wang@arm.com>
diff --git a/library/aesni.c b/library/aesni.c
index 6c917da..c68b081 100644
--- a/library/aesni.c
+++ b/library/aesni.c
@@ -93,24 +93,25 @@
++rk;
--nr;
- if (mode == MBEDTLS_AES_ENCRYPT) {
- while (nr != 0) {
- state = _mm_aesenc_si128(state, *rk);
- ++rk;
- --nr;
- }
- state = _mm_aesenclast_si128(state, *rk);
- } else {
#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
+ if (mode == MBEDTLS_AES_DECRYPT) {
while (nr != 0) {
state = _mm_aesdec_si128(state, *rk);
++rk;
--nr;
}
state = _mm_aesdeclast_si128(state, *rk);
+ } else
#else
- return MBEDTLS_ERR_AES_FEATURE_UNAVAILABLE;
+ (void) mode;
#endif
+ {
+ while (nr != 0) {
+ state = _mm_aesenc_si128(state, *rk);
+ ++rk;
+ --nr;
+ }
+ state = _mm_aesenclast_si128(state, *rk);
}
memcpy(output, &state, 16);
@@ -445,12 +446,6 @@
const unsigned char input[16],
unsigned char output[16])
{
-#if defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
- if (mode == MBEDTLS_AES_DECRYPT) {
- return MBEDTLS_ERR_AES_FEATURE_UNAVAILABLE;
- }
-#endif
-
asm ("movdqu (%3), %%xmm0 \n\t" // load input
"movdqu (%1), %%xmm1 \n\t" // load round key 0
"pxor %%xmm1, %%xmm0 \n\t" // round 0