summaryrefslogtreecommitdiff
path: root/tests/ssl-test.c
diff options
context:
space:
mode:
authorPatrick Griffis <pgriffis@igalia.com>2021-04-27 10:17:50 -0500
committerCarlos Garcia Campos <carlosgc@gnome.org>2021-06-02 07:22:46 +0000
commit86b0aef240a5b0e0fee546d670f060566d45091a (patch)
treeec55e69056d617b363fd79f5b6dae2e4ecc329db /tests/ssl-test.c
parentfed77d04878183d0aac2412df2c92c2b16849711 (diff)
downloadlibsoup-86b0aef240a5b0e0fee546d670f060566d45091a.tar.gz
ssl-test: Add test for incorrect client cert
Diffstat (limited to 'tests/ssl-test.c')
-rw-r--r--tests/ssl-test.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/ssl-test.c b/tests/ssl-test.c
index d0c222aa..909b3a20 100644
--- a/tests/ssl-test.c
+++ b/tests/ssl-test.c
@@ -252,7 +252,7 @@ do_tls_interaction_msg_test (gconstpointer data)
SoupMessage *msg;
GBytes *body;
GTlsDatabase *tls_db;
- GTlsCertificate *certificate;
+ GTlsCertificate *certificate, *wrong_certificate;
GError *error = NULL;
SOUP_TEST_SKIP_IF_NO_TLS;
@@ -330,10 +330,29 @@ do_tls_interaction_msg_test (gconstpointer data)
g_bytes_unref (body);
g_object_unref (msg);
+ /* Using the wrong certificate fails */
+ wrong_certificate = g_tls_certificate_new_from_files (
+ g_test_get_filename (G_TEST_DIST, "test-cert-2.pem", NULL),
+ g_test_get_filename (G_TEST_DIST, "test-key-2.pem", NULL),
+ NULL
+ );
+ g_assert_nonnull (wrong_certificate);
+ msg = soup_message_new_from_uri ("GET", uri);
+ soup_message_add_flags (msg, SOUP_MESSAGE_NEW_CONNECTION);
+ g_signal_connect (msg, "request-certificate",
+ G_CALLBACK (request_certificate_async_cb),
+ wrong_certificate);
+ body = soup_test_session_async_send (session, msg, NULL, &error);
+ g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CONNECTION_CLOSED);
+ g_assert_null (body);
+ g_clear_error (&error);
+ g_object_unref (msg);
+
g_signal_handlers_disconnect_by_data (server, tls_db);
soup_test_session_abort_unref (session);
g_object_unref (certificate);
+ g_object_unref (wrong_certificate);
}
static void