diff options
author | Richard Levitte <levitte@openssl.org> | 2021-08-17 14:32:35 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2021-08-18 17:05:57 +0200 |
commit | d68820d95634322108316f3051a1746ead88adaf (patch) | |
tree | 6b8786f8091ef75c60f3826c53d9de3e402e7b5d /test/evp_pkey_provided_test.c | |
parent | 4e92d5c79d501d09a978fd896c715da07902d8b7 (diff) | |
download | openssl-new-d68820d95634322108316f3051a1746ead88adaf.tar.gz |
Add tests for EVP_PKEY_get_utf8_string_param(), both positive and negative
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16334)
Diffstat (limited to 'test/evp_pkey_provided_test.c')
-rw-r--r-- | test/evp_pkey_provided_test.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/evp_pkey_provided_test.c b/test/evp_pkey_provided_test.c index f075f40b0c..593f7090eb 100644 --- a/test/evp_pkey_provided_test.c +++ b/test/evp_pkey_provided_test.c @@ -526,6 +526,37 @@ static int test_fromdata_dh_named_group(void) fromdata_params))) goto err; + /* + * A few extra checks of EVP_PKEY_get_utf8_string_param() to see that + * it behaves as expected with regards to string length and terminating + * NUL byte. + */ + if (!TEST_true(EVP_PKEY_get_utf8_string_param(pk, + OSSL_PKEY_PARAM_GROUP_NAME, + NULL, sizeof(name_out), + &len)) + || !TEST_size_t_eq(len, sizeof(group_name) - 1) + /* Just enough space to hold the group name and a terminating NUL */ + || !TEST_true(EVP_PKEY_get_utf8_string_param(pk, + OSSL_PKEY_PARAM_GROUP_NAME, + name_out, + sizeof(group_name), + &len)) + || !TEST_size_t_eq(len, sizeof(group_name) - 1) + /* Too small buffer to hold the terminating NUL byte */ + || !TEST_false(EVP_PKEY_get_utf8_string_param(pk, + OSSL_PKEY_PARAM_GROUP_NAME, + name_out, + sizeof(group_name) - 1, + &len)) + /* Too small buffer to hold the whole group name, even! */ + || !TEST_false(EVP_PKEY_get_utf8_string_param(pk, + OSSL_PKEY_PARAM_GROUP_NAME, + name_out, + sizeof(group_name) - 2, + &len))) + goto err; + while (dup_pk == NULL) { ret = 0; if (!TEST_int_eq(EVP_PKEY_get_bits(pk), 2048) |