From f5c829b6f8397c4083bb19b00aa147bd7a628e5e Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 9 Nov 2022 16:50:01 +0000 Subject: [tests] Verify ability to perform in-place encryption and decryption TLS relies upon the ability of ciphers to perform in-place decryption, in order to avoid allocating additional I/O buffers for received data. Add verification of in-place encryption and decryption to the cipher self-tests. Signed-off-by: Michael Brown --- src/tests/cipher_test.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tests/cipher_test.c b/src/tests/cipher_test.c index 0d0eac1..b7a9827 100644 --- a/src/tests/cipher_test.c +++ b/src/tests/cipher_test.c @@ -91,8 +91,9 @@ void cipher_encrypt_okx ( struct cipher_test *test, const char *file, test->additional_len ); } - /* Perform encryption */ - cipher_encrypt ( cipher, ctx, test->plaintext, ciphertext, len ); + /* Perform in-place encryption */ + memcpy ( ciphertext, test->plaintext, len ); + cipher_encrypt ( cipher, ctx, ciphertext, ciphertext, len ); /* Compare against expected ciphertext */ okx ( memcmp ( ciphertext, test->ciphertext, len ) == 0, file, line ); @@ -149,8 +150,9 @@ void cipher_decrypt_okx ( struct cipher_test *test, const char *file, test->additional_len ); } - /* Perform decryption */ - cipher_decrypt ( cipher, ctx, test->ciphertext, plaintext, len ); + /* Perform in-place decryption */ + memcpy ( plaintext, test->ciphertext, len ); + cipher_decrypt ( cipher, ctx, plaintext, plaintext, len ); /* Compare against expected plaintext */ okx ( memcmp ( plaintext, test->plaintext, len ) == 0, file, line ); -- cgit v1.1