unsigned char *p,*pt,*n,pb=0;
unsigned char *p,*n,pb=0;
int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **pp)	{	int pad=0,ret,r,i,t;	unsigned char *p,*pt,*n,pb=0;	if ((a == NULL) || (a->data == NULL)) return(0);	t=a->type;	if (a->length == 0)		ret=1;	else		{		ret=a->length;		i=a->data[0];		if ((t == V_ASN1_ENUMERATED) && (i > 127))			{			pad=1;			pb=0;			}		else if ((t == V_ASN1_NEG_ENUMERATED) && (i>128))			{			pad=1;			pb=0xFF;			}		ret+=pad;		}	r=ASN1_object_size(0,ret,V_ASN1_ENUMERATED);	if (pp == NULL) return(r);	p= *pp;	ASN1_put_object(&p,0,ret,V_ASN1_ENUMERATED,V_ASN1_UNIVERSAL);	if (pad) *(p++)=pb;	if (a->length == 0)		*(p++)=0;	else if (t == V_ASN1_ENUMERATED)		{		memcpy(p,a->data,(unsigned int)a->length);		p+=a->length;		}	else		{		n=a->data;		pt=p;		for (i=a->length; i>0; i--)			*(p++)= (*(n++)^0xFF)+1;		if (!pad) *pt|=0x80;		}	*pp=p;	return(r);	}