1 |
786 |
skrzyp |
//==========================================================================
|
2 |
|
|
//
|
3 |
|
|
// include/netkey/key.h
|
4 |
|
|
//
|
5 |
|
|
//==========================================================================
|
6 |
|
|
// ####BSDCOPYRIGHTBEGIN####
|
7 |
|
|
// -------------------------------------------
|
8 |
|
|
// This file is part of eCos, the Embedded Configurable Operating System.
|
9 |
|
|
//
|
10 |
|
|
// Portions of this software may have been derived from FreeBSD
|
11 |
|
|
// or other sources, and if so are covered by the appropriate copyright
|
12 |
|
|
// and license included herein.
|
13 |
|
|
//
|
14 |
|
|
// Portions created by the Free Software Foundation are
|
15 |
|
|
// Copyright (C) 2002 Free Software Foundation, Inc.
|
16 |
|
|
// -------------------------------------------
|
17 |
|
|
// ####BSDCOPYRIGHTEND####
|
18 |
|
|
//==========================================================================
|
19 |
|
|
|
20 |
|
|
/* $KAME: key.h,v 1.21 2001/07/27 03:51:30 itojun Exp $ */
|
21 |
|
|
|
22 |
|
|
/*
|
23 |
|
|
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
24 |
|
|
* All rights reserved.
|
25 |
|
|
*
|
26 |
|
|
* Redistribution and use in source and binary forms, with or without
|
27 |
|
|
* modification, are permitted provided that the following conditions
|
28 |
|
|
* are met:
|
29 |
|
|
* 1. Redistributions of source code must retain the above copyright
|
30 |
|
|
* notice, this list of conditions and the following disclaimer.
|
31 |
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
32 |
|
|
* notice, this list of conditions and the following disclaimer in the
|
33 |
|
|
* documentation and/or other materials provided with the distribution.
|
34 |
|
|
* 3. Neither the name of the project nor the names of its contributors
|
35 |
|
|
* may be used to endorse or promote products derived from this software
|
36 |
|
|
* without specific prior written permission.
|
37 |
|
|
*
|
38 |
|
|
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
39 |
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
40 |
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
41 |
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
42 |
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
43 |
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
44 |
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
45 |
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
46 |
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
47 |
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
48 |
|
|
* SUCH DAMAGE.
|
49 |
|
|
*/
|
50 |
|
|
|
51 |
|
|
#ifndef _NETKEY_KEY_H_
|
52 |
|
|
#define _NETKEY_KEY_H_
|
53 |
|
|
|
54 |
|
|
#ifdef _KERNEL
|
55 |
|
|
|
56 |
|
|
extern struct key_cb key_cb;
|
57 |
|
|
|
58 |
|
|
struct secpolicy;
|
59 |
|
|
struct secpolicyindex;
|
60 |
|
|
struct ipsecrequest;
|
61 |
|
|
struct secasvar;
|
62 |
|
|
struct sockaddr;
|
63 |
|
|
struct socket;
|
64 |
|
|
struct sadb_msg;
|
65 |
|
|
struct sadb_x_policy;
|
66 |
|
|
|
67 |
|
|
extern struct secpolicy *key_allocsp __P((struct secpolicyindex *, u_int));
|
68 |
|
|
extern struct secpolicy *key_gettunnel __P((struct sockaddr *,
|
69 |
|
|
struct sockaddr *, struct sockaddr *, struct sockaddr *));
|
70 |
|
|
extern int key_checkrequest
|
71 |
|
|
__P((struct ipsecrequest *isr, struct secasindex *));
|
72 |
|
|
extern struct secasvar *key_allocsa __P((u_int, caddr_t, caddr_t,
|
73 |
|
|
u_int, u_int32_t));
|
74 |
|
|
extern void key_freesp __P((struct secpolicy *));
|
75 |
|
|
extern void key_freeso __P((struct socket *));
|
76 |
|
|
extern void key_freesav __P((struct secasvar *));
|
77 |
|
|
extern struct secpolicy *key_newsp __P((void));
|
78 |
|
|
extern struct secpolicy *key_msg2sp __P((struct sadb_x_policy *,
|
79 |
|
|
size_t, int *));
|
80 |
|
|
extern struct mbuf *key_sp2msg __P((struct secpolicy *));
|
81 |
|
|
extern int key_ismyaddr __P((struct sockaddr *));
|
82 |
|
|
extern int key_cmpspidx_exactly
|
83 |
|
|
__P((struct secpolicyindex *, struct secpolicyindex *));
|
84 |
|
|
extern int key_cmpspidx_withmask
|
85 |
|
|
__P((struct secpolicyindex *, struct secpolicyindex *));
|
86 |
|
|
extern int key_spdacquire __P((struct secpolicy *));
|
87 |
|
|
extern void key_timehandler __P((void));
|
88 |
|
|
extern u_long key_random __P((void));
|
89 |
|
|
extern void key_randomfill __P((void *, size_t));
|
90 |
|
|
extern void key_freereg __P((struct socket *));
|
91 |
|
|
extern int key_parse __P((struct mbuf *, struct socket *));
|
92 |
|
|
extern void key_init __P((void));
|
93 |
|
|
extern int key_checktunnelsanity __P((struct secasvar *, u_int,
|
94 |
|
|
caddr_t, caddr_t));
|
95 |
|
|
extern void key_sa_recordxfer __P((struct secasvar *, struct mbuf *));
|
96 |
|
|
extern void key_sa_routechange __P((struct sockaddr *));
|
97 |
|
|
extern void key_sa_stir_iv __P((struct secasvar *));
|
98 |
|
|
|
99 |
|
|
#ifdef __FreeBSD__
|
100 |
|
|
#ifdef MALLOC_DECLARE
|
101 |
|
|
MALLOC_DECLARE(M_SECA);
|
102 |
|
|
#endif /* MALLOC_DECLARE */
|
103 |
|
|
#endif
|
104 |
|
|
|
105 |
|
|
#if defined(__bsdi__) || defined(__NetBSD__)
|
106 |
|
|
extern int key_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
|
107 |
|
|
#endif
|
108 |
|
|
|
109 |
|
|
#endif /* defined(_KERNEL) */
|
110 |
|
|
#endif /* _NETKEY_KEY_H_ */
|