test_suite_pk: use look-up table instead of file for the predefined keys

This helps dropping dependency on FS_IO.
This commit also removes DER files that were previusly added and which
are not more needed/used.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile
index 3191270..d6df19c 100644
--- a/tests/data_files/Makefile
+++ b/tests/data_files/Makefile
@@ -17,7 +17,6 @@
 TOP_DIR = ../..
 MBEDTLS_CERT_WRITE ?= $(TOP_DIR)/programs/x509/cert_write
 MBEDTLS_CERT_REQ ?= $(TOP_DIR)/programs/x509/cert_req
-MBEDTLS_GEN_KEY ?= $(TOP_DIR)/programs/pkey/gen_key
 
 
 ## Build the generated test data. Note that since the final outputs
@@ -719,21 +718,6 @@
 	$(OPENSSL) genrsa -out $@ 4096
 all_final += rsa_pkcs1_4096_clear.pem
 
-### RSA keys in DER format used in test_suite_pk.
-rsa_1024.der: $(MBEDTLS_GEN_KEY)
-	$(MBEDTLS_GEN_KEY) type=rsa rsa_keysize=1024 format=der filename="$@"
-rsa_1026.der: $(MBEDTLS_GEN_KEY)
-	$(MBEDTLS_GEN_KEY) type=rsa rsa_keysize=1026 format=der filename="$@"
-rsa_1028.der: $(MBEDTLS_GEN_KEY)
-	$(MBEDTLS_GEN_KEY) type=rsa rsa_keysize=1028 format=der filename="$@"
-rsa_1030.der: $(MBEDTLS_GEN_KEY)
-	$(MBEDTLS_GEN_KEY) type=rsa rsa_keysize=1030 format=der filename="$@"
-rsa_2048.der: $(MBEDTLS_GEN_KEY)
-	$(MBEDTLS_GEN_KEY) type=rsa rsa_keysize=2048 format=der filename="$@"
-rsa_4096.der: $(MBEDTLS_GEN_KEY)
-	$(MBEDTLS_GEN_KEY) type=rsa rsa_keysize=4096 format=der filename="$@"
-all_final += rsa_1024.der rsa_1026.der rsa_1028.der rsa_1030.der rsa_2048.der rsa_4096.der
-
 ###
 ### PKCS1-encoded, encrypted RSA keys
 ###
@@ -1205,41 +1189,6 @@
 #### Generate various EC keys
 ################################################################
 
-### EC keys in DER format to be used in test_suite_pk.
-seedfile:
-	ln -s $(TOP_DIR)/seedfile ./seedfile
-
-ec_brainpoolP256r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=brainpoolP256r1 format=der filename="$@"
-ec_brainpoolP384r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=brainpoolP384r1 format=der filename="$@"
-ec_brainpoolP512r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=brainpoolP512r1 format=der filename="$@"
-ec_secp192k1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp192k1 format=der filename="$@"
-ec_secp192r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp192r1 format=der filename="$@"
-ec_secp224k1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp224k1 format=der filename="$@"
-ec_secp224r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp224r1 format=der filename="$@"
-ec_secp256k1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp256k1 format=der filename="$@"
-ec_secp256r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp256r1 format=der filename="$@"
-ec_secp384r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp384r1 format=der filename="$@"
-ec_secp521r1.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=secp521r1 format=der filename="$@"
-ec_x25519.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=x25519 format=der filename="$@"
-ec_x448.der: seedfile
-	$(MBEDTLS_GEN_KEY) type=ec ec_curve=x448 format=der filename="$@"
-all_final += ec_brainpoolP256r1.der ec_brainpoolP384r1.der ec_brainpoolP512r1.der \
-		ec_secp192k1.der ec_secp192r1.der ec_secp224k1.der ec_secp224r1.der \
-		ec_secp256k1.der ec_secp256r1.der ec_secp384r1.der ec_secp521r1.der \
-		ec_x25519.der ec_x448.der
-
 ###
 ### PKCS8 encoded
 ###
diff --git a/tests/data_files/ec_brainpoolP256r1.der b/tests/data_files/ec_brainpoolP256r1.der
deleted file mode 100644
index 5c9ce38..0000000
--- a/tests/data_files/ec_brainpoolP256r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_brainpoolP384r1.der b/tests/data_files/ec_brainpoolP384r1.der
deleted file mode 100644
index 11e393d..0000000
--- a/tests/data_files/ec_brainpoolP384r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_brainpoolP512r1.der b/tests/data_files/ec_brainpoolP512r1.der
deleted file mode 100644
index 84fce0a..0000000
--- a/tests/data_files/ec_brainpoolP512r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp192k1.der b/tests/data_files/ec_secp192k1.der
deleted file mode 100644
index 2d7c728..0000000
--- a/tests/data_files/ec_secp192k1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp192r1.der b/tests/data_files/ec_secp192r1.der
deleted file mode 100644
index 1732581..0000000
--- a/tests/data_files/ec_secp192r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp224k1.der b/tests/data_files/ec_secp224k1.der
deleted file mode 100644
index 108b52b..0000000
--- a/tests/data_files/ec_secp224k1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp224r1.der b/tests/data_files/ec_secp224r1.der
deleted file mode 100644
index 1ee94d7..0000000
--- a/tests/data_files/ec_secp224r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp256k1.der b/tests/data_files/ec_secp256k1.der
deleted file mode 100644
index 4b11a2e..0000000
--- a/tests/data_files/ec_secp256k1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp256r1.der b/tests/data_files/ec_secp256r1.der
deleted file mode 100644
index d2cf874..0000000
--- a/tests/data_files/ec_secp256r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp384r1.der b/tests/data_files/ec_secp384r1.der
deleted file mode 100644
index 29860a4..0000000
--- a/tests/data_files/ec_secp384r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_secp521r1.der b/tests/data_files/ec_secp521r1.der
deleted file mode 100644
index 4f19fe4..0000000
--- a/tests/data_files/ec_secp521r1.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_x25519.der b/tests/data_files/ec_x25519.der
deleted file mode 100644
index 5c1c32d..0000000
--- a/tests/data_files/ec_x25519.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/ec_x448.der b/tests/data_files/ec_x448.der
deleted file mode 100644
index 849d4b8..0000000
--- a/tests/data_files/ec_x448.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/rsa_1024.der b/tests/data_files/rsa_1024.der
deleted file mode 100644
index 4f68112..0000000
--- a/tests/data_files/rsa_1024.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/rsa_1026.der b/tests/data_files/rsa_1026.der
deleted file mode 100644
index 2c3d938..0000000
--- a/tests/data_files/rsa_1026.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/rsa_1028.der b/tests/data_files/rsa_1028.der
deleted file mode 100644
index 97c658c..0000000
--- a/tests/data_files/rsa_1028.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/rsa_1030.der b/tests/data_files/rsa_1030.der
deleted file mode 100644
index 754109d..0000000
--- a/tests/data_files/rsa_1030.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/rsa_2048.der b/tests/data_files/rsa_2048.der
deleted file mode 100644
index 4003161..0000000
--- a/tests/data_files/rsa_2048.der
+++ /dev/null
Binary files differ
diff --git a/tests/data_files/rsa_4096.der b/tests/data_files/rsa_4096.der
deleted file mode 100644
index 875e47b..0000000
--- a/tests/data_files/rsa_4096.der
+++ /dev/null
Binary files differ
diff --git a/tests/src/test_keys.h b/tests/src/test_keys.h
new file mode 100644
index 0000000..21737b2
--- /dev/null
+++ b/tests/src/test_keys.h
@@ -0,0 +1,311 @@
+/**
+ * Predefined keys to be used in test_suite_pk.
+ *
+ * They were automatically generated with the following bash script:
+ *
+ * ```
+ * LIST="secp521r1 brainpoolP512r1 secp384r1 brainpoolP384r1 secp256r1 secp256k1
+ *     brainpoolP256r1 secp224r1 secp224k1 secp192r1 secp192k1 x25519 x448"
+ *
+ * for item in $LIST; do
+ *     ./programs/pkey/gen_key type=ec ec_curve=$item filename="tests/data_files/ec_$item.der" format=der
+ * done
+ *
+ * LIST="1024 1026 1028 1030 2048 4096"
+ *
+ * for item in $LIST; do
+ *     ./programs/pkey/gen_key type=rsa rsa_keysize=$item filename="tests/data_files/rsa_$item.der" format=der
+ * done
+ * ```
+ */
+
+struct rsa_key {
+    int bits;
+    const char *key;
+};
+
+struct rsa_key rsa_key_data_lut[] = {
+    { 1024,
+      "3082025b020100028181009a1c55b1d24441a3a752f8e9d08b3392f2e95b"
+      "741468627cce9eee9c089928b98f77a1f3b0e4abb35552838071e4f853a5"
+      "b9dd04ca939240dd66632c48f15fdd6186249fc0043ef52a97d7bb6fecf4"
+      "be5d0e6aba78731782b8f070efdf4853d7f44ce58e89855a92a0274c007e"
+      "cd21de781ab4ae67a89774d160165b2000ee0f02030100010281802616a9"
+      "b15cd404db13404507d8c486b723753c66a8a291f0e1ca5313da662c340c"
+      "7ad75a98d6337f8baf6c93e2d261f39e8a9ccf11d83e35ece260d171a7c2"
+      "76dcf28aefbda457fac13fc85d154325ad339d7afae2c4dff93ad58550db"
+      "3e7cdd0bea9f1f4ef96a560f942924c0b19780a702b44990caad692346f5"
+      "bf45295091024100c90be3f126e0a4b8ac560bca99f3bd980842de6f90fa"
+      "f1e32bc9b029efd7ae8a5f6defa8195e3d3c70ebaa91d2cee080a93d4e7e"
+      "7f89dea09623dc7ce7aa8351024100c43c242651b315de5f10c0923dd0e5"
+      "e8308b2e57a9a6f71583ac20d65d12bf3f0b63a86ef9a4e093376c9d48ee"
+      "ab2c79f4d6a144ff43304912f8806ae29c435f02404d426d8141c0786ca3"
+      "8599986d1b36d3d2f0e78c1639e974b4621879b53abc4f5ea6dfbf48a867"
+      "7defa310f462ffaf54a234f61234aee5c7ee8aaf73ac8f6151024019076e"
+      "b8f07cbe1251dfca201d005302ad86630fcd54bd792205475ef01a1f0884"
+      "845e8c610d1593d162ea20ce4848f0f93892f340f7a9e5f8247804aa08b2"
+      "5302405f19b2ef1b2452e9a5edb032b673bd3e277ebc3f777a922b22c913"
+      "7d4028626b0445db61f42a99b4e5f28c3faf9a774604db172092eee0fdef"
+      "9526f7aec8a856" },
+    { 1026,
+      "3082025d0201000281810344ca3e3712ee43d1ea5d493baa485d94fee503"
+      "323d37dc49b907b11b6b534669b2e572123ab6b5b8223b87e22d60c3be86"
+      "19f6a39f1d76f581f4dda46701628a6dff5316c6efb81bdcbe2cc20173cd"
+      "75c076b7ec84a61b6b80cffc16fa045cf68346013ed639e93708bf264072"
+      "63bc6a39ace26cf0eb24e2c0e6597fbab1f9bb0203010001028181010d06"
+      "b085e8522dffb90790d9dbdf342708e3fbe915017693452791eb2cd0331d"
+      "1c64e40db44eb591a37fdc29fd48d4e5d61b56ce3803b3112f5cd83d58d8"
+      "7b22b818641bba62adf3d5ca44f8523221b1068639ad865e7a7e6fc69aa2"
+      "1091fdf1a325d1b2c6a0ddd1f27883f01aa15b0b193311d357776b6ce52c"
+      "51ac1d8c0601024101ec7ae8715bbda8d4db6636396c1582e8e234275dc9"
+      "d272b0c31848f96dd201f4cc01ac857e25ce2b316ae1798c83a9786c2f8c"
+      "f71d3cbf2db13861814c9ea481024101b2fa7cd232925b355dda2d5f10a2"
+      "f0a05aa91ba74be5c088444d681e1dc0b2c85acfec84c1470233aa4bb5c9"
+      "db0b48853a410eb7d58b07afda91c54012da103b02410169dcc9ccf986fb"
+      "76241c0f7dd3f05e777636b23254e88083676701bfdd34f1610941b59d85"
+      "1a8c49ea8ec94c41b640a10e8546041184a04917ae00df3c08598102406d"
+      "90e2f81f7cf6348f1b71ea4c4a7eca258c0b472cbb06b04c642321d2e4c3"
+      "23ec9c0b3bb563a98e520b18136c757f22eff58b3b8b32a61109c1462a49"
+      "955c1902401e737a46f09dbc770e7c6ee0b1cce304a8d5bb93d300020c86"
+      "b0ce9fc2296307959a7f07ae859c94e9e57d511bd992080e8aa23f5e7b97"
+      "47c42bbda86f3c6f06" },
+    { 1028,
+      "3082025f0201000281810aa49a11be540d741e513621f39d1ecd72a7b020"
+      "d50272d5fbff59b638770f4abaeecc3240c8f8fadecf1a2d4a23d47ba702"
+      "f5c92db1533b835c768e0d395c43931d7525c56aa71266a5dbd7b4c87c96"
+      "52536cd520e61762573274897f3ad77b83f43584660caee3fe3a9fa27b3f"
+      "50d71409feb01956faf9b966e1b08464f0210702030100010281810105c9"
+      "cbf4a6acd840657b370dea45e065a8d9127e850ab5a6cde537cdfb1a9c0a"
+      "941148aed2e0a172312209c1fae95aac346b9b55e998deba03735cb8c68f"
+      "27ea64e6f99d86428a80176115b2d6f5e12d7b9dce5cb68570968f876c69"
+      "762ab664be06d4590c2a168c1180e78ba8787110fd61f0043bd99206b0d4"
+      "3ba39a14bee90241037e44c625d91b753c86804b18f22851b6ca2f50d8f8"
+      "ee71bf53d18e88bbd5aa9fcbcbcad3b415f115a38d9a1858300783343ae0"
+      "8ccdaa64baab34fca617aa303b0241030bf6fd42a34f02155a61667a6482"
+      "33a3d683288b36c7530ed1bff81f2ae2e55ccd7c9d28c968568bbbd2b0ff"
+      "5701335abf1f9785395b136b539a4ecefc8f71a50241031d89986e08c244"
+      "3c46780481aaf5ea6a6ac6e803997e8e53641d7050e1b41d078669a9ea44"
+      "a18cf10f7c2a01ac24a98e89f6386d5abeac370e99a2f93e01ba21024101"
+      "ec7b1efd05aaec90d909a9305ce84d7d0504ba03f529b48b25ebc5dac034"
+      "96489bc33464bd8fb11df811980b123fc2d268dda4c9cd2671c391fd5c07"
+      "9c3762b5024103632899c6c15aee731835c5ca4a75f2236e86a1f701be19"
+      "386d4218d346c371c2b9c08930abf423aca3dbf1e7caf79ecdea6aa66775"
+      "7e7dce5852faef59fcfc2f" },
+    { 1030,
+      "3082025e0201000281812ebe4c4d2a6cd165ebbc6a4bb53dd1bc96dab169"
+      "d6c34ebe5a68f3c3b2d385533045901db0dffc9aebf13c44a6aab2a81f63"
+      "0ed26ee2d4b19bd49abceff7331cdf6f6aae6075631bf72236ff7e546270"
+      "a8b85cab40589ec7c767114aaa3ddd1b35fe999183f21ca02bf3a840422e"
+      "1b06a723fdd0c55c7dfaa0345e2f918884ddb90203010001028181016f27"
+      "a7d8778ff1e3754657a8a9cb15266b1db56f22fd4d5c3875d3992ee1f0dc"
+      "52ce14b322c9928bf9bcb7d330a54700f6339eb8f5ef1667547323a7ede5"
+      "9cbfecda40b4976795aeb53729f09455bd86c4ff6c257dfe8ad0d63ed1a6"
+      "5f7da87c3acdbfe27ccc423739859b860ea28bf004f30be5f1543253a572"
+      "43a5b426d98102410703b35b5221d562f0732901c9b67d2ee7c33c89e03c"
+      "750f0a5978877ba7c2149c10e74ef339500536adbe18e17084bcf557513b"
+      "f02f933713fe5065b69028ef59024106a9f2bff289987d993b27a541eae6"
+      "1a1dd3cf34cd174cb148f59f0e70bfa5b0ea18e64e552379a92d321e37cd"
+      "1a9dd5174d2f84afd83778437b6d9ebe5f42f561024056db7c1552f1a161"
+      "84107db7a60e1410bdced5d474d82cac117bd501d4317d11b77798c80703"
+      "a9dce53686b990d9bad21b3120b713760979fc1923725b32bfb10241030e"
+      "8c936e7f9ddae7a2922225a5ca5dea96d1f327ad6b79dbbd08748855f17c"
+      "c13620d7880898f3790f077b937385394dd2135d2b88e4911f6b8c3288a3"
+      "8c44a1024101e712867c169a6f391cd8f3ce6d7672ed7e90e6590647ebb8"
+      "9bf55924c8cc487a91307b0cbd6f6a5e781dd5b160ac7efe0aba5b2757b3"
+      "b7b00881c25070dda042" },
+    { 2048,
+      "308204a302010002820101009912d469d8864df984bd8ea0d1a4e9bef9b3"
+      "d3ee7249801cd28195d1f3cd71b12aed430dba25012f69effca752337897"
+      "ae3b29df272d1d5dc6495553d0398f86eddf4bd2084f379aaac0f05d33ab"
+      "f6279d495394034c8e8ee5aeb6f0da9404eb8c773f8bec6a3199187ed681"
+      "55dacdc9c1db2f73dfde416ee63f87786da3cc94631ea2adaa3185fce12c"
+      "1c05659e5addaafcab1b7484a823cdfadab90f8555da052bb92c61a96bb6"
+      "2c2b6acbb06e0b01e65605905e42a64def5cc29fc2c04275f4a0a07bcf7a"
+      "49978c820a4710b605ef15c8aa0678636f73f99d79f235548856c8bbf104"
+      "344b209e46bc14acca95050cb4aac1cfc0a28c9d9dc05ab3ee0cf40d0203"
+      "01000102820100156455048cc2aa2b7c723c383bcc12f18236701ff2df54"
+      "34d2f352a37271abd99150f28dbccd96969074be2788fc91f60a9e9089b3"
+      "d121793d307ae8f960cdeed297e1e1f290d589bb22b704a367bd0108c15a"
+      "59854381e9b4edff7975e679308ce30e61a8d2a767488dd33ee4676d5a6c"
+      "89cbde22f34dcc2887c8d01aec68f6bd7551b8155dfc8cf10a3f43c8ecdc"
+      "e55ade57f0041d58878bf7420e8d945bbe858829f55d86b6fe466ce135cd"
+      "34db478a16125a989978266ed38b8f8c204f3873cee95191c41549296ee5"
+      "6e8e7300f9b35700f8aed9c0a1a545ecb9f4d09bfa5c9044bc307ad30ac0"
+      "c6e27b6ce9ffbeed6213110a9aa821d0c7e85cb5ad349902818100c7feea"
+      "fc0076c99dd4b4259fc84c12f4290a6f468e538b6fd8d8aeea4ccc9fe3a3"
+      "83add1964e13bf5b0e081fa401155938962b7a2420800f2e4926ca57f735"
+      "31b5ac1beb22fa98b02640ee67c63ecd250e93a76791c1789f939b8bceb2"
+      "26c2e43b8d1590d401829d83df5749744031d5839e7aa9833d1fbad5a504"
+      "75af833a8902818100c3f033c251d3c857eebae23547fedf350103c91f7a"
+      "a549c37ddec96003691a652c53b1ba46dd687117b3a6007fc340c46ad110"
+      "8d6d5c096a7de8f3773ac866352888f17a7502cf45f3f3d021d8b5719bd2"
+      "98c7f59e3f4f675052800c653be810ec4c4d7c9481e59205d2b0e628e436"
+      "1a4ea4375a84a71c8de549ef546a68fc65028181009883e43b4d3749459d"
+      "81cbf76fcde3de62b5dc6a17fbca27ff5c2ef7ea9d5989459713a4f35493"
+      "66a84fa90e4809b37818d91c4ac6e62a0269afcb6f1f6a1c1cce8873b9fb"
+      "30d3e3f1282f26e05de01fd45ff197dfe584d15cc58ff68e9154aaac6748"
+      "fceb5043854f9db07909b832c8bad8ce7e1ae1302350edc8dade7fdad102"
+      "818042dcc90cda97869a5b20f2e873b509be30a6760f83eebb89367ebc01"
+      "43a8ae1530572f22fde3b82c3f8652738125c40842db2ce6d616be2fd4df"
+      "95956e3dcc82ff5e1be949dcb7968b74fbe550ea39e68eab0c3148db19e1"
+      "8b8b5b9edf3cde28483a91869db6e5fc3a78775d533eed2775069ccd0acf"
+      "6bf30ff776f03b8faff1028180613011e3c3c1e97ed0d4c05f64d46b73e8"
+      "c93ff671ab2bc497aadfae36d803c3e2d7e2ae6a99c36ceebeb86dd5ccd5"
+      "d6f3304821b44e2ee2bb5540f9104d02e7cee6315024096120fb12a98bc1"
+      "1f4f08acf31e6f0cf75ec44b046382344eb1a299a3996ca9b63f71b9fc96"
+      "9f9c76846382c7b026c57cdfdeb53eff85b4f6b373" },
+    { 4096,
+      "3082092702010002820201009ffa9b03aab78e5980223bed1811991bf244"
+      "20e7a277efc45fb01e9d756eba9e57b17b7f198d03e5731f7c8adbcecd6c"
+      "c75c1185228aa3eb650e3df03d10b8c4ee4794be04d48f304a3884589789"
+      "8baa4aae806ff9645318345bb532c7aa85be1de3e4d87873fb709a9af4ed"
+      "984fc2d8f42a98a233204eb50ecce01fef9eaf0ff82324dea54ea7cc909b"
+      "164a58c71f8b47edb097099cb27ee2ba1cd7c37dfbf28e0685a418b1cb5f"
+      "e6cea64d0d3f8b713a628fa9afc385f067323781e72f91a8a1808721ee4d"
+      "369d551f5cbdaadd9d1131ad5652ef71d91be6e701852ad7cf666eb7866a"
+      "ea556a44087f76a2ca120ca53ff5abf6771884f60546d9373328c7150b41"
+      "827207cac3fbe295e4361f4c713f301ae095d9cc521dc1a08828320bf6bd"
+      "7f63d1f7b81702f4738c6aa7992a1a34550a41ca794326e28c9d3a5997fa"
+      "af907bbd832a2e704ce6f867dada308cd28a06b37819a04f7c57fb10ad44"
+      "4f7189ff64a58ae419b1623792704db86a8b75ea5deaae967837757863b1"
+      "b43b55a27be101d714c6f7019a6339470349632b2ac5ba66258f8db5b80f"
+      "fda6b2b078b9716d704f8d1abd90b0364474c41dbb67699fe753f6c37a89"
+      "9887c0eb76f8db872329f2250c30917561242a64bbf341679a0d3e127bb7"
+      "66cdba9a0ae4f15e6220571a083fb9c487c9deff3b029653783a3c205e3d"
+      "5e9aaed05e4ee8b0e13a03a9fac502030100010282020010fdfc531261f6"
+      "c3b8e169fe0fed6696da4fb4330645b8f8e1b5023b754ab295b8f8c80642"
+      "ff806771a7e98192414ffe7ada639e01823a50f965dedc5290212001b326"
+      "b05c30fb988479a64d06a37c6b350d7de4e6d76a200b07a6a26324d099d5"
+      "f0ebd0b65293656d7682076e83224e0af92f4723290e531ae455f5ee6cab"
+      "6985d0adccdc4013809de76b21b0764dfa6c4469da51120cbf7f738736bf"
+      "b3f4fbd96c05ebdd179d636d4f8bc8695cd381ce52c3b1a152a23a5babb0"
+      "cba273a204084b6f8f0211bf784c9f4d2974299fd240b58992bb8e1b2264"
+      "8f2ad12b30cafdb54ad7032a2ab263d1874061a016f4b2e4ad427ba640bb"
+      "76aa2ed14994ac8320a4d81ba570d35184956f049be8c6c7da7938cc5105"
+      "c07bfba6b990687b94066def18ac3525c139707ae781c1e66931241137c1"
+      "0854ee00a74c9c52dc67f1964721891b8302dc4719c60f10af993d69ddce"
+      "b128da65a36f4d0829e84c74f3570d8db747a6db352c22061c2603f255f6"
+      "72f11f11c6f7bcecbbdc16f3995c87e5b840fba8b65a24043fc6dd0f8e1c"
+      "24b3cbb047f56813073b6bb81996f79452ec2aa9ed995bd5d0d6fe4a0315"
+      "2eac8e4f2ceb7ee4aece6760820f0e787d9abab312a435daf8dc3e28125e"
+      "f67107844dba0136a2d5d4b7ce6fc7d5159419d399eb42c5e7818b437c1d"
+      "1a1d4551358ad5e5dc2a757e9f1f12de1a2eb463b748b6c3ad0282010100"
+      "e18b2f5736dccd61f604efd0c1921186d188c54849c6f78aff4964d1fe27"
+      "c0727f057d8bb2e5b86efcc1121e4a791d84acd643c38a75fdcf38167260"
+      "948f23cb0f40c555c1edebf1582439e7b404d9df48de9e6100d9c0084eb3"
+      "59716f2f6ebdebf17c1438ff5a2864b621e79b1b28e7f6e2e7893fbaa1c5"
+      "19fda27e900f7b15f3fbfce98c7b5dac4e86701346a5bb84a5f2330661d2"
+      "677c8ff47b65851e596334e4d057c3e1bec0df01313919f68a20ac3fc3b8"
+      "df5f52ee6e21b9698dff82d1dbc37b2f9cb12036e2d76024ff7a586327d5"
+      "1fad8b7c1d99163827caee7b61e908b0fcf51d3264b8a11abd121993676c"
+      "10d715a345c197d0f4f42e85f74647b30282010100b594e9e77eed5cbb93"
+      "8234af03d2415ed0f8cd99e86033799d68b6547986f27131550d0bb45831"
+      "7ccf1841f0d398fd14c75bf57de7d6a096642b9864e2b07e5248b1f48306"
+      "2fdaa683a87a90aa05e3bbacc4b8eed9929b73eaec5ece7424af6e751afb"
+      "348a28e14a3218e700f0069d1330324b71ee9ba0cf516586c8f0a139f022"
+      "b612173276b40646b2f3d1063ddebee38daa61248ee58594da0168c4382f"
+      "2fff763cdfd69c5765d6f75f7d1d6a1db6cfd894118451fe58ded97f54db"
+      "703e6ed770452e70c6988238ec0ed599bd5cc550874344873e1040374c6d"
+      "373a485c2d2adeac3b89a7615542e0833433c119b1c0c784c76446f68e8b"
+      "9a2fb7d20f77a7028201007f3f96bafef1fe52298a497f1ee6f94a760753"
+      "3ee09907ea7cf37c95596e360ea30986f67d3d4c1c1a3017b7cd4e9dcfcf"
+      "efa715b895af57ed0e0503e66d07c5b5da563b770973d79b61fce573d454"
+      "d3bbfa15a326e6b3883c56c5bcd0fd12dec6325d4dcf8689e84641d7c922"
+      "e264e6d28cdc12bc48e0a22272cdedd7fb53f763cb24bae38e6aa01f418c"
+      "13e404f751f48a3c2d7a9d49d3a6284a4251a378cd16f78d7026ccc3616f"
+      "afed8488d866bfde4eaf6f2b5f4d9bc5b8f331d17279ed4aaef45e3d6a55"
+      "8181e3ff93802c179801ce256c3549162ddbb25d090a19c478c4758e9200"
+      "22015f854d5fa4c997377f69d4df99596ecae7927bfd8f899e362f028201"
+      "000a34532cca4a4692d80852339fb05a321ce64e8f9eaa815a0d498c2d95"
+      "22cb4f272993711bf274dd81b9e842c3716e8f93608c9c45c21f06349cea"
+      "9488d4c854917746b97248902e196a077147cccaee8a1808188c2b9c06d8"
+      "a5edf2063ee588fc95c6963e496bd7c296f9ac68d0c65504b95eda0941bf"
+      "b8c6e740badc2303618661db0468b699095d41c347f4e4d736bd0d020d31"
+      "83c24c4e802de2185cdbf203963e7789d501685cbb4c2778d6b4d2c83d70"
+      "9cc765e0385855babd2713d8be5be7184c32d4464fd32918f052127d3b2d"
+      "7a5c8266634b80805b102c315f4da6d028f15eeb2e77ded5c24e3d49c749"
+      "4d5efb177029277fc5a4fcc63fbb53593302820100689328a8b7c6de5b11"
+      "1934790c4152320c1a63a090bbb5d243517fe1f0203729828806897f157d"
+      "57d02333dc2c56a846eb286412473bab9ab68d144b991a3af9fee228c7ea"
+      "904d6b3aef2e42245abf4d777385b877c86a9b16b5d7c9cab1221576d88d"
+      "ee4993f130236744acbbf45c6bbd2dcaafc00f2cf36537e54e8a99ea8084"
+      "801d4f403376c0339de7f3867f2360af6fc0047cc85359669b90156a31aa"
+      "fe34570fbe1342f9e5743d45646aab7009b73c9e63b7a458c423f3b8de81"
+      "c83de5b0fe60bb7a235d7d1a931cca548639ed4e629386c7de98d8840ba2"
+      "bcb02d8adc59e179b27a4705426b313497c43aaacc953ae92c702af10a2d"
+      "a5db9b0688c41f" },
+};
+
+const char *ec_key_data_lut[] = {
+    [MBEDTLS_ECP_DP_SECP192R1] =
+        "305f020101041856ceb8c9bc8e6562242362d5176916c8cad73cefde6242"
+        "faa00a06082a8648ce3d030101a134033200047bdb35c272027741d687ae"
+        "31007a4ed936231556747cf3e916884db6b08cece5a4923ce964b8bcd195"
+        "b0f53e01d1b9c4",
+    [MBEDTLS_ECP_DP_SECP224R1] =
+        "3068020101041cab5caf66f71236bd1c4c4825588c531682b8019882a025"
+        "ed3814e32fa00706052b81040021a13c033a0004260e79423142a44ce9e5"
+        "b78144c39e3d2b5b2670af673868083416745e57be42319d8ee6d034ef9c"
+        "535c7f6cc45ed5026fae66c0dd1298a5",
+    [MBEDTLS_ECP_DP_SECP256R1] =
+        "30770201010420b52b83eb4cf15f4fb2bdef164f521b92a4c7329ce83dd2"
+        "b24fc4080980603b07a00a06082a8648ce3d030107a14403420004dd40ad"
+        "3c112abb3e7beed40ca349c9a755f930968722865c27ca5d0ca884220b59"
+        "9e6620019ef8fc9b3050cf90ce8cfb5125db447c21bc567806d39e49b181"
+        "01",
+    [MBEDTLS_ECP_DP_SECP384R1] =
+        "3081a402010104301b3640d9ada2984b5c4406c339fa859c374aa1692990"
+        "547b0897429689d4b226d20b1ca20fd32d89e853e3b7644dffaba0070605"
+        "2b81040022a164036200043315c6d4276e8ab4b74b4069bb7a403f4a62e2"
+        "89bfbfe39738dee4064d7ae22ff32520316f7230302db8fa7b0434ada5ac"
+        "3f39acd252b5ec2eadbebf55ba7edb2265026a33bae2dbf59314ce081277"
+        "3f08faef9fb4786d610a8c1c1f348e9627",
+    [MBEDTLS_ECP_DP_SECP521R1] =
+        "3081dc020101044201300db372ffd5307db8016608a097cb4ac8440e7419"
+        "589566518a9b8b4506aa00ddd21d736284d31e02ae3064a0d2b1c3de08ec"
+        "b6285534e13fefe456fde0337572a00706052b81040023a1818903818600"
+        "040183a4329055ced8534460a22f00271dc55b9857aad6886355bcac683d"
+        "461a2281190546929a8e64cdfc1242fb6e3a460b0821b4197b42a0b18253"
+        "18c59dc74eabbd00c74c4bf20494c05183012229df3da41455673233cb32"
+        "877f0646b66fc75e4d72ccdc60e5ceb670ed4dc2773916738e2530a3f5fd"
+        "2c14ec512171e6de772dc21c27",
+    [MBEDTLS_ECP_DP_BP256R1] =
+        "307802010104202a248a6523ec929566b473d189d63358aeaa29385c56c4"
+        "ed52fee5bfbef6705fa00b06092b2403030208010107a14403420004606f"
+        "09a54c0f6d52ff0c7429ad085332d1e03e60370cd6a7b44c1a15668f28cf"
+        "14e35f242ae5c7ab089663de47f840b947a7ff4b2b72a820a0136154d6c6"
+        "c87a",
+    [MBEDTLS_ECP_DP_BP384R1] =
+        "3081a802010104301a4da2c6c462c6f115f3a91cfa6006bdb549e4935364"
+        "b2199d7bc872f1eb9bfcfcc3c997a1ac0064d581f32b3899ba3ba00b0609"
+        "2b240303020801010ba164036200042d4ed26c2aba8d7c49d52e1e6bfbe6"
+        "36583f22e50cc94c64442811f504db9f1823c43427ef5fbe9846842a66a7"
+        "20a1108ac13b1ff05a5d710a51a238ac89ce8f44c0139b9fef4d2c298f2e"
+        "187bf3c3e51ec05b32b27195d884b166b6c803409c",
+    [MBEDTLS_ECP_DP_BP512R1] =
+        "3081da02010104406f2730c70a35827f5a8ff0028f7ce3b28cf9d2711ad2"
+        "269130c5c72eace8d12efb0afd2f099548afa55bd94dd7361ab63ba1bea0"
+        "c7d295a67498107cf89acfb3a00b06092b240303020801010da181850381"
+        "82000464615aa207894e1059a28fc36c9f1d955b518dc668ee3a257b35b7"
+        "6d1b48820a0c42bf91122a96c5887633d71796d6d541a098534ad09f1f1b"
+        "0ebaece479e8e0284a7bb28efd1185a77a3ab8715e6e99f9591d44f92ca7"
+        "b4896d36a9022fdffa0cd7744f4dc462172bc4c027456d8469f41e15bbff"
+        "0546bac84f4edf3f4fc0c3",
+    [MBEDTLS_ECP_DP_CURVE25519] =
+        "302e020100300506032b656e04220420b0a8bd3ffeb3e2a7caa1148f5406"
+        "20b2dd493faff1d1cda6458822077445cd78",
+    [MBEDTLS_ECP_DP_SECP192K1] =
+        "305c02010104186a01a55cc30d77ef9962778f78af3cbb5c7fc7dd1aa9a7"
+        "b6a00706052b8104001fa1340332000435aa842c4bef314c579910674cf3"
+        "cb426ce001bdd5ca0586398634776957b1e3afa9473e5b69648ffaa65a1f"
+        "052be658",
+    [MBEDTLS_ECP_DP_SECP256K1] =
+        "30740201010420282608d1c6067366c22ef6ed5aa3b6e31107e6fa535f2b"
+        "6def935626517883c7a00706052b8104000aa14403420004163f1a8038d1"
+        "11cd2da34a98b8524180de6c56268cd8b2d315201778d1e7c09da090c2c8"
+        "da4667bd3e831f444103606875069c222bd1cc9beb84cf2989ad37ec",
+    [MBEDTLS_ECP_DP_CURVE448] =
+        "3046020100300506032b656f043a043858ab68f1e135d8d38514774a63a3"
+        "4c659b3ed783f8cf87531f49927c5e97f459cb324a32ab3dd2f1613ad931"
+        "cb3df24d5244bc7e4691f1f4",
+};
diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index 1eb03ff..0082fd5 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -184,22 +184,41 @@
 #define MBEDTLS_MD_ALG_FOR_TEST         MBEDTLS_MD_SHA512
 #endif
 
-const char *curve_names_lut[] = {
-    [MBEDTLS_ECP_DP_SECP192R1] = "secp192r1",
-    [MBEDTLS_ECP_DP_SECP224R1] = "secp224r1",
-    [MBEDTLS_ECP_DP_SECP256R1] = "secp256r1",
-    [MBEDTLS_ECP_DP_SECP384R1] = "secp384r1",
-    [MBEDTLS_ECP_DP_SECP521R1] = "secp521r1",
-    [MBEDTLS_ECP_DP_BP256R1] = "brainpoolP256r1",
-    [MBEDTLS_ECP_DP_BP384R1] = "brainpoolP384r1",
-    [MBEDTLS_ECP_DP_BP512R1] = "brainpoolP512r1",
-    [MBEDTLS_ECP_DP_CURVE25519] = "x25519",
-    [MBEDTLS_ECP_DP_SECP192K1] = "secp192k1",
-    [MBEDTLS_ECP_DP_SECP256K1] = "secp256k1",
-    [MBEDTLS_ECP_DP_CURVE448] = "x448",
-};
-
 #if defined(MBEDTLS_PK_PARSE_C)
+
+#include <../src/test_keys.h>
+static int get_predefined_key_data(int is_rsa, int curve_or_keybits,
+                                   unsigned char **outbuf, size_t *out_buf_size)
+{
+    const char *key_data_hex = NULL;
+    size_t out_buf_len = 0;
+
+    if (is_rsa) {
+        size_t i;
+        for (i = 0; i < ARRAY_LENGTH(rsa_key_data_lut); i++) {
+            if (curve_or_keybits == rsa_key_data_lut[i].bits) {
+                key_data_hex = rsa_key_data_lut[i].key;
+                break;
+            }
+        }
+    } else {
+        key_data_hex = ec_key_data_lut[curve_or_keybits];
+    }
+
+    if (key_data_hex == NULL) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    *out_buf_size = strlen(key_data_hex)/2;
+    *outbuf = mbedtls_calloc(*out_buf_size, sizeof(unsigned char));
+    if (*outbuf == NULL) {
+        return MBEDTLS_ERR_PK_ALLOC_FAILED;
+    }
+    mbedtls_test_unhexify(*outbuf, *out_buf_size, key_data_hex, &out_buf_len);
+
+    return 0;
+}
+
 /** Fill the provided PK context with a proper key.
  *
  * This is a fake implementation of key generation because instead of generating
@@ -217,26 +236,27 @@
  */
 static int pk_genkey(mbedtls_pk_context *pk, int curve_or_keybits)
 {
-    char file_name[128] = { 0 };
-    int ret;
+    unsigned char *key_data = NULL;
+    size_t key_data_len = 0;
+    int ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    int is_rsa = (mbedtls_pk_get_type(pk) == MBEDTLS_PK_RSA);
+
     /* Dump pk_info since this is overridden by mbedtls_pk_parse_keyfile(). */
     const mbedtls_pk_info_t *original_pk_info = pk->pk_info;
 
-    if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_RSA) {
-        sprintf(file_name, "data_files/rsa_%d.der", curve_or_keybits);
-    } else if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECKEY ||
-               mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECKEY_DH ||
-               mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECDSA) {
-        sprintf(file_name, "data_files/ec_%s.der", curve_names_lut[curve_or_keybits]);
-    }
-
-    ret = mbedtls_pk_parse_keyfile(pk, file_name, NULL, mbedtls_test_rnd_std_rand, NULL);
+    TEST_EQUAL(get_predefined_key_data(is_rsa, curve_or_keybits, &key_data, &key_data_len), 0);
+    TEST_EQUAL(mbedtls_pk_parse_key(pk, key_data, key_data_len, NULL, 0,
+                                    mbedtls_test_rnd_std_rand, NULL), 0);
     /* Restore pk_info. */
     pk->pk_info = original_pk_info;
+    ret = 0;
 
+exit:
+    mbedtls_free(key_data);
     return ret;
 }
 
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
 /** Create a PSA key of the desired type and properties.
  *
  * This is similar to pk_genkey() above in the sense that it does not really
@@ -261,51 +281,61 @@
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
     psa_status_t status = PSA_ERROR_GENERIC_ERROR;
     mbedtls_pk_context pk;
-    char file_name[128] = { 0 };
-    unsigned char key_data[MBEDTLS_PK_WRITE_PUBKEY_MAX_SIZE] = { 0 };
-    size_t key_data_len;
+    unsigned char *key_data = NULL;
+    size_t key_data_size = 0; /* Overall size of key_data in bytes. It includes leading
+                               * zeros (if any). */
+    size_t key_data_len = 0; /* Length of valid bytes in key_data. */
     unsigned char *key_data_start;
     int ret;
 
     mbedtls_pk_init(&pk);
 
-    /* Get the name of the key file to load. */
+    /* Get the predefined key (in DER format) and parse it. */
     if (PSA_KEY_TYPE_IS_RSA(type)) {
-        sprintf(file_name, "data_files/rsa_%lu.der", bits);
-    } else if (PSA_KEY_TYPE_IS_ECC(type)) {
-        psa_ecc_family_t ec_family = PSA_KEY_TYPE_ECC_GET_FAMILY(type);
-        mbedtls_ecp_group_id grp_id = mbedtls_ecc_group_from_psa(ec_family, bits);
-        sprintf(file_name, "data_files/ec_%s.der", curve_names_lut[grp_id]);
+        TEST_EQUAL(get_predefined_key_data(1, bits, &key_data, &key_data_size), 0);
     } else {
-        TEST_FAIL("Only EC or RSA key type is supported.");
+        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(0, grp_id, &key_data, &key_data_size), 0);
     }
-    /* Parse the key file and write the key material to the key_data buffer. */
-    TEST_EQUAL(mbedtls_pk_parse_keyfile(&pk, file_name, NULL, mbedtls_test_rnd_std_rand, NULL), 0);
+    TEST_EQUAL(mbedtls_pk_parse_key(&pk, key_data, key_data_size, NULL, 0,
+                                    mbedtls_test_rnd_std_rand, NULL), 0);
+    /* Resize key_data buffer. */
+    mbedtls_free(key_data);
+    key_data = NULL;
+    TEST_CALLOC(key_data, MBEDTLS_PK_WRITE_PUBKEY_MAX_SIZE);
+    key_data_size = MBEDTLS_PK_WRITE_PUBKEY_MAX_SIZE;
+
+    /* Export only the key data material in a PSA friendly format.
+     *
+     * Note: mbedtls_pk_write_key_der() and mbedtls_mpi_write_binary() write
+     * key data at the end of the provided buffer, whereas psa_export_key()
+     * writes the key at the beginning.
+    */
     if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) {
 #if defined(MBEDTLS_PK_WRITE_C)
-        ret = mbedtls_pk_write_key_der(&pk, key_data, sizeof(key_data));
+        ret = mbedtls_pk_write_key_der(&pk, key_data, key_data_size);
         TEST_ASSERT(ret > 0);
         key_data_len = (size_t) ret;
+        key_data_start = key_data + key_data_size - key_data_len;
 #else
         TEST_FAIL("RSA is unsupported");
 #endif /* MBEDTLS_PK_WRITE_C */
     } else if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY) {
-#if defined(MBEDTLS_PK_USE_EC_DATA)
-        PSA_ASSERT(psa_export_key(pk->priv_id, key_data, sizeof(key_data), &key_data_len));
+#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
+        PSA_ASSERT(psa_export_key(pk.priv_id, key_data, key_data_size, &key_data_len));
+        key_data_start = key_data;
 #elif defined(MBEDTLS_PK_HAVE_ECC_KEYS)
         const mbedtls_ecp_keypair *ec_ctx = mbedtls_pk_ec_ro(pk);
-        TEST_EQUAL(mbedtls_mpi_write_binary(&(ec_ctx->d), key_data, sizeof(key_data)), 0);
+        TEST_EQUAL(mbedtls_mpi_write_binary(&(ec_ctx->d), key_data, key_data_size), 0);
         key_data_len = PSA_BITS_TO_BYTES(mbedtls_mpi_bitlen(&(ec_ctx->d)));
+        key_data_start = key_data + key_data_size - key_data_len;
 #else /* !MBEDTLS_PK_USE_EC_DATA && !MBEDTLS_PK_HAVE_ECC_KEYS */
         TEST_FAIL("EC is unsupported");
 #endif /*  */
     } else {
         TEST_FAIL("Unknown key type");
     }
-    /* Data was written to the end of the key_data buffer so we shift that to
-     * the beginnig. */
-    key_data_start = key_data + sizeof(key_data) - key_data_len;
-    memmove(key_data, key_data_start, key_data_len);
 
     /* Import the key into PSA. */
     *key = MBEDTLS_SVC_KEY_ID_INIT;
@@ -317,12 +347,14 @@
     if (!mbedtls_svc_key_id_is_null(persistent_key_id)) {
         psa_set_key_id(&attributes, persistent_key_id);
     }
-    status = psa_import_key(&attributes, key_data, key_data_len, key);
+    status = psa_import_key(&attributes, key_data_start, key_data_len, key);
 
 exit:
+    mbedtls_free(key_data);
     mbedtls_pk_free(&pk);
     return status;
 }
+#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
 #endif /* MBEDTLS_PK_PARSE_C */
 
 #if defined(MBEDTLS_PSA_CRYPTO_C)
@@ -2543,6 +2575,7 @@
                              PSA_VENDOR_RSA_GENERATE_MIN_KEY_BITS,
                              PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_EXPORT,
                              PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256),
+                             PSA_ALG_NONE,
                              PSA_KEY_ID_NULL, &key_id));
     TEST_EQUAL(mbedtls_pk_copy_from_psa(key_id, &pk_ctx), MBEDTLS_ERR_PK_BAD_INPUT_DATA);
 exit: