summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2002-08-25 19:06:43 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2002-08-25 19:06:43 +0000
commitaa30b611753cee8834af624821848ce27ab28453 (patch)
tree648488c038aee72526638182e5abd8acc644450b
parent6e7aa8929787d4bae6e867bb26015a08a53ffb46 (diff)
downloadgnutls-aa30b611753cee8834af624821848ce27ab28453.tar.gz
improvements in server html output
-rw-r--r--src/serv.c40
-rw-r--r--src/tests.c18
-rw-r--r--src/tests.h1
-rw-r--r--src/tls_test.c1
4 files changed, 42 insertions, 18 deletions
diff --git a/src/serv.c b/src/serv.c
index 60c19d7740..f00699d4ad 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -94,7 +94,7 @@ char *x509_crlfile = NULL;
"\n" \
"<HTML><BODY>\n" \
"<CENTER><H1>This is <a href=\"http://www.gnu.org/software/gnutls\">" \
- "GNUTLS</a></H1>\n\n"
+ "GNUTLS</a></H1></CENTER>\n\n"
#define RENEGOTIATE
@@ -292,7 +292,7 @@ static char DEFAULT_DATA[] = "This is the default message reported "
/* Creates html with the current state information.
*/
#define tmp2 &http_buffer[strlen(http_buffer)]
-char* peer_print_info(GNUTLS_STATE state, int *ret_length)
+char* peer_print_info(GNUTLS_STATE state, int *ret_length, const char* header)
{
const char *tmp;
unsigned char sesid[32];
@@ -336,35 +336,43 @@ char* peer_print_info(GNUTLS_STATE state, int *ret_length)
gnutls_dh_get_prime_bits(state));
}
+ if (gnutls_kx_get(state) == GNUTLS_KX_DHE_RSA
+ || gnutls_kx_get(state) == GNUTLS_KX_DHE_DSS) {
+ sprintf(tmp2,
+ "Ephemeral DH using prime of <b>%d</b> bits.<br>\n",
+ gnutls_dh_get_prime_bits(state));
+ }
+
/* print state information */
strcat(http_buffer, "<P>\n");
tmp = gnutls_protocol_get_name(gnutls_protocol_get_version(state));
- sprintf(tmp2, "Protocol version: <b>%s</b><br>\n", tmp);
+ sprintf(tmp2, "<TABLE border=1><TR><TD>Protocol version:</TD><TD>%s</TD></TR>\n", tmp);
if (gnutls_auth_get_type(state) == GNUTLS_CRD_CERTIFICATE) {
tmp = gnutls_cert_type_get_name(gnutls_cert_type_get(state));
- sprintf(tmp2, "Certificate Type: <b>%s</b><br>\n", tmp);
+ sprintf(tmp2, "<TR><TD>Certificate Type:</TD><TD>%s</TD></TR>\n", tmp);
}
tmp = gnutls_kx_get_name(gnutls_kx_get(state));
- sprintf(tmp2, "Key Exchange: <b>%s</b><br>\n", tmp);
-
- if (gnutls_kx_get(state) == GNUTLS_KX_DHE_RSA
- || gnutls_kx_get(state) == GNUTLS_KX_DHE_DSS) {
- sprintf(tmp2,
- "Ephemeral DH using prime of <b>%d</b> bits.<br>\n",
- gnutls_dh_get_prime_bits(state));
- }
+ sprintf(tmp2, "<TR><TD>Key Exchange:</TD><TD>%s</TD></TR>\n", tmp);
tmp = gnutls_compression_get_name(gnutls_compression_get(state));
- sprintf(tmp2, "Compression: <b>%s</b><br>\n", tmp);
+ sprintf(tmp2, "<TR><TD>Compression</TD><TD>%s</TD></TR>\n", tmp);
tmp = gnutls_cipher_get_name(gnutls_cipher_get(state));
- sprintf(tmp2, "Cipher: <b>%s</b><br>\n", tmp);
+ sprintf(tmp2, "<TR><TD>Cipher</TD><TD>%s</TD></TR>\n", tmp);
tmp = gnutls_mac_get_name(gnutls_mac_get(state));
- sprintf(tmp2, "MAC: <b>%s</b><br>\n", tmp);
+ sprintf(tmp2, "<TR><TD>MAC</TD><TD>%s</TD></TR>\n", tmp);
+
+ tmp = gnutls_cipher_suite_get_name( gnutls_kx_get(state),
+ gnutls_cipher_get(state), gnutls_mac_get(state));
+ sprintf(tmp2, "<TR><TD>Ciphersuite</TD><TD>%s</TD></TR></p></TABLE>\n", tmp);
+
+ strcat( http_buffer, "<hr><P>Your header was:<PRE>");
+ strcat( http_buffer, header);
+ strcat( http_buffer, "</PRE></P>");
strcat(http_buffer, "</P>\n"HTTP_END);
@@ -426,7 +434,7 @@ static void get_response(GNUTLS_STATE state, char *request, char **response, int
// *response = peer_print_info(state, request+4, h, response_length);
if (http!=0) {
- *response = peer_print_info(state, response_length);
+ *response = peer_print_info(state, response_length, h);
} else {
*response = strdup( request);
*response_length = strlen( *response);
diff --git a/src/tests.c b/src/tests.c
index afb18c20a1..e35ea7b031 100644
--- a/src/tests.c
+++ b/src/tests.c
@@ -82,9 +82,10 @@ int ret, alert;
static int protocol_priority[16] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 };
const static int kx_priority[16] =
- { GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_DHE_RSA, GNUTLS_KX_ANON_DH, 0 };
+ { GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_DHE_RSA, GNUTLS_KX_ANON_DH,
+ GNUTLS_KX_RSA_EXPORT, 0 };
const static int cipher_priority[16] =
- { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR, 0 };
+ { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR, GNUTLS_CIPHER_ARCFOUR_EXPORT, 0 };
const static int comp_priority[16] = { GNUTLS_COMP_NULL, 0 };
const static int mac_priority[16] = { GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0 };
const static int cert_type_priority[16] = { GNUTLS_CRT_X509, 0 };
@@ -162,6 +163,19 @@ int test_srp( GNUTLS_STATE state) {
return do_handshake( state);
}
+int test_export( GNUTLS_STATE state) {
+ ADD_ALL_CIPHERS(state);
+ ADD_ALL_COMP(state);
+ ADD_ALL_CERTTYPES(state);
+ ADD_ALL_PROTOCOLS(state);
+ ADD_ALL_MACS(state);
+
+ ADD_KX(state, GNUTLS_KX_RSA_EXPORT);
+ gnutls_cred_set(state, GNUTLS_CRD_CERTIFICATE, xcred);
+
+ return do_handshake( state);
+}
+
int test_dhe( GNUTLS_STATE state) {
ADD_ALL_CIPHERS(state);
ADD_ALL_COMP(state);
diff --git a/src/tests.h b/src/tests.h
index 1399a41ee6..d4f7bf4a78 100644
--- a/src/tests.h
+++ b/src/tests.h
@@ -5,6 +5,7 @@
#define UNSURE -1
int test_srp( GNUTLS_STATE state);
+int test_export( GNUTLS_STATE state);
int test_hello_extension( GNUTLS_STATE state);
int test_dhe( GNUTLS_STATE state);
int test_ssl3( GNUTLS_STATE state);
diff --git a/src/tls_test.c b/src/tls_test.c
index b0b0e85c90..197a1e8836 100644
--- a/src/tls_test.c
+++ b/src/tls_test.c
@@ -88,6 +88,7 @@ static const TLS_TEST tls_tests[] = {
{ "whether the server can accept cipher suites not in SSL 3.0 spec", test_unknown_ciphersuites, "yes", "no", "dunno"},
{ "whether the server understands TLS closure alerts", test_bye, "yes", "no", "partially"},
{ "whether the server supports session resumption", test_session_resume2, "yes", "no", "dunno"},
+ { "for export-grade ciphersuite support", test_export, "yes", "no", "dunno" },
{ "for anonymous authentication support", test_anonymous, "yes", "no", "dunno"},
{ "for ephemeral Diffie Hellman support", test_dhe, "yes", "no", "dunno" },
{ "for AES cipher support", test_aes, "yes", "no", "dunno"},