Merge remote-tracking branch 'origin/release/2.2.x'
Signed-off-by: Antonio de Angelis <antonio.deangelis@arm.com>
Change-Id: I91cfb0c6862b986bd301eaef93672d97eef9d3a3
diff --git a/tests_reg/test/secure_fw/suites/crypto/crypto_tests_common.c b/tests_reg/test/secure_fw/suites/crypto/crypto_tests_common.c
index 9f8cc5b..1ec66e2 100644
--- a/tests_reg/test/secure_fw/suites/crypto/crypto_tests_common.c
+++ b/tests_reg/test/secure_fw/suites/crypto/crypto_tests_common.c
@@ -11,6 +11,10 @@
#include <string.h>
#include "crypto_tests_common.h"
+/* Maximum array sizes to remove VLAs */
+#define PSA_HASH_LENGTH_MAX 64
+#define ECDSA_KEYS_PRIV_SZ_MAX 48
+
/* Helper function to convert from string representation to binary */
static uint8_t char_to_uint8_t(char c)
{
@@ -2858,7 +2862,7 @@
return;
}
- uint8_t encrypted_data[PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(PSA_KEY_TYPE_RSA_KEY_PAIR, 2048, alg)];
+ uint8_t encrypted_data[PSA_BITS_TO_BYTES(2048)];
status = psa_import_key(&key_attributes, key_pair, key_size, &key_id_local);
if (status != PSA_SUCCESS) {
@@ -3239,15 +3243,21 @@
}
const size_t ecdsa_private_key_sz = ecdsa_keys[curve_selector].priv_sz;
- uint8_t signature[PSA_ECDSA_SIGNATURE_SIZE(PSA_BYTES_TO_BITS(ecdsa_private_key_sz))];
+
+ assert(ECDSA_KEYS_PRIV_SZ_MAX >= ecdsa_private_key_sz);
+
+ uint8_t signature[PSA_ECDSA_SIGNATURE_SIZE(PSA_BYTES_TO_BITS(ECDSA_KEYS_PRIV_SZ_MAX))];
char tmp_str[sizeof(signature) * 2 + 1]; /* enough to hold the hash string as well */
size_t signature_length = 0;
/* The expected format of the public key is uncompressed, i.e. 0x04 X Y */
uint8_t ecdsa_pub_key[
- PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(PSA_BYTES_TO_BITS(ecdsa_private_key_sz))];
+ PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(PSA_BYTES_TO_BITS(ECDSA_KEYS_PRIV_SZ_MAX))];
size_t pub_key_length = 0;
const psa_algorithm_t hash_alg = PSA_ALG_GET_HASH(alg);
- uint8_t hash[PSA_HASH_LENGTH(hash_alg)];
+
+ assert(PSA_HASH_LENGTH_MAX >= PSA_HASH_LENGTH(hash_alg));
+
+ uint8_t hash[PSA_HASH_LENGTH_MAX];
size_t hash_length = 0;
uint8_t scratch_buffer[48 * 2 + 1]; /* Up to the P-384 pub key in uncompressed format */