Deleted Added
full compact
key.h (302408) key.h (315514)
1/* $FreeBSD: stable/11/sys/netipsec/key.h 298535 2016-04-24 09:02:17Z ae $ */
1/* $FreeBSD: stable/11/sys/netipsec/key.h 315514 2017-03-18 22:04:20Z ae $ */
2/* $KAME: key.h,v 1.21 2001/07/27 03:51:30 itojun Exp $ */
3
4/*-
5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions

--- 22 unchanged lines hidden (view full) ---

32
33#ifndef _NETIPSEC_KEY_H_
34#define _NETIPSEC_KEY_H_
35
36#ifdef _KERNEL
37
38struct secpolicy;
39struct secpolicyindex;
2/* $KAME: key.h,v 1.21 2001/07/27 03:51:30 itojun Exp $ */
3
4/*-
5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions

--- 22 unchanged lines hidden (view full) ---

32
33#ifndef _NETIPSEC_KEY_H_
34#define _NETIPSEC_KEY_H_
35
36#ifdef _KERNEL
37
38struct secpolicy;
39struct secpolicyindex;
40struct ipsecrequest;
41struct secasvar;
42struct sockaddr;
43struct socket;
44struct sadb_msg;
45struct sadb_x_policy;
46struct secasindex;
47union sockaddr_union;
48
40struct secasvar;
41struct sockaddr;
42struct socket;
43struct sadb_msg;
44struct sadb_x_policy;
45struct secasindex;
46union sockaddr_union;
47
49extern void key_addref(struct secpolicy *sp);
50extern int key_havesp(u_int dir);
51extern struct secpolicy *key_allocsp(struct secpolicyindex *, u_int,
52 const char*, int);
53extern struct secpolicy *key_allocsp2(u_int32_t spi, union sockaddr_union *dst,
54 u_int8_t proto, u_int dir, const char*, int);
55extern struct secpolicy *key_newsp(const char*, int);
56#if 0
57extern struct secpolicy *key_gettunnel(const struct sockaddr *,
58 const struct sockaddr *, const struct sockaddr *,
59 const struct sockaddr *, const char*, int);
60#endif
61/* NB: prepend with _ for KAME IPv6 compatbility */
62extern void _key_freesp(struct secpolicy **, const char*, int);
48struct secpolicy *key_newsp(void);
49struct secpolicy *key_allocsp(struct secpolicyindex *, u_int);
50struct secpolicy *key_msg2sp(struct sadb_x_policy *, size_t, int *);
51int key_sp2msg(struct secpolicy *, void *, size_t *);
52void key_addref(struct secpolicy *);
53void key_freesp(struct secpolicy **);
54int key_spdacquire(struct secpolicy *);
55int key_havesp(u_int);
56void key_bumpspgen(void);
57uint32_t key_getspgen(void);
58uint32_t key_newreqid(void);
63
59
64#define KEY_ALLOCSP(spidx, dir) \
65 key_allocsp(spidx, dir, __FILE__, __LINE__)
66#define KEY_ALLOCSP2(spi, dst, proto, dir) \
67 key_allocsp2(spi, dst, proto, dir, __FILE__, __LINE__)
68#define KEY_NEWSP() \
69 key_newsp(__FILE__, __LINE__)
70#if 0
71#define KEY_GETTUNNEL(osrc, odst, isrc, idst) \
72 key_gettunnel(osrc, odst, isrc, idst, __FILE__, __LINE__)
73#endif
74#define KEY_FREESP(spp) \
75 _key_freesp(spp, __FILE__, __LINE__)
60struct secasvar *key_allocsa(union sockaddr_union *, uint8_t, uint32_t);
61struct secasvar *key_allocsa_tunnel(union sockaddr_union *,
62 union sockaddr_union *, uint8_t);
63struct secasvar *key_allocsa_policy(struct secpolicy *,
64 const struct secasindex *, int *);
65struct secasvar *key_allocsa_tcpmd5(struct secasindex *);
66void key_freesav(struct secasvar **);
76
67
77extern struct secasvar *key_allocsa(union sockaddr_union *, u_int, u_int32_t,
78 const char*, int);
79extern struct secasvar *key_allocsa_tunnel(union sockaddr_union *,
80 union sockaddr_union *, u_int, const char*, int);
81extern void key_addrefsa(struct secasvar *, const char*, int);
82extern void key_freesav(struct secasvar **, const char*, int);
68int key_sockaddrcmp(const struct sockaddr *, const struct sockaddr *, int);
69int key_sockaddrcmp_withmask(const struct sockaddr *, const struct sockaddr *,
70 size_t);
83
71
84#define KEY_ALLOCSA(dst, proto, spi) \
85 key_allocsa(dst, proto, spi, __FILE__, __LINE__)
86#define KEY_ALLOCSA_TUNNEL(src, dst, proto) \
87 key_allocsa_tunnel(src, dst, proto, __FILE__, __LINE__)
88#define KEY_ADDREFSA(sav) \
89 key_addrefsa(sav, __FILE__, __LINE__)
90#define KEY_FREESAV(psav) \
91 key_freesav(psav, __FILE__, __LINE__)
72int key_register_ifnet(struct secpolicy **, u_int);
73void key_unregister_ifnet(struct secpolicy **, u_int);
92
74
93extern void key_freeso(struct socket *);
94extern int key_checktunnelsanity(struct secasvar *, u_int,
95 caddr_t, caddr_t);
96extern int key_checkrequest(struct ipsecrequest *isr,
97 const struct secasindex *);
98extern struct secpolicy *key_msg2sp(struct sadb_x_policy *,
99 size_t, int *);
100extern struct mbuf *key_sp2msg(struct secpolicy *);
101extern int key_ismyaddr(struct sockaddr *);
102extern int key_spdacquire(struct secpolicy *);
103extern u_long key_random(void);
104extern void key_randomfill(void *, size_t);
105extern void key_freereg(struct socket *);
106extern int key_parse(struct mbuf *, struct socket *);
107extern void key_init(void);
108#ifdef VIMAGE
109extern void key_destroy(void);
110#endif
111extern void key_sa_recordxfer(struct secasvar *, struct mbuf *);
75extern u_long key_random(void);
76extern void key_randomfill(void *, size_t);
77extern void key_freereg(struct socket *);
78extern int key_parse(struct mbuf *, struct socket *);
79extern void key_init(void);
80#ifdef VIMAGE
81extern void key_destroy(void);
82#endif
83extern void key_sa_recordxfer(struct secasvar *, struct mbuf *);
112#ifdef IPSEC_NAT_T
113u_int16_t key_portfromsaddr(struct sockaddr *);
114#define KEY_PORTFROMSADDR(saddr) \
115 key_portfromsaddr((struct sockaddr *)(saddr))
116#endif
84uint16_t key_portfromsaddr(struct sockaddr *);
85void key_porttosaddr(struct sockaddr *, uint16_t port);
117
118#ifdef MALLOC_DECLARE
119MALLOC_DECLARE(M_IPSEC_SA);
120MALLOC_DECLARE(M_IPSEC_SAH);
121MALLOC_DECLARE(M_IPSEC_SP);
122MALLOC_DECLARE(M_IPSEC_SR);
123MALLOC_DECLARE(M_IPSEC_MISC);
124MALLOC_DECLARE(M_IPSEC_SAQ);
125MALLOC_DECLARE(M_IPSEC_SAR);
126MALLOC_DECLARE(M_IPSEC_INPCB);
127#endif /* MALLOC_DECLARE */
128
129#endif /* defined(_KERNEL) */
130#endif /* _NETIPSEC_KEY_H_ */
86
87#ifdef MALLOC_DECLARE
88MALLOC_DECLARE(M_IPSEC_SA);
89MALLOC_DECLARE(M_IPSEC_SAH);
90MALLOC_DECLARE(M_IPSEC_SP);
91MALLOC_DECLARE(M_IPSEC_SR);
92MALLOC_DECLARE(M_IPSEC_MISC);
93MALLOC_DECLARE(M_IPSEC_SAQ);
94MALLOC_DECLARE(M_IPSEC_SAR);
95MALLOC_DECLARE(M_IPSEC_INPCB);
96#endif /* MALLOC_DECLARE */
97
98#endif /* defined(_KERNEL) */
99#endif /* _NETIPSEC_KEY_H_ */