X-Git-Url: http://andersk.mit.edu/gitweb/gssapi-openssh.git/blobdiff_plain/f97edba64d1fb2b28ac269fe588396643d271b7b..HEAD:/openssh/ssh-gss.h diff --git a/openssh/ssh-gss.h b/openssh/ssh-gss.h index 31d5a08..c5eb773 100644 --- a/openssh/ssh-gss.h +++ b/openssh/ssh-gss.h @@ -34,6 +34,7 @@ #include #endif +#ifndef MECHGLUE #ifdef KRB5 # ifndef HEIMDAL # ifdef HAVE_GSSAPI_GENERIC_H @@ -49,6 +50,7 @@ #endif /* GSS_C_NT_... */ #endif /* !HEIMDAL */ #endif /* KRB5 */ +#endif /* !MECHGLUE */ /* draft-ietf-secsh-gsskeyex-06 */ #define SSH2_MSG_USERAUTH_GSSAPI_RESPONSE 60 @@ -86,6 +88,7 @@ typedef struct { gss_name_t name; struct ssh_gssapi_mech_struct *mech; ssh_gssapi_ccache store; + gss_ctx_id_t context; int used; int updated; } ssh_gssapi_client; @@ -106,7 +109,7 @@ typedef struct { OM_uint32 minor; /* both */ gss_ctx_id_t context; /* both */ gss_name_t name; /* both */ - gss_OID oid; /* client */ + gss_OID oid; /* both */ gss_cred_id_t creds; /* server */ gss_name_t client; /* server */ gss_cred_id_t client_creds; /* both */ @@ -137,6 +140,9 @@ int ssh_gssapi_check_mechanism(Gssctxt **, gss_OID, const char *, const char *); OM_uint32 ssh_gssapi_client_identity(Gssctxt *, const char *); int ssh_gssapi_credentials_updated(Gssctxt *); +int ssh_gssapi_localname(char **name); +void ssh_gssapi_rekey_creds(); + /* In the server */ typedef int ssh_gssapi_check_fn(Gssctxt **, gss_OID, const char *, const char *); @@ -147,16 +153,24 @@ gss_OID ssh_gssapi_id_kex(Gssctxt *, char *, int); int ssh_gssapi_server_check_mech(Gssctxt **,gss_OID, const char *, const char *); OM_uint32 ssh_gssapi_server_ctx(Gssctxt **, gss_OID); -int ssh_gssapi_userok(char *name, struct passwd *); +int ssh_gssapi_userok(char *name, struct passwd *, int gssapi_keyex); OM_uint32 ssh_gssapi_checkmic(Gssctxt *, gss_buffer_t, gss_buffer_t); void ssh_gssapi_do_child(char ***, u_int *); void ssh_gssapi_cleanup_creds(void); void ssh_gssapi_storecreds(void); +#ifdef MECHGLUE +gss_cred_id_t __gss_get_mechanism_cred + (gss_cred_id_t, /* union_cred */ + gss_OID /* mech_type */ + ); +#endif + char *ssh_gssapi_server_mechanisms(void); int ssh_gssapi_oid_table_ok(); int ssh_gssapi_update_creds(ssh_gssapi_ccache *store); +void ssh_gssapi_get_client_info(char **userdn, char **mech); #endif /* GSSAPI */ #endif /* _SSH_GSS_H */