mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 09:12:24 +00:00
Add support for diffie-hellman-group-exchange-sha256. Tested against a
patched OpenSSH server. This is controlled by the same user settings as diffie-hellman-group-exchange-sha1, which may not be optimal, especially given that they're both referred to as dh-gex-sha1 in saved sessions. [originally from svn r6272]
This commit is contained in:
parent
7d800b7c2a
commit
9131914278
2
Recipe
2
Recipe
@ -213,7 +213,7 @@ NONSSH = telnet raw rlogin ldisc pinger
|
|||||||
# SSH back end (putty, plink, pscp, psftp).
|
# SSH back end (putty, plink, pscp, psftp).
|
||||||
SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf
|
SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf
|
||||||
+ sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd
|
+ sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd
|
||||||
+ sshaes sshsh512 sshbn wildcard pinger ssharcf
|
+ sshaes sshsh256 sshsh512 sshbn wildcard pinger ssharcf
|
||||||
WINSSH = SSH winnoise winpgntc
|
WINSSH = SSH winnoise winpgntc
|
||||||
UXSSH = SSH uxnoise uxagentc
|
UXSSH = SSH uxnoise uxagentc
|
||||||
MACSSH = SSH macnoise
|
MACSSH = SSH macnoise
|
||||||
|
4
ssh.c
4
ssh.c
@ -705,7 +705,7 @@ struct ssh_tag {
|
|||||||
void *cs_comp_ctx, *sc_comp_ctx;
|
void *cs_comp_ctx, *sc_comp_ctx;
|
||||||
const struct ssh_kex *kex;
|
const struct ssh_kex *kex;
|
||||||
const struct ssh_signkey *hostkey;
|
const struct ssh_signkey *hostkey;
|
||||||
unsigned char v2_session_id[20];
|
unsigned char v2_session_id[32];
|
||||||
int v2_session_id_len;
|
int v2_session_id_len;
|
||||||
void *kex_ctx;
|
void *kex_ctx;
|
||||||
|
|
||||||
@ -4994,7 +4994,7 @@ static int do_ssh2_transport(Ssh ssh, void *vin, int inlen,
|
|||||||
char *hostkeydata, *sigdata, *keystr, *fingerprint;
|
char *hostkeydata, *sigdata, *keystr, *fingerprint;
|
||||||
int hostkeylen, siglen;
|
int hostkeylen, siglen;
|
||||||
void *hkey; /* actual host key */
|
void *hkey; /* actual host key */
|
||||||
unsigned char exchange_hash[20];
|
unsigned char exchange_hash[32];
|
||||||
int n_preferred_kex;
|
int n_preferred_kex;
|
||||||
const struct ssh_kexes *preferred_kex[KEX_MAX];
|
const struct ssh_kexes *preferred_kex[KEX_MAX];
|
||||||
int n_preferred_ciphers;
|
int n_preferred_ciphers;
|
||||||
|
6
sshdh.c
6
sshdh.c
@ -74,12 +74,18 @@ const struct ssh_kexes ssh_diffiehellman_group14 = {
|
|||||||
group14_list
|
group14_list
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct ssh_kex ssh_diffiehellman_gex_sha256 = {
|
||||||
|
"diffie-hellman-group-exchange-sha256", NULL,
|
||||||
|
NULL, NULL, 0, 0, &ssh_sha256
|
||||||
|
};
|
||||||
|
|
||||||
static const struct ssh_kex ssh_diffiehellman_gex_sha1 = {
|
static const struct ssh_kex ssh_diffiehellman_gex_sha1 = {
|
||||||
"diffie-hellman-group-exchange-sha1", NULL,
|
"diffie-hellman-group-exchange-sha1", NULL,
|
||||||
NULL, NULL, 0, 0, &ssh_sha1
|
NULL, NULL, 0, 0, &ssh_sha1
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ssh_kex *const gex_list[] = {
|
static const struct ssh_kex *const gex_list[] = {
|
||||||
|
&ssh_diffiehellman_gex_sha256,
|
||||||
&ssh_diffiehellman_gex_sha1
|
&ssh_diffiehellman_gex_sha1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user