summaryrefslogtreecommitdiff
path: root/kex.h
diff options
context:
space:
mode:
authorSimon Wilkinson <simon@sxw.org.uk>2014-02-09 16:09:48 +0000
committerColin Watson <cjwatson@debian.org>2018-10-20 22:54:00 +0100
commit72b1d308e6400194ef6e4e7dd45bfa48fa39b5e6 (patch)
tree2a3b57ae5446f4273804064ccc42659adfc2a3b2 /kex.h
parent3d246f10429fc9a37b98eabef94fe8dc7c61002b (diff)
GSSAPI key exchange support
This patch has been rejected upstream: "None of the OpenSSH developers are in favour of adding this, and this situation has not changed for several years. This is not a slight on Simon's patch, which is of fine quality, but just that a) we don't trust GSSAPI implementations that much and b) we don't like adding new KEX since they are pre-auth attack surface. This one is particularly scary, since it requires hooks out to typically root-owned system resources." However, quite a lot of people rely on this in Debian, and it's better to have it merged into the main openssh package rather than having separate -krb5 packages (as we used to have). It seems to have a generally good security history. Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=1242 Last-Updated: 2018-10-20 Patch-Name: gssapi.patch
Diffstat (limited to 'kex.h')
-rw-r--r--kex.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/kex.h b/kex.h
index 593de1208..4e5ead839 100644
--- a/kex.h
+++ b/kex.h
@@ -100,6 +100,9 @@ enum kex_exchange {
100 KEX_DH_GEX_SHA256, 100 KEX_DH_GEX_SHA256,
101 KEX_ECDH_SHA2, 101 KEX_ECDH_SHA2,
102 KEX_C25519_SHA256, 102 KEX_C25519_SHA256,
103 KEX_GSS_GRP1_SHA1,
104 KEX_GSS_GRP14_SHA1,
105 KEX_GSS_GEX_SHA1,
103 KEX_MAX 106 KEX_MAX
104}; 107};
105 108
@@ -148,6 +151,12 @@ struct kex {
148 u_int flags; 151 u_int flags;
149 int hash_alg; 152 int hash_alg;
150 int ec_nid; 153 int ec_nid;
154#ifdef GSSAPI
155 int gss_deleg_creds;
156 int gss_trust_dns;
157 char *gss_host;
158 char *gss_client;
159#endif
151 char *client_version_string; 160 char *client_version_string;
152 char *server_version_string; 161 char *server_version_string;
153 char *failed_choice; 162 char *failed_choice;
@@ -198,6 +207,11 @@ int kexecdh_server(struct ssh *);
198int kexc25519_client(struct ssh *); 207int kexc25519_client(struct ssh *);
199int kexc25519_server(struct ssh *); 208int kexc25519_server(struct ssh *);
200 209
210#ifdef GSSAPI
211int kexgss_client(struct ssh *);
212int kexgss_server(struct ssh *);
213#endif
214
201int kex_dh_hash(int, const char *, const char *, 215int kex_dh_hash(int, const char *, const char *,
202 const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, 216 const u_char *, size_t, const u_char *, size_t, const u_char *, size_t,
203 const BIGNUM *, const BIGNUM *, const BIGNUM *, u_char *, size_t *); 217 const BIGNUM *, const BIGNUM *, const BIGNUM *, u_char *, size_t *);