9292 WOLFSSH_NO_DH_GROUP14_SHA1
9393 Set when DH or SHA1 are disabled. Set to disable use of DH (Oakley 14) and
9494 SHA1 support.
95+ WOLFSSH_NO_DH_GROUP14_SHA256
96+ Set when DH or SHA256 are disabled. Set to disable use of DH (Oakley 14)
97+ and SHA256 support.
9598 WOLFSSH_NO_DH_GEX_SHA256
9699 Set when DH or SHA2-256 are disabled. Set to disable use of DH group
97100 exchange and SHA2-256 support.
@@ -674,6 +677,9 @@ static const char cannedKexAlgoNames[] =
674677#if !defined(WOLFSSH_NO_ECDH_SHA2_NISTP256 )
675678 "ecdh-sha2-nistp256,"
676679#endif
680+ #if !defined(WOLFSSH_NO_DH_GROUP14_SHA256 )
681+ "diffie-hellman-group14-sha256,"
682+ #endif
677683#if !defined(WOLFSSH_NO_DH_GEX_SHA256 )
678684 "diffie-hellman-group-exchange-sha256,"
679685#endif
@@ -2397,6 +2403,9 @@ static const NameIdPair NameIdMap[] = {
23972403#ifndef WOLFSSH_NO_DH_GROUP14_SHA1
23982404 { ID_DH_GROUP14_SHA1 , TYPE_KEX , "diffie-hellman-group14-sha1" },
23992405#endif
2406+ #ifndef WOLFSSH_NO_DH_GROUP14_SHA256
2407+ { ID_DH_GROUP14_SHA256 , TYPE_KEX , "diffie-hellman-group14-sha256" },
2408+ #endif
24002409#ifndef WOLFSSH_NO_DH_GEX_SHA256
24012410 { ID_DH_GEX_SHA256 , TYPE_KEX , "diffie-hellman-group-exchange-sha256" },
24022411#endif
@@ -2409,9 +2418,6 @@ static const NameIdPair NameIdMap[] = {
24092418#ifndef WOLFSSH_NO_ECDH_SHA2_NISTP521
24102419 { ID_ECDH_SHA2_NISTP521 , TYPE_KEX , "ecdh-sha2-nistp521" },
24112420#endif
2412- #ifndef WOLFSSH_NO_DH_GEX_SHA256
2413- { ID_DH_GROUP14_SHA256 , TYPE_KEX , "diffie-hellman-group14-sha256" },
2414- #endif
24152421#ifndef WOLFSSH_NO_ECDH_NISTP256_KYBER_LEVEL1_SHA256
24162422 /* We use kyber-512 here to achieve interop with OQS's fork. */
24172423 { ID_ECDH_NISTP256_KYBER_LEVEL1_SHA256 , TYPE_KEX ,
@@ -3632,6 +3638,10 @@ INLINE enum wc_HashType HashForId(byte id)
36323638#endif
36333639
36343640 /* SHA2-256 */
3641+ #ifndef WOLFSSH_NO_DH_GROUP14_SHA256
3642+ case ID_DH_GROUP14_SHA256 :
3643+ return WC_HASH_TYPE_SHA256 ;
3644+ #endif
36353645#ifndef WOLFSSH_NO_DH_GEX_SHA256
36363646 case ID_DH_GEX_SHA256 :
36373647 return WC_HASH_TYPE_SHA256 ;
@@ -4239,6 +4249,7 @@ static const word32 dhPrimeGroup1Sz = (word32)sizeof(dhPrimeGroup1);
42394249#endif
42404250
42414251#if !defined(WOLFSSH_NO_DH_GROUP14_SHA1 ) || \
4252+ !defined(WOLFSSH_NO_DH_GROUP14_SHA256 ) || \
42424253 !defined(WOLFSSH_NO_DH_GEX_SHA256 )
42434254static const byte dhPrimeGroup14 [] = {
42444255 /* SSH DH Group 14 (Oakley Group 14, 2048-bit MODP Group, RFC 3526) */
@@ -10093,6 +10104,14 @@ static int GetDHPrimeGroup(int kexId, const byte** primeGroup,
1009310104 * generatorSz = dhGeneratorSz ;
1009410105 break ;
1009510106 #endif
10107+ #ifndef WOLFSSH_NO_DH_GROUP14_SHA256
10108+ case ID_DH_GROUP14_SHA256 :
10109+ * primeGroup = dhPrimeGroup14 ;
10110+ * primeGroupSz = dhPrimeGroup14Sz ;
10111+ * generator = dhGenerator ;
10112+ * generatorSz = dhGeneratorSz ;
10113+ break ;
10114+ #endif
1009610115 #ifndef WOLFSSH_NO_DH_GEX_SHA256
1009710116 case ID_DH_GEX_SHA256 :
1009810117 * primeGroup = dhPrimeGroup14 ;
@@ -10121,7 +10140,7 @@ static int SendKexGetSigningKey(WOLFSSH* ssh,
1012110140 void * heap ;
1012210141 byte scratchLen [LENGTH_SZ ];
1012310142 word32 scratch = 0 ;
10124- #ifndef WOLFSSH_NO_DH
10143+ #ifndef WOLFSSH_NO_DH_GEX_SHA256
1012510144 const byte * primeGroup = NULL ;
1012610145 word32 primeGroupSz = 0 ;
1012710146 const byte * generator = NULL ;
@@ -11363,6 +11382,12 @@ int SendKexDhReply(WOLFSSH* ssh)
1136311382 msgId = MSGID_KEXDH_REPLY ;
1136411383 break ;
1136511384#endif
11385+ #ifndef WOLFSSH_NO_DH_GROUP14_SHA256
11386+ case ID_DH_GROUP14_SHA256 :
11387+ useDh = 1 ;
11388+ msgId = MSGID_KEXDH_REPLY ;
11389+ break ;
11390+ #endif
1136611391#ifndef WOLFSSH_NO_DH_GEX_SHA256
1136711392 case ID_DH_GEX_SHA256 :
1136811393 useDh = 1 ;
@@ -11923,6 +11948,15 @@ int SendKexDhInit(WOLFSSH* ssh)
1192311948 generatorSz = dhGeneratorSz ;
1192411949 break ;
1192511950#endif
11951+ #ifndef WOLFSSH_NO_DH_GROUP14_SHA256
11952+ case ID_DH_GROUP14_SHA256 :
11953+ ssh -> handshake -> useDh = 1 ;
11954+ primeGroup = dhPrimeGroup14 ;
11955+ primeGroupSz = dhPrimeGroup14Sz ;
11956+ generator = dhGenerator ;
11957+ generatorSz = dhGeneratorSz ;
11958+ break ;
11959+ #endif
1192611960#ifndef WOLFSSH_NO_DH_GEX_SHA256
1192711961 case ID_DH_GEX_SHA256 :
1192811962 ssh -> handshake -> useDh = 1 ;
0 commit comments