diff options
Diffstat (limited to 'src/ssl/d1_srvr.c')
-rw-r--r-- | src/ssl/d1_srvr.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/ssl/d1_srvr.c b/src/ssl/d1_srvr.c index 89c26aa..e49a3f0 100644 --- a/src/ssl/d1_srvr.c +++ b/src/ssl/d1_srvr.c @@ -112,8 +112,6 @@ * [including the GNU Public Licence.] */ -#include <openssl/ssl.h> - #include <assert.h> #include <stdio.h> @@ -152,6 +150,11 @@ int dtls1_accept(SSL *s) { s->in_handshake++; + if (s->cert == NULL) { + OPENSSL_PUT_ERROR(SSL, dtls1_accept, SSL_R_NO_CERTIFICATE_SET); + return -1; + } + for (;;) { state = s->state; @@ -178,8 +181,8 @@ int dtls1_accept(SSL *s) { goto end; } - if (!ssl3_init_handshake_buffer(s)) { - OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR); + if (!ssl3_init_finished_mac(s)) { + OPENSSL_PUT_ERROR(SSL, dtls1_accept, ERR_R_INTERNAL_ERROR); ret = -1; goto end; } @@ -241,19 +244,8 @@ int dtls1_accept(SSL *s) { s->init_num = 0; break; - case SSL3_ST_SW_CERT_STATUS_A: - case SSL3_ST_SW_CERT_STATUS_B: - ret = ssl3_send_certificate_status(s); - if (ret <= 0) { - goto end; - } - s->state = SSL3_ST_SW_KEY_EXCH_A; - s->init_num = 0; - break; - case SSL3_ST_SW_KEY_EXCH_A: case SSL3_ST_SW_KEY_EXCH_B: - case SSL3_ST_SW_KEY_EXCH_C: alg_a = s->s3->tmp.new_cipher->algorithm_auth; /* Send a ServerKeyExchange message if: @@ -447,7 +439,7 @@ int dtls1_accept(SSL *s) { goto end; default: - OPENSSL_PUT_ERROR(SSL, SSL_R_UNKNOWN_STATE); + OPENSSL_PUT_ERROR(SSL, dtls1_accept, SSL_R_UNKNOWN_STATE); ret = -1; goto end; } |