summaryrefslogtreecommitdiff
path: root/kexecdh.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2010-09-24 22:11:14 +1000
committerDamien Miller <djm@mindrot.org>2010-09-24 22:11:14 +1000
commitd5f62bf280b0798d7009d4424594a648a4e887fb (patch)
tree5f18078ea61f6c5503dc4addfb2f17d13844692c /kexecdh.c
parent603134e077e667b4819effb0e121803842df621f (diff)
- djm@cvs.openbsd.org 2010/09/22 05:01:30
[kex.c kex.h kexecdh.c kexecdhc.c kexecdhs.c readconf.c readconf.h] [servconf.c servconf.h ssh_config.5 sshconnect2.c sshd.c sshd_config.5] add a KexAlgorithms knob to the client and server configuration to allow selection of which key exchange methods are used by ssh(1) and sshd(8) and their order of preference. ok markus@
Diffstat (limited to 'kexecdh.c')
-rw-r--r--kexecdh.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/kexecdh.c b/kexecdh.c
index 4c58a5122..f13f69d3b 100644
--- a/kexecdh.c
+++ b/kexecdh.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexecdh.c,v 1.2 2010/09/09 10:45:45 djm Exp $ */ 1/* $OpenBSD: kexecdh.c,v 1.3 2010/09/22 05:01:29 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2001 Markus Friedl. All rights reserved.
4 * Copyright (c) 2010 Damien Miller. All rights reserved. 4 * Copyright (c) 2010 Damien Miller. All rights reserved.
@@ -48,15 +48,9 @@
48int 48int
49kex_ecdh_name_to_nid(const char *kexname) 49kex_ecdh_name_to_nid(const char *kexname)
50{ 50{
51 int ret;
52
53 if (strlen(kexname) < sizeof(KEX_ECDH_SHA2_STEM) - 1) 51 if (strlen(kexname) < sizeof(KEX_ECDH_SHA2_STEM) - 1)
54 fatal("%s: kexname too short \"%s\"", __func__, kexname); 52 fatal("%s: kexname too short \"%s\"", __func__, kexname);
55 ret = key_curve_name_to_nid(kexname + sizeof(KEX_ECDH_SHA2_STEM) - 1); 53 return key_curve_name_to_nid(kexname + sizeof(KEX_ECDH_SHA2_STEM) - 1);
56 if (ret == -1)
57 fatal("%s: unsupported curve negotiated \"%s\"", __func__,
58 kexname);
59 return ret;
60} 54}
61 55
62const EVP_MD * 56const EVP_MD *
@@ -64,6 +58,8 @@ kex_ecdh_name_to_evpmd(const char *kexname)
64{ 58{
65 int nid = kex_ecdh_name_to_nid(kexname); 59 int nid = kex_ecdh_name_to_nid(kexname);
66 60
61 if (nid == -1)
62 fatal("%s: unsupported ECDH curve \"%s\"", __func__, kexname);
67 return key_ec_nid_to_evpmd(nid); 63 return key_ec_nid_to_evpmd(nid);
68} 64}
69 65