home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / netkey / key.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-30  |  3.3 KB  |  83 lines

  1. /*    $KAME: key.h,v 1.11 2000/03/25 07:24:12 sumikawa Exp $    */
  2.  
  3. /*
  4.  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
  5.  * All rights reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  * 1. Redistributions of source code must retain the above copyright
  11.  *    notice, this list of conditions and the following disclaimer.
  12.  * 2. Redistributions in binary form must reproduce the above copyright
  13.  *    notice, this list of conditions and the following disclaimer in the
  14.  *    documentation and/or other materials provided with the distribution.
  15.  * 3. Neither the name of the project nor the names of its contributors
  16.  *    may be used to endorse or promote products derived from this software
  17.  *    without specific prior written permission.
  18.  *
  19.  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
  20.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
  23.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  24.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  25.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  26.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  27.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  28.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  29.  * SUCH DAMAGE.
  30.  */
  31.  
  32. #ifndef _NETKEY_KEY_H_
  33. #define _NETKEY_KEY_H_
  34.  
  35. #ifdef KERNEL
  36.  
  37. extern struct key_cb key_cb;
  38.  
  39. struct secpolicy;
  40. struct secpolicyindex;
  41. struct ipsecrequest;
  42. struct secasvar;
  43. struct sockaddr;
  44. struct socket;
  45. struct sadb_msg;
  46. struct sadb_x_policy;
  47.  
  48. extern struct secpolicy *key_allocsp __P((struct secpolicyindex *spidx,
  49.                     u_int dir));
  50. extern int key_checkrequest
  51.     __P((struct ipsecrequest *isr, struct secasindex *saidx));
  52. extern struct secasvar *key_allocsa __P((u_int family, caddr_t src, caddr_t dst,
  53.                     u_int proto, u_int32_t spi));
  54. extern void key_freesp __P((struct secpolicy *sp));
  55. extern void key_freeso __P((struct socket *so));
  56. extern void key_freesav __P((struct secasvar *sav));
  57. extern struct secpolicy *key_newsp __P((void));
  58. extern struct secpolicy *key_msg2sp __P((struct sadb_x_policy *xpl0,
  59.     size_t len, int *error));
  60. extern struct mbuf *key_sp2msg __P((struct secpolicy *sp));
  61. extern int key_ismyaddr __P((u_int family, caddr_t addr));
  62. extern void key_timehandler __P((void));
  63. extern void key_srandom __P((void));
  64. extern void key_freereg __P((struct socket *so));
  65. extern int key_parse __P((struct sadb_msg **msgp, struct socket *so,
  66.             int *targetp));
  67. extern void key_init __P((void));
  68. extern int key_checktunnelsanity __P((struct secasvar *sav, u_int family,
  69.                     caddr_t src, caddr_t dst));
  70. extern void key_sa_recordxfer __P((struct secasvar *sav, struct mbuf *m));
  71. extern void key_sa_routechange __P((struct sockaddr *dst));
  72.  
  73. #if MALLOC_DECLARE
  74. MALLOC_DECLARE(M_SECA);
  75. #endif /* MALLOC_DECLARE */
  76.  
  77. #if defined(__bsdi__) || defined(__NetBSD__)
  78. extern int key_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
  79. #endif
  80.  
  81. #endif /* defined(KERNEL) */
  82. #endif /* _NETKEY_KEY_H_ */
  83.