summaryrefslogtreecommitdiff
path: root/ssh-keyscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssh-keyscan.c')
-rw-r--r--ssh-keyscan.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index 8d0a6b8d8..3fabfba14 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keyscan.c,v 1.89 2013/12/06 13:39:49 markus Exp $ */ 1/* $OpenBSD: ssh-keyscan.c,v 1.92 2014/04/29 18:01:49 markus Exp $ */
2/* 2/*
3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. 3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
4 * 4 *
@@ -58,7 +58,7 @@ int ssh_port = SSH_DEFAULT_PORT;
58#define KT_ECDSA 8 58#define KT_ECDSA 8
59#define KT_ED25519 16 59#define KT_ED25519 16
60 60
61int get_keytypes = KT_RSA|KT_ECDSA;/* Get RSA and ECDSA keys by default */ 61int get_keytypes = KT_RSA|KT_ECDSA|KT_ED25519;
62 62
63int hash_hosts = 0; /* Hash hostname on output */ 63int hash_hosts = 0; /* Hash hostname on output */
64 64
@@ -182,6 +182,7 @@ strnnsep(char **stringp, char *delim)
182 return (tok); 182 return (tok);
183} 183}
184 184
185#ifdef WITH_SSH1
185static Key * 186static Key *
186keygrab_ssh1(con *c) 187keygrab_ssh1(con *c)
187{ 188{
@@ -215,6 +216,7 @@ keygrab_ssh1(con *c)
215 216
216 return (rsa); 217 return (rsa);
217} 218}
219#endif
218 220
219static int 221static int
220hostjump(Key *hostkey) 222hostjump(Key *hostkey)
@@ -242,6 +244,7 @@ ssh2_capable(int remote_major, int remote_minor)
242static Key * 244static Key *
243keygrab_ssh2(con *c) 245keygrab_ssh2(con *c)
244{ 246{
247 char *myproposal[PROPOSAL_MAX] = { KEX_CLIENT };
245 int j; 248 int j;
246 249
247 packet_set_connection(c->c_fd, c->c_fd); 250 packet_set_connection(c->c_fd, c->c_fd);
@@ -252,11 +255,13 @@ keygrab_ssh2(con *c)
252 (c->c_keytype == KT_ED25519 ? "ssh-ed25519" : 255 (c->c_keytype == KT_ED25519 ? "ssh-ed25519" :
253 "ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521")); 256 "ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521"));
254 c->c_kex = kex_setup(myproposal); 257 c->c_kex = kex_setup(myproposal);
258#ifdef WITH_OPENSSL
255 c->c_kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; 259 c->c_kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client;
256 c->c_kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; 260 c->c_kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client;
257 c->c_kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; 261 c->c_kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
258 c->c_kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; 262 c->c_kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
259 c->c_kex->kex[KEX_ECDH_SHA2] = kexecdh_client; 263 c->c_kex->kex[KEX_ECDH_SHA2] = kexecdh_client;
264#endif
260 c->c_kex->kex[KEX_C25519_SHA256] = kexc25519_client; 265 c->c_kex->kex[KEX_C25519_SHA256] = kexc25519_client;
261 c->c_kex->verify_host_key = hostjump; 266 c->c_kex->verify_host_key = hostjump;
262 267
@@ -506,10 +511,12 @@ conread(int s)
506 c->c_data = xmalloc(c->c_len); 511 c->c_data = xmalloc(c->c_len);
507 c->c_status = CS_KEYS; 512 c->c_status = CS_KEYS;
508 break; 513 break;
514#ifdef WITH_SSH1
509 case CS_KEYS: 515 case CS_KEYS:
510 keyprint(c, keygrab_ssh1(c)); 516 keyprint(c, keygrab_ssh1(c));
511 confree(s); 517 confree(s);
512 return; 518 return;
519#endif
513 default: 520 default:
514 fatal("conread: invalid status %d", c->c_status); 521 fatal("conread: invalid status %d", c->c_status);
515 break; 522 break;