X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fs2_enc.c;h=18882bf70487f56bf73abff5b6b3a36ccaf849b4;hp=b4187bbbdd7b14a8ef6697c63c74f5b7dfef1330;hb=6ad47e83b48b902b47d727c23321902dbdd1d929;hpb=20d2186c87dabec56c6da48961a779843724a019 diff --git a/ssl/s2_enc.c b/ssl/s2_enc.c index b4187bbbdd..18882bf704 100644 --- a/ssl/s2_enc.c +++ b/ssl/s2_enc.c @@ -95,12 +95,15 @@ int ssl2_enc_init(SSL *s, int client) num=c->key_len; s->s2->key_material_length=num*2; + OPENSSL_assert(s->s2->key_material_length <= sizeof s->s2->key_material); - ssl2_generate_key_material(s); + if (ssl2_generate_key_material(s) <= 0) + return 0; - EVP_EncryptInit(ws,c,&(s->s2->key_material[(client)?num:0]), + OPENSSL_assert(c->iv_len <= (int)sizeof(s->session->key_arg)); + EVP_EncryptInit_ex(ws,c,NULL,&(s->s2->key_material[(client)?num:0]), s->session->key_arg); - EVP_DecryptInit(rs,c,&(s->s2->key_material[(client)?0:num]), + EVP_DecryptInit_ex(rs,c,NULL,&(s->s2->key_material[(client)?0:num]), s->session->key_arg); s->s2->read_key= &(s->s2->key_material[(client)?0:num]); s->s2->write_key= &(s->s2->key_material[(client)?num:0]);