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 __ESP_H__
00044 #define __ESP_H__
00045
00046 #include "ipsec/sa.h"
00047
00048#define IPSEC_ESP_IV_SIZE (8) 00049#define IPSEC_ESP_SPI_SIZE (4) 00050#define IPSEC_ESP_SEQ_SIZE (4) 00051#define IPSEC_ESP_HDR_SIZE (IPSEC_ESP_SPI_SIZE+IPSEC_ESP_SEQ_SIZE) 00054typedef struct ipsec_esp_header_struct
00055 {
00056__u32 spi;
00057__u32 sequence_number;
00058 } ipsec_esp_header;
00059
00060
00061typedefstruct esp_packet_struct
00062 {
00063__u32spi ;
00064__u32sequence ;
00065__u8data[1] ;
00066 } esp_packet ;
00067
00068
00069extern__u32ipsec_esp_bitmap;
00070extern__u32ipsec_esp_lastSeq;
00071
00072 ipsec_statusipsec_esp_decapsulate(ipsec_ip_header *packet, int *offset, int *len, sad_entry *sa) ;
00073 ipsec_statusipsec_esp_encapsulate(ipsec_ip_header *packet, int *offset, int *len, sad_entry *sa, __u32 src_addr, __u32 dest_addr) ;
00074
00075 #endif
Copyright 2003 by Christian Scheurer and Niklaus Schild