@@ -930,20 +930,25 @@ void Context::initDH(KeyDHGroup keyDHGroup, const std::string& dhParamsFile)
930
930
931
931
BIGNUM* p = nullptr ;
932
932
BIGNUM* g = nullptr ;
933
- if (use2048Bits )
933
+ if (keyDHGroup == KEY_DH_GROUP_2048 )
934
934
{
935
935
p = BN_bin2bn (dh2048_p, sizeof (dh2048_p), 0 );
936
936
g = BN_bin2bn (dh2048_g, sizeof (dh2048_g), 0 );
937
937
DH_set0_pqg (dh, p, 0 , g);
938
938
DH_set_length (dh, 256 );
939
939
}
940
- else
940
+ else if (keyDHGroup == KEY_DH_GROUP_1024)
941
941
{
942
942
p = BN_bin2bn (dh1024_p, sizeof (dh1024_p), 0 );
943
943
g = BN_bin2bn (dh1024_g, sizeof (dh1024_g), 0 );
944
944
DH_set0_pqg (dh, p, 0 , g);
945
945
DH_set_length (dh, 160 );
946
946
}
947
+ else
948
+ {
949
+ throw Poco::NotImplementedException (Poco::format (
950
+ " DH Group: %d" , static_cast <int >(keyDHGroup)));
951
+ }
947
952
if (!p || !g)
948
953
{
949
954
DH_free (dh);
@@ -952,18 +957,22 @@ void Context::initDH(KeyDHGroup keyDHGroup, const std::string& dhParamsFile)
952
957
953
958
#else // OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
954
959
955
- if (use2048Bits )
960
+ if (keyDHGroup == KEY_DH_GROUP_2048 )
956
961
{
957
962
dh->p = BN_bin2bn (dh2048_p, sizeof (dh2048_p), 0 );
958
963
dh->g = BN_bin2bn (dh2048_g, sizeof (dh2048_g), 0 );
959
964
dh->length = 256 ;
960
965
}
961
- else
966
+ else if (keyDHGroup == KEY_DH_GROUP_1024)
962
967
{
963
968
dh->p = BN_bin2bn (dh1024_p, sizeof (dh1024_p), 0 );
964
969
dh->g = BN_bin2bn (dh1024_g, sizeof (dh1024_g), 0 );
965
970
dh->length = 160 ;
966
971
}
972
+ {
973
+ throw Poco::NotImplementedException (Poco::format (
974
+ " DH Group: %d" , static_cast <int >(keyDHGroup)));
975
+ }
967
976
if ((!dh->p ) || (!dh->g ))
968
977
{
969
978
DH_free (dh);
0 commit comments