diff options
| author | jsing <> | 2021-01-26 14:22:20 +0000 |
|---|---|---|
| committer | jsing <> | 2021-01-26 14:22:20 +0000 |
| commit | e0784c8ce68bf96debff757468a5d24707183213 (patch) | |
| tree | 693ea078ee47f323e868616964234ef9ea593794 /src/lib/libssl/d1_both.c | |
| parent | 58428e8a6be750d25b7030f6661bc17898fc02e4 (diff) | |
| download | openbsd-e0784c8ce68bf96debff757468a5d24707183213.tar.gz openbsd-e0784c8ce68bf96debff757468a5d24707183213.tar.bz2 openbsd-e0784c8ce68bf96debff757468a5d24707183213.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)); |
