diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-06-29 21:02:11 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-06-29 21:02:14 +0200 |
commit | fd872101dac48fd8451ae8f6c6e21d9ac29a449f (patch) | |
tree | 678cbc405bca26501c9c7bf18639fc9433c1ad02 /src | |
parent | 00c960bfaca656693d371d9777e88811d3d91d71 (diff) | |
download | gnutls-fd872101dac48fd8451ae8f6c6e21d9ac29a449f.tar.gz |
gnutls-cli-debug: test whether RSA key exchange is supported
Resolves: #449
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/cli-debug.c | 3 | ||||
-rw-r--r-- | src/tests.c | 23 | ||||
-rw-r--r-- | src/tests.h | 1 |
3 files changed, 27 insertions, 0 deletions
diff --git a/src/cli-debug.c b/src/cli-debug.c index c1333b1935..cd06d08ae0 100644 --- a/src/cli-debug.c +++ b/src/cli-debug.c @@ -149,6 +149,9 @@ static const TLS_TEST tls_tests[] = { {"anonymous Diffie-Hellman group info", test_dhe_group, NULL, "N/A", "N/A"}, #endif + {"for RSA key exchange support", test_rsa, "yes", + "no", + "dunno"}, {"for ephemeral Diffie-Hellman support", test_dhe, "yes", "no", "dunno"}, {"for RFC7919 Diffie-Hellman support", test_rfc7919, "yes", "no", diff --git a/src/tests.c b/src/tests.c index 115f3ae82b..20438f4d6e 100644 --- a/src/tests.c +++ b/src/tests.c @@ -249,6 +249,29 @@ test_code_t test_ecdhe(gnutls_session_t session) return ret; } +test_code_t test_rsa(gnutls_session_t session) +{ + int ret; + + if (tls_ext_ok == 0) + return TEST_IGNORE; + + sprintf(prio_str, INIT_STR + ALL_CIPHERS ":" ALL_COMP ":%s:" ALL_MACS + ":+RSA:%s", protocol_all_str, + rest); + _gnutls_priority_set_direct(session, prio_str); + + gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = test_do_handshake(session); + + if (ret < 0) + return TEST_FAILED; + + return ret; +} + static test_code_t test_ecdhe_curve(gnutls_session_t session, const char *curve, unsigned id) { diff --git a/src/tests.h b/src/tests.h index 0e6ad1824a..c391d97bfb 100644 --- a/src/tests.h +++ b/src/tests.h @@ -75,6 +75,7 @@ test_code_t test_send_record_with_allow_small_records(gnutls_session_t session); int _test_srp_username_callback(gnutls_session_t session, char **username, char **password); +test_code_t test_rsa(gnutls_session_t session); test_code_t test_ecdhe_x25519(gnutls_session_t session); test_code_t test_ecdhe_secp521r1(gnutls_session_t session); test_code_t test_ecdhe_secp384r1(gnutls_session_t session); |