Skip to content

Commit 4db4ef0

Browse files
committed
fix(OpenSSL): fuzz errors #4663
1 parent a33dc34 commit 4db4ef0

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

NetSSL_OpenSSL/src/Context.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -930,20 +930,25 @@ void Context::initDH(KeyDHGroup keyDHGroup, const std::string& dhParamsFile)
930930

931931
BIGNUM* p = nullptr;
932932
BIGNUM* g = nullptr;
933-
if (use2048Bits)
933+
if (keyDHGroup == KEY_DH_GROUP_2048)
934934
{
935935
p = BN_bin2bn(dh2048_p, sizeof(dh2048_p), 0);
936936
g = BN_bin2bn(dh2048_g, sizeof(dh2048_g), 0);
937937
DH_set0_pqg(dh, p, 0, g);
938938
DH_set_length(dh, 256);
939939
}
940-
else
940+
else if (keyDHGroup == KEY_DH_GROUP_1024)
941941
{
942942
p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), 0);
943943
g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), 0);
944944
DH_set0_pqg(dh, p, 0, g);
945945
DH_set_length(dh, 160);
946946
}
947+
else
948+
{
949+
throw Poco::NotImplementedException(Poco::format(
950+
"DH Group: %d", static_cast<int>(keyDHGroup)));
951+
}
947952
if (!p || !g)
948953
{
949954
DH_free(dh);
@@ -952,18 +957,22 @@ void Context::initDH(KeyDHGroup keyDHGroup, const std::string& dhParamsFile)
952957

953958
#else // OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
954959

955-
if (use2048Bits)
960+
if (keyDHGroup == KEY_DH_GROUP_2048)
956961
{
957962
dh->p = BN_bin2bn(dh2048_p, sizeof(dh2048_p), 0);
958963
dh->g = BN_bin2bn(dh2048_g, sizeof(dh2048_g), 0);
959964
dh->length = 256;
960965
}
961-
else
966+
else if (keyDHGroup == KEY_DH_GROUP_1024)
962967
{
963968
dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), 0);
964969
dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), 0);
965970
dh->length = 160;
966971
}
972+
{
973+
throw Poco::NotImplementedException(Poco::format(
974+
"DH Group: %d", static_cast<int>(keyDHGroup)));
975+
}
967976
if ((!dh->p) || (!dh->g))
968977
{
969978
DH_free(dh);

0 commit comments

Comments
 (0)