Changelog

1.9.8

[2022-08-17]

  • Fixed endianness issues in PCAPNG, Loopback

  • Improved MPLS unpacking to include IPv6

  • Fixed unpacking of multiple records in TLS messages

  • Updated docstrings for multiples modules

  • Fixed a long-standing issue where serializing IP would change its length

  • Fixed IEEE 802.11 Beacon byte ordering

  • Graceful handling of PCAPNG option comment UTF-8 decoding errors

  • Added support for PCAPNG Packet Block

  • Added modpcap reader support

1.9.7.2

[2021-08-16]

  • Fixed performance regression (https://github.com/kbandla/dpkt/issues/611)

1.9.7

[2021-08-16]

  • Moved the project documentation from Read the Docs(RST) to github.io(MarkDown)

  • Added a new mechanism for creating bit-sized field definitions in the protocol parsers (Packet.__bit_fields__)

  • Added pretty printing capability aka Packet.pprint(), Packet.__pprint_funcs__

  • Added documentation on developing protocol parsers in dpkt (creating_parsers.md)

  • Added a universal pcap+pcapng reader (dpkt.pcap.UniversalReader)

  • Improved TLS ClientHello and ServerHello parsing: return an “Unknown” ciphersuite instead of raising an exception, add codes for rfc8701, GREASE ciphersutes

  • Added function to get IP protocol name

  • Modified Packet.__getitem__() and added Packet.__contains__() to address the nested protocol layers

  • Fixed payload length interpretation in AH decoder

  • Improved handling of invalid chunks in HTTP and SCTP

  • Fixed decoding of IPv6 fragments after the 1st fragment

  • Support rfc3540 nonce sum flag in TCP

1.9.6

[2021-05-21]

  • Added in the TLS 1.3 Cipher Suite from the RFC 8446 dated August 2018

  • Added support for Linux cooked capture v2, SLL2.

1.9.5

[2021-02-07]

  • New example showing how to process truncated DNS packets (examples/print_dns_truncated.py).

  • Corrected typo in BGP.notification attribute.

  • BGP.Update.Attribute.MPReachNLRI.SNPA now inherits from dpkt.Packet.

  • Byteorder is now specified when packing GRE optional fields.

  • #517: Improvement to Radiotap class, supporting multi-byte and misaligned flags fields. Endianness is now enforced.

  • Github issue template added for bug reporting.

  • Compliance with flake8 formatting.

  • asn1.py::utctime method now returns time in UTC, instead of local.

  • Allow multiple InterfaceDescriptionBlocks with pcapng.Writer.

  • SCTP decoder DATA chunk padding aligned to 4-bytes, and improved handling of .data field.

  • IEEE80211 DELBA frame now works on big and little-endian architectures.

  • Introduce compat.ntole which converts from network byte order to little-endian byte order, regardless of host endianness.

  • Ethernet class now attempts to unpack the padding and trailer if present.

  • Added anonymous property to cipher suites, which returns True if the cipher suite starts with ‘anon’.

  • Added pfs (Perfect Forward Secrecy) and aead (Authenticated Encryption with Additional Data) properties to cipher suites.

  • Added old CHACHA20-POLY1305 related cipher suites to TLS CipherSuite list.

  • Remove redundant num_compression_methods from TLSClientHello

  • Testing improved from 90% coverage to over 99%.