mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-09 07:13:43 -05:00
Cleanups of the GSSAPI support. On Windows, standard GSS libraries
are now loaded from standard locations (system32 for SSPI, the registry-stored MIT KfW install location for KfW) rather than using the risky default DLL search path; I've therefore also added an option to manually specify a GSS DLL we haven't heard of (which should in principle Just Work provided it supports proper GSS-API as specified in the RFC). The same option exists on Unix too, because it seemed like too useful an idea to reserve to Windows. In addition, GSSAPI is now documented, and also (unfortunately) its GUI configuration has been moved out into a sub-subpanel on the grounds that it was too big to fit in Auth. [originally from svn r9003]
This commit is contained in:
32
sshgss.h
32
sshgss.h
@ -31,15 +31,24 @@ typedef gss_name_t Ssh_gss_name;
|
||||
struct ssh_gss_library;
|
||||
|
||||
/*
|
||||
* Do startup-time initialisation for using GSSAPI. This should
|
||||
* correctly initialise the array of struct ssh_gss_library declared
|
||||
* below.
|
||||
* Prepare a collection of GSSAPI libraries for use in a single SSH
|
||||
* connection. Returns a structure containing a list of libraries,
|
||||
* with their ids (see struct ssh_gss_library below) filled in so
|
||||
* that the client can go through them in the SSH user's preferred
|
||||
* order.
|
||||
*
|
||||
* Must be callable multiple times (since the most convenient place
|
||||
* to call it _from_ is the ssh.c setup code), and should harmlessly
|
||||
* return success if already initialised.
|
||||
* Must always return non-NULL. (Even if no libraries are available,
|
||||
* it must return an empty structure.)
|
||||
*
|
||||
* The free function cleans up the structure, and its associated
|
||||
* libraries (if any).
|
||||
*/
|
||||
void ssh_gss_init(void);
|
||||
struct ssh_gss_liblist {
|
||||
struct ssh_gss_library *libraries;
|
||||
int nlibraries;
|
||||
};
|
||||
struct ssh_gss_liblist *ssh_gss_setup(const Config *cfg);
|
||||
void ssh_gss_cleanup(struct ssh_gss_liblist *list);
|
||||
|
||||
/*
|
||||
* Fills in buf with a string describing the GSSAPI mechanism in
|
||||
@ -166,10 +175,13 @@ struct ssh_gss_library {
|
||||
* be more than one set of them available.
|
||||
*/
|
||||
} u;
|
||||
};
|
||||
|
||||
extern struct ssh_gss_library ssh_gss_libraries[];
|
||||
extern int n_ssh_gss_libraries;
|
||||
/*
|
||||
* Wrapper layers will often also need to store a library handle
|
||||
* of some sort for cleanup time.
|
||||
*/
|
||||
void *handle;
|
||||
};
|
||||
|
||||
#endif /* NO_GSSAPI */
|
||||
|
||||
|
Reference in New Issue
Block a user