Lines Matching defs:cred

116 gss_cred_set_ctx(struct rpc_cred *cred, struct gss_cl_ctx *ctx)
118 struct gss_cred *gss_cred = container_of(cred, struct gss_cred, gc_base);
120 if (!test_bit(RPCAUTH_CRED_NEW, &cred->cr_flags))
124 set_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
126 clear_bit(RPCAUTH_CRED_NEW, &cred->cr_flags);
130 gss_cred_get_ctx(struct rpc_cred *cred)
132 struct gss_cred *gss_cred = container_of(cred, struct gss_cred, gc_base);
389 const struct cred *cred)
391 struct user_namespace *userns = cred->user_ns;
416 const struct cred *cred)
418 struct user_namespace *userns = cred->user_ns;
545 gss_setup_upcall(struct gss_auth *gss_auth, struct rpc_cred *cred)
547 struct gss_cred *gss_cred = container_of(cred,
550 kuid_t uid = cred->cr_cred->fsuid;
579 struct rpc_cred *cred = task->tk_rqstp->rq_cred;
580 struct gss_auth *gss_auth = container_of(cred->cr_auth,
582 struct gss_cred *gss_cred = container_of(cred,
588 gss_msg = gss_setup_upcall(gss_auth, cred);
619 cred->cr_cred->fsuid), err);
629 struct rpc_cred *cred = &gss_cred->gc_base;
642 gss_msg = gss_setup_upcall(gss_auth, cred);
674 gss_cred_set_ctx(cred, gss_msg->ctx);
684 cred->cr_cred->fsuid), err);
1235 /* Make a copy of the cred so that we can reference count it */
1239 .cred = gss_cred->gc_base.cr_cred,
1264 gss_send_destroy_context(struct rpc_cred *cred)
1266 struct gss_cred *gss_cred = container_of(cred, struct gss_cred, gc_base);
1267 struct gss_auth *gss_auth = container_of(cred->cr_auth, struct gss_auth, rpc_auth);
1287 * to create a new cred or context, so they check that things have been
1325 gss_destroy_nullcred(struct rpc_cred *cred)
1327 struct gss_cred *gss_cred = container_of(cred, struct gss_cred, gc_base);
1328 struct gss_auth *gss_auth = container_of(cred->cr_auth, struct gss_auth, rpc_auth);
1332 put_cred(cred->cr_cred);
1333 call_rcu(&cred->cr_rcu, gss_free_cred_callback);
1340 gss_destroy_cred(struct rpc_cred *cred)
1342 if (test_and_clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags) != 0)
1343 gss_send_destroy_context(cred);
1344 gss_destroy_nullcred(cred);
1350 return hash_64(from_kuid(&init_user_ns, acred->cred->fsuid), hashbits);
1354 * Lookup RPCSEC_GSS cred for the current process
1366 struct gss_cred *cred = NULL;
1369 if (!(cred = kzalloc(sizeof(*cred), gfp)))
1372 rpcauth_init_cred(&cred->gc_base, acred, auth, &gss_credops);
1377 cred->gc_base.cr_flags = 1UL << RPCAUTH_CRED_NEW;
1378 cred->gc_service = gss_auth->service;
1379 cred->gc_principal = acred->principal;
1381 return &cred->gc_base;
1388 gss_cred_init(struct rpc_auth *auth, struct rpc_cred *cred)
1391 struct gss_cred *gss_cred = container_of(cred,struct gss_cred, gc_base);
1401 gss_stringify_acceptor(struct rpc_cred *cred)
1404 struct gss_cred *gss_cred = container_of(cred, struct gss_cred, gc_base);
1503 ret = uid_eq(rc->cr_cred->fsuid, acred->cred->fsuid);
1518 struct rpc_cred *cred = req->rq_cred;
1519 struct gss_cred *gss_cred = container_of(cred, struct gss_cred,
1521 struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred);
1577 clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
1597 .cred = oldcred->cr_cred,
1611 static int gss_cred_is_negative_entry(struct rpc_cred *cred)
1613 if (test_bit(RPCAUTH_CRED_NEGATIVE, &cred->cr_flags)) {
1618 gss_cred = container_of(cred, struct gss_cred, gc_base);
1634 struct rpc_cred *cred = task->tk_rqstp->rq_cred;
1637 if (gss_cred_is_negative_entry(cred))
1640 if (!test_bit(RPCAUTH_CRED_NEW, &cred->cr_flags) &&
1641 !test_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags)) {
1645 cred = task->tk_rqstp->rq_cred;
1648 if (test_bit(RPCAUTH_CRED_NEW, &cred->cr_flags))
1664 struct rpc_cred *cred = task->tk_rqstp->rq_cred;
1665 struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred);
1696 clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
1702 if (test_bit(RPCAUTH_AUTH_UPDATE_SLACK, &cred->cr_auth->au_flags))
1703 cred->cr_auth->au_verfsize = XDR_QUADLEN(len) + 2;
1720 gss_wrap_req_integ(struct rpc_cred *cred, struct gss_cl_ctx *ctx,
1750 clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
1813 gss_wrap_req_priv(struct rpc_cred *cred, struct gss_cl_ctx *ctx,
1863 clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
1889 struct rpc_cred *cred = task->tk_rqstp->rq_cred;
1890 struct gss_cred *gss_cred = container_of(cred, struct gss_cred,
1892 struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred);
1908 status = gss_wrap_req_integ(cred, ctx, task, xdr);
1911 status = gss_wrap_req_priv(cred, ctx, task, xdr);
1924 * @cred: controlling rpc_cred for @task
1929 static void gss_update_rslack(struct rpc_task *task, struct rpc_cred *cred,
1932 struct rpc_auth *auth = cred->cr_auth;
1942 gss_unwrap_resp_auth(struct rpc_task *task, struct rpc_cred *cred)
1944 gss_update_rslack(task, cred, 0, 0);
1962 gss_unwrap_resp_integ(struct rpc_task *task, struct rpc_cred *cred,
2011 clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
2015 gss_update_rslack(task, cred, 2, 2 + 1 + XDR_QUADLEN(mic.len));
2034 gss_unwrap_resp_priv(struct rpc_task *task, struct rpc_cred *cred,
2054 clear_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
2066 gss_update_rslack(task, cred, 2 + ctx->gc_gss_ctx->align,
2091 struct rpc_cred *cred = req->rq_cred;
2092 struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred);
2128 struct rpc_cred *cred = rqstp->rq_cred;
2129 struct gss_cred *gss_cred = container_of(cred, struct gss_cred,
2131 struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred);
2138 status = gss_unwrap_resp_auth(task, cred);
2141 status = gss_unwrap_resp_integ(task, cred, ctx, rqstp, xdr);
2144 status = gss_unwrap_resp_priv(task, cred, ctx, rqstp, xdr);