From f1e396c42724896b9d31ac727043da45a35d5e26 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Sun, 4 Jun 2023 12:00:11 -0400 Subject: [PATCH] improve cbc encrypt perf Signed-off-by: Dave Rodgman --- library/aes.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/library/aes.c b/library/aes.c index bfcaf352b5..e9395d4eca 100644 --- a/library/aes.c +++ b/library/aes.c @@ -1068,8 +1068,6 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx, } #endif - const unsigned char *ivp = iv; - if (mode == MBEDTLS_AES_DECRYPT) { unsigned char temp2[16]; while (length > 0) { @@ -1089,19 +1087,18 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx, } } else { while (length > 0) { - mbedtls_xor(output, input, ivp, 16); + mbedtls_xor(temp, input, iv, 16); - ret = mbedtls_aes_crypt_ecb(ctx, mode, output, output); + ret = mbedtls_aes_crypt_ecb(ctx, mode, temp, iv); + memcpy(output, iv, 16); if (ret != 0) { goto exit; } - ivp = output; input += 16; output += 16; length -= 16; } - memcpy(iv, ivp, 16); } ret = 0;