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_ */ |