Comments (2)
The following isn't pretty but seems to correctly verify both the IP and TCP objects' checksum. Though be aware that it assumes that the IP packet contains TCP or another object that has a sum
member. In case you need to check for that, you'll find what you need in dpkt.ip.IP.__bytes__
.
def verify_checksum(ip: dpkt.ip.IP):
ip_sum = ip.sum
tcp_sum = ip.data.sum
ip.sum = 0
ip.data.sum = 0
ip.__bytes__()
return ip_sum == ip.sum and tcp_sum == ip.data.sum
from dpkt.
This method works fine.
The function to calculate generic internet checksums in_cksum()
is defined in dpkt.py. Clicking on "References" tab will show how it's used throughout the code in various protocol parsers.
from dpkt.
Related Issues (20)
- Unable to pull data from non TCP/UDP packets HOT 1
- The HTTP response message is divided into multiple TCP messages. HOT 1
- support for "modified pcaps" HOT 1
- Release 1.9.8 HOT 3
- Coveralls failures are misleading HOT 3
- Writing packets from raw IPv6 not working HOT 2
- lists in self.data and pprint-todo HOT 2
- bitfield unittest might be platform dependant HOT 4
- `Diameter.__bytes__` has side effects (messes up `len` and `cmd`) HOT 1
- HTTP HEAD Responses cannot be processed correctly
- Github actions CI/CD failure HOT 2
- typehinting HOT 1
- Incorrect Unpacking of Ethernet Frames with VLAN ETH_TYPE_8021Q Tag
- Is this library maintained? HOT 2
- Support for 802.11 Action frames HOT 2
- An Unexpected error blank packet generated when dividing traffic flows into five-tuple HOT 2
- Question about checksum generated HOT 1
- dpkt unable to parse the PCAP file with packets that are captured with specific snaplength HOT 1
- Does not work with TLS record of ClientHello from Chrome 124
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dpkt.