Fix crypt_and_hash decrypt issue when used with stream cipher

crypt_and_hash decryption fails when used with a stream cipher
mode of operation due to the input not being multiple of block
size, this only applies to block cipher modes and not stream
ciphers.This change exempts CTR, CFB & OFB modes from this check.

Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
This commit is contained in:
Waleed Elmelegy 2023-06-09 16:58:01 +01:00
parent e5e8ba654e
commit 7d39cc410c

View File

@ -406,6 +406,9 @@ int main(int argc, char *argv[])
* Check the file size.
*/
if (mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_GCM &&
mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_CTR &&
mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_CFB &&
mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_OFB &&
((filesize - mbedtls_md_get_size(md_info)) %
mbedtls_cipher_get_block_size(&cipher_ctx)) != 0) {
mbedtls_fprintf(stderr, "File content not a multiple of the block size (%u).\n",