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

📄 pgpnetprefsfirewallrule.h

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 H
字号:
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.

	$Id: pgpNetPrefsFirewallRule.h,v 1.38 2002/08/06 20:10:25 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_pgpNetPrefsFirewallRule_h	/* [ */
#define Included_pgpNetPrefsFirewallRule_h

#if !PGP_UNIX
#include <stdlib.h>
#endif

/* We need to force this to 68k alignment since it is passed between the Mac service and module */
#if PGP_MACINTOSH
#	pragma options align=mac68k
#endif

#define kPGPnetMaxFirewallServices		4
#define kPGPnetMaxFirewallDescription	48
#define kPGPnetMaxProcessId				56
#define kPGPnetMaxAppPath				260
#define kPGPnetMaxAppHash				16

typedef enum _PGPNetAddressType
{
	kPGPnetAddrType_Host				= 0,
	kPGPnetAddrType_Subnet,
	kPGPnetAddrType_LocalSubnet,
	kPGPnetAddrType_Range,
	kPGPnetAddrType_Any,
	kPGPnetAddrType_Trusted,

	PGP_ENUM_FORCE( _PGPNetAddressType )
} PGPNetAddressType;

typedef enum _PGPNetIPServiceType
{
	kPGPnetIPServiceType_Single			= 0,
	kPGPnetIPServiceType_Range,
	kPGPnetIPServiceType_List,
	kPGPnetIPServiceType_Any,

	PGP_ENUM_FORCE( _PGPNetIPServiceType )
} PGPNetIPServiceType;

typedef enum _PGPNetIPProtocol
{
	kPGPnetIPProtocol_ICMP				= 1,
	kPGPnetIPProtocol_IGMP				= 2,
	kPGPnetIPProtocol_ggp				= 3,
	kPGPnetIPProtocol_ip				= 4,
	kPGPnetIPProtocol_st				= 5,
	kPGPnetIPProtocol_TCP				= 6,
	kPGPnetIPProtocol_cbt				= 7,
	kPGPnetIPProtocol_egp				= 8,
	kPGPnetIPProtocol_igp				= 9,
	kPGPnetIPProtocol_bbnrccmon			= 10,
	kPGPnetIPProtocol_nvp_ii			= 11,
	kPGPnetIPProtocol_pup				= 12,
	kPGPnetIPProtocol_argus				= 13,
	kPGPnetIPProtocol_emcon				= 14,
	kPGPnetIPProtocol_xnet				= 15,
	kPGPnetIPProtocol_chaos				= 16,
	kPGPnetIPProtocol_UDP				= 17,
	kPGPnetIPProtocol_mux				= 18,
	kPGPnetIPProtocol_dcn_meas			= 19,
	kPGPnetIPProtocol_hmp				= 20,
	kPGPnetIPProtocol_prm				= 21,
	kPGPnetIPProtocol_xns_idp			= 22,
	kPGPnetIPProtocol_trunk1			= 23,
	kPGPnetIPProtocol_trunk2			= 24,
	kPGPnetIPProtocol_leaf1				= 25,
	kPGPnetIPProtocol_leaf2				= 26,
	kPGPnetIPProtocol_rdp				= 27,
	kPGPnetIPProtocol_irtp				= 28,
	kPGPnetIPProtocol_iso_tp4			= 29,
	kPGPnetIPProtocol_netblt			= 30,
	kPGPnetIPProtocol_mfe_nsp			= 31,
	kPGPnetIPProtocol_merit_inp			= 32,
	kPGPnetIPProtocol_sep				= 33,
	kPGPnetIPProtocol_3pc				= 34,
	kPGPnetIPProtocol_idpr				= 35,
	kPGPnetIPProtocol_xtp				= 36,
	kPGPnetIPProtocol_ddp				= 37,
	kPGPnetIPProtocol_idpr_cmtp			= 38,
	kPGPnetIPProtocol_tppp				= 39,
	kPGPnetIPProtocol_il				= 40,
	kPGPnetIPProtocol_sdrp				= 42,
	kPGPnetIPProtocol_idrp				= 45,
	kPGPnetIPProtocol_rsvp				= 46,
	kPGPnetIPProtocol_gre				= 47,
	kPGPnetIPProtocol_mhrp				= 48,
	kPGPnetIPProtocol_bna				= 49,
	kPGPnetIPProtocol_ESP				= 50,
	kPGPnetIPProtocol_AH				= 51,
	kPGPnetIPProtocol_i_nlsp			= 52,
	kPGPnetIPProtocol_swipe				= 53,
	kPGPnetIPProtocol_narp				= 54,
	kPGPnetIPProtocol_mobile			= 55,
	kPGPnetIPProtocol_tlsp				= 56,
	kPGPnetIPProtocol_skip				= 57,
	kPGPnetIPProtocol_cftp				= 62,
	kPGPnetIPProtocol_sat_expak			= 64,
	kPGPnetIPProtocol_kryptolan			= 65,
	kPGPnetIPProtocol_rvd				= 66,
	kPGPnetIPProtocol_ippc				= 67,
	kPGPnetIPProtocol_sat_mon			= 69,
	kPGPnetIPProtocol_visa				= 70,
	kPGPnetIPProtocol_ipcv				= 71,
	kPGPnetIPProtocol_cpnx				= 72,
	kPGPnetIPProtocol_cphb				= 73,
	kPGPnetIPProtocol_wsn				= 74,
	kPGPnetIPProtocol_pvp				= 75,
	kPGPnetIPProtocol_br_sat_mon		= 76,
	kPGPnetIPProtocol_sun_nd			= 77,
	kPGPnetIPProtocol_wb_mon			= 78,
	kPGPnetIPProtocol_wb_expak			= 79,
	kPGPnetIPProtocol_iso_ip			= 80,
	kPGPnetIPProtocol_vmtp				= 81,
	kPGPnetIPProtocol_secure_vmtp		= 82,
	kPGPnetIPProtocol_vines				= 83,
	kPGPnetIPProtocol_ttp				= 84,
	kPGPnetIPProtocol_nsfnet_igp		= 85,
	kPGPnetIPProtocol_dgp				= 86,
	kPGPnetIPProtocol_tcf				= 87,
	kPGPnetIPProtocol_eigrp				= 88,
	kPGPnetIPProtocol_ospfigp			= 89,
	kPGPnetIPProtocol_sprite_rpc		= 90,
	kPGPnetIPProtocol_larp				= 91,
	kPGPnetIPProtocol_mtp				= 92,
	kPGPnetIPProtocol_ax25				= 93,
	kPGPnetIPProtocol_ipip				= 94,
	kPGPnetIPProtocol_micp				= 95,
	kPGPnetIPProtocol_scc_sp			= 96,
	kPGPnetIPProtocol_etherip			= 97,
	kPGPnetIPProtocol_encap				= 98,
	kPGPnetIPProtocol_gmtp				= 100,
	kPGPnetIPProtocol_ifmp				= 101,
	kPGPnetIPProtocol_pnni				= 102,
	kPGPnetIPProtocol_pim				= 103,
	kPGPnetIPProtocol_aris				= 104,
	kPGPnetIPProtocol_scps				= 105,
	kPGPnetIPProtocol_qnx				= 106,
	kPGPnetIPProtocol_an				= 107,
	kPGPnetIPProtocol_ipcomp			= 108,
	kPGPnetIPProtocol_snp				= 109,
	kPGPnetIPProtocol_compaq_peer		= 110,
	kPGPnetIPProtocol_ipx_in_ip			= 111,
	kPGPnetIPProtocol_vrrp				= 112,
	kPGPnetIPProtocol_pgm				= 113,
	kPGPnetIPProtocol_l2tp				= 115,
	kPGPnetIPProtocol_ddx				= 116,
	kPGPnetIPProtocol_iatp				= 117,
	kPGPnetIPProtocol_stp				= 118,
	kPGPnetIPProtocol_srp				= 119,
	kPGPnetIPProtocol_uti				= 120,
	kPGPnetIPProtocol_smp				= 121,
	kPGPnetIPProtocol_sm				= 122,
	kPGPnetIPProtocol_ptp				= 123,
	kPGPnetIPProtocol_fire				= 125,
	kPGPnetIPProtocol_crtp				= 126,
	kPGPnetIPProtocol_crudp				= 127,
	kPGPnetIPProtocol_sscopmce			= 128,
	kPGPnetIPProtocol_iplt				= 129,
	kPGPnetIPProtocol_sps				= 130,
	kPGPnetIPProtocol_pipe				= 131,
	kPGPnetIPProtocol_sctp				= 132,	
	kPGPnetIPProtocol_fc				= 133,
	kPGPnetIPProtocol_rsvp_e2e_ignore	= 134,
	
	kPGPnetIPProtocol_All				= 1024,

	PGP_ENUM_FORCE( _PGPNetIPProtocol )
} PGPNetIPProtocol;

typedef enum _PGPNetICMPType
{
	kPGPnetICMPType_EchoReply			= 0,
	kPGPnetICMPType_DestUnreachable		= 3,
	kPGPnetICMPType_SourceQuench		= 4,
	kPGPnetICMPType_Redirect			= 5,
	kPGPnetICMPType_EchoRequest			= 8,
	kPGPnetICMPType_RouterAdvertisement	= 9,
	kPGPnetICMPType_RouterSolicitation	= 10,
	kPGPnetICMPType_TimeExceeded		= 11,
	kPGPnetICMPType_ParameterProblem	= 12,
	kPGPnetICMPType_TimestampRequest	= 13,
	kPGPnetICMPType_TimestampReply		= 14,
	kPGPnetICMPType_InfoRequest			= 15,
	kPGPnetICMPType_InfoReply			= 16,
	kPGPnetICMPType_AddressMaskReq		= 17,
	kPGPnetICMPType_AddressmaskRep		= 18,

	PGP_ENUM_FORCE( _PGPNetICMPType )
} PGPNetICMPType;

typedef enum _PGPNetTCPService
{
	kPGPnetTCPService_tcpmux			= 1,
	kPGPnetTCPService_echo				= 7,
	kPGPnetTCPService_discard			= 9,
	kPGPnetTCPService_systat			= 11,
	kPGPnetTCPService_daytime			= 13,
	kPGPnetTCPService_netstat			= 15,
	kPGPnetTCPService_qotd				= 17,
	kPGPnetTCPService_msp				= 18,
	kPGPnetTCPService_chargen			= 19,
	kPGPnetTCPService_ftpdata			= 20,
	kPGPnetTCPService_ftp				= 21,
	kPGPnetTCPService_ssh				= 22,
	kPGPnetTCPService_telnet			= 23,
	kPGPnetTCPService_smtp				= 25,
	kPGPnetTCPService_time				= 37,
	kPGPnetTCPService_rlp				= 39,
	kPGPnetTCPService_nameserver		= 42,
	kPGPnetTCPService_whois				= 43,
	kPGPnetTCPService_remailck			= 50,
	kPGPnetTCPService_dns				= 53,
	kPGPnetTCPService_mtp				= 57,
	kPGPnetTCPService_bootps			= 67,
	kPGPnetTCPService_bootpc			= 68,
	kPGPnetTCPService_tftp				= 69,
	kPGPnetTCPService_gopher			= 70,
	kPGPnetTCPService_rje				= 77,
	kPGPnetTCPService_finger			= 79,
	kPGPnetTCPService_http				= 80,
	kPGPnetTCPService_link				= 87,
	kPGPnetTCPService_kerberos			= 88,
	kPGPnetTCPService_supdup			= 95,
	kPGPnetTCPService_linuxconf			= 98,
	kPGPnetTCPService_hostnames			= 101,
	kPGPnetTCPService_iso_tsap			= 102,
	kPGPnetTCPService_csnet_ns			= 105,
	kPGPnetTCPService_poppassd			= 106,
	kPGPnetTCPService_rtelnet			= 107,
	kPGPnetTCPService_pop2				= 109,
	kPGPnetTCPService_pop3				= 110,
	kPGPnetTCPService_sunrpc			= 111,
	kPGPnetTCPService_auth				= 113,
	kPGPnetTCPService_sftp				= 115,
	kPGPnetTCPService_uucppath			= 117,
	kPGPnetTCPService_nntp				= 119,
	kPGPnetTCPService_ntp				= 123,
	kPGPnetTCPService_netbios_ns		= 137,
	kPGPnetTCPService_netbios_dgm		= 138,
	kPGPnetTCPService_netbios_ssn		= 139,
	kPGPnetTCPService_imap2				= 143,
	kPGPnetTCPService_snmp				= 161,
	kPGPnetTCPService_snmp_trap			= 162,
	kPGPnetTCPService_cmip_man			= 163,
	kPGPnetTCPService_cmip_agent		= 164,
	kPGPnetTCPService_xdmcp				= 177,
	kPGPnetTCPService_nextstep			= 178,
	kPGPnetTCPService_bgp				= 179,
	kPGPnetTCPService_prospero			= 191,
	kPGPnetTCPService_irc				= 194,
	kPGPnetTCPService_smux				= 199,
	kPGPnetTCPService_at_rtmp			= 201,
	kPGPnetTCPService_at_nbp			= 202,
	kPGPnetTCPService_at_echo			= 204,
	kPGPnetTCPService_at_zis			= 206,
	kPGPnetTCPService_qmtp				= 209,
	kPGPnetTCPService_z3950				= 210,
	kPGPnetTCPService_ipx				= 213,
	kPGPnetTCPService_imap3				= 220,
	kPGPnetTCPService_rpc2portmap		= 369,
	kPGPnetTCPService_codaauth2			= 370,
	kPGPnetTCPService_ulistserv			= 372,
	kPGPnetTCPService_ldap				= 389,
	kPGPnetTCPService_https				= 443,
	kPGPnetTCPService_snpp				= 444,
	kPGPnetTCPService_msds				= 445,
	kPGPnetTCPService_ssmtp				= 465,
	kPGPnetTCPService_saft				= 487,
	kPGPnetTCPService_ike				= 500,
	kPGPnetTCPService_exec				= 512,
	kPGPnetTCPService_login				= 513,
	kPGPnetTCPService_shell				= 514,
	kPGPnetTCPService_printer			= 515,
	kPGPnetTCPService_talk				= 517,
	kPGPnetTCPService_ntalk				= 518,
	kPGPnetTCPService_route				= 520,
	kPGPnetTCPService_timed				= 525,
	kPGPnetTCPService_tempo				= 526,
	kPGPnetTCPService_courier			= 530,
	kPGPnetTCPService_conference		= 531,
	kPGPnetTCPService_netnews			= 532,
	kPGPnetTCPService_netwall			= 533,
	kPGPnetTCPService_uucp				= 540,
	kPGPnetTCPService_afpovertcp		= 548,
	kPGPnetTCPService_klogin			= 543,
	kPGPnetTCPService_kshell			= 544,
	kPGPnetTCPService_remotefs			= 556,
	kPGPnetTCPService_snews				= 563,
	kPGPnetTCPService_sldap				= 636,
	kPGPnetTCPService_kerberos_adm		= 749,
	kPGPnetTCPService_webster			= 765,
	kPGPnetTCPService_radius			= 1812,
	kPGPnetTCPService_radacct			= 1813,
	kPGPnetTCPService_cvspserver		= 2401,
	kPGPnetTCPService_kerberos4			= 750,
	kPGPnetTCPService_kerberosm			= 751,
	kPGPnetTCPService_passwd_srv		= 752,
	kPGPnetTCPService_krb_prop			= 754,
	kPGPnetTCPService_krbupdate			= 760,
	kPGPnetTCPService_kpasswd			= 761,
	kPGPnetTCPService_simap				= 993,
	kPGPnetTCPService_spop3				= 995,
	kPGPnetTCPService_socks				= 1080,
	kPGPnetTCPService_kpop				= 1109,
	kPGPnetTCPService_mysql				= 3306,
	kPGPnetTCPService_ircd				= 6667,
	kPGPnetTCPService_rtsp_low			= 6970,
	kPGPnetTCPService_rtsp_high			= 6999,
	kPGPnetTCPService_webcache			= 8080,
	kPGPnetTCPService_tproxy			= 8081,
	kPGPnetTCPService_pgpskep			= 14747,
	kPGPnetTCPService_girlfriend		= 21554,
	kPGPnetTCPService_backorifice2k		= 54320,

	PGP_ENUM_FORCE( _PGPNetTCPService )
} PGPNetTCPService;


#ifndef __cplusplus
extern PGPUInt16 kIPProtocolStringList[];
extern const PGPInt32 kPGPNumIPProtocols;

extern PGPUInt16 kTCPServiceStringList[];
extern const PGPInt32 kPGPNumTCPServices;

extern PGPUInt8 kICMPTypeStringList[];
extern const PGPInt32 kPGPNumICMPTypes;
#else
extern "C"
{
extern PGPUInt16 kIPProtocolStringList[];
extern const PGPInt32 kPGPNumIPProtocols;

extern PGPUInt16 kTCPServiceStringList[];
extern const PGPInt32 kPGPNumTCPServices;

extern PGPUInt8 kICMPTypeStringList[];
extern const PGPInt32 kPGPNumICMPTypes;
}
#endif

typedef enum _PGPNetFirewallSet
{
	kPGPNetFirewallRuleSet_Custom			= 0,
	kPGPNetFirewallRuleSet_Minimal,
	kPGPNetFirewallRuleSet_ClientMedium,
	kPGPNetFirewallRuleSet_ClientHigh,
	kPGPNetFirewallRuleSet_ServerMedium,
	kPGPNetFirewallRuleSet_ServerHigh,
	kPGPNetFirewallRuleSet_LearnStarter,
	kPGPNetFirewallRuleSet_Auto,
	kPGPNetFirewallRuleSet_Known,
	kPGPNetFirewallRuleSet_Smart,

	PGP_ENUM_FORCE( _PGPNetFirewallSet )
} PGPNetFirewallSet;

typedef enum _PGPFireRuleType
{
	kPGPFireRuleType_Top					= 0,
	kPGPFireRuleType_Group,
	kPGPFireRuleType_Child,

	PGP_ENUM_FORCE( _PGPFireRuleType )
} PGPFireRuleType;

#if PGP_WIN32
#	pragma pack(push, 8)
#endif

typedef struct PGPNetPrefFirewallRule
{
	PGPBoolean			active;
	PGPBoolean			permit;
	PGPBoolean			matchIntrusion;
	PGPUInt8			direction;	/* 0: either, 1:in, 2:out */
	PGPUInt16			ipProtocol;
	PGPNetAddressType	remoteAddrType;
	PGPUInt32			remoteIPAddrStart;
	PGPUInt32			remoteIPMaskEnd;
	PGPNetIPServiceType	remoteServiceType;
	PGPUInt8			numRemoteServices;
	PGPUInt16			remoteService[kPGPnetMaxFirewallServices];
	PGPNetIPServiceType	localServiceType;
	PGPUInt8			numLocalServices;
	PGPUInt16			localService[kPGPnetMaxFirewallServices];
	char				description[kPGPnetMaxFirewallDescription];
	char				appPath[kPGPnetMaxAppPath];
	PGPByte				hash[kPGPnetMaxAppHash];
	PGPUInt32			transient;
	PGPFireRuleType		ruleType;
	PGPBoolean			logrule;
} PGPNetPrefFirewallRule;

#if PGP_WIN32
#	pragma pack(pop)
#endif


PGP_BEGIN_C_DECLARATIONS


	PGPError 
PGPGetIPProtocolString(
	PGPUInt16	uProtocol,
	PGPSize		sizeString,
	char *		pszString );

	PGPError 
PGPGetTCPServiceString(
	PGPUInt16	uService,
	PGPSize		sizeString,
	char *		pszString );

	PGPError 
PGPGetTCPServiceFromString(
	char *		pszString,
	PGPUInt16 *	puService);

	PGPError 
PGPGetTCPServiceIndexFromString(
	char *		pszString,
	PGPUInt16 *	puServiceIndex );

	PGPError 
PGPGetICMPTypeString(
	PGPUInt16	uService,
	PGPSize		sizeString,
	char *		pszString );

	PGPError 
PGPGetICMPTypeFromString(
	char *		pszString,
	PGPUInt16 *	puService);


PGP_END_C_DECLARATIONS

#if PGP_MACINTOSH
#	pragma options align=reset
#endif


#endif /* ] Included_pgpNetPrefsFirewallRule_h */


/*__Editor_settings____

	Local Variables:
	tab-width: 4
	End:
	vi: ts=4 sw=4
	vim: si
_____________________*/

⌨️ 快捷键说明

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