diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile
index db568ad..01d2379 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 535c13b..4f490a1 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)
@@ -2563,6 +2595,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:
