From 906c63cf3571b64db8eed423f1240195e4cb14e3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 14 Jun 2023 17:53:51 +0100 Subject: [PATCH] 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 --- library/aes.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/library/aes.c b/library/aes.c index aa230fd15a..6d8cf2e3c1 100644 --- a/library/aes.c +++ b/library/aes.c @@ -1068,6 +1068,8 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx, } #endif + const unsigned char *ivp = iv; + if (mode == MBEDTLS_AES_DECRYPT) { while (length > 0) { memcpy(temp, input, 16); @@ -1086,18 +1088,19 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx, } } 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;