Revert "improve cbc encrypt perf"
This reverts commit f1e396c42724896b9d31ac727043da45a35d5e26.
Performance is slightly better with this reverted, especially
for AES-CBC 192.
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/aes.c b/library/aes.c
index aa230fd..6d8cf2e 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -1068,6 +1068,8 @@
}
#endif
+ const unsigned char *ivp = iv;
+
if (mode == MBEDTLS_AES_DECRYPT) {
while (length > 0) {
memcpy(temp, input, 16);
@@ -1086,18 +1088,19 @@
}
} else {
while (length > 0) {
- mbedtls_xor(temp, input, iv, 16);
+ mbedtls_xor(output, input, ivp, 16);
- ret = mbedtls_aes_crypt_ecb(ctx, mode, temp, iv);
- memcpy(output, iv, 16);
+ ret = mbedtls_aes_crypt_ecb(ctx, mode, output, output);
if (ret != 0) {
goto exit;
}
+ ivp = output;
input += 16;
output += 16;
length -= 16;
}
+ memcpy(iv, ivp, 16);
}
ret = 0;