From: Dr. Stephen Henson Date: Fri, 18 Dec 2015 15:58:28 +0000 (+0000) Subject: utility function X-Git-Tag: OpenSSL_1_1_0-pre2~159 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=6c4e6670d7cb21401962a4c09cf073ac97485640 utility function Reviewed-by: Matt Caswell --- diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index f3bf017042..30fcd393e6 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c @@ -4639,3 +4639,16 @@ int ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey) 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 c213aa471e..bff20adc43 100644 --- a/ssl/ssl_locl.h +++ b/ssl/ssl_locl.h @@ -1859,6 +1859,7 @@ __owur int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen, 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);