mirror of https://github.com/OISF/suricata
tls: make state progression monotonic
In TLS 1.2 and 1.3 the Finished message precedes the application data on both directions. The DATA milestone write is keyed on the parsed certificate subjects and runs on every record, so the first record after the handshake - for a session that ends with a fatal alert, the alert itself - moved the tracks backwards (client 4->3, server 5->4). The completion states were therefore not absorbing: the finished hook windows were transient in decryption mode, and a keyword registered at progress >= 3 would have its eof revoked and be suppressed by the stored CANT_MATCH flag. The setters now only move a state forward, so post-terminal writes are no-ops and the finished states absorb. Ticket: #9047.pull/16368/head
parent
819c61265d
commit
d286197519
Loading…
Reference in New Issue