Lines Matching +full:mic +full:- +full:pos

1 // SPDX-License-Identifier: BSD-3-Clause
37 for (i = 0; i < gm->gm_pf_num; i++) { in gss_mech_free()
38 pf = &gm->gm_pfs[i]; in gss_mech_free()
39 if (pf->domain) in gss_mech_free()
40 auth_domain_put(pf->domain); in gss_mech_free()
41 kfree(pf->auth_domain_name); in gss_mech_free()
42 pf->auth_domain_name = NULL; in gss_mech_free()
67 for (i = 0; i < gm->gm_pf_num; i++) { in gss_mech_svc_setup()
68 pf = &gm->gm_pfs[i]; in gss_mech_svc_setup()
69 pf->auth_domain_name = make_auth_domain_name(pf->name); in gss_mech_svc_setup()
70 status = -ENOMEM; in gss_mech_svc_setup()
71 if (pf->auth_domain_name == NULL) in gss_mech_svc_setup()
74 pf->pseudoflavor, pf->auth_domain_name); in gss_mech_svc_setup()
79 pf->domain = dom; in gss_mech_svc_setup()
88 * gss_mech_register - register a GSS mechanism
101 list_add_rcu(&gm->gm_list, &registered_mechs); in gss_mech_register()
103 dprintk("RPC: registered gss mechanism %s\n", gm->gm_name); in gss_mech_register()
109 * gss_mech_unregister - release a GSS mechanism
116 list_del_rcu(&gm->gm_list); in gss_mech_unregister()
118 dprintk("RPC: unregistered gss mechanism %s\n", gm->gm_name); in gss_mech_unregister()
125 __module_get(gm->gm_owner); in gss_mech_get()
133 struct gss_api_mech *pos, *gm = NULL; in _gss_mech_get_by_name() local
136 list_for_each_entry_rcu(pos, &registered_mechs, gm_list) { in _gss_mech_get_by_name()
137 if (0 == strcmp(name, pos->gm_name)) { in _gss_mech_get_by_name()
138 if (try_module_get(pos->gm_owner)) in _gss_mech_get_by_name()
139 gm = pos; in _gss_mech_get_by_name()
154 request_module("rpc-auth-gss-%s", name); in gss_mech_get_by_name()
162 struct gss_api_mech *pos, *gm = NULL; in gss_mech_get_by_OID() local
165 if (sprint_oid(obj->data, obj->len, buf, sizeof(buf)) < 0) in gss_mech_get_by_OID()
167 request_module("rpc-auth-gss-%s", buf); in gss_mech_get_by_OID()
170 list_for_each_entry_rcu(pos, &registered_mechs, gm_list) { in gss_mech_get_by_OID()
171 if (obj->len == pos->gm_oid.len) { in gss_mech_get_by_OID()
172 if (0 == memcmp(obj->data, pos->gm_oid.data, obj->len)) { in gss_mech_get_by_OID()
173 if (try_module_get(pos->gm_owner)) in gss_mech_get_by_OID()
174 gm = pos; in gss_mech_get_by_OID()
190 for (i = 0; i < gm->gm_pf_num; i++) { in mech_supports_pseudoflavor()
191 if (gm->gm_pfs[i].pseudoflavor == pseudoflavor) in mech_supports_pseudoflavor()
199 struct gss_api_mech *gm = NULL, *pos; in _gss_mech_get_by_pseudoflavor() local
202 list_for_each_entry_rcu(pos, &registered_mechs, gm_list) { in _gss_mech_get_by_pseudoflavor()
203 if (!mech_supports_pseudoflavor(pos, pseudoflavor)) in _gss_mech_get_by_pseudoflavor()
205 if (try_module_get(pos->gm_owner)) in _gss_mech_get_by_pseudoflavor()
206 gm = pos; in _gss_mech_get_by_pseudoflavor()
221 request_module("rpc-auth-gss-%u", pseudoflavor); in gss_mech_get_by_pseudoflavor()
228 * gss_svc_to_pseudoflavor - map a GSS service number to a pseudoflavor
230 * @qop: GSS quality-of-protection value
240 for (i = 0; i < gm->gm_pf_num; i++) { in gss_svc_to_pseudoflavor()
241 if (gm->gm_pfs[i].qop == qop && in gss_svc_to_pseudoflavor()
242 gm->gm_pfs[i].service == service) { in gss_svc_to_pseudoflavor()
243 return gm->gm_pfs[i].pseudoflavor; in gss_svc_to_pseudoflavor()
250 * gss_mech_info2flavor - look up a pseudoflavor given a GSS tuple
261 gm = gss_mech_get_by_OID(&info->oid); in gss_mech_info2flavor()
265 pseudoflavor = gss_svc_to_pseudoflavor(gm, info->qop, info->service); in gss_mech_info2flavor()
272 * gss_mech_flavor2info - look up a GSS tuple for a given pseudoflavor
287 return -ENOENT; in gss_mech_flavor2info()
289 for (i = 0; i < gm->gm_pf_num; i++) { in gss_mech_flavor2info()
290 if (gm->gm_pfs[i].pseudoflavor == pseudoflavor) { in gss_mech_flavor2info()
291 memcpy(info->oid.data, gm->gm_oid.data, gm->gm_oid.len); in gss_mech_flavor2info()
292 info->oid.len = gm->gm_oid.len; in gss_mech_flavor2info()
293 info->qop = gm->gm_pfs[i].qop; in gss_mech_flavor2info()
294 info->service = gm->gm_pfs[i].service; in gss_mech_flavor2info()
301 return -ENOENT; in gss_mech_flavor2info()
309 for (i = 0; i < gm->gm_pf_num; i++) { in gss_pseudoflavor_to_service()
310 if (gm->gm_pfs[i].pseudoflavor == pseudoflavor) in gss_pseudoflavor_to_service()
311 return gm->gm_pfs[i].service; in gss_pseudoflavor_to_service()
322 for (i = 0; i < gm->gm_pf_num; i++) { in gss_pseudoflavor_to_datatouch()
323 if (gm->gm_pfs[i].pseudoflavor == pseudoflavor) in gss_pseudoflavor_to_datatouch()
324 return gm->gm_pfs[i].datatouch; in gss_pseudoflavor_to_datatouch()
334 for (i = 0; i < gm->gm_pf_num; i++) { in gss_service_to_auth_domain_name()
335 if (gm->gm_pfs[i].service == service) in gss_service_to_auth_domain_name()
336 return gm->gm_pfs[i].auth_domain_name; in gss_service_to_auth_domain_name()
345 module_put(gm->gm_owner); in gss_mech_put()
359 return -ENOMEM; in gss_import_sec_context()
360 (*ctx_id)->mech_type = gss_mech_get(mech); in gss_import_sec_context()
362 return mech->gm_ops->gss_import_sec_context(input_token, bufsize, in gss_import_sec_context()
366 /* gss_get_mic: compute a mic over message and return mic_token. */
373 return context_handle->mech_type->gm_ops in gss_get_mic()
374 ->gss_get_mic(context_handle, in gss_get_mic()
386 return context_handle->mech_type->gm_ops in gss_verify_mic()
387 ->gss_verify_mic(context_handle, in gss_verify_mic()
412 return ctx_id->mech_type->gm_ops in gss_wrap()
413 ->gss_wrap(ctx_id, offset, buf, inpages); in gss_wrap()
422 return ctx_id->mech_type->gm_ops in gss_unwrap()
423 ->gss_unwrap(ctx_id, offset, len, buf); in gss_unwrap()
428 * Note this differs from the RFC 2744-specified prototype in that we don't
439 if ((*context_handle)->internal_ctx_id) in gss_delete_sec_context()
440 (*context_handle)->mech_type->gm_ops in gss_delete_sec_context()
441 ->gss_delete_sec_context((*context_handle) in gss_delete_sec_context()
442 ->internal_ctx_id); in gss_delete_sec_context()
443 gss_mech_put((*context_handle)->mech_type); in gss_delete_sec_context()