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

📄 asn1_mac.h

📁 很有名的一款用于组织DDoS的恶意机器人程序。仅供研究学习
💻 H
📖 第 1 页 / 共 2 页
字号:
				{ c.error=ERR_R_MISSING_ASN1_EOS; \				c.line=__LINE__; goto err; } \		}\		c.slen-=(c.p-c.q); \		}#define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \	if ((c.slen != 0) && (M_ASN1_next == \		(V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \		{ \		int Tinf,Ttag,Tclass; \		long Tlen; \		\		c.q=c.p; \		Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \		if (Tinf & 0x80) \			{ c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \			c.line=__LINE__; goto err; } \		if (Tinf == (V_ASN1_CONSTRUCTED+1)) \					Tlen = c.slen - (c.p - c.q) - 2; \		if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \			(void (*)())free_func, \			b,V_ASN1_UNIVERSAL) == NULL) \			{ c.line=__LINE__; goto err; } \		if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \			Tlen = c.slen - (c.p - c.q); \			if(!ASN1_check_infinite_end(&c.p, Tlen)) \				{ c.error=ERR_R_MISSING_ASN1_EOS; \				c.line=__LINE__; goto err; } \		}\		c.slen-=(c.p-c.q); \		}#define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \	if ((c.slen != 0) && (M_ASN1_next == \		(V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \		{ \		int Tinf,Ttag,Tclass; \		long Tlen; \		\		c.q=c.p; \		Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \		if (Tinf & 0x80) \			{ c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \			c.line=__LINE__; goto err; } \		if (Tinf == (V_ASN1_CONSTRUCTED+1)) \					Tlen = c.slen - (c.p - c.q) - 2; \		if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \			free_func,b,V_ASN1_UNIVERSAL) == NULL) \			{ c.line=__LINE__; goto err; } \		if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \			Tlen = c.slen - (c.p - c.q); \			if(!ASN1_check_infinite_end(&c.p, Tlen)) \				{ c.error=ERR_R_MISSING_ASN1_EOS; \				c.line=__LINE__; goto err; } \		}\		c.slen-=(c.p-c.q); \		}/* New macros */#define M_ASN1_New_Malloc(ret,type) \	if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \		{ c.line=__LINE__; goto err2; }#define M_ASN1_New(arg,func) \	if (((arg)=func()) == NULL) return(NULL)#define M_ASN1_New_Error(a) \/*	err:	ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \		return(NULL);*/ \	err2:	ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \		return(NULL)#define M_ASN1_next		(*c.p)#define M_ASN1_next_prev	(*c.q)/*************************************************/#define M_ASN1_I2D_vars(a)	int r=0,ret=0; \				unsigned char *p; \				if (a == NULL) return(0)/* Length Macros */#define M_ASN1_I2D_len(a,f)	ret+=f(a,NULL)#define M_ASN1_I2D_len_IMP_opt(a,f)	if (a != NULL) M_ASN1_I2D_len(a,f)#define M_ASN1_I2D_len_SET(a,f) \		ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET);#define M_ASN1_I2D_len_SET_type(type,a,f) \		ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \					    V_ASN1_UNIVERSAL,IS_SET);#define M_ASN1_I2D_len_SEQUENCE(a,f) \		ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \				  IS_SEQUENCE);#define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \		ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \					    V_ASN1_UNIVERSAL,IS_SEQUENCE)#define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \		if ((a != NULL) && (sk_num(a) != 0)) \			M_ASN1_I2D_len_SEQUENCE(a,f);#define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \		if ((a != NULL) && (sk_##type##_num(a) != 0)) \			M_ASN1_I2D_len_SEQUENCE_type(type,a,f);#define M_ASN1_I2D_len_IMP_SET(a,f,x) \		ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);#define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \		ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \					    V_ASN1_CONTEXT_SPECIFIC,IS_SET);#define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \		if ((a != NULL) && (sk_num(a) != 0)) \			ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \					  IS_SET);#define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \		if ((a != NULL) && (sk_##type##_num(a) != 0)) \			ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \					       V_ASN1_CONTEXT_SPECIFIC,IS_SET);#define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \		ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \				  IS_SEQUENCE);#define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \		if ((a != NULL) && (sk_num(a) != 0)) \			ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \					  IS_SEQUENCE);#define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \		if ((a != NULL) && (sk_##type##_num(a) != 0)) \			ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \						    V_ASN1_CONTEXT_SPECIFIC, \						    IS_SEQUENCE);#define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \		if (a != NULL)\			{ \			v=f(a,NULL); \			ret+=ASN1_object_size(1,v,mtag); \			}#define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \		if ((a != NULL) && (sk_num(a) != 0))\			{ \			v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \			ret+=ASN1_object_size(1,v,mtag); \			}#define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \		if ((a != NULL) && (sk_num(a) != 0))\			{ \			v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \				       IS_SEQUENCE); \			ret+=ASN1_object_size(1,v,mtag); \			}#define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \		if ((a != NULL) && (sk_##type##_num(a) != 0))\			{ \			v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \						 V_ASN1_UNIVERSAL, \						 IS_SEQUENCE); \			ret+=ASN1_object_size(1,v,mtag); \			}/* Put Macros */#define M_ASN1_I2D_put(a,f)	f(a,&p)#define M_ASN1_I2D_put_IMP_opt(a,f,t)	\		if (a != NULL) \			{ \			unsigned char *q=p; \			f(a,&p); \			*q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\			}#define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\			V_ASN1_UNIVERSAL,IS_SET)#define M_ASN1_I2D_put_SET_type(type,a,f) \     i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET)#define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\			V_ASN1_CONTEXT_SPECIFIC,IS_SET)#define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \     i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET)#define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\			V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE)#define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\					     V_ASN1_UNIVERSAL,IS_SEQUENCE)#define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \     i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \			    IS_SEQUENCE)#define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \		if ((a != NULL) && (sk_num(a) != 0)) \			M_ASN1_I2D_put_SEQUENCE(a,f);#define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \		if ((a != NULL) && (sk_num(a) != 0)) \			{ i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \				       IS_SET); }#define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \		if ((a != NULL) && (sk_##type##_num(a) != 0)) \			{ i2d_ASN1_SET_OF_##type(a,&p,f,x, \						 V_ASN1_CONTEXT_SPECIFIC, \						 IS_SET); }#define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \		if ((a != NULL) && (sk_num(a) != 0)) \			{ i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \				       IS_SEQUENCE); }#define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \		if ((a != NULL) && (sk_##type##_num(a) != 0)) \			{ i2d_ASN1_SET_OF_##type(a,&p,f,x, \						 V_ASN1_CONTEXT_SPECIFIC, \						 IS_SEQUENCE); }#define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \		if (a != NULL) \			{ \			ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \			f(a,&p); \			}#define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \		if ((a != NULL) && (sk_num(a) != 0)) \			{ \			ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \			i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \			}#define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \		if ((a != NULL) && (sk_num(a) != 0)) \			{ \			ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \			i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \			}#define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \		if ((a != NULL) && (sk_##type##_num(a) != 0)) \			{ \			ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \			i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \					       IS_SEQUENCE); \			}#define M_ASN1_I2D_seq_total() \		r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \		if (pp == NULL) return(r); \		p= *pp; \		ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)#define M_ASN1_I2D_INF_seq_start(tag,ctx) \		*(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \		*(p++)=0x80#define M_ASN1_I2D_INF_seq_end() *(p++)=0x00; *(p++)=0x00#define M_ASN1_I2D_finish()	*pp=p; \				return(r);int asn1_GetSequence(ASN1_CTX *c, long *length);void asn1_add_error(unsigned char *address,int offset);#ifdef  __cplusplus}#endif#endif

⌨️ 快捷键说明

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