diff options
-rw-r--r-- | auth2-chall.c | 5 | ||||
-rw-r--r-- | auth2-gss.c | 14 | ||||
-rw-r--r-- | auth2.c | 14 | ||||
-rw-r--r-- | packet.h | 5 |
4 files changed, 25 insertions, 13 deletions
diff --git a/auth2-chall.c b/auth2-chall.c index 4be421287..80f212287 100644 --- a/auth2-chall.c +++ b/auth2-chall.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-chall.c,v 1.45 2017/05/30 08:49:58 markus Exp $ */ | 1 | /* $OpenBSD: auth2-chall.c,v 1.46 2017/05/30 14:18:15 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2001 Per Allansson. All rights reserved. | 4 | * Copyright (c) 2001 Per Allansson. All rights reserved. |
@@ -287,7 +287,8 @@ send_userauth_info_request(Authctxt *authctxt) | |||
287 | static int | 287 | static int |
288 | input_userauth_info_response(int type, u_int32_t seq, void *ctxt) | 288 | input_userauth_info_response(int type, u_int32_t seq, void *ctxt) |
289 | { | 289 | { |
290 | Authctxt *authctxt = ctxt; | 290 | struct ssh *ssh = ctxt; |
291 | Authctxt *authctxt = ssh->authctxt; | ||
291 | KbdintAuthctxt *kbdintctxt; | 292 | KbdintAuthctxt *kbdintctxt; |
292 | int authenticated = 0, res; | 293 | int authenticated = 0, res; |
293 | u_int i, nresp; | 294 | u_int i, nresp; |
diff --git a/auth2-gss.c b/auth2-gss.c index 1ca835773..5bfcb9b46 100644 --- a/auth2-gss.c +++ b/auth2-gss.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-gss.c,v 1.22 2015/01/19 20:07:45 markus Exp $ */ | 1 | /* $OpenBSD: auth2-gss.c,v 1.23 2017/05/30 14:18:15 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. | 4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. |
@@ -129,7 +129,8 @@ userauth_gssapi(Authctxt *authctxt) | |||
129 | static int | 129 | static int |
130 | input_gssapi_token(int type, u_int32_t plen, void *ctxt) | 130 | input_gssapi_token(int type, u_int32_t plen, void *ctxt) |
131 | { | 131 | { |
132 | Authctxt *authctxt = ctxt; | 132 | struct ssh *ssh = ctxt; |
133 | Authctxt *authctxt = ssh->authctxt; | ||
133 | Gssctxt *gssctxt; | 134 | Gssctxt *gssctxt; |
134 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; | 135 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; |
135 | gss_buffer_desc recv_tok; | 136 | gss_buffer_desc recv_tok; |
@@ -184,7 +185,8 @@ input_gssapi_token(int type, u_int32_t plen, void *ctxt) | |||
184 | static int | 185 | static int |
185 | input_gssapi_errtok(int type, u_int32_t plen, void *ctxt) | 186 | input_gssapi_errtok(int type, u_int32_t plen, void *ctxt) |
186 | { | 187 | { |
187 | Authctxt *authctxt = ctxt; | 188 | struct ssh *ssh = ctxt; |
189 | Authctxt *authctxt = ssh->authctxt; | ||
188 | Gssctxt *gssctxt; | 190 | Gssctxt *gssctxt; |
189 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; | 191 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; |
190 | gss_buffer_desc recv_tok; | 192 | gss_buffer_desc recv_tok; |
@@ -225,7 +227,8 @@ input_gssapi_errtok(int type, u_int32_t plen, void *ctxt) | |||
225 | static int | 227 | static int |
226 | input_gssapi_exchange_complete(int type, u_int32_t plen, void *ctxt) | 228 | input_gssapi_exchange_complete(int type, u_int32_t plen, void *ctxt) |
227 | { | 229 | { |
228 | Authctxt *authctxt = ctxt; | 230 | struct ssh *ssh = ctxt; |
231 | Authctxt *authctxt = ssh->authctxt; | ||
229 | int authenticated; | 232 | int authenticated; |
230 | 233 | ||
231 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) | 234 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) |
@@ -252,7 +255,8 @@ input_gssapi_exchange_complete(int type, u_int32_t plen, void *ctxt) | |||
252 | static int | 255 | static int |
253 | input_gssapi_mic(int type, u_int32_t plen, void *ctxt) | 256 | input_gssapi_mic(int type, u_int32_t plen, void *ctxt) |
254 | { | 257 | { |
255 | Authctxt *authctxt = ctxt; | 258 | struct ssh *ssh = ctxt; |
259 | Authctxt *authctxt = ssh->authctxt; | ||
256 | Gssctxt *gssctxt; | 260 | Gssctxt *gssctxt; |
257 | int authenticated = 0; | 261 | int authenticated = 0; |
258 | Buffer b; | 262 | Buffer b; |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2.c,v 1.137 2017/02/03 23:05:57 djm Exp $ */ | 1 | /* $OpenBSD: auth2.c,v 1.138 2017/05/30 14:18:15 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -168,16 +168,20 @@ done: | |||
168 | void | 168 | void |
169 | do_authentication2(Authctxt *authctxt) | 169 | do_authentication2(Authctxt *authctxt) |
170 | { | 170 | { |
171 | struct ssh *ssh = active_state; /* XXX */ | ||
172 | ssh->authctxt = authctxt; /* XXX move to caller */ | ||
171 | dispatch_init(&dispatch_protocol_error); | 173 | dispatch_init(&dispatch_protocol_error); |
172 | dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); | 174 | dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); |
173 | dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt); | 175 | dispatch_run(DISPATCH_BLOCK, &authctxt->success, ssh); |
176 | ssh->authctxt = NULL; | ||
174 | } | 177 | } |
175 | 178 | ||
176 | /*ARGSUSED*/ | 179 | /*ARGSUSED*/ |
177 | static int | 180 | static int |
178 | input_service_request(int type, u_int32_t seq, void *ctxt) | 181 | input_service_request(int type, u_int32_t seq, void *ctxt) |
179 | { | 182 | { |
180 | Authctxt *authctxt = ctxt; | 183 | struct ssh *ssh = ctxt; |
184 | Authctxt *authctxt = ssh->authctxt; | ||
181 | u_int len; | 185 | u_int len; |
182 | int acceptit = 0; | 186 | int acceptit = 0; |
183 | char *service = packet_get_cstring(&len); | 187 | char *service = packet_get_cstring(&len); |
@@ -212,8 +216,8 @@ input_service_request(int type, u_int32_t seq, void *ctxt) | |||
212 | static int | 216 | static int |
213 | input_userauth_request(int type, u_int32_t seq, void *ctxt) | 217 | input_userauth_request(int type, u_int32_t seq, void *ctxt) |
214 | { | 218 | { |
215 | struct ssh *ssh = active_state; /* XXX */ | 219 | struct ssh *ssh = ctxt; |
216 | Authctxt *authctxt = ctxt; | 220 | Authctxt *authctxt = ssh->authctxt; |
217 | Authmethod *m = NULL; | 221 | Authmethod *m = NULL; |
218 | char *user, *service, *method, *style = NULL; | 222 | char *user, *service, *method, *style = NULL; |
219 | int authenticated = 0; | 223 | int authenticated = 0; |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.h,v 1.79 2017/05/03 21:08:09 naddy Exp $ */ | 1 | /* $OpenBSD: packet.h,v 1.80 2017/05/30 14:18:15 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -77,6 +77,9 @@ struct ssh { | |||
77 | TAILQ_HEAD(, key_entry) private_keys; | 77 | TAILQ_HEAD(, key_entry) private_keys; |
78 | TAILQ_HEAD(, key_entry) public_keys; | 78 | TAILQ_HEAD(, key_entry) public_keys; |
79 | 79 | ||
80 | /* Client/Server authentication context */ | ||
81 | void *authctxt; | ||
82 | |||
80 | /* APP data */ | 83 | /* APP data */ |
81 | void *app_data; | 84 | void *app_data; |
82 | }; | 85 | }; |