From 00a09bf96d7f1c78d30414599acdc9f4726ae1d9 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Wed, 5 May 2021 19:52:00 +0000 Subject: Replace DTLS w_epoch with epoch from TLSv1.2 record layer. ok inoguchi@ tb@ --- src/lib/libssl/d1_both.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src/lib/libssl/d1_both.c') diff --git a/src/lib/libssl/d1_both.c b/src/lib/libssl/d1_both.c index ba05c2a354..3b9880b600 100644 --- a/src/lib/libssl/d1_both.c +++ b/src/lib/libssl/d1_both.c @@ -1,4 +1,4 @@ -/* $OpenBSD: d1_both.c,v 1.69 2021/04/19 16:51:56 jsing Exp $ */ +/* $OpenBSD: d1_both.c,v 1.70 2021/05/05 19:52:00 jsing Exp $ */ /* * DTLS implementation written by Nagendra Modadugu * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. @@ -972,7 +972,8 @@ dtls1_buffer_message(SSL *s, int is_ccs) /* save current state*/ frag->msg_header.saved_retransmit_state.session = s->session; - frag->msg_header.saved_retransmit_state.epoch = D1I(s)->w_epoch; + frag->msg_header.saved_retransmit_state.epoch = + tls12_record_layer_write_epoch(s->internal->rl); memset(seq64be, 0, sizeof(seq64be)); seq64be[6] = (unsigned char)(dtls1_get_queue_priority( @@ -1039,15 +1040,14 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, /* save current state */ saved_state.session = s->session; - saved_state.epoch = D1I(s)->w_epoch; + saved_state.epoch = tls12_record_layer_write_epoch(s->internal->rl); D1I(s)->retransmitting = 1; /* restore state in which the message was originally sent */ s->session = frag->msg_header.saved_retransmit_state.session; - D1I(s)->w_epoch = frag->msg_header.saved_retransmit_state.epoch; - - if (!tls12_record_layer_use_write_epoch(s->internal->rl, D1I(s)->w_epoch)) + if (!tls12_record_layer_use_write_epoch(s->internal->rl, + frag->msg_header.saved_retransmit_state.epoch)) return 0; ret = dtls1_do_write(s, frag->msg_header.is_ccs ? @@ -1055,9 +1055,8 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, /* restore current state */ s->session = saved_state.session; - D1I(s)->w_epoch = saved_state.epoch; - - if (!tls12_record_layer_use_write_epoch(s->internal->rl, D1I(s)->w_epoch)) + if (!tls12_record_layer_use_write_epoch(s->internal->rl, + saved_state.epoch)) return 0; D1I(s)->retransmitting = 0; -- cgit v1.2.3-55-g6feb