version 1.90, 2013/04/19 12:07:08 |
version 1.91, 2013/05/17 00:13:13 |
|
|
(p = strsep(&cp, ","))) { |
(p = strsep(&cp, ","))) { |
if (kex_alg_by_name(p) == NULL) { |
if (kex_alg_by_name(p) == NULL) { |
error("Unsupported KEX algorithm \"%.100s\"", p); |
error("Unsupported KEX algorithm \"%.100s\"", p); |
xfree(s); |
free(s); |
return 0; |
return 0; |
} |
} |
} |
} |
debug3("kex names ok: [%s]", names); |
debug3("kex names ok: [%s]", names); |
xfree(s); |
free(s); |
return 1; |
return 1; |
} |
} |
|
|
|
|
u_int i; |
u_int i; |
|
|
for (i = 0; i < PROPOSAL_MAX; i++) |
for (i = 0; i < PROPOSAL_MAX; i++) |
xfree(proposal[i]); |
free(proposal[i]); |
xfree(proposal); |
free(proposal); |
} |
} |
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
|
|
buffer_clear(&kex->peer); |
buffer_clear(&kex->peer); |
/* buffer_clear(&kex->my); */ |
/* buffer_clear(&kex->my); */ |
kex->flags &= ~KEX_INIT_SENT; |
kex->flags &= ~KEX_INIT_SENT; |
xfree(kex->name); |
free(kex->name); |
kex->name = NULL; |
kex->name = NULL; |
} |
} |
|
|
|
|
for (i = 0; i < KEX_COOKIE_LEN; i++) |
for (i = 0; i < KEX_COOKIE_LEN; i++) |
packet_get_char(); |
packet_get_char(); |
for (i = 0; i < PROPOSAL_MAX; i++) |
for (i = 0; i < PROPOSAL_MAX; i++) |
xfree(packet_get_string(NULL)); |
free(packet_get_string(NULL)); |
/* |
/* |
* XXX RFC4253 sec 7: "each side MAY guess" - currently no supported |
* XXX RFC4253 sec 7: "each side MAY guess" - currently no supported |
* KEX method has the server move first, but a server might be using |
* KEX method has the server move first, but a server might be using |
|
|
k->hostkey_type = key_type_from_name(hostkeyalg); |
k->hostkey_type = key_type_from_name(hostkeyalg); |
if (k->hostkey_type == KEY_UNSPEC) |
if (k->hostkey_type == KEY_UNSPEC) |
fatal("bad hostkey alg '%s'", hostkeyalg); |
fatal("bad hostkey alg '%s'", hostkeyalg); |
xfree(hostkeyalg); |
free(hostkeyalg); |
} |
} |
|
|
static int |
static int |
|
|
roaming = match_list(KEX_RESUME, peer[PROPOSAL_KEX_ALGS], NULL); |
roaming = match_list(KEX_RESUME, peer[PROPOSAL_KEX_ALGS], NULL); |
if (roaming) { |
if (roaming) { |
kex->roaming = 1; |
kex->roaming = 1; |
xfree(roaming); |
free(roaming); |
} |
} |
} |
} |
|
|