From: Richard Levitte Date: Tue, 17 Aug 2021 12:32:35 +0000 (+0200) Subject: Add tests for EVP_PKEY_get_utf8_string_param(), both positive and negative X-Git-Tag: openssl-3.0.0~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d68820d95634322108316f3051a1746ead88adaf;p=thirdparty%2Fopenssl.git Add tests for EVP_PKEY_get_utf8_string_param(), both positive and negative Reviewed-by: Viktor Dukhovni (Merged from https://github.com/openssl/openssl/pull/16334) --- diff --git a/test/evp_pkey_provided_test.c b/test/evp_pkey_provided_test.c index f075f40b0c1..593f7090ebd 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)