Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/ssh
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2022-08-29 09:44:39 +0300
committerSimon Tatham <anakin@pobox.com>2022-08-30 20:09:39 +0300
commit031d86ed5ba4dd4f7b61af483a20f48f7811f2ab (patch)
tree030293db74ab49a4093ba99c3068587168756cfa /ssh
parentb88057d09dd84d8b8bba1af391d397ab28106d50 (diff)
Add RFC8268 / RFC3126 Diffie-Hellman group{15,16,17,18}.
These are a new set of larger integer Diffie-Hellman fixed groups, using SHA-512 as the hash.
Diffstat (limited to 'ssh')
-rw-r--r--ssh/transport2.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/ssh/transport2.c b/ssh/transport2.c
index aba8cd0b..2fd8f65d 100644
--- a/ssh/transport2.c
+++ b/ssh/transport2.c
@@ -508,7 +508,7 @@ static void ssh2_write_kexinit_lists(
bool warn;
int n_preferred_kex;
- const ssh_kexes *preferred_kex[KEX_MAX + 1]; /* +1 for GSSAPI */
+ const ssh_kexes *preferred_kex[KEX_MAX + 2]; /* +2 for GSSAPI */
int n_preferred_hk;
int preferred_hk[HK_MAX];
int n_preferred_ciphers;
@@ -523,14 +523,32 @@ static void ssh2_write_kexinit_lists(
* Set up the preferred key exchange. (NULL => warn below here)
*/
n_preferred_kex = 0;
- if (can_gssapi_keyex)
+ if (can_gssapi_keyex) {
+ preferred_kex[n_preferred_kex++] = &ssh_gssk5_sha2_kex;
preferred_kex[n_preferred_kex++] = &ssh_gssk5_sha1_kex;
+ }
for (i = 0; i < KEX_MAX; i++) {
switch (conf_get_int_int(conf, CONF_ssh_kexlist, i)) {
case KEX_DHGEX:
preferred_kex[n_preferred_kex++] =
&ssh_diffiehellman_gex;
break;
+ case KEX_DHGROUP18:
+ preferred_kex[n_preferred_kex++] =
+ &ssh_diffiehellman_group18;
+ break;
+ case KEX_DHGROUP17:
+ preferred_kex[n_preferred_kex++] =
+ &ssh_diffiehellman_group17;
+ break;
+ case KEX_DHGROUP16:
+ preferred_kex[n_preferred_kex++] =
+ &ssh_diffiehellman_group16;
+ break;
+ case KEX_DHGROUP15:
+ preferred_kex[n_preferred_kex++] =
+ &ssh_diffiehellman_group15;
+ break;
case KEX_DHGROUP14:
preferred_kex[n_preferred_kex++] =
&ssh_diffiehellman_group14;