#include <gssapi/gssapi.h>
#endif
-#ifdef KRB5
-# ifndef HEIMDAL
-# ifdef HAVE_GSSAPI_GENERIC_H
-# include <gssapi_generic.h>
-# elif defined(HAVE_GSSAPI_GSSAPI_GENERIC_H)
-# include <gssapi/gssapi_generic.h>
-# endif
-
-/* MIT Kerberos doesn't seem to define GSS_NT_HOSTBASED_SERVICE */
-
-#ifndef GSS_C_NT_HOSTBASED_SERVICE
-#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
-#endif /* GSS_C_NT_... */
-#endif /* !HEIMDAL */
-#endif /* KRB5 */
+#ifdef HAVE_GSSAPI_EXT_H
+#include <gssapi_ext.h>
+#elif defined(HAVE_GSSAPI_GSSAPI_EXT_H)
+#include <gssapi/gssapi_ext.h>
+#endif
/* draft-ietf-secsh-gsskeyex-06 */
#define SSH2_MSG_USERAUTH_GSSAPI_RESPONSE 60
gss_buffer_desc displayname;
gss_buffer_desc exportedname;
gss_cred_id_t creds;
- struct ssh_gssapi_mech_struct *mech;
+ gss_name_t name;
ssh_gssapi_ccache store;
} ssh_gssapi_client;
-typedef struct ssh_gssapi_mech_struct {
- char *enc_name;
- char *name;
- gss_OID_desc oid;
- int (*dochild) (ssh_gssapi_client *);
- int (*userok) (ssh_gssapi_client *, char *);
- int (*localname) (ssh_gssapi_client *, char **);
- void (*storecreds) (ssh_gssapi_client *);
-} ssh_gssapi_mech;
-
typedef struct {
OM_uint32 major; /* both */
OM_uint32 minor; /* both */
gss_cred_id_t client_creds; /* server */
} Gssctxt;
-extern ssh_gssapi_mech *supported_mechs[];
-
int ssh_gssapi_check_oid(Gssctxt *, void *, size_t);
void ssh_gssapi_set_oid_data(Gssctxt *, void *, size_t);
void ssh_gssapi_set_oid(Gssctxt *, gss_OID);
void ssh_gssapi_supported_oids(gss_OID_set *);
-ssh_gssapi_mech *ssh_gssapi_get_ctype(Gssctxt *);
OM_uint32 ssh_gssapi_import_name(Gssctxt *, const char *);
OM_uint32 ssh_gssapi_init_ctx(Gssctxt *, int,