Exemplo n.º 1
0
Arquivo: igmp.py Projeto: JahanviB/PCS
 def calc_checksum(self):
     """Calculate and store the checksum for this IGMP header.
        IGMP checksums are computed over payloads too."""
     from pcs.packets.ipv4 import ipv4
     self.checksum = 0
     tmpbytes = self.bytes
     if not self._head is None:
         tmpbytes += self._head.collate_following(self)
     self.checksum = ipv4.ipv4_cksum(tmpbytes)
Exemplo n.º 2
0
 def calc_checksum(self):
     """Calculate and store the checksum for this IGMP header.
        IGMP checksums are computed over payloads too."""
     from pcs.packets.ipv4 import ipv4
     self.checksum = 0
     tmpbytes = self.bytes
     if not self._head is None:
         tmpbytes += self._head.collate_following(self)
     self.checksum = ipv4.ipv4_cksum(tmpbytes)
Exemplo n.º 3
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)
Exemplo n.º 4
0
Arquivo: tcpv6.py Projeto: 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)
Exemplo n.º 5
0
 def cksum(self, ip, data="", nx=0):
     """Calculate the checksum for this ICMPv6 header, outside
        of a chain."""
     p6 = pseudoipv6.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)
Exemplo n.º 6
0
Arquivo: icmpv6.py Projeto: gvnn3/PCS
 def cksum(self, ip, data = "", nx = 0):
     """Calculate the checksum for this ICMPv6 header, outside
        of a chain."""
     p6 = pseudoipv6.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)
Exemplo n.º 7
0
 def calc_checksum(self):
     """Calculate and store the checksum for this ICMPv6 header.
        ICMPv6 checksums are computed over data payloads and
        next-headers. The packet must be part of a chain."""
     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.pseudoipv6()
         pip6.src = ip6.src
         pip6.dst = ip6.dst
         pip6.next_header = ip6.next_header
         pip6.length = len(self.getbytes()) + len(payload)
         tmpbytes = pip6.getbytes() + self.getbytes() + payload
     else:
         tmpbytes = self.getbytes()
     self.checksum = ipv4.ipv4_cksum(tmpbytes)
Exemplo n.º 8
0
Arquivo: icmpv6.py Projeto: gvnn3/PCS
 def calc_checksum(self):
     """Calculate and store the checksum for this ICMPv6 header.
        ICMPv6 checksums are computed over data payloads and
        next-headers. The packet must be part of a chain."""
     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.pseudoipv6()
         pip6.src = ip6.src
         pip6.dst = ip6.dst
         pip6.next_header = ip6.next_header
         pip6.length = len(self.getbytes()) + len(payload)
         tmpbytes = pip6.getbytes() + self.getbytes() + payload
     else:
         tmpbytes = self.getbytes()
     self.checksum = ipv4.ipv4_cksum(tmpbytes)
Exemplo n.º 9
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)
Exemplo n.º 10
0
Arquivo: tcpv6.py Projeto: 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)