Esempio n. 1
0
 def cksum(self, ip, data="", nx=0):
     """Calculate checksum over TCP v6 segment outside of a chain."""
     total = 0
     p6 = pseudoipv6()
     p6.src = ip.src
     p6.dst = ip.dst
     p6.length = len(self.getbytes()) + len(data)
     if nx:
         p6.next_header = nx
     else:
         p6.next_header = ip.next_header
     pkt = p6.getbytes() + self.getbytes() + data
     return ipv4.ipv4_cksum(pkt)
Esempio n. 2
0
File: tcpv6.py Progetto: gvnn3/PCS
 def cksum(self, ip, data = "", nx = 0):
     """Calculate checksum over TCP v6 segment outside of a chain."""
     total = 0
     p6 = pseudoipv6()
     p6.src = ip.src
     p6.dst = ip.dst
     p6.length = len(self.getbytes()) + len (data)
     if nx:
         p6.next_header = nx
     else:
         p6.next_header = ip.next_header
     pkt = p6.getbytes() + self.getbytes() + data
     return ipv4.ipv4_cksum(pkt)
Esempio n. 3
0
 def calc_checksum(self):
     """Calculate and store the checksum for this TCP v6 segment.
        The packet must be part of a chain.
        To do this we need to use an overlay, and copy some
        header fields from the encapsulating IPv6 header."""
     self.checksum = 0
     if self._head is not None:
         payload = self._head.collate_following(self)
         ip6 = self._head.find_preceding(self, pcs.packets.ipv6)
         assert ip6 is not None, "No preceding IPv6 header."
         pip6 = pseudoipv6()
         pip6.src = ip.src
         pip6.dst = ip.dst
         pip6.next_header = ip6.next_header
         pip6.length = len(self.getbytes()) + len(payload)
         tmpbytes = pip6.getbytes() + self.getbytes() + payload
     else:
         tmpbytes = self.bytes
     self.checksum = ipv4.ipv4_cksum(tmpbytes)
Esempio n. 4
0
File: tcpv6.py Progetto: gvnn3/PCS
 def calc_checksum(self):
     """Calculate and store the checksum for this TCP v6 segment.
        The packet must be part of a chain.
        To do this we need to use an overlay, and copy some
        header fields from the encapsulating IPv6 header."""
     self.checksum = 0
     if self._head is not None:
         payload = self._head.collate_following(self)
         ip6 = self._head.find_preceding(self, pcs.packets.ipv6)
         assert ip6 is not None, "No preceding IPv6 header."
         pip6 = pseudoipv6()
         pip6.src = ip.src
         pip6.dst = ip.dst
         pip6.next_header = ip6.next_header
         pip6.length = len(self.getbytes()) + len(payload)
         tmpbytes = pip6.getbytes() + self.getbytes() + payload
     else:
         tmpbytes = self.bytes
     self.checksum = ipv4.ipv4_cksum(tmpbytes)