summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2019-06-29 21:02:11 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2019-06-29 21:02:14 +0200
commitfd872101dac48fd8451ae8f6c6e21d9ac29a449f (patch)
tree678cbc405bca26501c9c7bf18639fc9433c1ad02 /src
parent00c960bfaca656693d371d9777e88811d3d91d71 (diff)
downloadgnutls-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.c3
-rw-r--r--src/tests.c23
-rw-r--r--src/tests.h1
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);