summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/d1_both.c17
-rw-r--r--src/lib/libssl/s3_both.c15
-rw-r--r--src/lib/libssl/src/ssl/d1_both.c17
-rw-r--r--src/lib/libssl/src/ssl/s3_both.c15
4 files changed, 20 insertions, 44 deletions
diff --git a/src/lib/libssl/d1_both.c b/src/lib/libssl/d1_both.c
index 567a074535..4d2827a2c0 100644
--- a/src/lib/libssl/d1_both.c
+++ b/src/lib/libssl/d1_both.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: d1_both.c,v 1.35 2015/09/10 17:57:50 jsing Exp $ */ 1/* $OpenBSD: d1_both.c,v 1.36 2015/09/11 15:59:21 jsing Exp $ */
2/* 2/*
3 * DTLS implementation written by Nagendra Modadugu 3 * DTLS implementation written by Nagendra Modadugu
4 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. 4 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
@@ -905,13 +905,12 @@ f_err:
905int 905int
906dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen) 906dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen)
907{ 907{
908 unsigned char *p, *d; 908 unsigned char *p;
909 int i; 909 int i;
910 unsigned long l; 910 unsigned long l;
911 911
912 if (s->state == a) { 912 if (s->state == a) {
913 d = (unsigned char *)s->init_buf->data; 913 p = ssl3_handshake_msg_start(s, SSL3_MT_FINISHED);
914 p = &(d[DTLS1_HM_HEADER_LENGTH]);
915 914
916 i = s->method->ssl3_enc->final_finish_mac(s, sender, slen, 915 i = s->method->ssl3_enc->final_finish_mac(s, sender, slen,
917 s->s3->tmp.finish_md); 916 s->s3->tmp.finish_md);
@@ -936,18 +935,12 @@ dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen)
936 s->s3->previous_server_finished_len = i; 935 s->s3->previous_server_finished_len = i;
937 } 936 }
938 937
939 d = dtls1_set_message_header(s, d, SSL3_MT_FINISHED, l, 0, l); 938 ssl3_handshake_msg_finish(s, l);
940 s->init_num = (int)l + DTLS1_HM_HEADER_LENGTH;
941 s->init_off = 0;
942
943 /* buffer the message to handle re-xmits */
944 dtls1_buffer_message(s, 0);
945 939
946 s->state = b; 940 s->state = b;
947 } 941 }
948 942
949 /* SSL3_ST_SEND_xxxxxx_HELLO_B */ 943 return (ssl3_handshake_write(s));
950 return (dtls1_do_write(s, SSL3_RT_HANDSHAKE));
951} 944}
952 945
953/* 946/*
diff --git a/src/lib/libssl/s3_both.c b/src/lib/libssl/s3_both.c
index 5a1d1e7443..6448f27a03 100644
--- a/src/lib/libssl/s3_both.c
+++ b/src/lib/libssl/s3_both.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_both.c,v 1.43 2015/07/18 19:41:54 doug Exp $ */ 1/* $OpenBSD: s3_both.c,v 1.44 2015/09/11 15:59:21 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -155,13 +155,12 @@ ssl3_do_write(SSL *s, int type)
155int 155int
156ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) 156ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen)
157{ 157{
158 unsigned char *p, *d; 158 unsigned char *p;
159 unsigned long l; 159 unsigned long l;
160 int md_len; 160 int md_len;
161 161
162 if (s->state == a) { 162 if (s->state == a) {
163 d = (unsigned char *)s->init_buf->data; 163 p = ssl3_handshake_msg_start(s, SSL3_MT_FINISHED);
164 p = &(d[4]);
165 164
166 md_len = s->method->ssl3_enc->finish_mac_length; 165 md_len = s->method->ssl3_enc->finish_mac_length;
167 if (s->method->ssl3_enc->final_finish_mac(s, sender, slen, 166 if (s->method->ssl3_enc->final_finish_mac(s, sender, slen,
@@ -184,16 +183,12 @@ ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen)
184 s->s3->previous_server_finished_len = md_len; 183 s->s3->previous_server_finished_len = md_len;
185 } 184 }
186 185
187 *(d++) = SSL3_MT_FINISHED; 186 ssl3_handshake_msg_finish(s, l);
188 l2n3(l, d);
189 s->init_num = (int)l + 4;
190 s->init_off = 0;
191 187
192 s->state = b; 188 s->state = b;
193 } 189 }
194 190
195 /* SSL3_ST_SEND_xxxxxx_HELLO_B */ 191 return (ssl3_handshake_write(s));
196 return (ssl3_do_write(s, SSL3_RT_HANDSHAKE));
197} 192}
198 193
199/* ssl3_take_mac calculates the Finished MAC for the handshakes messages seen to far. */ 194/* ssl3_take_mac calculates the Finished MAC for the handshakes messages seen to far. */
diff --git a/src/lib/libssl/src/ssl/d1_both.c b/src/lib/libssl/src/ssl/d1_both.c
index 567a074535..4d2827a2c0 100644
--- a/src/lib/libssl/src/ssl/d1_both.c
+++ b/src/lib/libssl/src/ssl/d1_both.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: d1_both.c,v 1.35 2015/09/10 17:57:50 jsing Exp $ */ 1/* $OpenBSD: d1_both.c,v 1.36 2015/09/11 15:59:21 jsing Exp $ */
2/* 2/*
3 * DTLS implementation written by Nagendra Modadugu 3 * DTLS implementation written by Nagendra Modadugu
4 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. 4 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
@@ -905,13 +905,12 @@ f_err:
905int 905int
906dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen) 906dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen)
907{ 907{
908 unsigned char *p, *d; 908 unsigned char *p;
909 int i; 909 int i;
910 unsigned long l; 910 unsigned long l;
911 911
912 if (s->state == a) { 912 if (s->state == a) {
913 d = (unsigned char *)s->init_buf->data; 913 p = ssl3_handshake_msg_start(s, SSL3_MT_FINISHED);
914 p = &(d[DTLS1_HM_HEADER_LENGTH]);
915 914
916 i = s->method->ssl3_enc->final_finish_mac(s, sender, slen, 915 i = s->method->ssl3_enc->final_finish_mac(s, sender, slen,
917 s->s3->tmp.finish_md); 916 s->s3->tmp.finish_md);
@@ -936,18 +935,12 @@ dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen)
936 s->s3->previous_server_finished_len = i; 935 s->s3->previous_server_finished_len = i;
937 } 936 }
938 937
939 d = dtls1_set_message_header(s, d, SSL3_MT_FINISHED, l, 0, l); 938 ssl3_handshake_msg_finish(s, l);
940 s->init_num = (int)l + DTLS1_HM_HEADER_LENGTH;
941 s->init_off = 0;
942
943 /* buffer the message to handle re-xmits */
944 dtls1_buffer_message(s, 0);
945 939
946 s->state = b; 940 s->state = b;
947 } 941 }
948 942
949 /* SSL3_ST_SEND_xxxxxx_HELLO_B */ 943 return (ssl3_handshake_write(s));
950 return (dtls1_do_write(s, SSL3_RT_HANDSHAKE));
951} 944}
952 945
953/* 946/*
diff --git a/src/lib/libssl/src/ssl/s3_both.c b/src/lib/libssl/src/ssl/s3_both.c
index 5a1d1e7443..6448f27a03 100644
--- a/src/lib/libssl/src/ssl/s3_both.c
+++ b/src/lib/libssl/src/ssl/s3_both.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_both.c,v 1.43 2015/07/18 19:41:54 doug Exp $ */ 1/* $OpenBSD: s3_both.c,v 1.44 2015/09/11 15:59:21 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -155,13 +155,12 @@ ssl3_do_write(SSL *s, int type)
155int 155int
156ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) 156ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen)
157{ 157{
158 unsigned char *p, *d; 158 unsigned char *p;
159 unsigned long l; 159 unsigned long l;
160 int md_len; 160 int md_len;
161 161
162 if (s->state == a) { 162 if (s->state == a) {
163 d = (unsigned char *)s->init_buf->data; 163 p = ssl3_handshake_msg_start(s, SSL3_MT_FINISHED);
164 p = &(d[4]);
165 164
166 md_len = s->method->ssl3_enc->finish_mac_length; 165 md_len = s->method->ssl3_enc->finish_mac_length;
167 if (s->method->ssl3_enc->final_finish_mac(s, sender, slen, 166 if (s->method->ssl3_enc->final_finish_mac(s, sender, slen,
@@ -184,16 +183,12 @@ ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen)
184 s->s3->previous_server_finished_len = md_len; 183 s->s3->previous_server_finished_len = md_len;
185 } 184 }
186 185
187 *(d++) = SSL3_MT_FINISHED; 186 ssl3_handshake_msg_finish(s, l);
188 l2n3(l, d);
189 s->init_num = (int)l + 4;
190 s->init_off = 0;
191 187
192 s->state = b; 188 s->state = b;
193 } 189 }
194 190
195 /* SSL3_ST_SEND_xxxxxx_HELLO_B */ 191 return (ssl3_handshake_write(s));
196 return (ssl3_do_write(s, SSL3_RT_HANDSHAKE));
197} 192}
198 193
199/* ssl3_take_mac calculates the Finished MAC for the handshakes messages seen to far. */ 194/* ssl3_take_mac calculates the Finished MAC for the handshakes messages seen to far. */