diff options
Diffstat (limited to 'kex.c')
-rw-r--r-- | kex.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -49,6 +49,10 @@ | |||
49 | #include "dispatch.h" | 49 | #include "dispatch.h" |
50 | #include "monitor.h" | 50 | #include "monitor.h" |
51 | 51 | ||
52 | #ifdef GSSAPI | ||
53 | #include "ssh-gss.h" | ||
54 | #endif | ||
55 | |||
52 | #define KEX_COOKIE_LEN 16 | 56 | #define KEX_COOKIE_LEN 16 |
53 | 57 | ||
54 | #if OPENSSL_VERSION_NUMBER >= 0x00907000L | 58 | #if OPENSSL_VERSION_NUMBER >= 0x00907000L |
@@ -323,6 +327,20 @@ choose_kex(Kex *k, char *client, char *server) | |||
323 | k->kex_type = KEX_DH_GEX_SHA256; | 327 | k->kex_type = KEX_DH_GEX_SHA256; |
324 | k->evp_md = evp_ssh_sha256(); | 328 | k->evp_md = evp_ssh_sha256(); |
325 | #endif | 329 | #endif |
330 | #ifdef GSSAPI | ||
331 | } else if (strncmp(k->name, KEX_GSS_GEX_SHA1_ID, | ||
332 | sizeof(KEX_GSS_GEX_SHA1_ID) - 1) == 0) { | ||
333 | k->kex_type = KEX_GSS_GEX_SHA1; | ||
334 | k->evp_md = EVP_sha1(); | ||
335 | } else if (strncmp(k->name, KEX_GSS_GRP1_SHA1_ID, | ||
336 | sizeof(KEX_GSS_GRP1_SHA1_ID) - 1) == 0) { | ||
337 | k->kex_type = KEX_GSS_GRP1_SHA1; | ||
338 | k->evp_md = EVP_sha1(); | ||
339 | } else if (strncmp(k->name, KEX_GSS_GRP14_SHA1_ID, | ||
340 | sizeof(KEX_GSS_GRP14_SHA1_ID) - 1) == 0) { | ||
341 | k->kex_type = KEX_GSS_GRP14_SHA1; | ||
342 | k->evp_md = EVP_sha1(); | ||
343 | #endif | ||
326 | } else | 344 | } else |
327 | fatal("bad kex alg %s", k->name); | 345 | fatal("bad kex alg %s", k->name); |
328 | } | 346 | } |