Loading ssl/d1_lib.c +7 −7 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ #endif static void get_current_time(struct timeval *t); static void dtls1_set_handshake_header(SSL *s, int type, unsigned long len); static int dtls1_set_handshake_header(SSL *s, int type, unsigned long len); static int dtls1_handshake_write(SSL *s); const char dtls1_version_str[] = "DTLSv1" OPENSSL_VERSION_PTEXT; int dtls1_listen(SSL *s, struct sockaddr *client); Loading Loading @@ -560,18 +560,18 @@ int dtls1_listen(SSL *s, struct sockaddr *client) return 1; } static void dtls1_set_handshake_header(SSL *s, int htype, unsigned long len) static int dtls1_set_handshake_header(SSL *s, int htype, unsigned long len) { unsigned char *p = (unsigned char *)s->init_buf->data; dtls1_set_message_header(s, p, htype, len, 0, len); s->init_num = (int)len + DTLS1_HM_HEADER_LENGTH; s->init_off = 0; /* Buffer the message to handle re-xmits */ /* * Deliberately swallow error return. We really should do something with * this - but its a void function that can't (easily) be changed */ if(!dtls1_buffer_message(s, 0)); if(!dtls1_buffer_message(s, 0)) return 0; return 1; } static int dtls1_handshake_write(SSL *s) Loading ssl/s3_both.c +9 −2 Original line number Diff line number Diff line Loading @@ -187,7 +187,10 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) s->s3->previous_server_finished_len = i; } ssl_set_handshake_header(s, SSL3_MT_FINISHED, l); if(!ssl_set_handshake_header(s, SSL3_MT_FINISHED, l)) { SSLerr(SSL_F_SSL3_SEND_FINISHED, ERR_R_INTERNAL_ERROR); return -1; } s->state = b; } Loading Loading @@ -324,7 +327,11 @@ unsigned long ssl3_output_cert_chain(SSL *s, CERT_PKEY *cpk) p = ssl_handshake_start(s); l2n3(l, p); l += 3; ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE, l); if(!ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE, l)) { SSLerr(SSL_F_SSL3_OUTPUT_CERT_CHAIN, ERR_R_INTERNAL_ERROR); return 0; } return l + SSL_HM_HEADER_LENGTH(s); } Loading ssl/s3_clnt.c +15 −3 Original line number Diff line number Diff line Loading @@ -843,7 +843,11 @@ int ssl3_client_hello(SSL *s) #endif l = p - d; ssl_set_handshake_header(s, SSL3_MT_CLIENT_HELLO, l); if(!ssl_set_handshake_header(s, SSL3_MT_CLIENT_HELLO, l)) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); SSLerr(SSL_F_SSL3_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); goto err; } s->state = SSL3_ST_CW_CLNT_HELLO_B; } Loading Loading @@ -2998,7 +3002,12 @@ int ssl3_send_client_key_exchange(SSL *s) goto err; } ssl_set_handshake_header(s, SSL3_MT_CLIENT_KEY_EXCHANGE, n); if(!ssl_set_handshake_header(s, SSL3_MT_CLIENT_KEY_EXCHANGE, n)) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); goto err; } s->state = SSL3_ST_CW_KEY_EXCH_B; } Loading Loading @@ -3197,7 +3206,10 @@ int ssl3_send_client_verify(SSL *s) SSLerr(SSL_F_SSL3_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); goto err; } ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_VERIFY, n); if(!ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_VERIFY, n)) { SSLerr(SSL_F_SSL3_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); goto err; } s->state = SSL3_ST_CW_CERT_VRFY_B; } EVP_MD_CTX_cleanup(&mctx); Loading ssl/s3_lib.c +3 −1 Original line number Diff line number Diff line Loading @@ -3087,13 +3087,15 @@ int ssl3_pending(const SSL *s) SSL3_RT_APPLICATION_DATA) ? s->s3->rrec.length : 0; } void ssl3_set_handshake_header(SSL *s, int htype, unsigned long len) int ssl3_set_handshake_header(SSL *s, int htype, unsigned long len) { unsigned char *p = (unsigned char *)s->init_buf->data; *(p++) = htype; l2n3(len, p); s->init_num = (int)len + SSL3_HM_HEADER_LENGTH; s->init_off = 0; return 1; } int ssl3_handshake_write(SSL *s) Loading ssl/s3_srvr.c +23 −6 Original line number Diff line number Diff line Loading @@ -886,7 +886,10 @@ int ssl3_send_hello_request(SSL *s) { if (s->state == SSL3_ST_SW_HELLO_REQ_A) { ssl_set_handshake_header(s, SSL3_MT_HELLO_REQUEST, 0); if(!ssl_set_handshake_header(s, SSL3_MT_HELLO_REQUEST, 0)) { SSLerr(SSL_F_SSL3_SEND_HELLO_REQUEST, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_HELLO_REQ_B; } Loading Loading @@ -1502,7 +1505,10 @@ int ssl3_send_server_hello(SSL *s) #endif /* do the header */ l = (p - d); ssl_set_handshake_header(s, SSL3_MT_SERVER_HELLO, l); if(!ssl_set_handshake_header(s, SSL3_MT_SERVER_HELLO, l)) { SSLerr(SSL_F_SSL3_SEND_SERVER_HELLO, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_SRVR_HELLO_B; } Loading @@ -1514,7 +1520,10 @@ int ssl3_send_server_done(SSL *s) { if (s->state == SSL3_ST_SW_SRVR_DONE_A) { ssl_set_handshake_header(s, SSL3_MT_SERVER_DONE, 0); if(!ssl_set_handshake_header(s, SSL3_MT_SERVER_DONE, 0)) { SSLerr(SSL_F_SSL3_SEND_SERVER_DONE, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_SRVR_DONE_B; } Loading Loading @@ -1961,7 +1970,11 @@ int ssl3_send_server_key_exchange(SSL *s) } } ssl_set_handshake_header(s, SSL3_MT_SERVER_KEY_EXCHANGE, n); if(!ssl_set_handshake_header(s, SSL3_MT_SERVER_KEY_EXCHANGE, n)) { al = SSL_AD_HANDSHAKE_FAILURE; SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); goto f_err; } } s->state = SSL3_ST_SW_KEY_EXCH_B; Loading Loading @@ -2039,7 +2052,10 @@ int ssl3_send_certificate_request(SSL *s) p = ssl_handshake_start(s) + off; s2n(nl, p); ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_REQUEST, n); if(!ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_REQUEST, n)) { SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_CERT_REQ_B; } Loading Loading @@ -3419,7 +3435,8 @@ int ssl3_send_newsession_ticket(SSL *s) /* Now write out lengths: p points to end of data written */ /* Total length */ len = p - ssl_handshake_start(s); ssl_set_handshake_header(s, SSL3_MT_NEWSESSION_TICKET, len); if(!ssl_set_handshake_header(s, SSL3_MT_NEWSESSION_TICKET, len)) goto err; /* Skip ticket lifetime hint */ p = ssl_handshake_start(s) + 4; s2n(len - 6, p); Loading Loading
ssl/d1_lib.c +7 −7 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ #endif static void get_current_time(struct timeval *t); static void dtls1_set_handshake_header(SSL *s, int type, unsigned long len); static int dtls1_set_handshake_header(SSL *s, int type, unsigned long len); static int dtls1_handshake_write(SSL *s); const char dtls1_version_str[] = "DTLSv1" OPENSSL_VERSION_PTEXT; int dtls1_listen(SSL *s, struct sockaddr *client); Loading Loading @@ -560,18 +560,18 @@ int dtls1_listen(SSL *s, struct sockaddr *client) return 1; } static void dtls1_set_handshake_header(SSL *s, int htype, unsigned long len) static int dtls1_set_handshake_header(SSL *s, int htype, unsigned long len) { unsigned char *p = (unsigned char *)s->init_buf->data; dtls1_set_message_header(s, p, htype, len, 0, len); s->init_num = (int)len + DTLS1_HM_HEADER_LENGTH; s->init_off = 0; /* Buffer the message to handle re-xmits */ /* * Deliberately swallow error return. We really should do something with * this - but its a void function that can't (easily) be changed */ if(!dtls1_buffer_message(s, 0)); if(!dtls1_buffer_message(s, 0)) return 0; return 1; } static int dtls1_handshake_write(SSL *s) Loading
ssl/s3_both.c +9 −2 Original line number Diff line number Diff line Loading @@ -187,7 +187,10 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) s->s3->previous_server_finished_len = i; } ssl_set_handshake_header(s, SSL3_MT_FINISHED, l); if(!ssl_set_handshake_header(s, SSL3_MT_FINISHED, l)) { SSLerr(SSL_F_SSL3_SEND_FINISHED, ERR_R_INTERNAL_ERROR); return -1; } s->state = b; } Loading Loading @@ -324,7 +327,11 @@ unsigned long ssl3_output_cert_chain(SSL *s, CERT_PKEY *cpk) p = ssl_handshake_start(s); l2n3(l, p); l += 3; ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE, l); if(!ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE, l)) { SSLerr(SSL_F_SSL3_OUTPUT_CERT_CHAIN, ERR_R_INTERNAL_ERROR); return 0; } return l + SSL_HM_HEADER_LENGTH(s); } Loading
ssl/s3_clnt.c +15 −3 Original line number Diff line number Diff line Loading @@ -843,7 +843,11 @@ int ssl3_client_hello(SSL *s) #endif l = p - d; ssl_set_handshake_header(s, SSL3_MT_CLIENT_HELLO, l); if(!ssl_set_handshake_header(s, SSL3_MT_CLIENT_HELLO, l)) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); SSLerr(SSL_F_SSL3_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); goto err; } s->state = SSL3_ST_CW_CLNT_HELLO_B; } Loading Loading @@ -2998,7 +3002,12 @@ int ssl3_send_client_key_exchange(SSL *s) goto err; } ssl_set_handshake_header(s, SSL3_MT_CLIENT_KEY_EXCHANGE, n); if(!ssl_set_handshake_header(s, SSL3_MT_CLIENT_KEY_EXCHANGE, n)) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); goto err; } s->state = SSL3_ST_CW_KEY_EXCH_B; } Loading Loading @@ -3197,7 +3206,10 @@ int ssl3_send_client_verify(SSL *s) SSLerr(SSL_F_SSL3_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); goto err; } ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_VERIFY, n); if(!ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_VERIFY, n)) { SSLerr(SSL_F_SSL3_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); goto err; } s->state = SSL3_ST_CW_CERT_VRFY_B; } EVP_MD_CTX_cleanup(&mctx); Loading
ssl/s3_lib.c +3 −1 Original line number Diff line number Diff line Loading @@ -3087,13 +3087,15 @@ int ssl3_pending(const SSL *s) SSL3_RT_APPLICATION_DATA) ? s->s3->rrec.length : 0; } void ssl3_set_handshake_header(SSL *s, int htype, unsigned long len) int ssl3_set_handshake_header(SSL *s, int htype, unsigned long len) { unsigned char *p = (unsigned char *)s->init_buf->data; *(p++) = htype; l2n3(len, p); s->init_num = (int)len + SSL3_HM_HEADER_LENGTH; s->init_off = 0; return 1; } int ssl3_handshake_write(SSL *s) Loading
ssl/s3_srvr.c +23 −6 Original line number Diff line number Diff line Loading @@ -886,7 +886,10 @@ int ssl3_send_hello_request(SSL *s) { if (s->state == SSL3_ST_SW_HELLO_REQ_A) { ssl_set_handshake_header(s, SSL3_MT_HELLO_REQUEST, 0); if(!ssl_set_handshake_header(s, SSL3_MT_HELLO_REQUEST, 0)) { SSLerr(SSL_F_SSL3_SEND_HELLO_REQUEST, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_HELLO_REQ_B; } Loading Loading @@ -1502,7 +1505,10 @@ int ssl3_send_server_hello(SSL *s) #endif /* do the header */ l = (p - d); ssl_set_handshake_header(s, SSL3_MT_SERVER_HELLO, l); if(!ssl_set_handshake_header(s, SSL3_MT_SERVER_HELLO, l)) { SSLerr(SSL_F_SSL3_SEND_SERVER_HELLO, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_SRVR_HELLO_B; } Loading @@ -1514,7 +1520,10 @@ int ssl3_send_server_done(SSL *s) { if (s->state == SSL3_ST_SW_SRVR_DONE_A) { ssl_set_handshake_header(s, SSL3_MT_SERVER_DONE, 0); if(!ssl_set_handshake_header(s, SSL3_MT_SERVER_DONE, 0)) { SSLerr(SSL_F_SSL3_SEND_SERVER_DONE, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_SRVR_DONE_B; } Loading Loading @@ -1961,7 +1970,11 @@ int ssl3_send_server_key_exchange(SSL *s) } } ssl_set_handshake_header(s, SSL3_MT_SERVER_KEY_EXCHANGE, n); if(!ssl_set_handshake_header(s, SSL3_MT_SERVER_KEY_EXCHANGE, n)) { al = SSL_AD_HANDSHAKE_FAILURE; SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); goto f_err; } } s->state = SSL3_ST_SW_KEY_EXCH_B; Loading Loading @@ -2039,7 +2052,10 @@ int ssl3_send_certificate_request(SSL *s) p = ssl_handshake_start(s) + off; s2n(nl, p); ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_REQUEST, n); if(!ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_REQUEST, n)) { SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST, ERR_R_INTERNAL_ERROR); return -1; } s->state = SSL3_ST_SW_CERT_REQ_B; } Loading Loading @@ -3419,7 +3435,8 @@ int ssl3_send_newsession_ticket(SSL *s) /* Now write out lengths: p points to end of data written */ /* Total length */ len = p - ssl_handshake_start(s); ssl_set_handshake_header(s, SSL3_MT_NEWSESSION_TICKET, len); if(!ssl_set_handshake_header(s, SSL3_MT_NEWSESSION_TICKET, len)) goto err; /* Skip ticket lifetime hint */ p = ssl_handshake_start(s) + 4; s2n(len - 6, p); Loading