⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 constants.c

📁 This a good VPN source
💻 C
📖 第 1 页 / 共 2 页
字号:
/* tables of names for values defined in constants.h * Copyright (C) 1998-2002  D. Hugh Redelmeier. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License * for more details. * * RCSID $Id: constants.c,v 1.8 2004/10/19 03:17:54 mcr Exp $ *//* * Note that the array sizes are all specified; this is to enable range * checking by code that only includes constants.h. */#include <stddef.h>#include <string.h>#include <stdio.h>#include <netinet/in.h>#include <openswan.h>#include <openswan/ipsec_policy.h>#include <openswan/passert.h>#include "constants.h"#include "enum_names.h"#include "oswlog.h"/* version */static const char *const version_name[] = {	"ISAKMP Version 1.0",};enum_names version_names =    { ISAKMP_MAJOR_VERSION<<ISA_MAJ_SHIFT | ISAKMP_MINOR_VERSION,	ISAKMP_MAJOR_VERSION<<ISA_MAJ_SHIFT | ISAKMP_MINOR_VERSION,	version_name, NULL };/* Domain of Interpretation */static const char *const doi_name[] = {	"ISAKMP_DOI_ISAKMP",	"ISAKMP_DOI_IPSEC",};enum_names doi_names = { ISAKMP_DOI_ISAKMP, ISAKMP_DOI_IPSEC, doi_name, NULL };/* debugging settings: a set of selections for reporting * These would be more naturally situated in log.h, * but they are shared with whack. * It turns out that "debug-" is clutter in all contexts this is used, * so we leave it off. */const char *const debug_bit_names[] = {	"raw",	"crypt",	"parsing",	"emitting",	"control",	"lifecycle",	"klips",	"dns",	"oppo",	"controlmore",	"pfkey",	"nattraversal",	"x509",               /* 12 */	"dpd",	"res14",	"res15",	"res16",	"res17",	"res18",	"res19",	"private",            /* 20 */	"impair-delay-adns-key-answer", /* 21 */	"impair-delay-adns-txt-answer",	"impair-bust-mi2",	"impair-bust-mr2",	NULL    };/* kind of struct connection */static const char *const connection_kind_name[] = {    "CK_GROUP",		/* policy group: instantiates to template */    "CK_TEMPLATE",	/* abstract connection, with wildcard */    "CK_PERMANENT",	/* normal connection */    "CK_INSTANCE",	/* instance of template, created for a particular attempt */    "CK_GOING_AWAY"	/* instance being deleted -- don't delete again */};enum_names connection_kind_names =    { CK_GROUP, CK_GOING_AWAY, connection_kind_name, NULL };/* Payload types (RFC 2408 "ISAKMP" section 3.1) */const char *const payload_name[] = {	"ISAKMP_NEXT_NONE",	"ISAKMP_NEXT_SA",       /* 1 */	"ISAKMP_NEXT_P",	"ISAKMP_NEXT_T",	"ISAKMP_NEXT_KE",	"ISAKMP_NEXT_ID",       /* 5 */	"ISAKMP_NEXT_CERT",	"ISAKMP_NEXT_CR",	"ISAKMP_NEXT_HASH",	"ISAKMP_NEXT_SIG",	"ISAKMP_NEXT_NONCE",    /* 10 */	"ISAKMP_NEXT_N",	"ISAKMP_NEXT_D",	"ISAKMP_NEXT_VID",	"ISAKMP_NEXT_MODECFG",  /* 14 */	"ISAKMP_NEXT_NAT-D",	"ISAKMP_NEXT_NAT-OA",	NULL    };const char *const payload_name_nat_d[] = { "ISAKMP_NEXT_NAT-D",	"ISAKMP_NEXT_NAT-OA", NULL };static enum_names payload_names_nat_d =	{ ISAKMP_NEXT_NATD_DRAFTS, ISAKMP_NEXT_NATOA_DRAFTS, payload_name_nat_d, NULL };enum_names payload_names =    { ISAKMP_NEXT_NONE, ISAKMP_NEXT_NATOA_RFC, payload_name, &payload_names_nat_d };/* Exchange types (note: two discontinuous ranges) */static const char *const exchange_name[] = {	"ISAKMP_XCHG_NONE",	"ISAKMP_XCHG_BASE",	"ISAKMP_XCHG_IDPROT",	"ISAKMP_XCHG_AO",	"ISAKMP_XCHG_AGGR",	"ISAKMP_XCHG_INFO",	"ISAKMP_XCHG_MODE_CFG",    };static const char *const exchange_name2[] = {	"ISAKMP_XCHG_QUICK",	"ISAKMP_XCHG_NGRP",	"ISAKMP_XCHG_ACK_INFO",    };static enum_names exchange_desc2 =    { ISAKMP_XCHG_QUICK, ISAKMP_XCHG_ACK_INFO, exchange_name2, NULL };enum_names exchange_names =    { ISAKMP_XCHG_NONE, ISAKMP_XCHG_MODE_CFG, exchange_name, &exchange_desc2 };/* Flag BITS */const char *const flag_bit_names[] = {	"ISAKMP_FLAG_ENCRYPTION",	"ISAKMP_FLAG_COMMIT",	NULL    };/* Situation BITS definition for IPsec DOI */const char *const sit_bit_names[] = {	"SIT_IDENTITY_ONLY",	"SIT_SECRECY",	"SIT_INTEGRITY",	NULL    };/* Protocol IDs (RFC 2407 "IPsec DOI" section 4.4.1) */static const char *const protocol_name[] = {	"PROTO_ISAKMP",	"PROTO_IPSEC_AH",	"PROTO_IPSEC_ESP",	"PROTO_IPCOMP",    };enum_names protocol_names =    { PROTO_ISAKMP, PROTO_IPCOMP, protocol_name, NULL };/* IPsec ISAKMP transform values */static const char *const isakmp_transform_name[] = {	"KEY_IKE",    };enum_names isakmp_transformid_names =    { KEY_IKE, KEY_IKE, isakmp_transform_name, NULL };/* IPsec AH transform values */static const char *const ah_transform_name[] = {	"AH_MD5",	"AH_SHA",	"AH_DES",	"AH_SHA2_256",	"AH_SHA2_384",	"AH_SHA2_512",    };enum_names ah_transformid_names =    { AH_MD5, AH_SHA2_512, ah_transform_name, NULL };/* IPsec ESP transform values */static const char *const esp_transform_name[] = {        "ESP_DES_IV64",              /* old DES */	"ESP_DES",	"ESP_3DES",	"ESP_RC5",	"ESP_IDEA",	"ESP_CAST",	"ESP_BLOWFISH",	"ESP_3IDEA",	"ESP_DES_IV32",	"ESP_RC4",	"ESP_NULL",	"ESP_AES"};/* * ipsec drafts suggest "high" ESP ids values for testing, * assign generic ESP_ID<num> if not officially defined  */static const char *const esp_transform_name_high[] = {	/* id=248 */	"ESP_ID248","ESP_MARS","ESP_RC6","ESP_ID251",	/* id=252 */	"ESP_SERPENT", "ESP_TWOFISH", "ESP_CAMELLIA", "ESP_ID255",	/* id=256 */	"ESP_ID256"    };enum_names esp_transformid_names_high =    { 248, 256, esp_transform_name_high, NULL };enum_names esp_transformid_names =    { ESP_DES_IV64, ESP_AES, esp_transform_name, &esp_transformid_names_high };/* IPCOMP transform values */static const char *const ipcomp_transform_name[] = {	"IPCOMP_OUI",	"IPCOMP_DEFLAT",	"IPCOMP_LZS",	"IPCOMP_V42BIS",    };enum_names ipcomp_transformid_names =    { IPCOMP_OUI, IPCOMP_V42BIS, ipcomp_transform_name, NULL };/* Identification type values */static const char *const ident_name[] = {	"ID_IPV4_ADDR",	"ID_FQDN",	"ID_USER_FQDN",	"ID_IPV4_ADDR_SUBNET",	"ID_IPV6_ADDR",	"ID_IPV6_ADDR_SUBNET",	"ID_IPV4_ADDR_RANGE",	"ID_IPV6_ADDR_RANGE",	"ID_DER_ASN1_DN",	"ID_DER_ASN1_GN",	"ID_KEY_ID",    };enum_names ident_names =    { ID_IPV4_ADDR, ID_KEY_ID, ident_name, NULL };/* Certificate type values */static const char *const cert_type_name[] = {	"CERT_NONE",	"CERT_PKCS7_WRAPPED_X509",	"CERT_PGP",	"CERT_DNS_SIGNED_KEY",	"CERT_X509_SIGNATURE",	"CERT_X509_KEY_EXCHANGE",	"CERT_KERBEROS_TOKENS",	"CERT_CRL",	"CERT_ARL",	"CERT_SPKI",	"CERT_X509_ATTRIBUTE",    };enum_names cert_type_names =    { CERT_NONE, CERT_X509_ATTRIBUTE, cert_type_name, NULL };/* * certificate request payload policy */static const char *const certpolicy_type_name[] = {    "CERT_NEVERSEND",    "CERT_SENDIFASKED",    "CERT_ALWAYSSEND",    "CERT_FORCEDTYPE"};enum_names certpolicy_type_names =    { cert_neversend, cert_alwayssend, certpolicy_type_name, NULL };/* Oakley transform attributes * oakley_attr_bit_names does double duty: it is used for enum names * and bit names. */const char *const oakley_attr_bit_names[] = {	"OAKLEY_ENCRYPTION_ALGORITHM",	"OAKLEY_HASH_ALGORITHM",	"OAKLEY_AUTHENTICATION_METHOD",	"OAKLEY_GROUP_DESCRIPTION",	"OAKLEY_GROUP_TYPE",	"OAKLEY_GROUP_PRIME",	"OAKLEY_GROUP_GENERATOR_ONE",	"OAKLEY_GROUP_GENERATOR_TWO",	"OAKLEY_GROUP_CURVE_A",	"OAKLEY_GROUP_CURVE_B",	"OAKLEY_LIFE_TYPE",	"OAKLEY_LIFE_DURATION",	"OAKLEY_PRF",	"OAKLEY_KEY_LENGTH",	"OAKLEY_FIELD_SIZE",	"OAKLEY_GROUP_ORDER",	"OAKLEY_BLOCK_SIZE",	NULL    };static const char *const oakley_var_attr_name[] = {	"OAKLEY_GROUP_PRIME (variable length)",	"OAKLEY_GROUP_GENERATOR_ONE (variable length)",	"OAKLEY_GROUP_GENERATOR_TWO (variable length)",	"OAKLEY_GROUP_CURVE_A (variable length)",	"OAKLEY_GROUP_CURVE_B (variable length)",	NULL,	"OAKLEY_LIFE_DURATION (variable length)",	NULL,	NULL,	NULL,	"OAKLEY_GROUP_ORDER (variable length)",    };static enum_names oakley_attr_desc_tv = {    OAKLEY_ENCRYPTION_ALGORITHM + ISAKMP_ATTR_AF_TV,    OAKLEY_GROUP_ORDER + ISAKMP_ATTR_AF_TV, oakley_attr_bit_names, NULL };enum_names oakley_attr_names = {    OAKLEY_GROUP_PRIME, OAKLEY_GROUP_ORDER,    oakley_var_attr_name, &oakley_attr_desc_tv };/* for each Oakley attribute, which enum_names describes its values? */enum_names *oakley_attr_val_descs[] = {	NULL,			/* (none) */	&oakley_enc_names,	/* OAKLEY_ENCRYPTION_ALGORITHM */	&oakley_hash_names,	/* OAKLEY_HASH_ALGORITHM */	&oakley_auth_names,	/* OAKLEY_AUTHENTICATION_METHOD */	&oakley_group_names,	/* OAKLEY_GROUP_DESCRIPTION */	&oakley_group_type_names,/* OAKLEY_GROUP_TYPE */	NULL,			/* OAKLEY_GROUP_PRIME */	NULL,			/* OAKLEY_GROUP_GENERATOR_ONE */	NULL,			/* OAKLEY_GROUP_GENERATOR_TWO */	NULL,			/* OAKLEY_GROUP_CURVE_A */	NULL,			/* OAKLEY_GROUP_CURVE_B */	&oakley_lifetime_names,	/* OAKLEY_LIFE_TYPE */	NULL,			/* OAKLEY_LIFE_DURATION */	&oakley_prf_names,	/* OAKLEY_PRF */	NULL,			/* OAKLEY_KEY_LENGTH */	NULL,			/* OAKLEY_FIELD_SIZE */	NULL,			/* OAKLEY_GROUP_ORDER */    };/* IPsec DOI attributes (RFC 2407 "IPsec DOI" section 4.5) */static const char *const ipsec_attr_name[] = {	"SA_LIFE_TYPE",	"SA_LIFE_DURATION",	"GROUP_DESCRIPTION",	"ENCAPSULATION_MODE",	"AUTH_ALGORITHM",	"KEY_LENGTH",	"KEY_ROUNDS",	"COMPRESS_DICT_SIZE",	"COMPRESS_PRIVATE_ALG",    };static const char *const ipsec_var_attr_name[] = {	"SA_LIFE_DURATION (variable length)",	NULL,	NULL,	NULL,	NULL,	NULL,	NULL,	"COMPRESS_PRIVATE_ALG (variable length)",    };static enum_names ipsec_attr_desc_tv = {    SA_LIFE_TYPE + ISAKMP_ATTR_AF_TV,    COMPRESS_PRIVATE_ALG + ISAKMP_ATTR_AF_TV,    ipsec_attr_name, NULL };enum_names ipsec_attr_names = {    SA_LIFE_DURATION, COMPRESS_PRIVATE_ALG,    ipsec_var_attr_name, &ipsec_attr_desc_tv };/* for each IPsec attribute, which enum_names describes its values? */enum_names *ipsec_attr_val_descs[] = {	NULL,			/* (none) */	&sa_lifetime_names,	/* SA_LIFE_TYPE */	NULL,			/* SA_LIFE_DURATION */	&oakley_group_names,	/* GROUP_DESCRIPTION */	&enc_mode_names,		/* ENCAPSULATION_MODE */	&auth_alg_names,		/* AUTH_ALGORITHM */	NULL,			/* KEY_LENGTH */	NULL,			/* KEY_ROUNDS */	NULL,			/* COMPRESS_DICT_SIZE */	NULL,			/* COMPRESS_PRIVATE_ALG */    };/* SA Lifetime Type attribute */static const char *const sa_lifetime_name[] = {	"SA_LIFE_TYPE_SECONDS",	"SA_LIFE_TYPE_KBYTES",    };enum_names sa_lifetime_names =    { SA_LIFE_TYPE_SECONDS, SA_LIFE_TYPE_KBYTES, sa_lifetime_name, NULL };/* Encapsulation Mode attribute */static const char *const enc_mode_name[] = {	"ENCAPSULATION_MODE_TUNNEL",	"ENCAPSULATION_MODE_TRANSPORT",	"ENCAPSULATION_MODE_UDP_TUNNEL",	"ENCAPSULATION_MODE_UDP_TRANSPORT",    };static const char *const enc_udp_mode_name[] = {	"ENCAPSULATION_MODE_UDP_TUNNEL",	"ENCAPSULATION_MODE_UDP_TRANSPORT",    };static enum_names enc_udp_mode_names =    { ENCAPSULATION_MODE_UDP_TUNNEL_DRAFTS, ENCAPSULATION_MODE_UDP_TRANSPORT_DRAFTS, enc_udp_mode_name, NULL };enum_names enc_mode_names =    { ENCAPSULATION_MODE_TUNNEL, ENCAPSULATION_MODE_UDP_TRANSPORT_RFC, enc_mode_name, &enc_udp_mode_names };/* Auth Algorithm attribute */static const char *const auth_alg_name[] = {	"unspecified AUTH_ALGORITHM",	"AUTH_ALGORITHM_HMAC_MD5",	"AUTH_ALGORITHM_HMAC_SHA1",	"AUTH_ALGORITHM_DES_MAC",	"AUTH_ALGORITHM_KPDK",	"AUTH_ALGORITHM_HMAC_SHA2_256",	"AUTH_ALGORITHM_HMAC_SHA2_384",	"AUTH_ALGORITHM_HMAC_SHA2_512",	"AUTH_ALGORITHM_HMAC_RIPEMD",	"AUTH_ALGORITHM_AES_CBC",	"AUTH_ALGORITHM_ID10",	"AUTH_ALGORITHM_ID11",	"AUTH_ALGORITHM_ID12",	"AUTH_ALGORITHM_ID13",	"AUTH_ALGORITHM_ID14",	"AUTH_ALGORITHM_ID15",    };enum_names    auth_alg_names =	{ AUTH_ALGORITHM_HMAC_MD5, 15 /* AUTH_ALGORITHM_HMAC_RIPEMD */, auth_alg_name + 1, NULL },    extended_auth_alg_names =	{ AUTH_ALGORITHM_NONE, AUTH_ALGORITHM_KPDK, auth_alg_name, NULL };/* From draft-beaulieu-ike-xauth */const char *const xauth_attr_name[] = {	"XAUTH-TYPE",	"XAUTH-USER-NAME",	"XAUTH-USER-PASSWORD",	"XAUTH-PASSCODE",	"XAUTH-MESSAGE",	"XAUTH-CHALLENGE",	"XAUTH-DOMAIN",	"XAUTH-STATUS",	"XAUTH-NEXT-PIN",	"XAUTH-ANSWER",	NULL    };enum_names xauth_attr_names_tv =    { XAUTH_TYPE + ISAKMP_ATTR_AF_TV , XAUTH_ANSWER + ISAKMP_ATTR_AF_TV, xauth_attr_name , NULL };enum_names xauth_attr_names =    { XAUTH_TYPE , XAUTH_ANSWER, xauth_attr_name , &xauth_attr_names_tv };/* for XAUTH-TYPE attribute */const char *const xauth_type_name[] = {  "Generic",  "RADIUS-CHAP",  "OTP",  "S/KEY",  NULL};enum_names xauth_type_names =  { XAUTH_TYPE_GENERIC, XAUTH_TYPE_SKEY, xauth_type_name, NULL};const char *const modecfg_attr_name[] = {	"INTERNAL_IP4_ADDRESS",	"INTERNAL_IP4_NETMASK",	"INTERNAL_IP4_DNS",	"INTERNAL_IP4_NBNS",	"INTERNAL_ADDRESS_EXPIRY",	"INTERNAL_IP4_DHCP",	"APPLICATION_VERSION",	"INTERNAL_IP6_ADDRESS",	"INTERNAL_IP6_NETMASK",	"INTERNAL_IP6_DNS",	"INTERNAL_IP6_NBNS",	"INTERNAL_IP6_DHCP",	"INTERNAL_IP4_SUBNET",	"SUPPORTED_ATTRIBUTES",	"INTERNAL_IP6_SUBNET",	NULL    };enum_names modecfg_attr_names_tv =    { INTERNAL_IP4_ADDRESS + ISAKMP_ATTR_AF_TV , INTERNAL_IP6_SUBNET + ISAKMP_ATTR_AF_TV, modecfg_attr_name , &xauth_attr_names };enum_names modecfg_attr_names =    { INTERNAL_IP4_ADDRESS , INTERNAL_IP6_SUBNET, modecfg_attr_name , &modecfg_attr_names_tv };/* Oakley Lifetime Type attribute */static const char *const oakley_lifetime_name[] = {	"OAKLEY_LIFE_SECONDS",	"OAKLEY_LIFE_KILOBYTES",    };enum_names oakley_lifetime_names =    { OAKLEY_LIFE_SECONDS, OAKLEY_LIFE_KILOBYTES, oakley_lifetime_name, NULL };/* Oakley PRF attribute (none defined) */enum_names oakley_prf_names =    { 1, 0, NULL, NULL };/* Oakley Encryption Algorithm attribute */static const char *const oakley_enc_name[] = {	"OAKLEY_DES_CBC",	"OAKLEY_IDEA_CBC",	"OAKLEY_BLOWFISH_CBC",	"OAKLEY_RC5_R16_B64_CBC",	"OAKLEY_3DES_CBC",	"OAKLEY_CAST_CBC",	"OAKLEY_AES_CBC",    };#ifdef NO_EXTRA_IKEenum_names oakley_enc_names =    { OAKLEY_DES_CBC, OAKLEY_AES_CBC, oakley_enc_name, NULL };#elsestatic const char *const oakley_enc_name_draft_aes_cbc_02[] = {	"OAKLEY_MARS_CBC"	/*	65001	*/,	"OAKLEY_RC6_CBC"     	/*	65002	*/,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -