Index: openssl/ssl/s2_enc.c |
=================================================================== |
--- openssl/ssl/s2_enc.c (revision 105093) |
+++ openssl/ssl/s2_enc.c (working copy) |
@@ -68,16 +68,15 @@ |
const EVP_MD *md; |
int num; |
- if (!ssl_cipher_get_evp(s->session,&c,&md,NULL)) |
+ if (!ssl_cipher_get_evp(s->session,&c,&md,NULL,NULL,NULL)) |
{ |
ssl2_return_error(s,SSL2_PE_NO_CIPHER); |
SSLerr(SSL_F_SSL2_ENC_INIT,SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS); |
return(0); |
} |
+ ssl_replace_hash(&s->read_hash,md); |
+ ssl_replace_hash(&s->write_hash,md); |
- s->read_hash=md; |
- s->write_hash=md; |
- |
if ((s->enc_read_ctx == NULL) && |
((s->enc_read_ctx=(EVP_CIPHER_CTX *) |
OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)) |
@@ -176,7 +175,7 @@ |
/* There has to be a MAC algorithm. */ |
EVP_MD_CTX_init(&c); |
- EVP_DigestInit_ex(&c, s->read_hash, NULL); |
+ EVP_MD_CTX_copy(&c, s->read_hash); |
EVP_DigestUpdate(&c,sec, |
EVP_CIPHER_CTX_key_length(s->enc_read_ctx)); |
EVP_DigestUpdate(&c,act,len); |