OpenSSL中的Premaster密钥和主密钥

我有以下价值观:

  1. 客户端随机字节
  2. 服务器随机字节
  3. 前主秘密

我不想使用像SSL,SSL_CTX等function。我想要的是,只要我有三个数字,我想从它们计算主数字。

如何使用OpenSSL计算c中的主密钥? 在RFC中指定的PRF的OpenSSL C库中是否有任何function?

谢谢。

 JKJS int master_secret(unsigned char *dest,int len,unsigned char *pre_master_secret,int pms_len,unsigned char *label,unsigned char *seed,int seed_len) {/*dest :where master secret will be stored len :desired length of master secret pre_master_secret :given pre-master secret pms_len :length of given pre-master secret label :given label to be fed to PRF seed :given seed to be fed to PRF seed_len :length of given seed finally,our function is analogus to RFC-2246 PRF definition:PRF(secret,label,seed) where, secret=pre-master secret label=label seed=seed */ EVP_MD *md5,*sha; md5=EVP_md5(); sha=EVP_sha(); int i=0,j,position; int half_secret_len=pms_len/2+pms_len%2; unsigned char md5_secret[half_secret_len]; //first half of the pre-master secret, analogus to S1 in RFC-2246 for(i=0;i