diff options
Diffstat (limited to 'kex.c')
-rw-r--r-- | kex.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -50,6 +50,10 @@ | |||
50 | #include "monitor.h" | 50 | #include "monitor.h" |
51 | #include "roaming.h" | 51 | #include "roaming.h" |
52 | 52 | ||
53 | #ifdef GSSAPI | ||
54 | #include "ssh-gss.h" | ||
55 | #endif | ||
56 | |||
53 | #if OPENSSL_VERSION_NUMBER >= 0x00907000L | 57 | #if OPENSSL_VERSION_NUMBER >= 0x00907000L |
54 | # if defined(HAVE_EVP_SHA256) | 58 | # if defined(HAVE_EVP_SHA256) |
55 | # define evp_ssh_sha256 EVP_sha256 | 59 | # define evp_ssh_sha256 EVP_sha256 |
@@ -369,6 +373,20 @@ choose_kex(Kex *k, char *client, char *server) | |||
369 | k->kex_type = KEX_ECDH_SHA2; | 373 | k->kex_type = KEX_ECDH_SHA2; |
370 | k->evp_md = kex_ecdh_name_to_evpmd(k->name); | 374 | k->evp_md = kex_ecdh_name_to_evpmd(k->name); |
371 | #endif | 375 | #endif |
376 | #ifdef GSSAPI | ||
377 | } else if (strncmp(k->name, KEX_GSS_GEX_SHA1_ID, | ||
378 | sizeof(KEX_GSS_GEX_SHA1_ID) - 1) == 0) { | ||
379 | k->kex_type = KEX_GSS_GEX_SHA1; | ||
380 | k->evp_md = EVP_sha1(); | ||
381 | } else if (strncmp(k->name, KEX_GSS_GRP1_SHA1_ID, | ||
382 | sizeof(KEX_GSS_GRP1_SHA1_ID) - 1) == 0) { | ||
383 | k->kex_type = KEX_GSS_GRP1_SHA1; | ||
384 | k->evp_md = EVP_sha1(); | ||
385 | } else if (strncmp(k->name, KEX_GSS_GRP14_SHA1_ID, | ||
386 | sizeof(KEX_GSS_GRP14_SHA1_ID) - 1) == 0) { | ||
387 | k->kex_type = KEX_GSS_GRP14_SHA1; | ||
388 | k->evp_md = EVP_sha1(); | ||
389 | #endif | ||
372 | } else | 390 | } else |
373 | fatal("bad kex alg %s", k->name); | 391 | fatal("bad kex alg %s", k->name); |
374 | } | 392 | } |