diff --git a/scapy/asn1/ber.py b/scapy/asn1/ber.py index 16f8381bb3608f12cc33c04579b6acf95c1d676a..da15f9108c536df2e0cb0460be9536b09c2d13d9 100644 --- a/scapy/asn1/ber.py +++ b/scapy/asn1/ber.py @@ -368,7 +368,7 @@ class BERcodec_OID(BERcodec_Object): l,s = BER_num_dec(s) lst.append(l) if (len(lst) > 0): - lst.insert(0,lst[0]/40) + lst.insert(0,lst[0]//40) lst[1] %= 40 return cls.asn1_object(".".join(str(k) for k in lst)), t diff --git a/scapy/fields.py b/scapy/fields.py index 937b101d949744e87ae1e98cdf8e53d639de5f39..28fc4baa5a4cf663550c96294d8b3b8c523a6d2a 100644 --- a/scapy/fields.py +++ b/scapy/fields.py @@ -535,7 +535,7 @@ class NetBIOSNameField(StrFixedLenField): def __init__(self, name, default, length=31): StrFixedLenField.__init__(self, name, default, length) def i2m(self, pkt, x): - l = self.length_from(pkt)/2 + l = self.length_from(pkt)//2 if x is None: x = "" x += " "*(l) @@ -763,7 +763,7 @@ class BitField(Field): else: bn = 0 # we don't want to process all the string - nb_bytes = (self.size+bn-1)/8 + 1 + nb_bytes = (self.size+bn-1)//8 + 1 w = s[:nb_bytes] # split the substring byte by byte @@ -783,7 +783,7 @@ class BitField(Field): b = self.reverse(b) bn += self.size - s = s[bn/8:] + s = s[bn//8:] bn = bn%8 b = self.m2i(pkt, b) if bn: @@ -1279,7 +1279,7 @@ class _IPPrefixFieldBase(Field): def _numbytes(self, pfxlen): wbits= self.wordbytes * 8 - return ((pfxlen + (wbits - 1)) / wbits) * self.wordbytes + return ((pfxlen + (wbits - 1)) // wbits) * self.wordbytes def h2i(self, pkt, x): # "fc00:1::1/64" -> ("fc00:1::1", 64) diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index e38a0990db288f52d90f3cbfd7d4e601b71d8513..0d22ebf8734cd82abd6a94e57524f6e999ff4400 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -144,7 +144,7 @@ class IPOption_RR(IPOption): length_from=lambda pkt:pkt.length-3) ] def get_current_router(self): - return self.routers[self.pointer/4-1] + return self.routers[self.pointer//4-1] class IPOption_LSRR(IPOption_RR): name = "IP Option Loose Source and Record Route" @@ -275,7 +275,7 @@ class TCPOptionsField(StrField): if onum in TCPOptions[0]: oname, ofmt = TCPOptions[0][onum] if onum == 5: #SAck - ofmt += "%iI" % (len(oval)/4) + ofmt += "%iI" % (len(oval)//4) if ofmt and struct.calcsize(ofmt) == len(oval): oval = struct.unpack(ofmt, oval) if len(oval) == 1: @@ -379,7 +379,7 @@ class IP(Packet, IPTools): ihl = self.ihl p += b"\0"*((-len(p))%4) # pad IP options if needed if ihl is None: - ihl = len(p)/4 + ihl = len(p)//4 p = chr(((self.version&0xf)<<4) | ihl&0x0f)+p[1:] if self.len is None: l = len(p)+len(pay) @@ -450,7 +450,7 @@ class IP(Packet, IPTools): def fragment(self, fragsize=1480): """Fragment IP datagrams""" - fragsize = (fragsize+7)/8*8 + fragsize = (fragsize+7)//8*8 lst = [] fnb = 0 fl = self @@ -460,7 +460,7 @@ class IP(Packet, IPTools): for p in fl: s = str(p[fnb].payload) - nb = (len(s)+fragsize-1)/fragsize + nb = (len(s)+fragsize-1)//fragsize for i in range(nb): q = p.copy() del(q[fnb].payload) @@ -468,7 +468,7 @@ class IP(Packet, IPTools): del(q[fnb].len) if i != nb - 1: q[fnb].flags |= 1 - q[fnb].frag += i * fragsize / 8 + q[fnb].frag += i * fragsize // 8 r = conf.raw_layer(load=s[i*fragsize:(i+1)*fragsize]) r.overload_fields = p[fnb].payload.overload_fields.copy() q.add_payload(r) @@ -490,7 +490,7 @@ def in4_chksum(proto, u, p): if u.len is not None: if u.ihl is None: olen = sum(len(x) for x in u.options) - ihl = 5 + olen / 4 + (1 if olen % 4 else 0) + ihl = 5 + olen // 4 + (1 if olen % 4 else 0) else: ihl = u.ihl ln = u.len - 4 * ihl @@ -520,7 +520,7 @@ class TCP(Packet): p += pay dataofs = self.dataofs if dataofs is None: - dataofs = 5+((len(self.get_field("options").i2m(self,self.options))+3)/4) + dataofs = 5+((len(self.get_field("options").i2m(self,self.options))+3)//4) p = p[:12]+chr((dataofs << 4) | ord(p[12])&0x0f)+p[13:] if self.chksum is None: if isinstance(self.underlayer, IP): @@ -828,11 +828,11 @@ conf.neighbor.register_l3(Dot3, IP, inet_register_l3) @conf.commands.register def fragment(pkt, fragsize=1480): """Fragment a big IP datagram""" - fragsize = (fragsize+7)/8*8 + fragsize = (fragsize+7)//8*8 lst = [] for p in pkt: s = str(p[IP].payload) - nb = (len(s)+fragsize-1)/fragsize + nb = (len(s)+fragsize-1)//fragsize for i in range(nb): q = p.copy() del(q[IP].payload) @@ -840,7 +840,7 @@ def fragment(pkt, fragsize=1480): del(q[IP].len) if i != nb - 1: q[IP].flags |= 1 - q[IP].frag += i * fragsize / 8 + q[IP].frag += i * fragsize // 8 r = conf.raw_layer(load=s[i*fragsize:(i+1)*fragsize]) r.overload_fields = p[IP].payload.overload_fields.copy() q.add_payload(r) diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py index e7e73cc48aff8a724a0a9593cbe8d1ed304b8a8c..25d5f1e8ecdf50f4b420801d4a52f3a0a0df8f12 100644 --- a/scapy/layers/inet6.py +++ b/scapy/layers/inet6.py @@ -791,7 +791,7 @@ class RouterAlert(Packet): # RFC 2711 - IPv6 Hop-By-Hop Option # iana.org/assignments/ipv6-routeralert-values/ipv6-routeralert-values.xhtml def alignment_delta(self, curpos): # alignment requirement : 2n+0 x = 2 ; y = 0 - delta = x*((curpos - y + x - 1)/x) + y - curpos + delta = x*((curpos - y + x - 1)//x) + y - curpos return delta class Jumbo(Packet): # IPv6 Hop-By-Hop Option @@ -801,7 +801,7 @@ class Jumbo(Packet): # IPv6 Hop-By-Hop Option IntField("jumboplen", None) ] def alignment_delta(self, curpos): # alignment requirement : 4n+2 x = 4 ; y = 2 - delta = x*((curpos - y + x - 1)/x) + y - curpos + delta = x*((curpos - y + x - 1)//x) + y - curpos return delta class HAO(Packet): # IPv6 Destination Options Header Option @@ -811,7 +811,7 @@ class HAO(Packet): # IPv6 Destination Options Header Option IP6Field("hoa", "::") ] def alignment_delta(self, curpos): # alignment requirement : 8n+6 x = 8 ; y = 6 - delta = x*((curpos - y + x - 1)/x) + y - curpos + delta = x*((curpos - y + x - 1)//x) + y - curpos return delta _hbhoptcls = { 0x00: Pad1, @@ -927,7 +927,7 @@ class IPv6ExtHdrHopByHop(_IPv6ExtHdr): name = "IPv6 Extension Header - Hop-by-Hop Options Header" fields_desc = [ ByteEnumField("nh", 59, ipv6nh), FieldLenField("len", None, length_of="options", fmt="B", - adjust = lambda pkt,x: (x+2+7)/8 - 1), + adjust = lambda pkt,x: (x+2+7)//8 - 1), _PhantomAutoPadField("autopad", 1), # autopad activated by default _HopByHopOptionsField("options", [], HBHOptUnknown, 2, length_from = lambda pkt: (8*(pkt.len+1))-2) ] @@ -940,7 +940,7 @@ class IPv6ExtHdrDestOpt(_IPv6ExtHdr): name = "IPv6 Extension Header - Destination Options Header" fields_desc = [ ByteEnumField("nh", 59, ipv6nh), FieldLenField("len", None, length_of="options", fmt="B", - adjust = lambda pkt,x: (x+2+7)/8 - 1), + adjust = lambda pkt,x: (x+2+7)//8 - 1), _PhantomAutoPadField("autopad", 1), # autopad activated by default _HopByHopOptionsField("options", [], HBHOptUnknown, 2, length_from = lambda pkt: (8*(pkt.len+1))-2) ] @@ -1056,7 +1056,7 @@ class IPv6ExtHdrSegmentRouting(_IPv6ExtHdr): tlv = IPv6ExtHdrSegmentRoutingTLVPadding(padding=tmp_pad) pkt += str(tlv) - tmp_len = (len(pkt) - 8) / 8 + tmp_len = (len(pkt) - 8) // 8 pkt = pkt[:1] + struct.pack("B", tmp_len)+ pkt[2:] if self.segleft is None: @@ -1210,7 +1210,7 @@ def fragment6(pkt, fragSize): tmp = remain[:innerFragSize] remain = remain[innerFragSize:] fragHeader.offset = fragOffset # update offset - fragOffset += (innerFragSize / 8) # compute new one + fragOffset += (innerFragSize // 8) # compute new one if IPv6 in unfragPart: unfragPart[IPv6].plen = None tempo = unfragPart/fragHeader/conf.raw_layer(load=tmp) @@ -1722,7 +1722,7 @@ class ICMPv6NDOptRedirectedHdr(_ICMPv6NDGuessPayload, Packet): name = "ICMPv6 Neighbor Discovery Option - Redirected Header" fields_desc = [ ByteField("type",4), FieldLenField("len", None, length_of="pkt", fmt="B", - adjust = lambda pkt,x:(x+8)/8), + adjust = lambda pkt,x:(x+8)//8), StrFixedLenField("res", b"\x00"*6, 6), TruncPktLenField("pkt", "", IPv6, 8, length_from = lambda pkt: 8*pkt.len-8) ] @@ -1855,7 +1855,7 @@ class ICMPv6NDOptRouteInfo(_ICMPv6NDGuessPayload, Packet): # RFC 4191 name = "ICMPv6 Neighbor Discovery Option - Route Information Option" fields_desc = [ ByteField("type",24), FieldLenField("len", None, length_of="prefix", fmt="B", - adjust = lambda pkt,x: x/8 + 1), + adjust = lambda pkt,x: x//8 + 1), ByteField("plen", None), BitField("res1",0,3), BitField("prf",0,2), @@ -1934,7 +1934,7 @@ class ICMPv6NDOptDNSSL(_ICMPv6NDGuessPayload, Packet): # RFC 6106 name = "ICMPv6 Neighbor Discovery Option - DNS Search List Option" fields_desc = [ ByteField("type", 31), FieldLenField("len", None, length_of="searchlist", fmt="B", - adjust=lambda pkt, x: 1+ x/8), + adjust=lambda pkt, x: 1+ x//8), ShortField("res", None), IntField("lifetime", 0xffffffff), DomainNameListField("searchlist", [], @@ -2615,7 +2615,7 @@ class _MIP6OptAlign: x = self.x ; y = self.y if x == 0 and y ==0: return 0 - delta = x*((curpos - y + x - 1)/x) + y - curpos + delta = x*((curpos - y + x - 1)//x) + y - curpos return delta @@ -2842,7 +2842,7 @@ class _MobilityHeader(Packet): p += pay l = self.len if self.len is None: - l = (len(p)-8)/8 + l = (len(p)-8)//8 p = p[0] + struct.pack("B", l) + p[2:] if self.cksum is None: cksum = in6_chksum(135, self.underlayer, p) diff --git a/scapy/layers/tls/crypto/pkcs1.py b/scapy/layers/tls/crypto/pkcs1.py index baa8b7964e67f4ca37395d71646ccb31e6c864ae..bdaab2fd634b98b98e9af52c990f34ea1d8291e0 100644 --- a/scapy/layers/tls/crypto/pkcs1.py +++ b/scapy/layers/tls/crypto/pkcs1.py @@ -161,7 +161,7 @@ class _EncryptAndVerifyRSA(object): return False def _legacy_verify_md5_sha1(self, M, S): - k = self._modulusLen / 8 + k = self._modulusLen // 8 if len(S) != k: warning("invalid signature (len(S) != k)") return False @@ -203,7 +203,7 @@ class _DecryptAndSignRSA(object): return self._legacy_sign_md5_sha1(M) def _legacy_sign_md5_sha1(self, M): - k = self._modulusLen / 8 + k = self._modulusLen // 8 EM = _legacy_pkcs1_v1_5_encode_md5_sha1(M, k) if EM is None: warning("Key._rsassa_pkcs1_v1_5_sign(): unable to encode") diff --git a/scapy/utils6.py b/scapy/utils6.py index 8439e40d9dfe9295e6df5a014b785bbe29423656..b6c6a72edcab3872a5c4f0cd650f2c04b1c1cf48 100644 --- a/scapy/utils6.py +++ b/scapy/utils6.py @@ -429,7 +429,7 @@ def in6_ctop(addr): res = [] for j in range(4): res.append(struct.pack("!I", i%2**32)) - i = i/(2**32) + i = i//(2**32) res.reverse() return inet_ntop(socket.AF_INET6, "".join(res)) @@ -451,7 +451,7 @@ def in6_ptoc(addr): res = [] while rem: res.append(_rfc1924map[rem%85]) - rem = rem/85 + rem = rem//85 res.reverse() return "".join(res) diff --git a/scapy/volatile.py b/scapy/volatile.py index 6a37f260fab59d258194765302672425f95854e2..8c91759ca2cd487860d9740c76673d15143d1459 100644 --- a/scapy/volatile.py +++ b/scapy/volatile.py @@ -37,7 +37,7 @@ class RandomEnumeration: n += 1 self.n =n - self.fs = min(3,(n+1)/2) + self.fs = min(3,(n+1)//2) self.fsmask = 2**self.fs-1 self.rounds = max(self.n,3) self.turns = 0