summaryrefslogtreecommitdiffstats
path: root/test/evp_extra_test.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-11-15 12:24:05 +0000
committerMatt Caswell <matt@openssl.org>2021-11-16 13:21:06 +0000
commit8c08c8b37cab0eb66ca74fc65a40af3ccec77c00 (patch)
tree9eec591c21a11739d2aab60ac8d2caa9b580afd1 /test/evp_extra_test.c
parent50938aec35fd57fb3bec707ead2eee381fcfaf04 (diff)
Add a test for creating ECX private keys that are too short
We expect attempting to create such short keys to fail Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17041)
Diffstat (limited to 'test/evp_extra_test.c')
-rw-r--r--test/evp_extra_test.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c
index d026ef0c1c..0f280e9f82 100644
--- a/test/evp_extra_test.c
+++ b/test/evp_extra_test.c
@@ -4231,6 +4231,28 @@ static int test_cipher_with_engine(void)
# endif /* OPENSSL_NO_DYNAMIC_ENGINE */
#endif /* OPENSSL_NO_DEPRECATED_3_0 */
+static int ecxnids[] = {
+ NID_X25519,
+ NID_X448,
+ NID_ED25519,
+ NID_ED448
+};
+
+/* Test that creating ECX keys with a short private key fails as expected */
+static int test_ecx_short_keys(int tst)
+{
+ unsigned char ecxkeydata = 1;
+ EVP_PKEY *pkey;
+
+
+ pkey = EVP_PKEY_new_raw_private_key(ecxnids[tst], NULL, &ecxkeydata, 1);
+ if (!TEST_ptr_null(pkey)) {
+ EVP_PKEY_free(pkey);
+ return 0;
+ }
+ return 1;
+}
+
typedef enum OPTION_choice {
OPT_ERR = -1,
OPT_EOF = 0,
@@ -4374,6 +4396,8 @@ int setup_tests(void)
# endif
#endif
+ ADD_ALL_TESTS(test_ecx_short_keys, OSSL_NELEM(ecxnids));
+
return 1;
}