diff options
author | Bodo Möller <bodo@openssl.org> | 2006-01-11 06:10:40 +0000 |
---|---|---|
committer | Bodo Möller <bodo@openssl.org> | 2006-01-11 06:10:40 +0000 |
commit | 241520e66d3ece1054beae93ff96978d0299cae4 (patch) | |
tree | 11e6149f50fb9e45aaba9635a138c93059c1c988 /apps | |
parent | a13c20f60353d3cd3fdd4f23563819eeb4234528 (diff) |
More TLS extension related changes.
Submitted by: Peter Sylvester
Diffstat (limited to 'apps')
-rw-r--r-- | apps/s_cb.c | 17 | ||||
-rw-r--r-- | apps/s_client.c | 2 | ||||
-rw-r--r-- | apps/s_server.c | 19 |
3 files changed, 27 insertions, 11 deletions
diff --git a/apps/s_cb.c b/apps/s_cb.c index 9a35d46adc..573f98cea6 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -56,7 +56,7 @@ * [including the GNU Public Licence.] */ /* ==================================================================== - * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. + * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -504,6 +504,21 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void * case 100: str_details2 = " no_renegotiation"; break; + case 110: + str_details2 = " unsupported_extension"; + break; + case 111: + str_details2 = " certificate_unobtainable"; + break; + case 112: + str_details2 = " unrecognized_name"; + break; + case 113: + str_details2 = " bad_certificate_status_response"; + break; + case 114: + str_details2 = " bad_certificate_hash_value"; + break; } } } diff --git a/apps/s_client.c b/apps/s_client.c index 47cd9d93d5..50e27a0732 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -245,7 +245,7 @@ static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg) else BIO_printf(bio_err,"Can't use SSL_get_servername\n"); - return 1; + return SSL_TLSEXT_ERR_OK; } #endif diff --git a/apps/s_server.c b/apps/s_server.c index e07f3dd20e..583bfccd5c 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -367,7 +367,7 @@ static void sv_usage(void) BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR); #ifndef OPENSSL_NO_TLSEXT BIO_printf(bio_err," -servername host - servername for HostName TLS extension\n"); - BIO_printf(bio_err," -servername_warn - on mismatch send warning (default fatal alert)\n"); + BIO_printf(bio_err," -servername_fatal - on mismatch send fatal alert (default warning alert)\n"); BIO_printf(bio_err," -cert2 arg - certificate file to use for servername\n"); BIO_printf(bio_err," (default is %s)\n",TEST_CERT2); BIO_printf(bio_err," -key2 arg - Private Key file to use for servername, in cert file if\n"); @@ -534,7 +534,7 @@ static int ebcdic_puts(BIO *bp, const char *str) typedef struct tlsextctx_st { char * servername; BIO * biodebug; - int servername_warn; + int extension_error; } tlsextctx; @@ -546,18 +546,19 @@ static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg) BIO_printf(p->biodebug,"Hostname in TLS extension: \"%s\"\n",servername); if (!p->servername) - return 1; + return SSL_TLSEXT_ERR_NOACK; if (servername) { if (strcmp(servername,p->servername)) - return p->servername_warn; - if (ctx2) { + return p->extension_error; + if (ctx2) + { BIO_printf(p->biodebug,"Swiching server context.\n"); SSL_set_SSL_CTX(s,ctx2); } } - return 1; + return SSL_TLSEXT_ERR_OK; } #endif @@ -597,7 +598,7 @@ int MAIN(int argc, char *argv[]) #endif #ifndef OPENSSL_NO_TLSEXT - tlsextctx tlsextcbp = {NULL, NULL, -1}; + tlsextctx tlsextcbp = {NULL, NULL, SSL_TLSEXT_ERR_ALERT_WARNING}; #endif #if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3) meth=SSLv23_server_method(); @@ -846,8 +847,8 @@ int MAIN(int argc, char *argv[]) if (--argc < 1) goto bad; tlsextcbp.servername= *(++argv); } - else if (strcmp(*argv,"-servername_warn") == 0) - { tlsextcbp.servername_warn = 0; } + else if (strcmp(*argv,"-servername_fatal") == 0) + { tlsextcbp.extension_error = SSL_TLSEXT_ERR_ALERT_FATAL; } else if (strcmp(*argv,"-cert2") == 0) { if (--argc < 1) goto bad; |