File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ipsec-tools / src / racoon / sainfo.h
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:39:10 2012 UTC (12 years, 4 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: /*	$NetBSD: sainfo.h,v 1.8 2011/02/02 15:21:34 vanhu Exp $	*/
    2: 
    3: /* Id: sainfo.h,v 1.5 2006/07/09 17:19:38 manubsd Exp */
    4: 
    5: /*
    6:  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
    7:  * All rights reserved.
    8:  * 
    9:  * Redistribution and use in source and binary forms, with or without
   10:  * modification, are permitted provided that the following conditions
   11:  * are met:
   12:  * 1. Redistributions of source code must retain the above copyright
   13:  *    notice, this list of conditions and the following disclaimer.
   14:  * 2. Redistributions in binary form must reproduce the above copyright
   15:  *    notice, this list of conditions and the following disclaimer in the
   16:  *    documentation and/or other materials provided with the distribution.
   17:  * 3. Neither the name of the project nor the names of its contributors
   18:  *    may be used to endorse or promote products derived from this software
   19:  *    without specific prior written permission.
   20:  * 
   21:  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
   22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   23:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   24:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
   25:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   26:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   27:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   28:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   29:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   30:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   31:  * SUCH DAMAGE.
   32:  */
   33: 
   34: #ifndef _SAINFO_H
   35: #define _SAINFO_H
   36: 
   37: #include <sys/queue.h>
   38: 
   39: #define SAINFO_ANONYMOUS	((void *)NULL)
   40: #define	SAINFO_CLIENTADDR	((void *)~0)
   41: 
   42: /* SA info */
   43: struct sainfo {
   44: 	vchar_t *idsrc;
   45: 	vchar_t *iddst;
   46: 		/*
   47: 		 * idsrc and iddst are constructed body of ID payload.
   48: 		 * that is (struct ipsecdoi_id_b) + ID value.
   49: 		 * If idsrc == NULL, that is anonymous entry.
   50: 		 * If idsrc == ~0, that is client address entry.
   51: 		 */
   52: 
   53: #ifdef ENABLE_HYBRID
   54: 	vchar_t *group;
   55: #endif
   56: 
   57: 	time_t lifetime;
   58: 	int lifebyte;
   59: 	int pfs_group;		/* only use when pfs is required. */
   60: 	vchar_t *id_i;		/* identifier of the authorized initiator */
   61: 	struct sainfoalg *algs[MAXALGCLASS];
   62: 
   63: 	uint32_t remoteid;
   64: 
   65: 	LIST_ENTRY(sainfo) chain;
   66: };
   67: 
   68: /* algorithm type */
   69: struct sainfoalg {
   70: 	int alg;
   71: 	int encklen;			/* key length if encryption algorithm */
   72: 	struct sainfoalg *next;
   73: };
   74: 
   75: extern struct sainfo *getsainfo __P((const vchar_t *,
   76: 	const vchar_t *, const vchar_t *, const vchar_t *, uint32_t));
   77: extern struct sainfo *newsainfo __P((void));
   78: extern void delsainfo __P((struct sainfo *));
   79: extern void inssainfo __P((struct sainfo *));
   80: extern void remsainfo __P((struct sainfo *));
   81: extern void flushsainfo __P((void));
   82: extern void initsainfo __P((void));
   83: extern struct sainfoalg *newsainfoalg __P((void));
   84: extern void delsainfoalg __P((struct sainfoalg *));
   85: extern void inssainfoalg __P((struct sainfoalg **, struct sainfoalg *));
   86: extern const char * sainfo2str __P((const struct sainfo *));
   87: 
   88: extern void sainfo_start_reload __P((void));
   89: extern void sainfo_finish_reload __P((void));
   90: extern void save_sainfotree_restore __P((void));
   91: 
   92: #endif /* _SAINFO_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>