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

📄 constants.c

📁 This a good VPN source
💻 C
📖 第 1 页 / 共 2 页
字号:
	"OAKLEY_ID_65003"	/*	65003	*/,	"OAKLEY_SERPENT_CBC"	/*	65004	*/,	"OAKLEY_TWOFISH_CBC"	/*	65005	*/,};static const char *const oakley_enc_name_ssh[] = {	"OAKLEY_SSH_PRIVATE_65289",};enum_names oakley_enc_names_ssh =    { 65289, 65289, oakley_enc_name_ssh, NULL };enum_names oakley_enc_names_draft_aes_cbc_02 =    { 65001, 65005, oakley_enc_name_draft_aes_cbc_02, &oakley_enc_names_ssh };enum_names oakley_enc_names =    { OAKLEY_DES_CBC, OAKLEY_AES_CBC, oakley_enc_name, &oakley_enc_names_draft_aes_cbc_02 };#endif/* Oakley Hash Algorithm attribute */static const char *const oakley_hash_name2[] = {	"OAKLEY_SHA",    };enum_names oakley_hash_names2 =    { OAKLEY_SHA, OAKLEY_SHA, oakley_hash_name2, NULL };static const char *const oakley_hash_name[] = {	"OAKLEY_MD5",	"OAKLEY_SHA1",	"OAKLEY_TIGER",	"OAKLEY_SHA2_256",	"OAKLEY_SHA2_384",	"OAKLEY_SHA2_512",    };enum_names oakley_hash_names =    { OAKLEY_MD5, OAKLEY_SHA2_512, oakley_hash_name, &oakley_hash_names2};/* Oakley Authentication Method attribute */static const char *const oakley_auth_name1[] = {	"OAKLEY_PRESHARED_KEY",	"OAKLEY_DSS_SIG",	"OAKLEY_RSA_SIG",	"OAKLEY_RSA_ENC",	"OAKLEY_RSA_ENC_REV",	"OAKLEY_ELGAMAL_ENC",	"OAKLEY_ELGAMAL_ENC_REV",    };static const char *const oakley_auth_name2[] = {	"HybridInitRSA",	"HybridRespRSA",	"HybridInitDSS",	"HybridRespDSS",    };static const char *const oakley_auth_name3[] = {	"XAUTHInitPreShared",	"XAUTHRespPreShared",	"XAUTHInitDSS",	"XAUTHRespDSS",	"XAUTHInitRSA",	"XAUTHRespRSA",	"XAUTHInitRSAEncryption",	"XAUTHRespRSAEncryption",	"XAUTHInitRSARevisedEncryption",	"XAUTHRespRSARevisedEncryption",    };static enum_names oakley_auth_names1 =    { OAKLEY_PRESHARED_KEY, OAKLEY_ELGAMAL_ENC_REV	, oakley_auth_name1, NULL };static enum_names oakley_auth_names2 =    { HybridInitRSA, HybridRespDSS	, oakley_auth_name2, &oakley_auth_names1 };enum_names oakley_auth_names =    { XAUTHInitPreShared, XAUTHRespRSARevisedEncryption	, oakley_auth_name3, &oakley_auth_names2 };/* Oakley Group Description attribute */static const char *const oakley_group_name[] = {	"OAKLEY_GROUP_MODP768",	"OAKLEY_GROUP_MODP1024",	"OAKLEY_GROUP_GP155",	"OAKLEY_GROUP_GP185",	"OAKLEY_GROUP_MODP1536",    };static const char *const oakley_group_name_rfc3526[] = {	"OAKLEY_GROUP_MODP2048",	"OAKLEY_GROUP_MODP3072",	"OAKLEY_GROUP_MODP4096",	"OAKLEY_GROUP_MODP6144",	"OAKLEY_GROUP_MODP8192"};enum_names oakley_group_names_rfc3526 =    { OAKLEY_GROUP_MODP2048, OAKLEY_GROUP_MODP8192,	    oakley_group_name_rfc3526, NULL };enum_names oakley_group_names =    { OAKLEY_GROUP_MODP768, OAKLEY_GROUP_MODP1536, 	    oakley_group_name, &oakley_group_names_rfc3526 };/* Oakley Group Type attribute */static const char *const oakley_group_type_name[] = {	"OAKLEY_GROUP_TYPE_MODP",	"OAKLEY_GROUP_TYPE_ECP",	"OAKLEY_GROUP_TYPE_EC2N",    };enum_names oakley_group_type_names =    { OAKLEY_GROUP_TYPE_MODP, OAKLEY_GROUP_TYPE_EC2N, oakley_group_type_name, NULL };/* Notify messages -- error types */static const char *const notification_name[] = {	"INVALID_PAYLOAD_TYPE",	"DOI_NOT_SUPPORTED",	"SITUATION_NOT_SUPPORTED",	"INVALID_COOKIE",	"INVALID_MAJOR_VERSION",	"INVALID_MINOR_VERSION",	"INVALID_EXCHANGE_TYPE",	"INVALID_FLAGS",	"INVALID_MESSAGE_ID",	"INVALID_PROTOCOL_ID",	"INVALID_SPI",	"INVALID_TRANSFORM_ID",	"ATTRIBUTES_NOT_SUPPORTED",	"NO_PROPOSAL_CHOSEN",	"BAD_PROPOSAL_SYNTAX",	"PAYLOAD_MALFORMED",	"INVALID_KEY_INFORMATION",	"INVALID_ID_INFORMATION",	"INVALID_CERT_ENCODING",	"INVALID_CERTIFICATE",	"CERT_TYPE_UNSUPPORTED",	"INVALID_CERT_AUTHORITY",	"INVALID_HASH_INFORMATION",	"AUTHENTICATION_FAILED",	"INVALID_SIGNATURE",	"ADDRESS_NOTIFICATION",	"NOTIFY_SA_LIFETIME",	"CERTIFICATE_UNAVAILABLE",	"UNSUPPORTED_EXCHANGE_TYPE",	"UNEQUAL_PAYLOAD_LENGTHS",    };static const char *const notification_status_name[] = {	"CONNECTED",    };static const char *const ipsec_notification_name[] = {	"IPSEC_RESPONDER_LIFETIME",	"IPSEC_REPLAY_STATUS",	"IPSEC_INITIAL_CONTACT",    };static const char *const notification_dpd_name[] = {        "R_U_THERE",         "R_U_THERE_ACK",};enum_names notification_dpd_names =    { R_U_THERE, R_U_THERE_ACK,        notification_dpd_name, NULL };enum_names notification_names =    { INVALID_PAYLOAD_TYPE, UNEQUAL_PAYLOAD_LENGTHS,        notification_name, &notification_dpd_names };enum_names notification_status_names =    { CONNECTED, CONNECTED,	notification_status_name, &notification_names };enum_names ipsec_notification_names =    { IPSEC_RESPONDER_LIFETIME, IPSEC_INITIAL_CONTACT,	ipsec_notification_name, &notification_status_names };/* MODECFG *//* * From draft-dukes-ike-mode-cfg*/const char *const attr_msg_type_name[] = {	"ISAKMP_CFG_RESERVED",	"ISAKMP_CFG_REQUEST",	"ISAKMP_CFG_REPLY",	"ISAKMP_CFG_SET",	"ISAKMP_CFG_ACK",	NULL    };enum_names attr_msg_type_names =    { 0 , ISAKMP_CFG_ACK, attr_msg_type_name , NULL };/* socket address family info */static const char *const af_inet_name[] = {	"AF_INET",    };static const char *const af_inet6_name[] = {	"AF_INET6",    };static enum_names af_names6 = { AF_INET6, AF_INET6, af_inet6_name, NULL };enum_names af_names = { AF_INET, AF_INET, af_inet_name, &af_names6 };static ip_address ipv4_any, ipv6_any;static ip_subnet ipv4_wildcard, ipv6_wildcard;static ip_subnet ipv4_all, ipv6_all;const struct af_info af_inet4_info = {	AF_INET,	"AF_INET",	sizeof(struct in_addr),	sizeof(struct sockaddr_in),	32,	ID_IPV4_ADDR, ID_IPV4_ADDR_SUBNET, ID_IPV4_ADDR_RANGE,	&ipv4_any, &ipv4_wildcard, &ipv4_all,    };const struct af_info af_inet6_info = {	AF_INET6,	"AF_INET6",	sizeof(struct in6_addr),	sizeof(struct sockaddr_in6),	128,	ID_IPV6_ADDR, ID_IPV6_ADDR_SUBNET, ID_IPV6_ADDR_RANGE,	&ipv6_any, &ipv6_wildcard, &ipv6_all,    };const struct af_info *aftoinfo(int af){    switch (af)    {	case AF_INET:	    return &af_inet4_info;	case AF_INET6:	    return &af_inet6_info;	default:	    return NULL;    }}boolsubnetisnone(const ip_subnet *sn){    ip_address base;    networkof(sn, &base);    return isanyaddr(&base) && subnetishost(sn);}/* BIND enumerated types */#include <arpa/nameser.h>static const char *const rr_type_name[] = {	"T_A",	/* 1 host address */	"T_NS",	/* 2 authoritative server */	"T_MD",	/* 3 mail destination */	"T_MF",	/* 4 mail forwarder */	"T_CNAME",	/* 5 canonical name */	"T_SOA",	/* 6 start of authority zone */	"T_MB",	/* 7 mailbox domain name */	"T_MG",	/* 8 mail group member */	"T_MR",	/* 9 mail rename name */	"T_NULL",	/* 10 null resource record */	"T_WKS",	/* 11 well known service */	"T_PTR",	/* 12 domain name pointer */	"T_HINFO",	/* 13 host information */	"T_MINFO",	/* 14 mailbox information */	"T_MX",	/* 15 mail routing information */	"T_TXT",	/* 16 text strings */	"T_RP",	/* 17 responsible person */	"T_AFSDB",	/* 18 AFS cell database */	"T_X25",	/* 19 X_25 calling address */	"T_ISDN",	/* 20 ISDN calling address */	"T_RT",	/* 21 router */	"T_NSAP",	/* 22 NSAP address */	"T_NSAP_PTR",	/* 23 reverse NSAP lookup (deprecated) */	"T_SIG",	/* 24 security signature */	"T_KEY",	/* 25 security key */	"T_PX",	/* 26 X.400 mail mapping */	"T_GPOS",	/* 27 geographical position (withdrawn) */	"T_AAAA",	/* 28 IP6 Address */	"T_LOC",	/* 29 Location Information */	"T_NXT",	/* 30 Next Valid Name in Zone */	"T_EID",	/* 31 Endpoint identifier */	"T_NIMLOC",	/* 32 Nimrod locator */	"T_SRV",	/* 33 Server selection */	"T_ATMA",	/* 34 ATM Address */	"T_NAPTR",	/* 35 Naming Authority PoinTeR */	NULL    };enum_names rr_type_names = { T_A, T_NAPTR, rr_type_name, NULL };/* Query type values which do not appear in resource records */static const char *const rr_qtype_name[] = {	"T_IXFR",	/* 251 incremental zone transfer */	"T_AXFR",	/* 252 transfer zone of authority */	"T_MAILB",	/* 253 transfer mailbox records */	"T_MAILA",	/* 254 transfer mail agent records */	"T_ANY",	/* 255 wildcard match */	NULL    };enum_names rr_qtype_names = { T_IXFR, T_ANY, rr_qtype_name, &rr_type_names };static const char *const rr_class_name[] = {	"C_IN",	/* 1 the arpa internet */	NULL    };enum_names rr_class_names = { C_IN, C_IN, rr_class_name, NULL };static const char *const ppk_name[] = {  "PPK_PSK",  "PPK_DSS",  "PPK_RSA",  "PPK_PIN",  NULL};enum_names ppk_names = { PPK_PSK, PPK_PIN, ppk_name, NULL };/* * NAT-Traversal defines for nat_traveral type from nat_traversal.h * */const char *const natt_type_bitnames[] = {  "draft-ietf-ipsec-nat-t-ike-00/01",    /* 0 */  "draft-ietf-ipsec-nat-t-ike-02/03",  "RFC XXXX (NAT-Traversal)",  "3",                                   /* 3 */  "4",   "5",   "6",   "7",   "8",   "9",   "10",  "11",  "12",  "13",  "14",  "15",  "16",  "17",  "18",  "19",   "20",  "21",  "22",  "23",   "24",  "25",  "26",  "27",   "28",  "29",    "nat is behind me",  "nat is behind peer"};/* * Values for right= and left= */struct keyword_enum_value kw_host_values[]={    { "%defaultroute",  KH_DEFAULTROUTE },    { "%any",           KH_ANY },    { "%",              KH_IFACE },    { "%oppo",          KH_OPPO },    { "%opportunistic", KH_OPPO },    { "%opportunisticgroup", KH_OPPOGROUP },    { "%oppogroup",     KH_OPPOGROUP },      { "%group",         KH_GROUP },};struct keyword_enum_values kw_host_list=    { kw_host_values, sizeof(kw_host_values)/sizeof(struct keyword_enum_value)};/* look up enum names in an enum_names */const char *enum_name(enum_names *ed, unsigned long val){    enum_names	*p;    for (p = ed; p != NULL; p = p->en_next_range)	if (p->en_first <= val && val <= p->en_last)	    return p->en_names[val - p->en_first];    return NULL;}/* look up an enum in a starter friendly way */const char *keyword_name(struct keyword_enum_values *kevs, unsigned int value){    int kevcount;    struct keyword_enum_value *kev;    for(kevcount = kevs->valuesize, kev = kevs->values;        kevcount > 0 && kev->value != value;        kev++, kevcount--);       passert(kevcount != 0);  /* for now */    return kev->name;}/* find or construct a string to describe an enum value * Result may be in STATIC buffer! */const char *enum_show(enum_names *ed, unsigned long val){    const char *p = enum_name(ed, val);    if (p == NULL)    {	static char buf[12];	/* only one!  I hope that it is big enough */	snprintf(buf, sizeof(buf), "%lu??", val);	p = buf;    }    return p;}static char bitnamesbuf[200];   /* only one!  I hope that it is big enough! */int enum_search(enum_names *ed, const char *str) {    enum_names	*p;    const char *ptr;    unsigned en;    for (p = ed; p != NULL; p = p->en_next_range)	for (en=p->en_first; en<=p->en_last; en++) {	    ptr=p->en_names[en - p->en_first];	    if (ptr==0) continue;	    /* if (strncmp(ptr, str, strlen(ptr))==0) */	    if (strcmp(ptr, str)==0)		    return en;	}    return -1;}/* construct a string to name the bits on in a set * Result may be in STATIC buffer! * Note: prettypolicy depends on internal details. */const char *bitnamesofb(const char *const table[], lset_t val	    , char *b, size_t blen){    char *p = b;    lset_t bit;    const char *const *tp;    if (val == 0)	return "none";    for (tp = table, bit = 01; val != 0; bit <<= 1)    {	if (val & bit)	{	    const char *n = *tp;	    size_t nl;	    if (n == NULL || *n == '\0')	    {		/* no name for this bit, so use hex */		static char flagbuf[sizeof("0x80000000")];		snprintf(flagbuf, sizeof(flagbuf), "0x%llx", bit);		n = flagbuf;	    }	    nl = strlen(n);	    if (p != b && p < b+blen - 1)		*p++ = '+';	    if (b+blen - p > (ptrdiff_t)nl)	    {		strcpy(p, n);		p += nl;	    }	    val -= bit;	}	if (*tp != NULL)	    tp++;   /* move on, but not past end */    }    *p = '\0';    return b;}const char *bitnamesof(const char *const table[], lset_t val){    return bitnamesofb(table, val, bitnamesbuf, sizeof(bitnamesbuf));}/* test a set by seeing if all bits have names */booltestset(const char *const table[], lset_t val){    lset_t bit;    const char *const *tp;    for (tp = table, bit = 01; val != 0; bit <<= 1, tp++)    {	const char *n = *tp;	if (n == NULL || ((val & bit) && *n == '\0'))	    return FALSE;	val &= ~bit;    }    return TRUE;}const char sparse_end[] = "end of sparse names";/* look up enum names in a sparse_names */const char *sparse_name(sparse_names sd, unsigned long val){    const struct sparse_name *p;    for (p = sd; p->name != sparse_end; p++)	if (p->val == val)	    return p->name;    return NULL;}/* find or construct a string to describe an sparse value * Result may be in STATIC buffer! */const char *sparse_val_show(sparse_names sd, unsigned long val){    const char *p = sparse_name(sd, val);    if (p == NULL)    {	static char buf[12];	/* only one!  I hope that it is big enough */	snprintf(buf, sizeof(buf), "%lu??", val);	p = buf;    }    return p;}void init_constants(void){    happy(anyaddr(AF_INET, &ipv4_any));    happy(anyaddr(AF_INET6, &ipv6_any));    happy(addrtosubnet(&ipv4_any, &ipv4_wildcard));    happy(addrtosubnet(&ipv6_any, &ipv6_wildcard));    happy(initsubnet(&ipv4_any, 0, '0', &ipv4_all));    happy(initsubnet(&ipv6_any, 0, '0', &ipv6_all));}/* * Local Variables: * c-basic-offset:4 * c-style: pluto * End: */

⌨️ 快捷键说明

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