diff options
author | jsing <> | 2021-01-26 14:22:20 +0000 |
---|---|---|
committer | jsing <> | 2021-01-26 14:22:20 +0000 |
commit | c1474fe27acff975d8a3948fb3b6b72d099ee9ce (patch) | |
tree | 693ea078ee47f323e868616964234ef9ea593794 /src/lib/libssl/d1_both.c | |
parent | 7602e79fb847dbe732cccb0b75a2591c2792d03e (diff) | |
download | openbsd-c1474fe27acff975d8a3948fb3b6b72d099ee9ce.tar.gz openbsd-c1474fe27acff975d8a3948fb3b6b72d099ee9ce.tar.bz2 openbsd-c1474fe27acff975d8a3948fb3b6b72d099ee9ce.zip |
Move sequence numbers into the new TLSv1.2 record layer.
This allows for all of the DTLS sequence number save/restore code to be
removed.
ok inoguchi@ "whee!" tb@
Diffstat (limited to 'src/lib/libssl/d1_both.c')
-rw-r--r-- | src/lib/libssl/d1_both.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/src/lib/libssl/d1_both.c b/src/lib/libssl/d1_both.c index 8c4fec589f..ba4e9edd8d 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.65 2021/01/19 19:07:39 jsing Exp $ */ | 1 | /* $OpenBSD: d1_both.c,v 1.66 2021/01/26 14:22:19 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. |
@@ -1009,7 +1009,6 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, | |||
1009 | unsigned long header_length; | 1009 | unsigned long header_length; |
1010 | unsigned char seq64be[8]; | 1010 | unsigned char seq64be[8]; |
1011 | struct dtls1_retransmit_state saved_state; | 1011 | struct dtls1_retransmit_state saved_state; |
1012 | unsigned char save_write_sequence[8]; | ||
1013 | 1012 | ||
1014 | /* | 1013 | /* |
1015 | OPENSSL_assert(s->internal->init_num == 0); | 1014 | OPENSSL_assert(s->internal->init_num == 0); |
@@ -1059,14 +1058,6 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, | |||
1059 | if (!tls12_record_layer_use_write_epoch(s->internal->rl, D1I(s)->w_epoch)) | 1058 | if (!tls12_record_layer_use_write_epoch(s->internal->rl, D1I(s)->w_epoch)) |
1060 | return 0; | 1059 | return 0; |
1061 | 1060 | ||
1062 | if (frag->msg_header.saved_retransmit_state.epoch == | ||
1063 | saved_state.epoch - 1) { | ||
1064 | memcpy(save_write_sequence, S3I(s)->write_sequence, | ||
1065 | sizeof(S3I(s)->write_sequence)); | ||
1066 | memcpy(S3I(s)->write_sequence, D1I(s)->last_write_sequence, | ||
1067 | sizeof(S3I(s)->write_sequence)); | ||
1068 | } | ||
1069 | |||
1070 | ret = dtls1_do_write(s, frag->msg_header.is_ccs ? | 1061 | ret = dtls1_do_write(s, frag->msg_header.is_ccs ? |
1071 | SSL3_RT_CHANGE_CIPHER_SPEC : SSL3_RT_HANDSHAKE); | 1062 | SSL3_RT_CHANGE_CIPHER_SPEC : SSL3_RT_HANDSHAKE); |
1072 | 1063 | ||
@@ -1077,14 +1068,6 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, | |||
1077 | if (!tls12_record_layer_use_write_epoch(s->internal->rl, D1I(s)->w_epoch)) | 1068 | if (!tls12_record_layer_use_write_epoch(s->internal->rl, D1I(s)->w_epoch)) |
1078 | return 0; | 1069 | return 0; |
1079 | 1070 | ||
1080 | if (frag->msg_header.saved_retransmit_state.epoch == | ||
1081 | saved_state.epoch - 1) { | ||
1082 | memcpy(D1I(s)->last_write_sequence, S3I(s)->write_sequence, | ||
1083 | sizeof(S3I(s)->write_sequence)); | ||
1084 | memcpy(S3I(s)->write_sequence, save_write_sequence, | ||
1085 | sizeof(S3I(s)->write_sequence)); | ||
1086 | } | ||
1087 | |||
1088 | D1I(s)->retransmitting = 0; | 1071 | D1I(s)->retransmitting = 0; |
1089 | 1072 | ||
1090 | (void)BIO_flush(SSL_get_wbio(s)); | 1073 | (void)BIO_flush(SSL_get_wbio(s)); |