Skip to content

Commit 9184e3d

Browse files
authored
Merge pull request #2732 from guedou/Issue_#2731
Support SHA* based authenticators
2 parents 45c023e + 625ec8b commit 9184e3d

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

scapy/layers/ntp.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,10 +452,10 @@ def guess_payload_class(self, payload):
452452
"""
453453
plen = len(payload)
454454

455-
if plen > _NTP_AUTH_MD5_TAIL_SIZE:
456-
return NTPExtensions
457-
elif plen == _NTP_AUTH_MD5_TAIL_SIZE:
455+
if plen - 4 in [16, 20, 32, 64]: # length of MD5, SHA1, SHA256, SHA512
458456
return NTPAuthenticator
457+
elif plen > _NTP_AUTH_MD5_TAIL_SIZE:
458+
return NTPExtensions
459459

460460
return Packet.guess_payload_class(self, payload)
461461

test/regression.uts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9579,6 +9579,12 @@ assert(p.version == 4)
95799579
assert(p.mode == 3)
95809580
assert(p.stratum == 2)
95819581

9582+
= NTPAuthenticator
9583+
9584+
s = hex_bytes("000c2962f268d094666d23750800450000640db640004011a519c0a80364c0a80305a51e007b0050731a2300072000000000000000000000000000000000000000000000000000000000000000000000000052c7bc1dda64b97d0000000bcdc3825dbf6b7ad02886ff45aa8b2eaf7ac78bc1")
9585+
p = Ether(s)
9586+
assert NTPAuthenticator in p and p[NTPAuthenticator].key_id == 3452142173
9587+
95829588

95839589
############
95849590
############

0 commit comments

Comments
 (0)