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 | #if OPENSSL_VERSION_NUMBER >= 0x00907000L | 56 | #if OPENSSL_VERSION_NUMBER >= 0x00907000L |
53 | # if defined(HAVE_EVP_SHA256) | 57 | # if defined(HAVE_EVP_SHA256) |
54 | # define evp_ssh_sha256 EVP_sha256 | 58 | # define evp_ssh_sha256 EVP_sha256 |
@@ -325,6 +329,20 @@ choose_kex(Kex *k, char *client, char *server) | |||
325 | k->kex_type = KEX_DH_GEX_SHA256; | 329 | k->kex_type = KEX_DH_GEX_SHA256; |
326 | k->evp_md = evp_ssh_sha256(); | 330 | k->evp_md = evp_ssh_sha256(); |
327 | #endif | 331 | #endif |
332 | #ifdef GSSAPI | ||
333 | } else if (strncmp(k->name, KEX_GSS_GEX_SHA1_ID, | ||
334 | sizeof(KEX_GSS_GEX_SHA1_ID) - 1) == 0) { | ||
335 | k->kex_type = KEX_GSS_GEX_SHA1; | ||
336 | k->evp_md = EVP_sha1(); | ||
337 | } else if (strncmp(k->name, KEX_GSS_GRP1_SHA1_ID, | ||
338 | sizeof(KEX_GSS_GRP1_SHA1_ID) - 1) == 0) { | ||
339 | k->kex_type = KEX_GSS_GRP1_SHA1; | ||
340 | k->evp_md = EVP_sha1(); | ||
341 | } else if (strncmp(k->name, KEX_GSS_GRP14_SHA1_ID, | ||
342 | sizeof(KEX_GSS_GRP14_SHA1_ID) - 1) == 0) { | ||
343 | k->kex_type = KEX_GSS_GRP14_SHA1; | ||
344 | k->evp_md = EVP_sha1(); | ||
345 | #endif | ||
328 | } else | 346 | } else |
329 | fatal("bad kex alg %s", k->name); | 347 | fatal("bad kex alg %s", k->name); |
330 | } | 348 | } |