kex_params
struct kex_params kex_params;
memcpy(kex_params.proposal, myproposal, sizeof(myproposal));
if ((r = ssh_init(&client, 0, &kex_params)) != 0) {
if ((r = ssh_init(&server, 1, &kex_params)) != 0) {
memcpy(kex_params.proposal, myproposal, sizeof(myproposal));
kex_params.proposal[PROPOSAL_KEX_ALGS] = kex;
kex_params.proposal[PROPOSAL_ENC_ALGS_CTOS] = cipher;
kex_params.proposal[PROPOSAL_ENC_ALGS_STOC] = cipher;
kex_params.proposal[PROPOSAL_MAC_ALGS_CTOS] = mac;
kex_params.proposal[PROPOSAL_MAC_ALGS_STOC] = mac;
kex_params.proposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = keyname;
ASSERT_INT_EQ(ssh_init(&client, 0, &kex_params), 0);
ASSERT_INT_EQ(ssh_init(&server, 1, &kex_params), 0);
struct kex_params kex_params;
proposal = kex_params ? kex_params->proposal : myproposal;
ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params)
int ssh_init(struct ssh **, int is_server, struct kex_params *kex_params);