aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/secure_seq.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/secure_seq.c')
-rw-r--r--net/core/secure_seq.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/core/secure_seq.c b/net/core/secure_seq.c
index fd3ce461fbe6..a8d6062cbb4a 100644
--- a/net/core/secure_seq.c
+++ b/net/core/secure_seq.c
@@ -40,8 +40,8 @@ static u32 seq_scale(u32 seq)
40#endif 40#endif
41 41
42#if IS_ENABLED(CONFIG_IPV6) 42#if IS_ENABLED(CONFIG_IPV6)
43__u32 secure_tcpv6_sequence_number(const __be32 *saddr, const __be32 *daddr, 43u32 secure_tcpv6_sequence_number(const __be32 *saddr, const __be32 *daddr,
44 __be16 sport, __be16 dport) 44 __be16 sport, __be16 dport, u32 *tsoff)
45{ 45{
46 u32 secret[MD5_MESSAGE_BYTES / 4]; 46 u32 secret[MD5_MESSAGE_BYTES / 4];
47 u32 hash[MD5_DIGEST_WORDS]; 47 u32 hash[MD5_DIGEST_WORDS];
@@ -58,6 +58,7 @@ __u32 secure_tcpv6_sequence_number(const __be32 *saddr, const __be32 *daddr,
58 58
59 md5_transform(hash, secret); 59 md5_transform(hash, secret);
60 60
61 *tsoff = hash[1];
61 return seq_scale(hash[0]); 62 return seq_scale(hash[0]);
62} 63}
63EXPORT_SYMBOL(secure_tcpv6_sequence_number); 64EXPORT_SYMBOL(secure_tcpv6_sequence_number);
@@ -86,8 +87,8 @@ EXPORT_SYMBOL(secure_ipv6_port_ephemeral);
86 87
87#ifdef CONFIG_INET 88#ifdef CONFIG_INET
88 89
89__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, 90u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,
90 __be16 sport, __be16 dport) 91 __be16 sport, __be16 dport, u32 *tsoff)
91{ 92{
92 u32 hash[MD5_DIGEST_WORDS]; 93 u32 hash[MD5_DIGEST_WORDS];
93 94
@@ -99,6 +100,7 @@ __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,
99 100
100 md5_transform(hash, net_secret); 101 md5_transform(hash, net_secret);
101 102
103 *tsoff = hash[1];
102 return seq_scale(hash[0]); 104 return seq_scale(hash[0]);
103} 105}
104 106