CRYPTO_new_ex_data(rsa_meth,ret,&ret->ex_data);
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_RSA, ret, &ret->ex_data);
RSA *RSA_new_method(ENGINE *engine)#endif	{	const RSA_METHOD *meth;	RSA *ret;	ret=(RSA *)OPENSSL_malloc(sizeof(RSA));	if (ret == NULL)		{		RSAerr(RSA_F_RSA_NEW_METHOD,ERR_R_MALLOC_FAILURE);		return(NULL);		}	if (engine)		{		if(ENGINE_init(engine))			ret->engine = engine;		else 			ret->engine = NULL;		}	else		ret->engine=ENGINE_get_default_RSA();	if(ret->engine == NULL)		{		RSAerr(RSA_F_RSA_NEW_METHOD,ERR_LIB_ENGINE);		OPENSSL_free(ret);		return NULL;		}	meth = ENGINE_get_RSA(ret->engine);	ret->pad=0;	ret->version=0;	ret->n=NULL;	ret->e=NULL;	ret->d=NULL;	ret->p=NULL;	ret->q=NULL;	ret->dmp1=NULL;	ret->dmq1=NULL;	ret->iqmp=NULL;	ret->references=1;	ret->_method_mod_n=NULL;	ret->_method_mod_p=NULL;	ret->_method_mod_q=NULL;	ret->blinding=NULL;	ret->bignum_data=NULL;	ret->flags=meth->flags;	CRYPTO_new_ex_data(rsa_meth,ret,&ret->ex_data);	if ((meth->init != NULL) && !meth->init(ret))		{		CRYPTO_free_ex_data(rsa_meth, ret, &ret->ex_data);		OPENSSL_free(ret);		ret=NULL;		}	return(ret);	}