00001 /*
00002 * embedded IPsec
00003 * Copyright (c) 2003 Niklaus Schild and Christian Scheurer, HTI Biel/Bienne
00004 * All rights reserved.
00005 *
00006 * Redistribution and use in source and binary forms, with or without modification,
00007 * are permitted provided that the following conditions are met:
00008 *
00009 * 1. Redistributions of source code must retain the above copyright notice,
00010 * this list of conditions and the following disclaimer.
00011 * 2. Redistributions in binary form must reproduce the above copyright notice,
00012 * this list of conditions and the following disclaimer in the documentation
00013 * and/or other materials provided with the distribution.
00014 * 3. The name of the author may not be used to endorse or promote products
00015 * derived from this software without specific prior written permission.
00016 *
00017 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
00018 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00019 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
00020 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00021 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
00022 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00023 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00024 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
00025 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
00026 * OF SUCH DAMAGE.
00027 *
00028 */
00029
00043 #ifndef __AH_H__
00044 #define __AH_H__
00045
00046 #include "ipsec/sa.h"
00047 #include "ipsec/util.h"
00048
00049
00050#define IPSEC_AH_HDR_SIZE (12) 00053typedef struct ah_hdr_struct
00054 {
00055__u8 nexthdr;
00056__u8 len;
00057__u16 reserved;
00058__u32 spi;
00059__u32 sequence;
00060__u8 ah_data[IPSEC_AUTH_ICV];
00061 } ipsec_ah_header;
00062
00063
00064extern__u32ipsec_ah_bitmap;
00065extern__u32ipsec_ah_lastSeq;
00067 intipsec_ah_check(ipsec_ip_header *, int *, int *, void *);
00068 intipsec_ah_encapsulate(ipsec_ip_header *, int *, int *, void *, __u32, __u32);
00069
00070 #endif
00071
00072
Copyright 2003 by Christian Scheurer and Niklaus Schild