From 478427b2942cd315536313754493d7a56cdec91b Mon Sep 17 00:00:00 2001 From: Hubert Kario Date: Tue, 12 Dec 2023 22:43:17 +0100 Subject: [PATCH] lucky13: send second client flight in single TCP packet --- scripts/test-lucky13.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/scripts/test-lucky13.py b/scripts/test-lucky13.py index e4c73004c..e2ab88301 100644 --- a/scripts/test-lucky13.py +++ b/scripts/test-lucky13.py @@ -15,7 +15,8 @@ from tlsfuzzer.messages import Connect, ClientHelloGenerator, \ ClientKeyExchangeGenerator, ChangeCipherSpecGenerator, \ FinishedGenerator, ApplicationDataGenerator, AlertGenerator, \ - fuzz_mac, fuzz_padding + fuzz_mac, fuzz_padding, TCPBufferingEnable, TCPBufferingDisable, \ + TCPBufferingFlush from tlsfuzzer.expect import ExpectServerHello, ExpectCertificate, \ ExpectServerHelloDone, ExpectChangeCipherSpec, ExpectFinished, \ ExpectAlert, ExpectApplicationData, ExpectClose, \ @@ -29,7 +30,7 @@ from tlsfuzzer.helpers import SIG_ALL -version = 8 +version = 9 def help_msg(): @@ -182,9 +183,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child(ApplicationDataGenerator(b"GET / HTTP/1.0\r\n\r\n")) @@ -227,9 +231,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child( @@ -260,9 +267,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child( @@ -295,9 +305,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child( @@ -330,9 +343,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child( @@ -360,9 +376,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child( @@ -385,9 +404,12 @@ def main(): if dhe: node = node.add_child(ExpectServerKeyExchange()) node = node.add_child(ExpectServerHelloDone()) + node = node.add_child(TCPBufferingEnable()) node = node.add_child(ClientKeyExchangeGenerator()) node = node.add_child(ChangeCipherSpecGenerator()) node = node.add_child(FinishedGenerator()) + node = node.add_child(TCPBufferingDisable()) + node = node.add_child(TCPBufferingFlush()) node = node.add_child(ExpectChangeCipherSpec()) node = node.add_child(ExpectFinished()) node = node.add_child(