Add test in block_cipher_key_type test case
The test case uses a bit shift to check that the block
size is a power of 2
Fixes #4228
Signed-off-by: Joe Subbiani <joe.subbiani@arm.com>
diff --git a/tests/suites/test_suite_psa_crypto_metadata.function b/tests/suites/test_suite_psa_crypto_metadata.function
index d91f90f..ef0b265 100644
--- a/tests/suites/test_suite_psa_crypto_metadata.function
+++ b/tests/suites/test_suite_psa_crypto_metadata.function
@@ -603,6 +603,28 @@
TEST_EQUAL( type & PSA_KEY_TYPE_CATEGORY_MASK,
PSA_KEY_TYPE_CATEGORY_SYMMETRIC );
TEST_EQUAL( PSA_BLOCK_CIPHER_BLOCK_LENGTH( type ), block_size );
+
+ /* PSA_ROUND_UP_TO_MULTIPLE(block_size, length) in crypto_sizes.h
+ * Requires block sizes to be a power of 2.
+ * The following creates a bit and shifts along until it finds a
+ * match or a mismatch.
+ */
+ int check = 0;
+
+ for (size_t index = 1; index > 0; index = index << 1)
+ {
+ if (index == block_size)
+ {
+ check = 0;
+ break;
+ }
+ if (index > block_size)
+ {
+ check = 1;
+ break;
+ }
+ }
+ TEST_EQUAL( check, 0);
}
/* END_CASE */