Lines Matching refs:key
50 static int keyring_instantiate(struct key *keyring,
52 static int keyring_match(const struct key *keyring, const void *criterion);
53 static void keyring_revoke(struct key *keyring);
54 static void keyring_destroy(struct key *keyring);
55 static void keyring_describe(const struct key *keyring, struct seq_file *m);
56 static long keyring_read(const struct key *keyring,
83 static void keyring_publish_name(struct key *keyring) in keyring_publish_name()
108 static int keyring_instantiate(struct key *keyring, in keyring_instantiate()
128 static int keyring_match(const struct key *keyring, const void *description) in keyring_match()
139 static void keyring_destroy(struct key *keyring) in keyring_destroy()
167 static void keyring_describe(const struct key *keyring, struct seq_file *m) in keyring_describe()
193 static long keyring_read(const struct key *keyring, in keyring_read()
197 struct key *key; in keyring_read() local
217 key = klist->keys[loop]; in keyring_read()
224 &key->serial, in keyring_read()
247 struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid, in keyring_alloc()
249 struct key *dest) in keyring_alloc()
251 struct key *keyring; in keyring_alloc()
297 struct key *keyring, *key; in keyring_search_aux() local
328 key = keyring; in keyring_search_aux()
334 if (key->expiry && now.tv_sec >= key->expiry) in keyring_search_aux()
360 key = keylist->keys[kix]; in keyring_search_aux()
361 kflags = key->flags; in keyring_search_aux()
364 if (key->type != type) in keyring_search_aux()
371 if (key->expiry && now.tv_sec >= key->expiry) in keyring_search_aux()
375 if (!match(key, description)) in keyring_search_aux()
379 if (key_task_permission(make_key_ref(key, possessed), in keyring_search_aux()
396 key = keylist->keys[kix]; in keyring_search_aux()
397 if (key->type != &key_type_keyring) in keyring_search_aux()
406 if (key_task_permission(make_key_ref(key, possessed), in keyring_search_aux()
416 keyring = key; in keyring_search_aux()
436 atomic_inc(&key->usage); in keyring_search_aux()
437 key_check(key); in keyring_search_aux()
438 key_ref = make_key_ref(key, possessed); in keyring_search_aux()
482 struct key *keyring, *key; in __keyring_search_one() local
493 key = klist->keys[loop]; in __keyring_search_one()
495 if (key->type == ktype && in __keyring_search_one()
496 (!key->type->match || in __keyring_search_one()
497 key->type->match(key, description)) && in __keyring_search_one()
498 key_permission(make_key_ref(key, possessed), in __keyring_search_one()
500 !test_bit(KEY_FLAG_REVOKED, &key->flags) in __keyring_search_one()
510 atomic_inc(&key->usage); in __keyring_search_one()
512 return make_key_ref(key, possessed); in __keyring_search_one()
522 struct key *find_keyring_by_name(const char *name, bool skip_perm_check) in find_keyring_by_name()
524 struct key *keyring; in find_keyring_by_name()
575 static int keyring_detect_cycle(struct key *A, struct key *B) in keyring_detect_cycle()
583 struct key *subtree, *key; in keyring_detect_cycle() local
608 key = keylist->keys[kix]; in keyring_detect_cycle()
610 if (key == A) in keyring_detect_cycle()
614 if (key->type == &key_type_keyring) { in keyring_detect_cycle()
624 subtree = key; in keyring_detect_cycle()
690 int __key_link(struct key *keyring, struct key *key) in __key_link() argument
711 if (key->type == &key_type_keyring) { in __key_link()
712 ret = keyring_detect_cycle(keyring, key); in __key_link()
721 struct key_type *type = key->type; in __key_link()
726 key->description) == 0 in __key_link()
729 size = sizeof(struct key *) * klist->maxkeys; in __key_link()
739 atomic_inc(&key->usage); in __key_link()
740 nklist->keys[loop] = key; in __key_link()
767 atomic_inc(&key->usage); in __key_link()
769 klist->keys[klist->nkeys] = key; in __key_link()
783 size = sizeof(*klist) + sizeof(struct key *) * max; in __key_link()
798 sizeof(struct key *) * klist->nkeys); in __key_link()
802 atomic_inc(&key->usage); in __key_link()
803 nklist->keys[nklist->nkeys++] = key; in __key_link()
831 int key_link(struct key *keyring, struct key *key) in key_link() argument
836 key_check(key); in key_link()
839 ret = __key_link(keyring, key); in key_link()
852 int key_unlink(struct key *keyring, struct key *key) in key_unlink() argument
858 key_check(key); in key_unlink()
870 if (klist->keys[loop] == key) in key_unlink()
881 sizeof(struct key *) * klist->maxkeys, in key_unlink()
891 loop * sizeof(struct key *)); in key_unlink()
896 (nklist->nkeys - loop) * sizeof(struct key *)); in key_unlink()
947 int keyring_clear(struct key *keyring) in keyring_clear()
987 static void keyring_revoke(struct key *keyring) in keyring_revoke()