ipsec_doi.h revision 127668
156893Sfenner/* 256893Sfenner * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 356893Sfenner * All rights reserved. 4127668Sbms * 556893Sfenner * Redistribution and use in source and binary forms, with or without 656893Sfenner * modification, are permitted provided that the following conditions 756893Sfenner * are met: 856893Sfenner * 1. Redistributions of source code must retain the above copyright 956893Sfenner * notice, this list of conditions and the following disclaimer. 1056893Sfenner * 2. Redistributions in binary form must reproduce the above copyright 1156893Sfenner * notice, this list of conditions and the following disclaimer in the 1256893Sfenner * documentation and/or other materials provided with the distribution. 1356893Sfenner * 3. Neither the name of the project nor the names of its contributors 1456893Sfenner * may be used to endorse or promote products derived from this software 1556893Sfenner * without specific prior written permission. 16127668Sbms * 1756893Sfenner * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 1856893Sfenner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1956893Sfenner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2056893Sfenner * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 2156893Sfenner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2256893Sfenner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2356893Sfenner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2456893Sfenner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2556893Sfenner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2656893Sfenner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2756893Sfenner * SUCH DAMAGE. 2856893Sfenner */ 29127668Sbms/* YIPS @(#)$Id: ipsec_doi.h,v 1.7 2002/12/11 07:13:53 guy Exp $ */ 3056893Sfenner 3156893Sfenner/* refer to RFC 2407 */ 3256893Sfenner 3356893Sfenner#if !defined(_IPSEC_DOI_H_) 3456893Sfenner#define _IPSEC_DOI_H_ 3556893Sfenner 3656893Sfenner#define IPSEC_DOI 1 3756893Sfenner 3856893Sfenner/* 4.2 IPSEC Situation Definition */ 3956893Sfenner#define IPSECDOI_SIT_IDENTITY_ONLY 0x00000001 4056893Sfenner#define IPSECDOI_SIT_SECRECY 0x00000002 4156893Sfenner#define IPSECDOI_SIT_INTEGRITY 0x00000004 4256893Sfenner 4356893Sfenner/* 4.4.1 IPSEC Security Protocol Identifiers */ 4456893Sfenner /* 4.4.2 IPSEC ISAKMP Transform Values */ 4556893Sfenner#define IPSECDOI_PROTO_ISAKMP 1 4656893Sfenner#define IPSECDOI_KEY_IKE 1 4756893Sfenner 4856893Sfenner/* 4.4.1 IPSEC Security Protocol Identifiers */ 4956893Sfenner#define IPSECDOI_PROTO_IPSEC_AH 2 5056893Sfenner /* 4.4.3 IPSEC AH Transform Values */ 5156893Sfenner#define IPSECDOI_AH_MD5 2 5256893Sfenner#define IPSECDOI_AH_SHA 3 5356893Sfenner#define IPSECDOI_AH_DES 4 5475115Sfenner#define IPSECDOI_AH_SHA2_256 5 5575115Sfenner#define IPSECDOI_AH_SHA2_384 6 5675115Sfenner#define IPSECDOI_AH_SHA2_512 7 5756893Sfenner 5856893Sfenner/* 4.4.1 IPSEC Security Protocol Identifiers */ 5956893Sfenner#define IPSECDOI_PROTO_IPSEC_ESP 3 6056893Sfenner /* 4.4.4 IPSEC ESP Transform Identifiers */ 6156893Sfenner#define IPSECDOI_ESP_DES_IV64 1 6256893Sfenner#define IPSECDOI_ESP_DES 2 6356893Sfenner#define IPSECDOI_ESP_3DES 3 6456893Sfenner#define IPSECDOI_ESP_RC5 4 6556893Sfenner#define IPSECDOI_ESP_IDEA 5 6656893Sfenner#define IPSECDOI_ESP_CAST 6 6756893Sfenner#define IPSECDOI_ESP_BLOWFISH 7 6856893Sfenner#define IPSECDOI_ESP_3IDEA 8 6956893Sfenner#define IPSECDOI_ESP_DES_IV32 9 7056893Sfenner#define IPSECDOI_ESP_RC4 10 7156893Sfenner#define IPSECDOI_ESP_NULL 11 7275115Sfenner#define IPSECDOI_ESP_RIJNDAEL 12 7375115Sfenner#define IPSECDOI_ESP_AES 12 7456893Sfenner 7556893Sfenner/* 4.4.1 IPSEC Security Protocol Identifiers */ 7656893Sfenner#define IPSECDOI_PROTO_IPCOMP 4 7756893Sfenner /* 4.4.5 IPSEC IPCOMP Transform Identifiers */ 7856893Sfenner#define IPSECDOI_IPCOMP_OUI 1 7956893Sfenner#define IPSECDOI_IPCOMP_DEFLATE 2 8056893Sfenner#define IPSECDOI_IPCOMP_LZS 3 8156893Sfenner 8256893Sfenner/* 4.5 IPSEC Security Association Attributes */ 8356893Sfenner#define IPSECDOI_ATTR_SA_LTYPE 1 /* B */ 8456893Sfenner#define IPSECDOI_ATTR_SA_LTYPE_DEFAULT 1 8556893Sfenner#define IPSECDOI_ATTR_SA_LTYPE_SEC 1 8656893Sfenner#define IPSECDOI_ATTR_SA_LTYPE_KB 2 8756893Sfenner#define IPSECDOI_ATTR_SA_LDUR 2 /* V */ 8856893Sfenner#define IPSECDOI_ATTR_SA_LDUR_DEFAULT 28800 /* 8 hours */ 8956893Sfenner#define IPSECDOI_ATTR_GRP_DESC 3 /* B */ 9056893Sfenner#define IPSECDOI_ATTR_ENC_MODE 4 /* B */ 9156893Sfenner /* default value: host dependent */ 9256893Sfenner#define IPSECDOI_ATTR_ENC_MODE_TUNNEL 1 9356893Sfenner#define IPSECDOI_ATTR_ENC_MODE_TRNS 2 9456893Sfenner#define IPSECDOI_ATTR_AUTH 5 /* B */ 9575115Sfenner /* 0 means not to use authentication. */ 9656893Sfenner#define IPSECDOI_ATTR_AUTH_HMAC_MD5 1 9756893Sfenner#define IPSECDOI_ATTR_AUTH_HMAC_SHA1 2 9856893Sfenner#define IPSECDOI_ATTR_AUTH_DES_MAC 3 9975115Sfenner#define IPSECDOI_ATTR_AUTH_KPDK 4 /*RFC-1826(Key/Pad/Data/Key)*/ 10056893Sfenner /* 10175115Sfenner * When negotiating ESP without authentication, the Auth 10275115Sfenner * Algorithm attribute MUST NOT be included in the proposal. 10375115Sfenner * When negotiating ESP without confidentiality, the Auth 10475115Sfenner * Algorithm attribute MUST be included in the proposal and 10575115Sfenner * the ESP transform ID must be ESP_NULL. 10656893Sfenner */ 10756893Sfenner#define IPSECDOI_ATTR_KEY_LENGTH 6 /* B */ 10856893Sfenner#define IPSECDOI_ATTR_KEY_ROUNDS 7 /* B */ 10956893Sfenner#define IPSECDOI_ATTR_COMP_DICT_SIZE 8 /* B */ 11056893Sfenner#define IPSECDOI_ATTR_COMP_PRIVALG 9 /* V */ 11156893Sfenner 11256893Sfenner/* 4.6.1 Security Association Payload */ 11356893Sfennerstruct ipsecdoi_sa { 11456893Sfenner struct isakmp_gen h; 11556893Sfenner u_int32_t doi; /* Domain of Interpretation */ 11656893Sfenner u_int32_t sit; /* Situation */ 11756893Sfenner}; 11856893Sfenner 11956893Sfennerstruct ipsecdoi_secrecy_h { 12056893Sfenner u_int16_t len; 12156893Sfenner u_int16_t reserved; 12256893Sfenner}; 12356893Sfenner 12456893Sfenner/* 4.6.2.1 Identification Type Values */ 12556893Sfennerstruct ipsecdoi_id { 12656893Sfenner struct isakmp_gen h; 12756893Sfenner u_int8_t type; /* ID Type */ 12856893Sfenner u_int8_t proto_id; /* Protocol ID */ 12956893Sfenner u_int16_t port; /* Port */ 13056893Sfenner /* Identification Data */ 13156893Sfenner}; 13256893Sfenner 13356893Sfenner#define IPSECDOI_ID_IPV4_ADDR 1 13456893Sfenner#define IPSECDOI_ID_FQDN 2 13556893Sfenner#define IPSECDOI_ID_USER_FQDN 3 13656893Sfenner#define IPSECDOI_ID_IPV4_ADDR_SUBNET 4 13756893Sfenner#define IPSECDOI_ID_IPV6_ADDR 5 13856893Sfenner#define IPSECDOI_ID_IPV6_ADDR_SUBNET 6 13956893Sfenner#define IPSECDOI_ID_IPV4_ADDR_RANGE 7 14056893Sfenner#define IPSECDOI_ID_IPV6_ADDR_RANGE 8 14156893Sfenner#define IPSECDOI_ID_DER_ASN1_DN 9 14256893Sfenner#define IPSECDOI_ID_DER_ASN1_GN 10 14356893Sfenner#define IPSECDOI_ID_KEY_ID 11 14456893Sfenner 14556893Sfenner/* 4.6.3 IPSEC DOI Notify Message Types */ 14656893Sfenner/* Notify Messages - Status Types */ 14756893Sfenner#define IPSECDOI_NTYPE_RESPONDER_LIFETIME 24576 14856893Sfenner#define IPSECDOI_NTYPE_REPLAY_STATUS 24577 14956893Sfenner#define IPSECDOI_NTYPE_INITIAL_CONTACT 24578 15056893Sfenner 15156893Sfenner#endif /* !defined(_IPSEC_DOI_H_) */ 152