summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-04-11 00:02:33 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-04-11 00:02:33 +0200
commitd0bb004712e67124c361cdf0be2c273f45a44421 (patch)
tree3998781e3f5be070f3b13184f1719f713443e0ba /tests
parent1f8cd4eebabb8be5acd99a94547fda66b337a7f7 (diff)
downloadgnutls-d0bb004712e67124c361cdf0be2c273f45a44421.tar.gz
Combined the safe renegotiation tests with the again-common lib.
Diffstat (limited to 'tests')
-rw-r--r--tests/eagain-common.h13
-rw-r--r--tests/safe-renegotiation/Makefile.am3
-rw-r--r--tests/safe-renegotiation/srn0.c181
-rw-r--r--tests/safe-renegotiation/srn1.c132
-rw-r--r--tests/safe-renegotiation/srn2.c261
-rw-r--r--tests/safe-renegotiation/srn3.c132
-rw-r--r--tests/safe-renegotiation/srn4.c182
-rw-r--r--tests/safe-renegotiation/srn5.c184
8 files changed, 95 insertions, 993 deletions
diff --git a/tests/eagain-common.h b/tests/eagain-common.h
index 473e236c21..d75e78782f 100644
--- a/tests/eagain-common.h
+++ b/tests/eagain-common.h
@@ -1,7 +1,7 @@
#define min(x,y) ((x)<(y)?(x):(y))
//#define EAGAIN_DEBUG
-#define HANDSHAKE(c, s) \
+#define HANDSHAKE_EXPECT(c, s, clierr, serverr) \
sret = cret = GNUTLS_E_AGAIN; \
do \
{ \
@@ -14,8 +14,8 @@
sret = gnutls_handshake (s); \
} \
} \
- while (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN); \
- if (cret < 0 || sret < 0) \
+ while ((cret == GNUTLS_E_AGAIN || (cret == 0 && sret == GNUTLS_E_AGAIN)) && (sret == GNUTLS_E_AGAIN || (sret == 0 && cret == GNUTLS_E_AGAIN))); \
+ if (cret != clierr || sret != serverr) \
{ \
fprintf(stderr, "client: %s\n", gnutls_strerror(cret)); \
fprintf(stderr, "server: %s\n", gnutls_strerror(sret)); \
@@ -23,6 +23,9 @@
exit(1); \
}
+#define HANDSHAKE(c, s) \
+ HANDSHAKE_EXPECT(c,s,0,0)
+
#define TRANSFER(c, s, msg, msglen, buf, buflen) \
do \
{ \
@@ -131,7 +134,7 @@ client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
#ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: Not enough data by server (asked for: %d, have: %d)\n", (int)len, (int)to_client_len);
#endif
- gnutls_transport_set_global_errno (EAGAIN);
+ gnutls_transport_set_errno ((gnutls_session_t)tr, EAGAIN);
return -1;
}
@@ -158,7 +161,7 @@ server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
#ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: Not enough data by client (asked for: %d, have: %d)\n", (int)len, (int)to_server_len);
#endif
- gnutls_transport_set_global_errno (EAGAIN);
+ gnutls_transport_set_errno ((gnutls_session_t)tr, EAGAIN);
return -1;
}
diff --git a/tests/safe-renegotiation/Makefile.am b/tests/safe-renegotiation/Makefile.am
index d6a5593ca6..8b0c65833a 100644
--- a/tests/safe-renegotiation/Makefile.am
+++ b/tests/safe-renegotiation/Makefile.am
@@ -23,7 +23,8 @@ AM_CPPFLAGS = \
-I$(top_builddir)/lib/includes
AM_LDFLAGS = -no-install
-LDADD = ../../lib/libgnutls.la $(LTLIBGCRYPT) $(LIBSOCKET)
+LDADD = ../libutils.la \
+ ../../lib/libgnutls.la $(LTLIBGCRYPT) $(LIBSOCKET)
ctests = srn0 srn1 srn2 srn3 srn4 srn5
diff --git a/tests/safe-renegotiation/srn0.c b/tests/safe-renegotiation/srn0.c
index 629fd7664b..71839f738d 100644
--- a/tests/safe-renegotiation/srn0.c
+++ b/tests/safe-renegotiation/srn0.c
@@ -37,6 +37,8 @@
#include <string.h>
#include <errno.h>
#include <gnutls/gnutls.h>
+#include "../eagain-common.h"
+#include "../utils.h"
static void
tls_log_func (int level, const char *str)
@@ -44,80 +46,6 @@ tls_log_func (int level, const char *str)
fprintf (stderr, "|<%d>| %s", level, str);
}
-static char *to_server;
-static size_t to_server_len;
-
-static char *to_client;
-static size_t to_client_len;
-
-static ssize_t
-client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_client_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_client, len);
-
- memmove (to_client, to_client + len, to_client_len - len);
- to_client_len -= len;
-
- return len;
-}
-
-static ssize_t
-client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_server_len + len;
- char *tmp;
-
- tmp = realloc (to_server, newlen);
- if (!tmp)
- abort ();
- to_server = tmp;
-
- memcpy (to_server + to_server_len, data, len);
- to_server_len = newlen;
-
- return len;
-}
-
-static ssize_t
-server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_server_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_server, len);
-
- memmove (to_server, to_server + len, to_server_len - len);
- to_server_len -= len;
-
- return len;
-}
-
-static ssize_t
-server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_client_len + len;
- char *tmp;
-
- tmp = realloc (to_client, newlen);
- if (!tmp)
- abort ();
- to_client = tmp;
-
- memcpy (to_client + to_client_len, data, len);
- to_client_len = newlen;
-
- return len;
-}
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -159,11 +87,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof (server_key_pem)
};
-int
-main (int argc, char *argv[])
+void doit(void)
{
- int debug_level = argc - 1;
- int exit_code = EXIT_SUCCESS;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_session_t server;
@@ -176,7 +101,7 @@ main (int argc, char *argv[])
/* General init. */
gnutls_global_init ();
gnutls_global_set_log_function (tls_log_func);
- gnutls_global_set_log_level (debug_level);
+ if (debug) gnutls_global_set_log_level (2);
/* Init server */
gnutls_certificate_allocate_credentials (&serverx509cred);
@@ -188,6 +113,7 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (server, "NORMAL", NULL);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_certificate_allocate_credentials (&clientx509cred);
@@ -196,53 +122,19 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (client, "NORMAL", NULL);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = EXIT_FAILURE;
+ HANDSHAKE(client, server);
if (!gnutls_safe_renegotiation_status (client) ||
!gnutls_safe_renegotiation_status (server))
{
tls_log_func (0, "Session not using safe renegotiation!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
sret = gnutls_rehandshake (server);
- if (debug_level > 0)
+ if (debug)
{
tls_log_func (0, "gnutls_rehandshake (server)...\n");
tls_log_func (0, gnutls_strerror (sret));
@@ -257,52 +149,14 @@ main (int argc, char *argv[])
abort ();
}
- cret = GNUTLS_E_AGAIN;
- sret = GNUTLS_E_AGAIN;
-
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = 1;
+ HANDSHAKE(client, server);
if (!gnutls_safe_renegotiation_status (client) ||
!gnutls_safe_renegotiation_status (server))
{
tls_log_func (0,
"Rehandshaked session not using safe renegotiation!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
gnutls_bye (client, GNUTLS_SHUT_RDWR);
@@ -311,20 +165,15 @@ main (int argc, char *argv[])
gnutls_deinit (client);
gnutls_deinit (server);
- free (to_server);
- free (to_client);
-
gnutls_certificate_free_credentials (serverx509cred);
+ gnutls_certificate_free_credentials (clientx509cred);
gnutls_global_deinit ();
- if (debug_level > 0)
+ if (debug)
{
- if (exit_code == 0)
- puts ("Self-test successful");
- else
- puts ("Self-test failed");
+ puts ("Self-test successful");
}
- return exit_code;
+ return;
}
diff --git a/tests/safe-renegotiation/srn1.c b/tests/safe-renegotiation/srn1.c
index 2b996b0c94..6907d85164 100644
--- a/tests/safe-renegotiation/srn1.c
+++ b/tests/safe-renegotiation/srn1.c
@@ -36,6 +36,8 @@
#include <string.h>
#include <errno.h>
#include <gnutls/gnutls.h>
+#include "../eagain-common.h"
+#include "../utils.h"
static void
tls_log_func (int level, const char *str)
@@ -43,80 +45,6 @@ tls_log_func (int level, const char *str)
fprintf (stderr, "|<%d>| %s", level, str);
}
-static char *to_server;
-static size_t to_server_len;
-
-static char *to_client;
-static size_t to_client_len;
-
-static ssize_t
-client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_client_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_client, len);
-
- memmove (to_client, to_client + len, to_client_len - len);
- to_client_len -= len;
-
- return len;
-}
-
-static ssize_t
-client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_server_len + len;
- char *tmp;
-
- tmp = realloc (to_server, newlen);
- if (!tmp)
- abort ();
- to_server = tmp;
-
- memcpy (to_server + to_server_len, data, len);
- to_server_len = newlen;
-
- return len;
-}
-
-static ssize_t
-server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_server_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_server, len);
-
- memmove (to_server, to_server + len, to_server_len - len);
- to_server_len -= len;
-
- return len;
-}
-
-static ssize_t
-server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_client_len + len;
- char *tmp;
-
- tmp = realloc (to_client, newlen);
- if (!tmp)
- abort ();
- to_client = tmp;
-
- memcpy (to_client + to_client_len, data, len);
- to_client_len = newlen;
-
- return len;
-}
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -158,11 +86,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof (server_key_pem)
};
-int
-main (int argc, char *argv[])
+void doit(void)
{
- int debug_level = argc - 1;
- int exit_code = EXIT_SUCCESS;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_session_t server;
@@ -175,7 +100,7 @@ main (int argc, char *argv[])
/* General init. */
gnutls_global_init ();
gnutls_global_set_log_function (tls_log_func);
- gnutls_global_set_log_level (debug_level);
+ if (debug) gnutls_global_set_log_level (5);
/* Init server */
gnutls_certificate_allocate_credentials (&serverx509cred);
@@ -187,6 +112,7 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (server, "NORMAL:%SAFE_RENEGOTIATION", NULL);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_certificate_allocate_credentials (&clientx509cred);
@@ -196,6 +122,7 @@ main (int argc, char *argv[])
NULL);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
/* Check that initially no session use the extension. */
if (gnutls_safe_renegotiation_status (server)
@@ -205,39 +132,7 @@ main (int argc, char *argv[])
abort ();
}
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while ((cret == GNUTLS_E_AGAIN || cret == GNUTLS_E_SUCCESS)
- && (sret == GNUTLS_E_AGAIN || sret == GNUTLS_E_SUCCESS));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SAFE_RENEGOTIATION_FAILED)
- exit_code = EXIT_FAILURE;
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_SAFE_RENEGOTIATION_FAILED);
gnutls_bye (client, GNUTLS_SHUT_RDWR);
gnutls_bye (server, GNUTLS_SHUT_RDWR);
@@ -245,20 +140,15 @@ main (int argc, char *argv[])
gnutls_deinit (client);
gnutls_deinit (server);
- free (to_server);
- free (to_client);
-
gnutls_certificate_free_credentials (serverx509cred);
+ gnutls_certificate_free_credentials (clientx509cred);
gnutls_global_deinit ();
- if (debug_level > 0)
+ if (debug)
{
- if (exit_code == 0)
- puts ("Self-test successful");
- else
- puts ("Self-test failed");
+ puts ("Self-test successful");
}
- return exit_code;
+ return;
}
diff --git a/tests/safe-renegotiation/srn2.c b/tests/safe-renegotiation/srn2.c
index 8c9d444c6b..d006aaa90a 100644
--- a/tests/safe-renegotiation/srn2.c
+++ b/tests/safe-renegotiation/srn2.c
@@ -34,6 +34,8 @@
#include <string.h>
#include <errno.h>
#include <gnutls/gnutls.h>
+#include "../eagain-common.h"
+#include "../utils.h"
static void
tls_log_func (int level, const char *str)
@@ -41,80 +43,6 @@ tls_log_func (int level, const char *str)
fprintf (stderr, "|<%d>| %s", level, str);
}
-static char *to_server;
-static size_t to_server_len;
-
-static char *to_client;
-static size_t to_client_len;
-
-static ssize_t
-client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_client_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_client, len);
-
- memmove (to_client, to_client + len, to_client_len - len);
- to_client_len -= len;
-
- return len;
-}
-
-static ssize_t
-client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_server_len + len;
- char *tmp;
-
- tmp = realloc (to_server, newlen);
- if (!tmp)
- abort ();
- to_server = tmp;
-
- memcpy (to_server + to_server_len, data, len);
- to_server_len = newlen;
-
- return len;
-}
-
-static ssize_t
-server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_server_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_server, len);
-
- memmove (to_server, to_server + len, to_server_len - len);
- to_server_len -= len;
-
- return len;
-}
-
-static ssize_t
-server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_client_len + len;
- char *tmp;
-
- tmp = realloc (to_client, newlen);
- if (!tmp)
- abort ();
- to_client = tmp;
-
- memcpy (to_client + to_client_len, data, len);
- to_client_len = newlen;
-
- return len;
-}
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -156,11 +84,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof (server_key_pem)
};
-int
-main (int argc, char *argv[])
+void doit(void)
{
- int debug_level = argc - 1;
- int exit_code = EXIT_SUCCESS;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_session_t server;
@@ -173,7 +98,7 @@ main (int argc, char *argv[])
/* General init. */
gnutls_global_init ();
gnutls_global_set_log_function (tls_log_func);
- gnutls_global_set_log_level (debug_level);
+ if (debug) gnutls_global_set_log_level (2);
/* Init server */
gnutls_certificate_allocate_credentials (&serverx509cred);
@@ -185,6 +110,7 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (server, "NORMAL", NULL);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_certificate_allocate_credentials (&clientx509cred);
@@ -193,6 +119,7 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (client, "NORMAL", NULL);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
/* Check that initially no session use the extension. */
if (gnutls_safe_renegotiation_status (server)
@@ -202,42 +129,7 @@ main (int argc, char *argv[])
abort ();
}
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = EXIT_FAILURE;
+ HANDSHAKE(client, server);
/* Check that both sessions use the extension. */
if (!gnutls_safe_renegotiation_status (server)
@@ -248,7 +140,7 @@ main (int argc, char *argv[])
}
sret = gnutls_rehandshake (server);
- if (debug_level > 0)
+ if (debug)
{
tls_log_func (0, "gnutls_rehandshake (server)...\n");
tls_log_func (0, gnutls_strerror (sret));
@@ -263,45 +155,7 @@ main (int argc, char *argv[])
abort ();
}
- cret = GNUTLS_E_AGAIN;
- sret = GNUTLS_E_AGAIN;
-
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = 1;
+ HANDSHAKE(client, server);
/* Check that session still use the extension. */
if (!gnutls_safe_renegotiation_status (server)
@@ -316,7 +170,7 @@ main (int argc, char *argv[])
gnutls_safe_negotiation_set_initial (server, 0); */
sret = gnutls_rehandshake (server);
- if (debug_level > 0)
+ if (debug)
{
tls_log_func (0, "gnutls_rehandshake (server)...\n");
tls_log_func (0, gnutls_strerror (sret));
@@ -331,51 +185,13 @@ main (int argc, char *argv[])
abort ();
}
- cret = GNUTLS_E_AGAIN;
- sret = GNUTLS_E_AGAIN;
-
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = 1;
+ HANDSHAKE(client, server);
/* Check that disabling the extension will break rehandshakes.
gnutls_safe_renegotiation_set (client, 0); */
sret = gnutls_rehandshake (server);
- if (debug_level > 0)
+ if (debug)
{
tls_log_func (0, "gnutls_rehandshake (server)...\n");
tls_log_func (0, gnutls_strerror (sret));
@@ -390,45 +206,7 @@ main (int argc, char *argv[])
abort ();
}
- cret = GNUTLS_E_AGAIN;
- sret = GNUTLS_E_AGAIN;
-
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = 1;
+ HANDSHAKE(client, server);
gnutls_bye (client, GNUTLS_SHUT_RDWR);
gnutls_bye (server, GNUTLS_SHUT_RDWR);
@@ -436,20 +214,15 @@ main (int argc, char *argv[])
gnutls_deinit (client);
gnutls_deinit (server);
- free (to_server);
- free (to_client);
-
gnutls_certificate_free_credentials (serverx509cred);
+ gnutls_certificate_free_credentials (clientx509cred);
gnutls_global_deinit ();
- if (debug_level > 0)
+ if (debug)
{
- if (exit_code == 0)
- puts ("Self-test successful");
- else
- puts ("Self-test failed");
+ puts ("Self-test successful");
}
- return exit_code;
+ return;
}
diff --git a/tests/safe-renegotiation/srn3.c b/tests/safe-renegotiation/srn3.c
index 71f0ac31ca..45a89802fa 100644
--- a/tests/safe-renegotiation/srn3.c
+++ b/tests/safe-renegotiation/srn3.c
@@ -36,6 +36,8 @@
#include <string.h>
#include <errno.h>
#include <gnutls/gnutls.h>
+#include "../eagain-common.h"
+#include "../utils.h"
static void
tls_log_func (int level, const char *str)
@@ -43,80 +45,6 @@ tls_log_func (int level, const char *str)
fprintf (stderr, "|<%d>| %s", level, str);
}
-static char *to_server;
-static size_t to_server_len;
-
-static char *to_client;
-static size_t to_client_len;
-
-static ssize_t
-client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_client_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_client, len);
-
- memmove (to_client, to_client + len, to_client_len - len);
- to_client_len -= len;
-
- return len;
-}
-
-static ssize_t
-client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_server_len + len;
- char *tmp;
-
- tmp = realloc (to_server, newlen);
- if (!tmp)
- abort ();
- to_server = tmp;
-
- memcpy (to_server + to_server_len, data, len);
- to_server_len = newlen;
-
- return len;
-}
-
-static ssize_t
-server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_server_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_server, len);
-
- memmove (to_server, to_server + len, to_server_len - len);
- to_server_len -= len;
-
- return len;
-}
-
-static ssize_t
-server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_client_len + len;
- char *tmp;
-
- tmp = realloc (to_client, newlen);
- if (!tmp)
- abort ();
- to_client = tmp;
-
- memcpy (to_client + to_client_len, data, len);
- to_client_len = newlen;
-
- return len;
-}
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -158,11 +86,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof (server_key_pem)
};
-int
-main (int argc, char *argv[])
+void doit(void)
{
- int debug_level = argc - 1;
- int exit_code = EXIT_SUCCESS;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_session_t server;
@@ -175,7 +100,7 @@ main (int argc, char *argv[])
/* General init. */
gnutls_global_init ();
gnutls_global_set_log_function (tls_log_func);
- gnutls_global_set_log_level (debug_level);
+ if (debug) gnutls_global_set_log_level (2);
/* Init server */
gnutls_certificate_allocate_credentials (&serverx509cred);
@@ -188,6 +113,7 @@ main (int argc, char *argv[])
NULL);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_certificate_allocate_credentials (&clientx509cred);
@@ -196,6 +122,7 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (client, "NORMAL:%SAFE_RENEGOTIATION", NULL);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
/* Check that initially no session use the extension. */
if (gnutls_safe_renegotiation_status (server)
@@ -205,39 +132,7 @@ main (int argc, char *argv[])
abort ();
}
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while ((cret == GNUTLS_E_AGAIN || cret == GNUTLS_E_SUCCESS)
- && (sret == GNUTLS_E_AGAIN || sret == GNUTLS_E_SUCCESS));
-
- if (cret != GNUTLS_E_SAFE_RENEGOTIATION_FAILED && sret != GNUTLS_E_SUCCESS)
- exit_code = EXIT_FAILURE;
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_SAFE_RENEGOTIATION_FAILED, GNUTLS_E_AGAIN);
gnutls_bye (client, GNUTLS_SHUT_RDWR);
gnutls_bye (server, GNUTLS_SHUT_RDWR);
@@ -245,20 +140,15 @@ main (int argc, char *argv[])
gnutls_deinit (client);
gnutls_deinit (server);
- free (to_server);
- free (to_client);
-
gnutls_certificate_free_credentials (serverx509cred);
+ gnutls_certificate_free_credentials (clientx509cred);
gnutls_global_deinit ();
- if (debug_level > 0)
+ if (debug)
{
- if (exit_code == 0)
- puts ("Self-test successful");
- else
- puts ("Self-test failed");
+ puts ("Self-test successful");
}
- return exit_code;
+ return;
}
diff --git a/tests/safe-renegotiation/srn4.c b/tests/safe-renegotiation/srn4.c
index 8ab1bb2ea6..aa8ede4313 100644
--- a/tests/safe-renegotiation/srn4.c
+++ b/tests/safe-renegotiation/srn4.c
@@ -36,6 +36,8 @@
#include <string.h>
#include <errno.h>
#include <gnutls/gnutls.h>
+#include "../eagain-common.h"
+#include "../utils.h"
static void
tls_log_func (int level, const char *str)
@@ -43,80 +45,6 @@ tls_log_func (int level, const char *str)
fprintf (stderr, "|<%d>| %s", level, str);
}
-static char *to_server;
-static size_t to_server_len;
-
-static char *to_client;
-static size_t to_client_len;
-
-static ssize_t
-client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_client_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_client, len);
-
- memmove (to_client, to_client + len, to_client_len - len);
- to_client_len -= len;
-
- return len;
-}
-
-static ssize_t
-client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_server_len + len;
- char *tmp;
-
- tmp = realloc (to_server, newlen);
- if (!tmp)
- abort ();
- to_server = tmp;
-
- memcpy (to_server + to_server_len, data, len);
- to_server_len = newlen;
-
- return len;
-}
-
-static ssize_t
-server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_server_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_server, len);
-
- memmove (to_server, to_server + len, to_server_len - len);
- to_server_len -= len;
-
- return len;
-}
-
-static ssize_t
-server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_client_len + len;
- char *tmp;
-
- tmp = realloc (to_client, newlen);
- if (!tmp)
- abort ();
- to_client = tmp;
-
- memcpy (to_client + to_client_len, data, len);
- to_client_len = newlen;
-
- return len;
-}
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -158,11 +86,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof (server_key_pem)
};
-int
-main (int argc, char *argv[])
+void doit(void)
{
- int debug_level = argc - 1;
- int exit_code = EXIT_SUCCESS;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_session_t server;
@@ -175,7 +100,7 @@ main (int argc, char *argv[])
/* General init. */
gnutls_global_init ();
gnutls_global_set_log_function (tls_log_func);
- gnutls_global_set_log_level (debug_level);
+ if (debug) gnutls_global_set_log_level (2);
/* Init server */
gnutls_certificate_allocate_credentials (&serverx509cred);
@@ -187,6 +112,7 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (server, "NORMAL", NULL);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_certificate_allocate_credentials (&clientx509cred);
@@ -196,53 +122,19 @@ main (int argc, char *argv[])
NULL);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = EXIT_FAILURE;
+ HANDSHAKE(client, server);
if (gnutls_safe_renegotiation_status (client) ||
gnutls_safe_renegotiation_status (server))
{
tls_log_func (0, "Session using safe renegotiation but shouldn't!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
sret = gnutls_rehandshake (server);
- if (debug_level > 0)
+ if (debug)
{
tls_log_func (0, "gnutls_rehandshake (server)...\n");
tls_log_func (0, gnutls_strerror (sret));
@@ -257,53 +149,14 @@ main (int argc, char *argv[])
abort ();
}
- cret = GNUTLS_E_AGAIN;
- sret = GNUTLS_E_AGAIN;
-
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_AGAIN
- && sret == GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_AGAIN && sret != GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED)
- exit_code = 1;
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED);
if (gnutls_safe_renegotiation_status (client) ||
gnutls_safe_renegotiation_status (server))
{
tls_log_func (0,
"Rehandshaked session not using safe renegotiation!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
gnutls_bye (client, GNUTLS_SHUT_RDWR);
@@ -312,20 +165,15 @@ main (int argc, char *argv[])
gnutls_deinit (client);
gnutls_deinit (server);
- free (to_server);
- free (to_client);
-
gnutls_certificate_free_credentials (serverx509cred);
+ gnutls_certificate_free_credentials (clientx509cred);
gnutls_global_deinit ();
- if (debug_level > 0)
+ if (debug)
{
- if (exit_code == 0)
- puts ("Self-test successful");
- else
- puts ("Self-test failed");
+ puts ("Self-test successful");
}
- return exit_code;
+ return;
}
diff --git a/tests/safe-renegotiation/srn5.c b/tests/safe-renegotiation/srn5.c
index 2eb1975143..569d34cc7a 100644
--- a/tests/safe-renegotiation/srn5.c
+++ b/tests/safe-renegotiation/srn5.c
@@ -37,6 +37,8 @@
#include <string.h>
#include <errno.h>
#include <gnutls/gnutls.h>
+#include "../eagain-common.h"
+#include "../utils.h"
static void
tls_log_func (int level, const char *str)
@@ -44,80 +46,6 @@ tls_log_func (int level, const char *str)
fprintf (stderr, "|<%d>| %s", level, str);
}
-static char *to_server;
-static size_t to_server_len;
-
-static char *to_client;
-static size_t to_client_len;
-
-static ssize_t
-client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_client_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_client, len);
-
- memmove (to_client, to_client + len, to_client_len - len);
- to_client_len -= len;
-
- return len;
-}
-
-static ssize_t
-client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_server_len + len;
- char *tmp;
-
- tmp = realloc (to_server, newlen);
- if (!tmp)
- abort ();
- to_server = tmp;
-
- memcpy (to_server + to_server_len, data, len);
- to_server_len = newlen;
-
- return len;
-}
-
-static ssize_t
-server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
-{
- if (to_server_len < len)
- {
- gnutls_transport_set_global_errno (EAGAIN);
- return -1;
- }
-
- memcpy (data, to_server, len);
-
- memmove (to_server, to_server + len, to_server_len - len);
- to_server_len -= len;
-
- return len;
-}
-
-static ssize_t
-server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
-{
- size_t newlen = to_client_len + len;
- char *tmp;
-
- tmp = realloc (to_client, newlen);
- if (!tmp)
- abort ();
- to_client = tmp;
-
- memcpy (to_client + to_client_len, data, len);
- to_client_len = newlen;
-
- return len;
-}
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -159,11 +87,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof (server_key_pem)
};
-int
-main (int argc, char *argv[])
+void doit(void)
{
- int debug_level = argc - 1;
- int exit_code = EXIT_SUCCESS;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_session_t server;
@@ -176,7 +101,7 @@ main (int argc, char *argv[])
/* General init. */
gnutls_global_init ();
gnutls_global_set_log_function (tls_log_func);
- gnutls_global_set_log_level (debug_level);
+ if (debug) gnutls_global_set_log_level (2);
/* Init server */
gnutls_certificate_allocate_credentials (&serverx509cred);
@@ -189,6 +114,7 @@ main (int argc, char *argv[])
NULL);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_certificate_allocate_credentials (&clientx509cred);
@@ -197,58 +123,24 @@ main (int argc, char *argv[])
gnutls_priority_set_direct (client, "NORMAL", NULL);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS)
- exit_code = EXIT_FAILURE;
+ HANDSHAKE(client, server);
if (gnutls_safe_renegotiation_status (client))
{
tls_log_func (0, "Client thinks it is using safe renegotiation!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
if (gnutls_safe_renegotiation_status (server))
{
tls_log_func (0, "Server thinks it is using safe renegotiation!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
sret = gnutls_rehandshake (server);
- if (debug_level > 0)
+ if (debug)
{
tls_log_func (0, "gnutls_rehandshake (server)...\n");
tls_log_func (0, gnutls_strerror (sret));
@@ -263,53 +155,14 @@ main (int argc, char *argv[])
abort ();
}
- cret = GNUTLS_E_AGAIN;
- sret = GNUTLS_E_AGAIN;
-
- do
- {
- static int max_iter = 0;
- if (max_iter++ > 10)
- abort ();
-
- if (cret == GNUTLS_E_AGAIN)
- {
- cret = gnutls_handshake (client);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (client)...\n");
- tls_log_func (0, gnutls_strerror (cret));
- tls_log_func (0, "\n");
- }
- }
-
- if (sret == GNUTLS_E_AGAIN)
- {
- sret = gnutls_handshake (server);
- if (debug_level > 0)
- {
- tls_log_func (0, "second gnutls_handshake (server)...\n");
- tls_log_func (0, gnutls_strerror (sret));
- tls_log_func (0, "\n");
- }
- }
- }
- while (
- /* Not done: */
- !(sret == GNUTLS_E_AGAIN
- && cret == GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED)
- /* No error: */
- && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN));
-
- if (sret != GNUTLS_E_AGAIN && cret != GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED)
- exit_code = 1;
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED, GNUTLS_E_AGAIN);
if (gnutls_safe_renegotiation_status (client) ||
gnutls_safe_renegotiation_status (server))
{
tls_log_func (0,
"Rehandshaked session not using safe renegotiation!\n");
- exit_code = EXIT_FAILURE;
+ exit(1);
}
gnutls_bye (client, GNUTLS_SHUT_RDWR);
@@ -318,20 +171,15 @@ main (int argc, char *argv[])
gnutls_deinit (client);
gnutls_deinit (server);
- free (to_server);
- free (to_client);
-
gnutls_certificate_free_credentials (serverx509cred);
+ gnutls_certificate_free_credentials (clientx509cred);
gnutls_global_deinit ();
- if (debug_level > 0)
+ if (debug)
{
- if (exit_code == 0)
- puts ("Self-test successful");
- else
- puts ("Self-test failed");
+ puts ("Self-test successful");
}
- return exit_code;
+ return;
}