version 1.69, 2006/03/20 18:48:34 |
version 1.70, 2006/03/25 00:05:41 |
|
|
int i; |
int i; |
char **proposal; |
char **proposal; |
|
|
proposal = xmalloc(PROPOSAL_MAX * sizeof(char *)); |
proposal = xcalloc(PROPOSAL_MAX, sizeof(char *)); |
|
|
buffer_init(&b); |
buffer_init(&b); |
buffer_append(&b, buffer_ptr(raw), buffer_len(raw)); |
buffer_append(&b, buffer_ptr(raw), buffer_len(raw)); |
|
|
{ |
{ |
Kex *kex; |
Kex *kex; |
|
|
kex = xmalloc(sizeof(*kex)); |
kex = xcalloc(1, sizeof(*kex)); |
memset(kex, 0, sizeof(*kex)); |
|
buffer_init(&kex->peer); |
buffer_init(&kex->peer); |
buffer_init(&kex->my); |
buffer_init(&kex->my); |
kex_prop2buf(&kex->my, proposal); |
kex_prop2buf(&kex->my, proposal); |
|
|
|
|
/* Algorithm Negotiation */ |
/* Algorithm Negotiation */ |
for (mode = 0; mode < MODE_MAX; mode++) { |
for (mode = 0; mode < MODE_MAX; mode++) { |
newkeys = xmalloc(sizeof(*newkeys)); |
newkeys = xcalloc(1, sizeof(*newkeys)); |
memset(newkeys, 0, sizeof(*newkeys)); |
|
kex->newkeys[mode] = newkeys; |
kex->newkeys[mode] = newkeys; |
ctos = (!kex->server && mode == MODE_OUT) || (kex->server && mode == MODE_IN); |
ctos = (!kex->server && mode == MODE_OUT) || (kex->server && mode == MODE_IN); |
nenc = ctos ? PROPOSAL_ENC_ALGS_CTOS : PROPOSAL_ENC_ALGS_STOC; |
nenc = ctos ? PROPOSAL_ENC_ALGS_CTOS : PROPOSAL_ENC_ALGS_STOC; |