EVP_MD_CTX_init(mdctx);
EVP_DigestInit_ex(mdctx, md, NULL);
EVP_DigestUpdate(mdctx, hashbuf, buf_len);
EVP_DigestFinal_ex(mdctx, shared_key, NULL);
EVP_MD_CTX_init(mdctx);
EVP_DigestInit_ex(mdctx, md, NULL);
EVP_DigestUpdate(mdctx, hashbuf, buf_len);
EVP_DigestFinal_ex(mdctx, shared_key, NULL);