X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..3e170ce000f1506b7b5d2c5c7faec85ceabb573d:/bsd/netkey/key.h diff --git a/bsd/netkey/key.h b/bsd/netkey/key.h index a8e387c70..82c97c639 100644 --- a/bsd/netkey/key.h +++ b/bsd/netkey/key.h @@ -31,8 +31,12 @@ #ifndef _NETKEY_KEY_H_ #define _NETKEY_KEY_H_ +#include -#ifdef KERNEL +#ifdef BSD_KERNEL_PRIVATE + +#define KEY_SADB_UNLOCKED 0 +#define KEY_SADB_LOCKED 1 extern struct key_cb key_cb; @@ -44,39 +48,66 @@ struct sockaddr; struct socket; struct sadb_msg; struct sadb_x_policy; +struct secasindex; +struct secashead; +struct sadb_key; +struct sadb_lifetime; -extern struct secpolicy *key_allocsp __P((struct secpolicyindex *spidx, - u_int dir)); -extern int key_checkrequest - __P((struct ipsecrequest *isr, struct secasindex *saidx)); -extern struct secasvar *key_allocsa __P((u_int family, caddr_t src, caddr_t dst, - u_int proto, u_int32_t spi)); -extern void key_freesp __P((struct secpolicy *sp)); -extern void key_freeso __P((struct socket *so)); -extern void key_freesav __P((struct secasvar *sav)); -extern struct secpolicy *key_newsp __P((void)); -extern struct secpolicy *key_msg2sp __P((struct sadb_x_policy *xpl0, - size_t len, int *error)); -extern struct mbuf *key_sp2msg __P((struct secpolicy *sp)); -extern int key_ismyaddr __P((u_int family, caddr_t addr)); -extern void key_timehandler __P((void)); -extern void key_srandom __P((void)); -extern void key_freereg __P((struct socket *so)); -extern int key_parse __P((struct sadb_msg **msgp, struct socket *so, - int *targetp)); -extern void key_init __P((void)); -extern int key_checktunnelsanity __P((struct secasvar *sav, u_int family, - caddr_t src, caddr_t dst)); -extern void key_sa_recordxfer __P((struct secasvar *sav, struct mbuf *m)); -extern void key_sa_routechange __P((struct sockaddr *dst)); - -#if MALLOC_DECLARE -MALLOC_DECLARE(M_SECA); -#endif /* MALLOC_DECLARE */ +extern struct secpolicy *key_allocsp(struct secpolicyindex *, u_int); +extern struct secasvar *key_allocsa_policy(struct secasindex *); +extern struct secpolicy *key_gettunnel(struct sockaddr *, + struct sockaddr *, struct sockaddr *, struct sockaddr *); +extern struct secasvar *key_alloc_outbound_sav_for_interface(ifnet_t, int); +extern int key_checkrequest(struct ipsecrequest *isr, struct secasindex *, + struct secasvar **sav); +extern struct secasvar *key_allocsa(u_int, caddr_t, caddr_t, + u_int, u_int32_t); +extern u_int16_t key_natt_get_translated_port(struct secasvar *); +extern void key_freesp(struct secpolicy *, int); +extern void key_freesav(struct secasvar *, int); +extern struct secpolicy *key_newsp(void); +extern struct secpolicy *key_msg2sp(struct sadb_x_policy *, size_t, int *); +extern struct mbuf *key_sp2msg(struct secpolicy *); +extern int key_ismyaddr(struct sockaddr *); +extern int key_spdacquire(struct secpolicy *); +extern void key_timehandler(void); +extern u_int32_t key_random(void); +extern void key_randomfill(void *, size_t); +extern void key_freereg(struct socket *); +extern int key_parse(struct mbuf *, struct socket *); +extern int key_checktunnelsanity(struct secasvar *, u_int, caddr_t, caddr_t); +extern void key_sa_recordxfer(struct secasvar *, struct mbuf *); +extern void key_sa_routechange(struct sockaddr *); +extern void key_sa_chgstate(struct secasvar *, u_int8_t); +extern void key_sa_stir_iv(struct secasvar *); +extern void key_delsah(struct secashead *sah); +extern struct secashead *key_newsah2 (struct secasindex *saidx, u_int8_t dir); +extern u_int32_t key_getspi2(struct sockaddr *src, + struct sockaddr *dst, + u_int8_t proto, + u_int8_t mode, + u_int32_t reqid, + struct sadb_spirange *spirange); +extern struct secasvar * key_newsav2(struct secashead *sah, + u_int8_t satype, + u_int8_t alg_auth, + u_int8_t alg_enc, + u_int32_t flags, + u_int8_t replay, + struct sadb_key *key_auth, + u_int16_t key_auth_len, + struct sadb_key *key_enc, + u_int16_t key_enc_len, + u_int16_t natt_port, + u_int32_t seq, + u_int32_t spi, + u_int32_t pid, + struct sadb_lifetime *lifetime_hard, + struct sadb_lifetime *lifetime_soft); +extern void key_delsav(struct secasvar *sav); +extern struct secpolicy *key_getspbyid(u_int32_t); +extern void key_delsp_for_ipsec_if(ifnet_t ipsec_if); -#if defined(__bsdi__) || defined(__NetBSD__) -extern int key_sysctl __P((int *, u_int, void *, size_t *, void *, size_t)); -#endif -#endif /* defined(KERNEL) */ +#endif /* BSD_KERNEL_PRIVATE */ #endif /* _NETKEY_KEY_H_ */