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>2014-02-10 02:40:08 +0000
commitcd404114ded78fc51d5d9cbd458d55c9b2f67daa (patch)
treedf7a424d9301b69af906b50d550bfce6e6e2c5f3 /kex.h
parent9a975a9faed7c4f334e8c8490db3e77e102f2b21 (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: 2014-02-10 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 1aa3ec26a..8fbcb2b79 100644
--- a/kex.h
+++ b/kex.h
@@ -76,6 +76,9 @@ enum kex_exchange {
76 KEX_DH_GEX_SHA256, 76 KEX_DH_GEX_SHA256,
77 KEX_ECDH_SHA2, 77 KEX_ECDH_SHA2,
78 KEX_C25519_SHA256, 78 KEX_C25519_SHA256,
79 KEX_GSS_GRP1_SHA1,
80 KEX_GSS_GRP14_SHA1,
81 KEX_GSS_GEX_SHA1,
79 KEX_MAX 82 KEX_MAX
80}; 83};
81 84
@@ -136,6 +139,12 @@ struct Kex {
136 int flags; 139 int flags;
137 int hash_alg; 140 int hash_alg;
138 int ec_nid; 141 int ec_nid;
142#ifdef GSSAPI
143 int gss_deleg_creds;
144 int gss_trust_dns;
145 char *gss_host;
146 char *gss_client;
147#endif
139 char *client_version_string; 148 char *client_version_string;
140 char *server_version_string; 149 char *server_version_string;
141 int (*verify_host_key)(Key *); 150 int (*verify_host_key)(Key *);
@@ -168,6 +177,11 @@ void kexecdh_server(Kex *);
168void kexc25519_client(Kex *); 177void kexc25519_client(Kex *);
169void kexc25519_server(Kex *); 178void kexc25519_server(Kex *);
170 179
180#ifdef GSSAPI
181void kexgss_client(Kex *);
182void kexgss_server(Kex *);
183#endif
184
171void 185void
172kex_dh_hash(char *, char *, char *, int, char *, int, u_char *, int, 186kex_dh_hash(char *, char *, char *, int, char *, int, u_char *, int,
173 BIGNUM *, BIGNUM *, BIGNUM *, u_char **, u_int *); 187 BIGNUM *, BIGNUM *, BIGNUM *, u_char **, u_int *);