version 1.8, 2004/06/21 17:36:31 |
version 1.8.4.2, 2006/02/03 02:53:44 |
|
|
#include "log.h" |
#include "log.h" |
#include "dispatch.h" |
#include "dispatch.h" |
#include "servconf.h" |
#include "servconf.h" |
#include "compat.h" |
|
#include "packet.h" |
#include "packet.h" |
#include "monitor_wrap.h" |
#include "monitor_wrap.h" |
|
|
|
|
|
|
/* |
/* |
* We only support those mechanisms that we know about (ie ones that we know |
* We only support those mechanisms that we know about (ie ones that we know |
* how to check local user kuserok and the like |
* how to check local user kuserok and the like) |
*/ |
*/ |
static int |
static int |
userauth_gssapi(Authctxt *authctxt) |
userauth_gssapi(Authctxt *authctxt) |
|
|
int present; |
int present; |
OM_uint32 ms; |
OM_uint32 ms; |
u_int len; |
u_int len; |
char *doid = NULL; |
u_char *doid = NULL; |
|
|
if (!authctxt->valid || authctxt->user == NULL) |
if (!authctxt->valid || authctxt->user == NULL) |
return (0); |
return (0); |
|
|
present = 0; |
present = 0; |
doid = packet_get_string(&len); |
doid = packet_get_string(&len); |
|
|
if (len > 2 && |
if (len > 2 && doid[0] == SSH_GSS_OIDTYPE && |
doid[0] == SSH_GSS_OIDTYPE && |
doid[1] == len - 2) { |
doid[1] == len - 2) { |
|
goid.elements = doid + 2; |
goid.elements = doid + 2; |
goid.length = len - 2; |
goid.length = len - 2; |
gss_test_oid_set_member(&ms, &goid, supported, |
gss_test_oid_set_member(&ms, &goid, supported, |
|
|
return (0); |
return (0); |
} |
} |
|
|
authctxt->methoddata=(void *)ctxt; |
authctxt->methoddata = (void *)ctxt; |
|
|
packet_start(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE); |
packet_start(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE); |
|
|