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

📄 mikeypayloadsp.h

📁 MiniSip Client with DomainKeys Authentication, Sip, Audio communications, Echo Cancel
💻 H
字号:
/*  Copyright (C) 2005, 2004 Erik Eliasson, Johan Bilien, Joachim Orrblad    This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Lesser General Public  License as published by the Free Software Foundation; either  version 2.1 of the License, or (at your option) any later version.  This library 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  Lesser General Public License for more details.  You should have received a copy of the GNU Lesser General Public  License along with this library; if not, write to the Free Software  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//* * Authors: Erik Eliasson <eliasson@it.kth.se> *          Johan Bilien <jobi@via.ecp.fr> *	    Joachim Orrblad <joachim@orrblad.com>*/#ifndef MIKEYPAYLOADSP_H#define MIKEYPAYLOADSP_H#include<libmikey/libmikey_config.h>#include<libmikey/MikeyPayload.h>#include<list>#include<libmutil/MemObject.h>#define MIKEYPAYLOAD_SP_PAYLOAD_TYPE 10//// Constants for SRTP//#define MIKEY_PROTO_SRTP		0//SRTP encryption algorithms (RFC 3830)#define MIKEY_SRTP_EALG_NULL		0#define MIKEY_SRTP_EALG_AESCM		1#define MIKEY_SRTP_EALG_AESF8		2//SRTP authentication algorithms (RFC 3830)#define MIKEY_SRTP_AALG_NULL		0#define MIKEY_SRTP_AALG_SHA1HMAC	1//SRTP pseudo-random (RFC 3830)#define MIKEY_SRTP_PRF_AESCM		0//FEC order (RFC 3830)#define MIKEY_FEC_ORDER_FEC_SRTP	0// Policy Param type for SRTP (RFC 3830)#define MIKEY_SRTP_EALG			0#define MIKEY_SRTP_EKEYL		1#define MIKEY_SRTP_AALG			2#define MIKEY_SRTP_AKEYL		3#define MIKEY_SRTP_SALTKEYL		4#define MIKEY_SRTP_PRF			5#define MIKEY_SRTP_KEY_DERRATE		6#define MIKEY_SRTP_ENCR_ON_OFF		7#define MIKEY_SRTCP_ENCR_ON_OFF		8#define MIKEY_SRTP_FEC_ORDER		9   #define MIKEY_SRTP_AUTH_ON_OFF 		10#define MIKEY_SRTP_AUTH_TAGL		11#define MIKEY_SRTP_PREFIX		12    //// Constants for IPSEC//#define MIKEY_PROTO_IPSEC4		7//IPSEC encryption algorithms (RFC 2367)#define MIKEY_IPSEC_EALG_NONE		0#define MIKEY_IPSEC_EALG_DESCBC		2#define MIKEY_IPSEC_EALG_3DESCBC	3#define MIKEY_IPSEC_EALG_NULL		11//IPSEC authentication algorithms (RFC 2367)#define MIKEY_IPSEC_AALG_NONE		0#define MIKEY_IPSEC_AALG_MD5HMAC	2#define MIKEY_IPSEC_AALG_SHA1HMAC	3// IPSEC SA type (RFC 2367)#define MIKEY_IPSEC_SATYPE_UNSPEC	0#define MIKEY_IPSEC_SATYPE_AH		2#define MIKEY_IPSEC_SATYPE_ESP		3// IPSEC SA type #define MIKEY_IPSEC_MODE_ANY		0#define MIKEY_IPSEC_MODE_TRANSPORT	1#define MIKEY_IPSEC_MODE_TUNNEL		2// options defined for SA#define MIKEY_IPSEC_SAFLAG_NONE		0x0000	 //i.e. new format. #define MIKEY_IPSEC_SAFLAG_OLD		0x0001	 //old format. #define MIKEY_IPSEC_SAFLAG_IV4B		0x0010	 //IV length of 4 bytes in use #define MIKEY_IPSEC_SAFLAG_DERIV	0x0020	 //DES derived #define MIKEY_IPSEC_SAFLAG_CYCSEQ	0x0040	 //allowing to cyclic sequence. 	 //three of followings are exclusive flags each them #define MIKEY_IPSEC_SAFLAG_PSEQ		0x0000	 //sequencial padding for ESP #define MIKEY_IPSEC_SAFLAG_PRAND	0x0100	 //random padding for ESP #define MIKEY_IPSEC_SAFLAG_PZERO	0x0200	 //zero padding for ESP #define MIKEY_IPSEC_SAFLAG_PMASK	0x0300	 //mask for padding flag #define MIKEY_IPSEC_SAFLAG_RAWCPI	0x0080	 //use well known CPI (IPComp) // Policy Param type for IPSEC#define MIKEY_IPSEC_SATYPE		0#define MIKEY_IPSEC_MODE		1#define MIKEY_IPSEC_SAFLAG		2#define MIKEY_IPSEC_EALG		3#define MIKEY_IPSEC_EKEYL		4#define MIKEY_IPSEC_AALG		5#define MIKEY_IPSEC_AKEYL		6/** * @author Erik Eliasson, Johan Bilien, Joachim Orrblad*/class LIBMIKEY_API MikeyPolicyParam{        public:                MikeyPolicyParam( uint8_t type, uint8_t length, byte_t * value );		~MikeyPolicyParam();                uint8_t type;	// As defined above                uint8_t length;	// Length of value in bytes                byte_t * value; // type value};class LIBMIKEY_API MikeyPayloadSP : public MikeyPayload{	public:		//Constructor when constructing new MikeyPayloadSP message, policy type entries added later with MikeyPayloadSP::addMikeyPolicyParam		MikeyPayloadSP(uint8_t policy_no, uint8_t prot_type);		//Constructor when receiving Mikey message i.e. contruct MikeyPayloadSP from bytestream.		MikeyPayloadSP(byte_t *start_of_header, int lengthLimit);		//Destructor		~MikeyPayloadSP();		//Add one policy type with type, size & value 		void addMikeyPolicyParam( uint8_t type, uint8_t length, byte_t * value);		//Get policy param with type type		MikeyPolicyParam * getParameterType(uint8_t type);		//Generate bytestream		virtual void writeData(byte_t *start, int expectedLength);		//Return total length of the MikeyPayloadSP data in bytes		virtual int length();		//Return number of policy param entries		int noOfPolicyParam();		uint8_t policy_no;		uint8_t prot_type;			private:		//Delete the MikeyPolicyParam in list<MikeyPolicyParam *> param with type type		void deleteMikeyPolicyParam(uint8_t type);				//Total length of all policy params in bytes		uint16_t policy_param_length;		//Container holding policy params		std::list<MikeyPolicyParam *> param;		//MRef<MikeyPolicyParamList *> ParamListPtr;};#endif

⌨️ 快捷键说明

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