From a24f657bfd8370839bc40532e872aea4b65cd1fe Mon Sep 17 00:00:00 2001
From: Guillaume Valadon <guillaume@valadon.net>
Date: Wed, 6 Jul 2016 16:38:57 +0200
Subject: [PATCH] Use IPv6 source and destination addresses in hashret()

---
 scapy/layers/inet6.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py
index af641515..d64496cc 100644
--- a/scapy/layers/inet6.py
+++ b/scapy/layers/inet6.py
@@ -436,10 +436,10 @@ class IPv6(_IPv6GuessPayload, Packet, IPTools):
                 nh = self.payload.nh # XXX what if another extension follows ?
                 ss = foundhao.hoa
 
-        if conf.checkIPsrc and conf.checkIPaddr:
+        if conf.checkIPsrc and conf.checkIPaddr and not in6_ismaddr(sd):
             sd = inet_pton(socket.AF_INET6, sd)
             ss = inet_pton(socket.AF_INET6, self.src)
-            return struct.pack("B",nh)+self.payload.hashret()
+            return strxor(sd, ss) + struct.pack("B", nh) + self.payload.hashret()
         else:
             return struct.pack("B", nh)+self.payload.hashret()
 
-- 
GitLab