View | Details | Raw Unified | Return to bug 2680
Collapse All | Expand All

(-)a/kex.c (-1 / +1 lines)
Lines 348-354 kex_send_ext_info(struct ssh *ssh) Link Here
348
	int r;
348
	int r;
349
	char *algs;
349
	char *algs;
350
350
351
	if ((algs = sshkey_alg_list(0, 1, ',')) == NULL)
351
	if ((algs = sshkey_alg_list(0, 1, 1, ',')) == NULL)
352
		return SSH_ERR_ALLOC_FAIL;
352
		return SSH_ERR_ALLOC_FAIL;
353
	if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 ||
353
	if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 ||
354
	    (r = sshpkt_put_u32(ssh, 1)) != 0 ||
354
	    (r = sshpkt_put_u32(ssh, 1)) != 0 ||
(-)a/ssh.c (-3 / +3 lines)
Lines 684-694 main(int ac, char **av) Link Here
684
			else if (strcmp(optarg, "kex") == 0)
684
			else if (strcmp(optarg, "kex") == 0)
685
				cp = kex_alg_list('\n');
685
				cp = kex_alg_list('\n');
686
			else if (strcmp(optarg, "key") == 0)
686
			else if (strcmp(optarg, "key") == 0)
687
				cp = sshkey_alg_list(0, 0, '\n');
687
				cp = sshkey_alg_list(0, 0, 0, '\n');
688
			else if (strcmp(optarg, "key-cert") == 0)
688
			else if (strcmp(optarg, "key-cert") == 0)
689
				cp = sshkey_alg_list(1, 0, '\n');
689
				cp = sshkey_alg_list(1, 0, 0, '\n');
690
			else if (strcmp(optarg, "key-plain") == 0)
690
			else if (strcmp(optarg, "key-plain") == 0)
691
				cp = sshkey_alg_list(0, 1, '\n');
691
				cp = sshkey_alg_list(0, 1, 0, '\n');
692
			else if (strcmp(optarg, "protocol-version") == 0) {
692
			else if (strcmp(optarg, "protocol-version") == 0) {
693
#ifdef WITH_SSH1
693
#ifdef WITH_SSH1
694
				cp = xstrdup("1\n2");
694
				cp = xstrdup("1\n2");
(-)a/sshkey.c (-2 / +4 lines)
Lines 197-210 sshkey_ecdsa_nid_from_name(const char *name) Link Here
197
}
197
}
198
198
199
char *
199
char *
200
sshkey_alg_list(int certs_only, int plain_only, char sep)
200
sshkey_alg_list(int certs_only, int plain_only, int include_sigonly, char sep)
201
{
201
{
202
	char *tmp, *ret = NULL;
202
	char *tmp, *ret = NULL;
203
	size_t nlen, rlen = 0;
203
	size_t nlen, rlen = 0;
204
	const struct keytype *kt;
204
	const struct keytype *kt;
205
205
206
	for (kt = keytypes; kt->type != -1; kt++) {
206
	for (kt = keytypes; kt->type != -1; kt++) {
207
		if (kt->name == NULL || kt->sigonly)
207
		if (kt->name == NULL)
208
			continue;
209
		if (!include_sigonly && kt->sigonly)
208
			continue;
210
			continue;
209
		if ((certs_only && !kt->cert) || (plain_only && kt->cert))
211
		if ((certs_only && !kt->cert) || (plain_only && kt->cert))
210
			continue;
212
			continue;
(-)a/sshkey.h (-1 / +1 lines)
Lines 156-162 int sshkey_ec_validate_private(const EC_KEY *); Link Here
156
const char	*sshkey_ssh_name(const struct sshkey *);
156
const char	*sshkey_ssh_name(const struct sshkey *);
157
const char	*sshkey_ssh_name_plain(const struct sshkey *);
157
const char	*sshkey_ssh_name_plain(const struct sshkey *);
158
int		 sshkey_names_valid2(const char *, int);
158
int		 sshkey_names_valid2(const char *, int);
159
char		*sshkey_alg_list(int, int, char);
159
char		*sshkey_alg_list(int, int, int, char);
160
160
161
int	 sshkey_from_blob(const u_char *, size_t, struct sshkey **);
161
int	 sshkey_from_blob(const u_char *, size_t, struct sshkey **);
162
int	 sshkey_fromb(struct sshbuf *, struct sshkey **);
162
int	 sshkey_fromb(struct sshbuf *, struct sshkey **);

Return to bug 2680