diff options
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r-- | monitor_wrap.c | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c index 45dc16951..e476f0dbc 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -1281,7 +1281,7 @@ mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) | |||
1281 | } | 1281 | } |
1282 | 1282 | ||
1283 | int | 1283 | int |
1284 | mm_ssh_gssapi_userok(char *user) | 1284 | mm_ssh_gssapi_userok(char *user, struct passwd *pw) |
1285 | { | 1285 | { |
1286 | Buffer m; | 1286 | Buffer m; |
1287 | int authenticated = 0; | 1287 | int authenticated = 0; |
@@ -1298,5 +1298,50 @@ mm_ssh_gssapi_userok(char *user) | |||
1298 | debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); | 1298 | debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); |
1299 | return (authenticated); | 1299 | return (authenticated); |
1300 | } | 1300 | } |
1301 | |||
1302 | OM_uint32 | ||
1303 | mm_ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_desc *data, gss_buffer_desc *hash) | ||
1304 | { | ||
1305 | Buffer m; | ||
1306 | OM_uint32 major; | ||
1307 | u_int len; | ||
1308 | |||
1309 | buffer_init(&m); | ||
1310 | buffer_put_string(&m, data->value, data->length); | ||
1311 | |||
1312 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSIGN, &m); | ||
1313 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSIGN, &m); | ||
1314 | |||
1315 | major = buffer_get_int(&m); | ||
1316 | hash->value = buffer_get_string(&m, &len); | ||
1317 | hash->length = len; | ||
1318 | |||
1319 | buffer_free(&m); | ||
1320 | |||
1321 | return(major); | ||
1322 | } | ||
1323 | |||
1324 | int | ||
1325 | mm_ssh_gssapi_update_creds(ssh_gssapi_ccache *store) | ||
1326 | { | ||
1327 | Buffer m; | ||
1328 | int ok; | ||
1329 | |||
1330 | buffer_init(&m); | ||
1331 | |||
1332 | buffer_put_cstring(&m, store->filename ? store->filename : ""); | ||
1333 | buffer_put_cstring(&m, store->envvar ? store->envvar : ""); | ||
1334 | buffer_put_cstring(&m, store->envval ? store->envval : ""); | ||
1335 | |||
1336 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSUPCREDS, &m); | ||
1337 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSUPCREDS, &m); | ||
1338 | |||
1339 | ok = buffer_get_int(&m); | ||
1340 | |||
1341 | buffer_free(&m); | ||
1342 | |||
1343 | return (ok); | ||
1344 | } | ||
1345 | |||
1301 | #endif /* GSSAPI */ | 1346 | #endif /* GSSAPI */ |
1302 | 1347 | ||