On 29/10/2019 10:34, Nagalakshmi V J wrote: > > tls1_PRF(s->ctx->md5,s->ctx->sha1,buf,(int)(p-buf), > > pGenerator->master_secret,sizeof(pGenerator->master_secret), > > km,tmp,num); It seems your code is replicating parts of libssl - which seems like a strange (and possibly dangerous) thing to do! > Struct ssl_ctx_st { > > … > > constEVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ > > constEVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ > > … > > } You really don't need to access these things. They're just cached references to the value returned by EVP_get_digestbyname("ssl3-md5") and EVP_get_digestbyname("ssl3-sha1"). So you can call those functions directly anyway. Matt