generate_test_keys: generate also look-up table in script

Remove static declaration of look-up table from test_suite_pk
and generate it automatically with Python.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index 36f447f..968f4dd 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -185,65 +185,20 @@
 #endif
 
 #include <../src/test_keys.h>
-struct key_lut_element {
-    int curve_or_keybits;
-    const unsigned char *key;
-    size_t key_len;
-    const unsigned char *pub_key;
-    size_t pub_key_len;
-};
 
-struct key_lut_element keys_lut[] = {
-    { 1024, test_rsa_1024_priv, sizeof(test_rsa_1024_priv),
-      test_rsa_1024_pub, sizeof(test_rsa_1024_pub) },
-    { 1026, test_rsa_1026_priv, sizeof(test_rsa_1026_priv),
-      test_rsa_1026_pub, sizeof(test_rsa_1026_pub) },
-    { 1028, test_rsa_1028_priv, sizeof(test_rsa_1028_priv),
-      test_rsa_1028_pub, sizeof(test_rsa_1028_pub) },
-    { 1030, test_rsa_1030_priv, sizeof(test_rsa_1030_priv),
-      test_rsa_1030_pub, sizeof(test_rsa_1030_pub) },
-    { 2048, test_rsa_2048_priv, sizeof(test_rsa_2048_priv),
-      test_rsa_2048_pub, sizeof(test_rsa_2048_pub) },
-    { 4096, test_rsa_4096_priv, sizeof(test_rsa_4096_priv),
-      test_rsa_4096_pub, sizeof(test_rsa_4096_pub) },
-    { MBEDTLS_ECP_DP_SECP192R1, test_ec_secp192r1_priv, sizeof(test_ec_secp192r1_priv),
-      test_ec_secp192r1_pub, sizeof(test_ec_secp192r1_pub) },
-    { MBEDTLS_ECP_DP_SECP224R1, test_ec_secp224r1_priv, sizeof(test_ec_secp224r1_priv),
-      test_ec_secp224r1_pub, sizeof(test_ec_secp224r1_pub) },
-    { MBEDTLS_ECP_DP_SECP256R1, test_ec_secp256r1_priv, sizeof(test_ec_secp256r1_priv),
-      test_ec_secp256r1_pub, sizeof(test_ec_secp256r1_pub) },
-    { MBEDTLS_ECP_DP_SECP384R1, test_ec_secp384r1_priv, sizeof(test_ec_secp384r1_priv),
-      test_ec_secp384r1_pub, sizeof(test_ec_secp384r1_pub) },
-    { MBEDTLS_ECP_DP_SECP521R1, test_ec_secp521r1_priv, sizeof(test_ec_secp521r1_priv),
-      test_ec_secp521r1_pub, sizeof(test_ec_secp521r1_pub) },
-    { MBEDTLS_ECP_DP_BP256R1, test_ec_bp256r1_priv, sizeof(test_ec_bp256r1_priv),
-      test_ec_bp256r1_pub, sizeof(test_ec_bp256r1_pub) },
-    { MBEDTLS_ECP_DP_BP384R1, test_ec_bp384r1_priv, sizeof(test_ec_bp384r1_priv),
-      test_ec_bp384r1_pub, sizeof(test_ec_bp384r1_pub) },
-    { MBEDTLS_ECP_DP_BP512R1, test_ec_bp512r1_priv, sizeof(test_ec_bp512r1_priv),
-      test_ec_bp512r1_pub, sizeof(test_ec_bp512r1_pub) },
-    { MBEDTLS_ECP_DP_CURVE25519, test_ec_curve255_priv, sizeof(test_ec_curve255_priv),
-      test_ec_curve255_pub, sizeof(test_ec_curve255_pub) },
-    { MBEDTLS_ECP_DP_SECP192K1, test_ec_secp192k1_priv, sizeof(test_ec_secp192k1_priv),
-      test_ec_secp192k1_pub, sizeof(test_ec_secp192k1_pub) },
-    { MBEDTLS_ECP_DP_SECP256K1, test_ec_secp256k1_priv, sizeof(test_ec_secp256k1_priv),
-      test_ec_secp256k1_pub, sizeof(test_ec_secp256k1_pub) },
-    { MBEDTLS_ECP_DP_CURVE448, test_ec_curve448_priv, sizeof(test_ec_curve448_priv),
-      test_ec_curve448_pub, sizeof(test_ec_curve448_pub) },
-};
-
-static int get_predefined_key_data(int curve_or_keybits,
+static int get_predefined_key_data(int is_ec, int curve_or_keybits,
                                    const unsigned char **key, size_t *key_len,
                                    const unsigned char **pub_key, size_t *pub_key_len)
 {
     size_t i;
-    for (i = 0; i < ARRAY_LENGTH(keys_lut); i++) {
-        if (curve_or_keybits == keys_lut[i].curve_or_keybits) {
-            *key = keys_lut[i].key;
-            *key_len = keys_lut[i].key_len;
+    for (i = 0; i < ARRAY_LENGTH(predefined_keys); i++) {
+        if ((is_ec == predefined_keys[i].is_ec) &&
+            (curve_or_keybits == predefined_keys[i].curve_or_keybits)) {
+            *key = predefined_keys[i].priv_key;
+            *key_len = predefined_keys[i].priv_key_len;
             if (pub_key != NULL) {
-                *pub_key = keys_lut[i].pub_key;
-                *pub_key_len = keys_lut[i].pub_key_len;
+                *pub_key = predefined_keys[i].pub_key;
+                *pub_key_len = predefined_keys[i].pub_key_len;
             }
             return 0;
         }
@@ -301,12 +256,12 @@
     int ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
 
     if (pk_type == MBEDTLS_PK_RSA) {
-        TEST_EQUAL(get_predefined_key_data(curve_or_keybits, &key_data, &key_data_len,
+        TEST_EQUAL(get_predefined_key_data(0, curve_or_keybits, &key_data, &key_data_len,
                                            NULL, 0), 0);
         TEST_EQUAL(mbedtls_pk_parse_key(pk, key_data, key_data_len, NULL, 0,
                                         mbedtls_test_rnd_std_rand, NULL), 0);
     } else {
-        TEST_EQUAL(get_predefined_key_data(curve_or_keybits, &key_data, &key_data_len,
+        TEST_EQUAL(get_predefined_key_data(1, curve_or_keybits, &key_data, &key_data_len,
                                            &pub_key_data, &pub_key_data_len), 0);
         TEST_EQUAL(mbedtls_pk_setup(pk, mbedtls_pk_info_from_type(pk_type)), 0);
 #if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
@@ -368,12 +323,12 @@
     size_t key_data_size = 0;
 
     if (PSA_KEY_TYPE_IS_RSA(type)) {
-        TEST_EQUAL(get_predefined_key_data(bits, &key_data, &key_data_size, NULL, 0), 0);
+        TEST_EQUAL(get_predefined_key_data(0, bits, &key_data, &key_data_size, NULL, 0), 0);
     } else {
 #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
         mbedtls_ecp_group_id grp_id;
         grp_id = mbedtls_ecc_group_from_psa(PSA_KEY_TYPE_ECC_GET_FAMILY(type), bits);
-        TEST_EQUAL(get_predefined_key_data(grp_id, &key_data, &key_data_size, NULL, 0), 0);
+        TEST_EQUAL(get_predefined_key_data(1, grp_id, &key_data, &key_data_size, NULL, 0), 0);
 #else /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
         TEST_FAIL("EC keys are not supported");
 #endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */