Skip to content

Commit 719dea8

Browse files
authored
Merge pull request #2 from Shu-xueyuan/Shu-xueyuan-patch-2-1
Update inet.uts
2 parents bf8bf7d + a5fa87d commit 719dea8

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

test/scapy/layers/inet.uts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,10 +396,29 @@ assert pkt.options[0][1] == (b'\xe3\xa0,\xdc\xe4\xae\x87\x18\xad{\xab\xd0b\x12\x
396396
assert TCP(bytes(pkt)).options[0][0] == "MD5"
397397

398398
= IP, TCP & UDP checksums (these tests highly depend on default values)
399+
400+
def transferPacket(pkt):
401+
packet = hexdump(pkt, dump=True).split('\n')
402+
packet = list(map(lambda x: x.split(" ")[1], packet))
403+
return " ".join(packet).strip().split(" ")
404+
399405
pkt = IP() / TCP()
400406
bpkt = IP(raw(pkt))
401407
assert bpkt.chksum == 0x7ccd and bpkt.payload.chksum == 0x917c
402408

409+
Ah_dicts = {'nh': 6, 'payloadlen': 2, 'reserved': 0, 'spi': 1, 'seq': 0, 'icv': b'\x00\x00\x00\x00'}
410+
pkt = IP(proto=51) / AH(**Ah_dicts) / TCP()
411+
bpkt = IP(raw(pkt))
412+
assert bpkt.chksum == 0x7c90
413+
packetStr = transferPacket(pkt)
414+
tcpCheckSum = int("".join(packetStr[-4:-2]), 16)
415+
assert tcpCheckSum == 0x917c
416+
417+
pkt = IPv6(nh=51) / AH(**Ah_dicts) / TCP()
418+
packetStr = transferPacket(pkt)
419+
tcpCheckSum = int("".join(packetStr[-4:-2]), 16)
420+
assert tcpCheckSum == 0x8f7d
421+
403422
pkt = IP(len=40) / TCP()
404423
bpkt = IP(raw(pkt))
405424
assert bpkt.chksum == 0x7ccd and bpkt.payload.chksum == 0x917c
@@ -412,6 +431,18 @@ pkt = IP() / TCP() / ("A" * 10)
412431
bpkt = IP(raw(pkt))
413432
assert bpkt.chksum == 0x7cc3 and bpkt.payload.chksum == 0x4b2c
414433

434+
pkt = IP(proto=51) / AH(**Ah_dicts) / TCP() / ("A" * 10)
435+
bpkt = IP(raw(pkt))
436+
assert bpkt.chksum == 0x7c86
437+
packetStr = transferPacket(pkt)
438+
tcpCheckSum = int("".join(packetStr[-14:-12]), 16)
439+
assert tcpCheckSum == 0x4b2c
440+
441+
pkt = IPv6(nh=51) / AH(**Ah_dicts) / TCP() / ("A" * 10)
442+
packetStr = transferPacket(pkt)
443+
tcpCheckSum = int("".join(packetStr[-14:-12]), 16)
444+
assert tcpCheckSum == 0x492d
445+
415446
pkt = IP(len=50) / TCP() / ("A" * 10)
416447
bpkt = IP(raw(pkt))
417448
assert bpkt.chksum == 0x7cc3 and bpkt.payload.chksum == 0x4b2c
@@ -424,6 +455,13 @@ pkt = IP(options=[IPOption_RR()]) / TCP() / ("A" * 10)
424455
bpkt = IP(raw(pkt))
425456
assert bpkt.chksum == 0x70bc and bpkt.payload.chksum == 0x4b2c
426457

458+
pkt = IP(proto=51, options=[IPOption_RR()]) / AH(**Ah_dicts) / TCP() / ("A" * 10)
459+
bpkt = IP(raw(pkt))
460+
assert bpkt.chksum == 0x707f
461+
packetStr = transferPacket(pkt)
462+
tcpCheckSum = int("".join(packetStr[-14:-12]), 16)
463+
assert tcpCheckSum == 0x4b2c
464+
427465
pkt = IP(len=54, options=[IPOption_RR()]) / TCP() / ("A" * 10)
428466
bpkt = IP(raw(pkt))
429467
assert bpkt.chksum == 0x70bc and bpkt.payload.chksum == 0x4b2c
@@ -436,10 +474,30 @@ pkt = IP(options=[IPOption_Timestamp()]) / TCP() / ("A" * 10)
436474
bpkt = IP(raw(pkt))
437475
assert bpkt.chksum == 0x2caa and bpkt.payload.chksum == 0x4b2c
438476

477+
pkt = IP(proto=51, options=[IPOption_Timestamp()]) / AH(**Ah_dicts) / TCP() / ("A" * 10)
478+
bpkt = IP(raw(pkt))
479+
assert bpkt.chksum == 0x2c6d
480+
packetStr = transferPacket(pkt)
481+
tcpCheckSum = int("".join(packetStr[-14:-12]), 16)
482+
assert tcpCheckSum == 0x4b2c
483+
439484
pkt = IP() / UDP()
440485
bpkt = IP(raw(pkt))
441486
assert bpkt.chksum == 0x7cce and bpkt.payload.chksum == 0x0172
442487

488+
Ah_dicts = {'nh': 17, 'payloadlen': 2, 'reserved': 0, 'spi': 1, 'seq': 0, 'icv': b'\x00\x00\x00\x00'}
489+
pkt = IP(proto=51) / AH(**Ah_dicts) / UDP()
490+
bpkt = IP(raw(pkt))
491+
assert bpkt.chksum == 0x7c9c
492+
packetStr = transferPacket(pkt)
493+
udpCheckSum = int("".join(packetStr[-2:]), 16)
494+
assert udpCheckSum == 0x0172
495+
496+
pkt = IPv6(nh=51) / AH(**Ah_dicts) / UDP()
497+
packetStr = transferPacket(pkt)
498+
udpCheckSum = int("".join(packetStr[-2:]), 16)
499+
assert udpCheckSum == 0xff72
500+
443501
pkt = IP(len=28) / UDP()
444502
bpkt = IP(raw(pkt))
445503
assert bpkt.chksum == 0x7cce and bpkt.payload.chksum == 0x0172
@@ -455,6 +513,18 @@ pkt = IP() / UDP() / ("A" * 10)
455513
bpkt = IP(raw(pkt))
456514
assert bpkt.chksum == 0x7cc4 and bpkt.payload.chksum == 0xbb17
457515

516+
pkt = IP(proto=51) / AH(**Ah_dicts) / UDP() / ("A" * 10)
517+
bpkt = IP(raw(pkt))
518+
assert bpkt.chksum == 0x7c92
519+
packetStr = transferPacket(pkt)
520+
udpCheckSum = int("".join(packetStr[-12:-10]), 16)
521+
assert udpCheckSum == 0xbb17
522+
523+
pkt = IPv6(nh=51) / AH(**Ah_dicts) / UDP() / ("A" * 10)
524+
packetStr = transferPacket(pkt)
525+
udpCheckSum = int("".join(packetStr[-12:-10]), 16)
526+
assert udpCheckSum == 0xb918
527+
458528
pkt = IP(len=38) / UDP() / ("A" * 10)
459529
bpkt = IP(raw(pkt))
460530
assert bpkt.chksum == 0x7cc4 and bpkt.payload.chksum == 0xbb17
@@ -467,6 +537,13 @@ pkt = IP(options=[IPOption_RR()]) / UDP() / ("A" * 10)
467537
bpkt = IP(raw(pkt))
468538
assert bpkt.chksum == 0x70bd and bpkt.payload.chksum == 0xbb17
469539

540+
pkt = IP(proto=51, options=[IPOption_RR()]) / AH(**Ah_dicts) / UDP() / ("A" * 10)
541+
bpkt = IP(raw(pkt))
542+
assert bpkt.chksum == 0x708b
543+
packetStr = transferPacket(pkt)
544+
udpCheckSum = int("".join(packetStr[-12:-10]), 16)
545+
assert udpCheckSum == 0xbb17
546+
470547
pkt = IP(len=42, options=[IPOption_RR()]) / UDP() / ("A" * 10)
471548
bpkt = IP(raw(pkt))
472549
assert bpkt.chksum == 0x70bd and bpkt.payload.chksum == 0xbb17

0 commit comments

Comments
 (0)