]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/char/random.c
ipv6: make fragment identifications less predictable
[karo-tx-linux.git] / drivers / char / random.c
index d4ddeba56682f129bbcfab8145c253286f1fc6a2..729281961f22199c7bddec04c3f30f79271d3677 100644 (file)
@@ -1523,6 +1523,21 @@ __u32 secure_ip_id(__be32 daddr)
        return half_md4_transform(hash, keyptr->secret);
 }
 
+__u32 secure_ipv6_id(const __be32 daddr[4])
+{
+       const struct keydata *keyptr;
+       __u32 hash[4];
+
+       keyptr = get_keyptr();
+
+       hash[0] = (__force __u32)daddr[0];
+       hash[1] = (__force __u32)daddr[1];
+       hash[2] = (__force __u32)daddr[2];
+       hash[3] = (__force __u32)daddr[3];
+
+       return half_md4_transform(hash, keyptr->secret);
+}
+
 #ifdef CONFIG_INET
 
 __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,