if ((s->session->cipher != NULL) && ((s->session->cipher->algorithms & SSL_ENC_MASK) == SSL_RC4)) s->s3->need_empty_fragments = 0;
if ((s->session->cipher->algorithms & SSL_ENC_MASK) == SSL_RC4) s->s3->need_empty_fragments = 0;
int ssl3_setup_key_block(SSL *s)	{	unsigned char *p;	const EVP_CIPHER *c;	const EVP_MD *hash;	int num;	int ret = 0;	SSL_COMP *comp;	if (s->s3->tmp.key_block_length != 0)		return(1);	if (!ssl_cipher_get_evp(s->session,&c,&hash,&comp))		{		SSLerr(SSL_F_SSL3_SETUP_KEY_BLOCK,SSL_R_CIPHER_OR_HASH_UNAVAILABLE);		return(0);		}	s->s3->tmp.new_sym_enc=c;	s->s3->tmp.new_hash=hash;	s->s3->tmp.new_compression=comp;	num=EVP_CIPHER_key_length(c)+EVP_MD_size(hash)+EVP_CIPHER_iv_length(c);	num*=2;	ssl3_cleanup_key_block(s);	if ((p=OPENSSL_malloc(num)) == NULL)		goto err;	s->s3->tmp.key_block_length=num;	s->s3->tmp.key_block=p;	ret = ssl3_generate_key_block(s,p,num);	if (!(s->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS))		{		/* enable vulnerability countermeasure for CBC ciphers with		 * known-IV problem (http://www.openssl.org/~bodo/tls-cbc.txt)		 */		s->s3->need_empty_fragments = 1;#ifndef OPENSSL_NO_RC4		if ((s->session->cipher != NULL) && ((s->session->cipher->algorithms & SSL_ENC_MASK) == SSL_RC4))			s->s3->need_empty_fragments = 0;#endif		}	return ret;		err:	SSLerr(SSL_F_SSL3_SETUP_KEY_BLOCK,ERR_R_MALLOC_FAILURE);	return(0);	}