diff options
Diffstat (limited to 'gss-serv.c')
-rw-r--r-- | gss-serv.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gss-serv.c b/gss-serv.c index 26eec25bd..9682fc3c3 100644 --- a/gss-serv.c +++ b/gss-serv.c | |||
@@ -58,6 +58,28 @@ ssh_gssapi_mech* supported_mechs[]= { | |||
58 | }; | 58 | }; |
59 | 59 | ||
60 | /* Unprivileged */ | 60 | /* Unprivileged */ |
61 | char * | ||
62 | ssh_gssapi_server_mechanisms() { | ||
63 | gss_OID_set supported; | ||
64 | |||
65 | ssh_gssapi_supported_oids(&supported); | ||
66 | return (ssh_gssapi_kex_mechs(supported, &ssh_gssapi_server_check_mech, | ||
67 | NULL)); | ||
68 | } | ||
69 | |||
70 | /* Unprivileged */ | ||
71 | int | ||
72 | ssh_gssapi_server_check_mech(gss_OID oid, void *data) { | ||
73 | Gssctxt * ctx = NULL; | ||
74 | int res; | ||
75 | |||
76 | res = !GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctx, oid))); | ||
77 | ssh_gssapi_delete_ctx(&ctx); | ||
78 | |||
79 | return (res); | ||
80 | } | ||
81 | |||
82 | /* Unprivileged */ | ||
61 | void | 83 | void |
62 | ssh_gssapi_supported_oids(gss_OID_set *oidset) | 84 | ssh_gssapi_supported_oids(gss_OID_set *oidset) |
63 | { | 85 | { |