if (!ssl_cipher_get_evp(s->session->cipher,&c,&md))
if (!ssl_cipher_get_evp(s->session,&c,&md,NULL))
static int client_master_key(s)SSL *s;	{	unsigned char *buf;	unsigned char *p,*d;	int clear,enc,karg,i;	SSL_SESSION *sess;	EVP_CIPHER *c;	EVP_MD *md;	buf=(unsigned char *)s->init_buf->data;	if (s->state == SSL2_ST_SEND_CLIENT_MASTER_KEY_A)		{		if (!ssl_cipher_get_evp(s->session->cipher,&c,&md))			{			ssl2_return_error(s,SSL2_PE_NO_CIPHER);			SSLerr(SSL_F_CLIENT_MASTER_KEY,SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS);			return(-1);			}		sess=s->session;		p=buf;		d=p+10;		*(p++)=SSL2_MT_CLIENT_MASTER_KEY;/* type */		i=ssl_put_cipher_by_char(s,sess->cipher,p);		p+=i;		/* make key_arg data */		i=EVP_CIPHER_iv_length(c);		sess->key_arg_length=i;		if (i > 0) RAND_bytes(sess->key_arg,i);		/* make a master key */		i=EVP_CIPHER_key_length(c);		sess->master_key_length=i;		if (i > 0) RAND_bytes(sess->master_key,i);		if (sess->cipher->algorithm2 & SSL2_CF_8_BYTE_ENC)			enc=8;		else if (sess->cipher->algorithms & SSL_EXP)			enc=5;		else			enc=i;		if (i < enc)			{			ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);			SSLerr(SSL_F_CLIENT_MASTER_KEY,SSL_R_CIPHER_TABLE_SRC_ERROR);			return(-1);			}		clear=i-enc;		s2n(clear,p);		memcpy(d,sess->master_key,(unsigned int)clear);		d+=clear;		enc=ssl_rsa_public_encrypt(sess->cert,enc,			&(sess->master_key[clear]),d,			(s->s2->ssl2_rollback)?RSA_SSLV23_PADDING:RSA_PKCS1_PADDING);		if (enc <= 0)			{			ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);			SSLerr(SSL_F_CLIENT_MASTER_KEY,SSL_R_PUBLIC_KEY_ENCRYPT_ERROR);			return(-1);			}#ifdef PKCS1_CHECK		if (s->options & SSL_OP_PKCS1_CHECK_1) d[1]++;		if (s->options & SSL_OP_PKCS1_CHECK_2)			sess->master_key[clear]++;#endif		s2n(enc,p);		d+=enc;		karg=sess->key_arg_length;			s2n(karg,p); /* key arg size */		memcpy(d,sess->key_arg,(unsigned int)karg);		d+=karg;		s->state=SSL2_ST_SEND_CLIENT_MASTER_KEY_B;		s->init_num=d-buf;		s->init_off=0;		}	/* SSL2_ST_SEND_CLIENT_MASTER_KEY_B */	return(ssl2_do_write(s));	}