diff options
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r-- | monitor_wrap.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c index 3b50753de..23b0cbd59 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -253,10 +253,10 @@ mm_auth2_read_banner(void) | |||
253 | return (banner); | 253 | return (banner); |
254 | } | 254 | } |
255 | 255 | ||
256 | /* Inform the privileged process about service and style */ | 256 | /* Inform the privileged process about service, style, and role */ |
257 | 257 | ||
258 | void | 258 | void |
259 | mm_inform_authserv(char *service, char *style) | 259 | mm_inform_authserv(char *service, char *style, char *role) |
260 | { | 260 | { |
261 | Buffer m; | 261 | Buffer m; |
262 | 262 | ||
@@ -265,6 +265,7 @@ mm_inform_authserv(char *service, char *style) | |||
265 | buffer_init(&m); | 265 | buffer_init(&m); |
266 | buffer_put_cstring(&m, service); | 266 | buffer_put_cstring(&m, service); |
267 | buffer_put_cstring(&m, style ? style : ""); | 267 | buffer_put_cstring(&m, style ? style : ""); |
268 | buffer_put_cstring(&m, role ? role : ""); | ||
268 | 269 | ||
269 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHSERV, &m); | 270 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHSERV, &m); |
270 | 271 | ||
@@ -1215,4 +1216,25 @@ mm_ssh_gssapi_userok(char *user) | |||
1215 | debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); | 1216 | debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); |
1216 | return (authenticated); | 1217 | return (authenticated); |
1217 | } | 1218 | } |
1219 | |||
1220 | OM_uint32 | ||
1221 | mm_ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_desc *data, gss_buffer_desc *hash) | ||
1222 | { | ||
1223 | Buffer m; | ||
1224 | OM_uint32 major; | ||
1225 | |||
1226 | buffer_init(&m); | ||
1227 | buffer_put_string(&m, data->value, data->length); | ||
1228 | |||
1229 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSIGN, &m); | ||
1230 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSIGN, &m); | ||
1231 | |||
1232 | major = buffer_get_int(&m); | ||
1233 | hash->value = buffer_get_string(&m, &hash->length); | ||
1234 | |||
1235 | buffer_free(&m); | ||
1236 | |||
1237 | return(major); | ||
1238 | } | ||
1239 | |||
1218 | #endif /* GSSAPI */ | 1240 | #endif /* GSSAPI */ |