From de25eb75c8d90282ba90396218210c4601603347 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 18 Apr 2019 01:14:32 +0100 Subject: crafted-pkt/tls-handshake-fragments.py: actual fragment TCP Actually fragment or coalesce TLS records across TCP segments. --- crafted-pkt/tls-handshake-fragments.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/crafted-pkt/tls-handshake-fragments.py b/crafted-pkt/tls-handshake-fragments.py index 2883933..ad35dfe 100755 --- a/crafted-pkt/tls-handshake-fragments.py +++ b/crafted-pkt/tls-handshake-fragments.py @@ -50,17 +50,21 @@ if args.seed is not None: hsPerStream = 10 maxRecordSize = len(clientHelloMsg) * 4 -# Fragment handshake message over TLS records, -# fragment TLS records over TCP segments. packets = [] for i in range(args.count): hs = b''.join(CH(hsPerStream * i + j + 1) for j in range(hsPerStream)) seq = 0x1000 + records = b'' + # Fragment handshake message over TLS records. while hs: # Does not matter that n > maxRecordSize, it is capped anyway. n = random.randint(1, maxRecordSize) recordData, hs = hs[:n], hs[n:] - seg = TLSRecord(recordData) + records += TLSRecord(recordData) + # Fragment TLS records over TCP segments. + while records: + n = random.randint(1, maxRecordSize) + seg, records = records[:n], records[n:] pkt = IP()/TCP(flags='A', seq=seq, sport=0xc000 + i, dport=443)/seg packets.append(pkt) seq += len(seg) -- cgit v1.2.1