summaryrefslogtreecommitdiffstats
path: root/include/linux/key.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-07-08 22:02:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-08 22:02:11 -0400
commitd44a62742decca5ae5688a562584dc0fe9fc63f6 (patch)
tree4a9bb7e50652644e48e4d45fd8dcd3abac4cec41 /include/linux/key.h
parent7c0f89634892693fc0b46f25e0a6d57bd6dd5698 (diff)
parent45e0f30c30bb131663fbe1752974d6f2e39611e2 (diff)
Merge tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
Pull misc keyring updates from David Howells: "These are some miscellaneous keyrings fixes and improvements: - Fix a bunch of warnings from sparse, including missing RCU bits and kdoc-function argument mismatches - Implement a keyctl to allow a key to be moved from one keyring to another, with the option of prohibiting key replacement in the destination keyring. - Grant Link permission to possessors of request_key_auth tokens so that upcall servicing daemons can more easily arrange things such that only the necessary auth key is passed to the actual service program, and not all the auth keys a daemon might possesss. - Improvement in lookup_user_key(). - Implement a keyctl to allow keyrings subsystem capabilities to be queried. The keyutils next branch has commits to make available, document and test the move-key and capabilities code: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/log They're currently on the 'next' branch" * tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: keys: Add capability-checking keyctl function keys: Reuse keyring_index_key::desc_len in lookup_user_key() keys: Grant Link permission to possessers of request_key auth keys keys: Add a keyctl to move a key between keyrings keys: Hoist locking out of __key_link_begin() keys: Break bits out of key_unlink() keys: Change keyring_serialise_link_sem to a mutex keys: sparse: Fix kdoc mismatches keys: sparse: Fix incorrect RCU accesses keys: sparse: Fix key_fs[ug]id_changed()
Diffstat (limited to 'include/linux/key.h')
-rw-r--r--include/linux/key.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/include/linux/key.h b/include/linux/key.h
index 1c8b88b455ef..8b297b94bfb3 100644
--- a/include/linux/key.h
+++ b/include/linux/key.h
@@ -305,6 +305,11 @@ extern int key_update(key_ref_t key,
305extern int key_link(struct key *keyring, 305extern int key_link(struct key *keyring,
306 struct key *key); 306 struct key *key);
307 307
308extern int key_move(struct key *key,
309 struct key *from_keyring,
310 struct key *to_keyring,
311 unsigned int flags);
312
308extern int key_unlink(struct key *keyring, 313extern int key_unlink(struct key *keyring,
309 struct key *key); 314 struct key *key);
310 315
@@ -397,8 +402,8 @@ extern struct ctl_table key_sysctls[];
397 * the userspace interface 402 * the userspace interface
398 */ 403 */
399extern int install_thread_keyring_to_cred(struct cred *cred); 404extern int install_thread_keyring_to_cred(struct cred *cred);
400extern void key_fsuid_changed(struct task_struct *tsk); 405extern void key_fsuid_changed(struct cred *new_cred);
401extern void key_fsgid_changed(struct task_struct *tsk); 406extern void key_fsgid_changed(struct cred *new_cred);
402extern void key_init(void); 407extern void key_init(void);
403 408
404#else /* CONFIG_KEYS */ 409#else /* CONFIG_KEYS */
@@ -413,8 +418,8 @@ extern void key_init(void);
413#define make_key_ref(k, p) NULL 418#define make_key_ref(k, p) NULL
414#define key_ref_to_ptr(k) NULL 419#define key_ref_to_ptr(k) NULL
415#define is_key_possessed(k) 0 420#define is_key_possessed(k) 0
416#define key_fsuid_changed(t) do { } while(0) 421#define key_fsuid_changed(c) do { } while(0)
417#define key_fsgid_changed(t) do { } while(0) 422#define key_fsgid_changed(c) do { } while(0)
418#define key_init() do { } while(0) 423#define key_init() do { } while(0)
419 424
420#endif /* CONFIG_KEYS */ 425#endif /* CONFIG_KEYS */