utility function Reviewed-by: Matt Caswell <matt@openssl.org>
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index f3bf017..30fcd39 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c
@@ -4639,3 +4639,16 @@ EVP_PKEY_CTX_free(pctx); return rv; } + +EVP_PKEY *ssl_dh_to_pkey(DH *dh) +{ + EVP_PKEY *ret; + if (dh == NULL) + return NULL; + ret = EVP_PKEY_new(); + if (EVP_PKEY_set1_DH(ret, dh) <= 0) { + EVP_PKEY_free(ret); + return NULL; + } + return ret; +}
diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h index c213aa4..bff20ad 100644 --- a/ssl/ssl_locl.h +++ b/ssl/ssl_locl.h
@@ -1859,6 +1859,7 @@ int free_pms); __owur EVP_PKEY *ssl_generate_pkey(EVP_PKEY *pm, int nid); __owur int ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey); +__owur EVP_PKEY *ssl_dh_to_pkey(DH *dh); __owur const SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p); __owur int ssl3_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p);