text: #include"rsa.h"
  #include"err.h"
  #include"engine.h"
  
  //static RSA_METHOD rsa_pkcs1_eay_meth={		//--hgl--20140331--RW mem to const mem
  const RSA_METHOD rsa_pkcs1_eay_meth={
  	"Eric Young's PKCS#1 RSA",
  	0, /* flags */
  	NULL,
  	0, /* rsa_sign */
  	0, /* rsa_verify */
  	NULL /* rsa_keygen */
  	};
  /////////////////////RSA_new////////////////////////////////////////ok
  
  RSA *RSA_new(void)
  	{
  		
  	RSA *r=RSA_new_method(NULL);
  	
  	return r;
  	}
  
  ///////////////////RSA_new_method///////////////////////////////////////ok
  
  RSA *RSA_new_method(ENGINE *engine)
  	{
  	RSA *ret;
  	
  	ret=(RSA *)OPENSSL_malloc(sizeof(RSA));
  	if (ret == NULL)
  		{
  		RSAerr(RSA_F_RSA_NEW_METHOD,ERR_R_MALLOC_FAILURE);
  		return NULL;
  		}
  
  	ret->meth = &rsa_pkcs1_eay_meth;
  
  	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->mt_blinding=NULL;
  	ret->bignum_data=NULL;
  	ret->flags=ret->meth->flags & ~RSA_FLAG_NON_FIPS_ALLOW;
  	if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_RSA, ret, &ret->ex_data))
  		{
  		OPENSSL_free(ret);
  		return(NULL);
  		}
  
  	if ((ret->meth->init != NULL) && !ret->meth->init(ret))
  		{
  		CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, ret, &ret->ex_data);
  		OPENSSL_free(ret);
  		ret=NULL;
  		}
  	return(ret);
  	}
  
  
  
  