mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Support ECDH key exchange using the 'curve25519' curve.
This is the kex protocol id "curve25519-sha256@libssh.org", so called because it's over the prime field of order 2^255 - 19. Arithmetic in this curve is done using the Montgomery representation, rather than the Weierstrass representation. So 'struct ec_curve' has grown a discriminant field and a union of subtypes.
This commit is contained in:

committed by
Simon Tatham

parent
7d6bf4a6ca
commit
541abf9258
9
ssh.c
9
ssh.c
@ -6845,14 +6845,7 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen,
|
||||
ssh->kex->hash->text_name);
|
||||
ssh->pkt_kctx = SSH2_PKTCTX_ECDHKEX;
|
||||
|
||||
s->eckey = NULL;
|
||||
if (!strcmp(ssh->kex->name, "ecdh-sha2-nistp256")) {
|
||||
s->eckey = ssh_ecdhkex_newkey(ec_p256());
|
||||
} else if (!strcmp(ssh->kex->name, "ecdh-sha2-nistp384")) {
|
||||
s->eckey = ssh_ecdhkex_newkey(ec_p384());
|
||||
} else if (!strcmp(ssh->kex->name, "ecdh-sha2-nistp521")) {
|
||||
s->eckey = ssh_ecdhkex_newkey(ec_p521());
|
||||
}
|
||||
s->eckey = ssh_ecdhkex_newkey(ssh->kex->name);
|
||||
if (!s->eckey) {
|
||||
bombout(("Unable to generate key for ECDH"));
|
||||
crStopV;
|
||||
|
Reference in New Issue
Block a user