version 1.53, 2003/02/02 10:56:08 |
version 1.54, 2003/02/16 17:09:57 |
|
|
|
|
#define KEX_COOKIE_LEN 16 |
#define KEX_COOKIE_LEN 16 |
|
|
/* Use privilege separation for sshd */ |
|
int use_privsep; |
|
struct monitor *pmonitor; |
|
|
|
|
|
/* prototype */ |
/* prototype */ |
static void kex_kexinit_finish(Kex *); |
static void kex_kexinit_finish(Kex *); |
static void kex_choose_conf(Kex *); |
static void kex_choose_conf(Kex *); |
|
|
|
|
kex_choose_conf(kex); |
kex_choose_conf(kex); |
|
|
switch (kex->kex_type) { |
if (kex->kex_type >= 0 && kex->kex_type < KEX_MAX && |
case DH_GRP1_SHA1: |
kex->kex[kex->kex_type] != NULL) { |
kexdh(kex); |
(kex->kex[kex->kex_type])(kex); |
break; |
} else { |
case DH_GEX_SHA1: |
|
kexgex(kex); |
|
break; |
|
default: |
|
fatal("Unsupported key exchange %d", kex->kex_type); |
fatal("Unsupported key exchange %d", kex->kex_type); |
} |
} |
} |
} |
|
|
if (k->name == NULL) |
if (k->name == NULL) |
fatal("no kex alg"); |
fatal("no kex alg"); |
if (strcmp(k->name, KEX_DH1) == 0) { |
if (strcmp(k->name, KEX_DH1) == 0) { |
k->kex_type = DH_GRP1_SHA1; |
k->kex_type = KEX_DH_GRP1_SHA1; |
} else if (strcmp(k->name, KEX_DHGEX) == 0) { |
} else if (strcmp(k->name, KEX_DHGEX) == 0) { |
k->kex_type = DH_GEX_SHA1; |
k->kex_type = KEX_DH_GEX_SHA1; |
} else |
} else |
fatal("bad kex alg %s", k->name); |
fatal("bad kex alg %s", k->name); |
} |
} |