Use BIO_new_file() not BIO_new_fd() to read dhparams file.
Older versions of OpenSSL and wolfSSL lack BIO_new_fd(). Also explicitly include openssl/bio.h and openssl/dh.h for wolfSSL.
This commit is contained in:
@@ -46,6 +46,8 @@
|
|||||||
#define DEFAULT_CIPHER_LST13 "TLS_AES_256_GCM_SHA384"
|
#define DEFAULT_CIPHER_LST13 "TLS_AES_256_GCM_SHA384"
|
||||||
|
|
||||||
#if defined(HAVE_OPENSSL)
|
#if defined(HAVE_OPENSSL)
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/dh.h>
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
verify_cert_chain(SSL_CTX *ctx, const char *cert_file)
|
verify_cert_chain(SSL_CTX *ctx, const char *cert_file)
|
||||||
@@ -227,26 +229,21 @@ set_dhparams_bio(SSL_CTX *ctx, BIO *bio)
|
|||||||
static bool
|
static bool
|
||||||
set_dhparams(SSL_CTX *ctx, const char *dhparam_file)
|
set_dhparams(SSL_CTX *ctx, const char *dhparam_file)
|
||||||
{
|
{
|
||||||
BIO *bio = NULL;
|
BIO *bio;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
int fd;
|
|
||||||
debug_decl(set_dhparams, SUDO_DEBUG_UTIL);
|
debug_decl(set_dhparams, SUDO_DEBUG_UTIL);
|
||||||
|
|
||||||
fd = open(dhparam_file, O_RDONLY);
|
bio = BIO_new_file(dhparam_file, O_RDONLY);
|
||||||
if (fd != -1)
|
|
||||||
bio = BIO_new_fd(fd, BIO_CLOSE);
|
|
||||||
if (bio != NULL) {
|
if (bio != NULL) {
|
||||||
if (set_dhparams_bio(ctx, bio)) {
|
if (set_dhparams_bio(ctx, bio)) {
|
||||||
sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
|
sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
|
||||||
"loaded diffie-hellman parameters from %s", dhparam_file);
|
"loaded diffie-hellman parameters from %s", dhparam_file);
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
BIO_free(bio);
|
||||||
} else {
|
} else {
|
||||||
sudo_warn(U_("unable to open %s"), dhparam_file);
|
sudo_warn(U_("unable to open %s"), dhparam_file);
|
||||||
if (fd != -1)
|
|
||||||
close(fd);
|
|
||||||
}
|
}
|
||||||
BIO_free(bio);
|
|
||||||
|
|
||||||
debug_return_bool(ret);
|
debug_return_bool(ret);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user