version 1.371, 2023/12/18 14:45:49 |
version 1.372, 2024/01/08 00:34:34 |
|
|
const struct ssh_conn_info *cinfo) |
const struct ssh_conn_info *cinfo) |
{ |
{ |
char *myproposal[PROPOSAL_MAX]; |
char *myproposal[PROPOSAL_MAX]; |
char *s, *all_key, *hkalgs = NULL; |
char *all_key, *hkalgs = NULL; |
int r, use_known_hosts_order = 0; |
int r, use_known_hosts_order = 0; |
|
|
xxx_host = host; |
xxx_host = host; |
|
|
fatal_fr(r, "kex_assemble_namelist"); |
fatal_fr(r, "kex_assemble_namelist"); |
free(all_key); |
free(all_key); |
|
|
if ((s = kex_names_cat(options.kex_algorithms, "ext-info-c")) == NULL) |
|
fatal_f("kex_names_cat"); |
|
|
|
if (use_known_hosts_order) |
if (use_known_hosts_order) |
hkalgs = order_hostkeyalgs(host, hostaddr, port, cinfo); |
hkalgs = order_hostkeyalgs(host, hostaddr, port, cinfo); |
|
|
kex_proposal_populate_entries(ssh, myproposal, s, options.ciphers, |
kex_proposal_populate_entries(ssh, myproposal, |
options.macs, compression_alg_list(options.compression), |
options.kex_algorithms, options.ciphers, options.macs, |
|
compression_alg_list(options.compression), |
hkalgs ? hkalgs : options.hostkeyalgorithms); |
hkalgs ? hkalgs : options.hostkeyalgorithms); |
|
|
free(hkalgs); |
free(hkalgs); |
|
|
ssh->kex->verify_host_key=&verify_host_key_callback; |
ssh->kex->verify_host_key=&verify_host_key_callback; |
|
|
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &ssh->kex->done); |
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &ssh->kex->done); |
|
kex_proposal_free_entries(myproposal); |
|
|
/* remove ext-info from the KEX proposals for rekeying */ |
|
free(myproposal[PROPOSAL_KEX_ALGS]); |
|
myproposal[PROPOSAL_KEX_ALGS] = |
|
compat_kex_proposal(ssh, options.kex_algorithms); |
|
if ((r = kex_prop2buf(ssh->kex->my, myproposal)) != 0) |
|
fatal_r(r, "kex_prop2buf"); |
|
|
|
#ifdef DEBUG_KEXDH |
#ifdef DEBUG_KEXDH |
/* send 1st encrypted/maced/compressed message */ |
/* send 1st encrypted/maced/compressed message */ |
if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 || |
if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 || |
|
|
(r = ssh_packet_write_wait(ssh)) != 0) |
(r = ssh_packet_write_wait(ssh)) != 0) |
fatal_fr(r, "send packet"); |
fatal_fr(r, "send packet"); |
#endif |
#endif |
kex_proposal_free_entries(myproposal); |
|
} |
} |
|
|
/* |
/* |