Buffer b;
gss_buffer_desc mic, gssbuf;
u_int len;
-
+
if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep))
fatal("No authentication or GSSAPI context");
-
+
gssctxt = authctxt->methoddata;
-
+
mic.value = packet_get_string(&len);
mic.length = len;
-
+
ssh_gssapi_buildmic(&b, authctxt->user, authctxt->service,
"gssapi-with-mic");
-
+
gssbuf.value = buffer_ptr(&b);
gssbuf.length = buffer_len(&b);
-
+
if (!GSS_ERROR(PRIVSEP(ssh_gssapi_checkmic(gssctxt, &gssbuf, &mic))))
authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user));
else
buffer_free(&b);
xfree(mic.value);
-
+
authctxt->postponed = 0;
dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, NULL);