Factor out alert handing code in the legacy stack.
authorjsing <jsing@openbsd.org>
Mon, 21 Feb 2022 18:22:20 +0000 (18:22 +0000)
committerjsing <jsing@openbsd.org>
Mon, 21 Feb 2022 18:22:20 +0000 (18:22 +0000)
commit56fd52a708778972d65024f40df70ef40e98435b
tree5caecc2b731b04f0939767d11509ec83b9265240
parent34c5030361b3c3b0c1a1435e302ce32677d145c4
Factor out alert handing code in the legacy stack.

Pull out the code that processes incoming alerts - a chunk of the
complexity is due to the fact that in TLSv1.2 and earlier, alerts can be
fragmented across multiple records or multiple alerts can be delivered
in a single record.

In DTLS there is no way that we can reassemble fragmented alerts (although
the RFC is silent on this), however we could have multiple alerts in the
same record. This change means that we will handle this situation more
appropriately and if we encounter a fragmented alert we will now treat this
as a decode error (instead of silently ignoring it).

ok beck@ tb@
lib/libssl/d1_pkt.c
lib/libssl/ssl_locl.h
lib/libssl/ssl_pkt.c