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.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/net/core/secure_seq.c b/net/core/secure_seq.c
index 758f140b6bed..fb87e78a2cc7 100644
--- a/net/core/secure_seq.c
+++ b/net/core/secure_seq.c
@@ -45,8 +45,8 @@ static u32 seq_scale(u32 seq)
45#endif 45#endif
46 46
47#if IS_ENABLED(CONFIG_IPV6) 47#if IS_ENABLED(CONFIG_IPV6)
48u32 secure_tcpv6_sequence_number(const __be32 *saddr, const __be32 *daddr, 48u32 secure_tcpv6_seq_and_tsoff(const __be32 *saddr, const __be32 *daddr,
49 __be16 sport, __be16 dport, u32 *tsoff) 49 __be16 sport, __be16 dport, u32 *tsoff)
50{ 50{
51 const struct { 51 const struct {
52 struct in6_addr saddr; 52 struct in6_addr saddr;
@@ -66,7 +66,7 @@ u32 secure_tcpv6_sequence_number(const __be32 *saddr, const __be32 *daddr,
66 *tsoff = sysctl_tcp_timestamps == 1 ? (hash >> 32) : 0; 66 *tsoff = sysctl_tcp_timestamps == 1 ? (hash >> 32) : 0;
67 return seq_scale(hash); 67 return seq_scale(hash);
68} 68}
69EXPORT_SYMBOL(secure_tcpv6_sequence_number); 69EXPORT_SYMBOL(secure_tcpv6_seq_and_tsoff);
70 70
71u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, 71u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
72 __be16 dport) 72 __be16 dport)
@@ -89,14 +89,13 @@ EXPORT_SYMBOL(secure_ipv6_port_ephemeral);
89 89
90#ifdef CONFIG_INET 90#ifdef CONFIG_INET
91 91
92/* secure_tcp_sequence_number(a, b, 0, d) == secure_ipv4_port_ephemeral(a, b, d), 92/* secure_tcp_seq_and_tsoff(a, b, 0, d) == secure_ipv4_port_ephemeral(a, b, d),
93 * but fortunately, `sport' cannot be 0 in any circumstances. If this changes, 93 * but fortunately, `sport' cannot be 0 in any circumstances. If this changes,
94 * it would be easy enough to have the former function use siphash_4u32, passing 94 * it would be easy enough to have the former function use siphash_4u32, passing
95 * the arguments as separate u32. 95 * the arguments as separate u32.
96 */ 96 */
97 97u32 secure_tcp_seq_and_tsoff(__be32 saddr, __be32 daddr,
98u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, 98 __be16 sport, __be16 dport, u32 *tsoff)
99 __be16 sport, __be16 dport, u32 *tsoff)
100{ 99{
101 u64 hash; 100 u64 hash;
102 net_secret_init(); 101 net_secret_init();