summaryrefslogtreecommitdiffstats
path: root/kex.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2016-09-12 23:31:27 +0000
committerDamien Miller <djm@mindrot.org>2016-09-13 09:33:24 +1000
commit130f5df4fa37cace8c079dccb690e5cafbf00751 (patch)
tree6be59a00f7c45be11ffc8d40fa79a7c4a57e0a2f /kex.c
parent8f750ccfc07acb8aa98be5a5dd935033a6468cfd (diff)
upstream commit
list all supported signature algorithms in the server-sig-algs Reported by mb AT smartftp.com in bz#2547 and (independantly) Ron Frederick; ok markus@ Upstream-ID: ddf702d721f54646b11ef2cee6d916666cb685cd
Diffstat (limited to 'kex.c')
-rw-r--r--kex.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/kex.c b/kex.c
index 3f08720e..f4c130f1 100644
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kex.c,v 1.120 2016/09/12 01:22:38 deraadt Exp $ */
+/* $OpenBSD: kex.c,v 1.121 2016/09/12 23:31:27 djm Exp $ */
/*
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
*
@@ -340,13 +340,20 @@ static int
kex_send_ext_info(struct ssh *ssh)
{
int r;
+ char *algs;
+ if ((algs = sshkey_alg_list(0, 1, ',')) == NULL)
+ return SSH_ERR_ALLOC_FAIL;
if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 ||
(r = sshpkt_put_u32(ssh, 1)) != 0 ||
(r = sshpkt_put_cstring(ssh, "server-sig-algs")) != 0 ||
- (r = sshpkt_put_cstring(ssh, "rsa-sha2-256,rsa-sha2-512")) != 0 ||
+ (r = sshpkt_put_cstring(ssh, algs)) != 0 ||
(r = sshpkt_send(ssh)) != 0)
- return r;
+ goto out;
+ /* success */
+ r = 0;
+ out:
+ free(algs);
return 0;
}