int CRYPTO_dup_ex_data(STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth, CRYPTO_EX_DATA *to,
int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,
int CRYPTO_dup_ex_data(STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth, CRYPTO_EX_DATA *to,	     CRYPTO_EX_DATA *from)	{	int i,j,m,r;	CRYPTO_EX_DATA_FUNCS *mm;	char *from_d;	if (meth == NULL) return(1);	if (from->sk == NULL) return(1);	m=sk_CRYPTO_EX_DATA_FUNCS_num(meth);	j=sk_num(from->sk);	for (i=0; i<j; i++)		{		from_d=CRYPTO_get_ex_data(from,i);		if (i < m)			{			mm=sk_CRYPTO_EX_DATA_FUNCS_value(meth,i);			if (mm->dup_func != NULL)				r=mm->dup_func(to,from,(char **)&from_d,i,					mm->argl,mm->argp);			}		CRYPTO_set_ex_data(to,i,from_d);		}	return(1);	}