aboutsummaryrefslogtreecommitdiff
path: root/include/linux/key.h
diff options
context:
space:
mode:
authorGravatar Thomas Weißschuh <linux@weissschuh.net> 2023-01-09 23:59:42 +0000
committerGravatar Jarkko Sakkinen <jarkko@kernel.org> 2023-02-13 10:11:20 +0200
commit6c1976addf3623e979b7a954e216004d559bcb42 (patch)
tree67503e23e9cbeb5daa7ff7db3f074f3997f06b64 /include/linux/key.h
parentcerts: make blacklisted hash available in klog (diff)
downloadlinux-6c1976addf3623e979b7a954e216004d559bcb42.tar.gz
linux-6c1976addf3623e979b7a954e216004d559bcb42.tar.bz2
linux-6c1976addf3623e979b7a954e216004d559bcb42.zip
KEYS: Add new function key_create()
key_create() works like key_create_or_update() but does not allow updating an existing key, instead returning ERR_PTR(-EEXIST). key_create() will be used by the blacklist keyring which should not create duplicate entries or update existing entries. Instead a dedicated message with appropriate severity will be logged. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Diffstat (limited to 'include/linux/key.h')
-rw-r--r--include/linux/key.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/key.h b/include/linux/key.h
index d27477faf00d..8dc7f7c3088b 100644
--- a/include/linux/key.h
+++ b/include/linux/key.h
@@ -386,6 +386,14 @@ extern int wait_for_key_construction(struct key *key, bool intr);
extern int key_validate(const struct key *key);
+extern key_ref_t key_create(key_ref_t keyring,
+ const char *type,
+ const char *description,
+ const void *payload,
+ size_t plen,
+ key_perm_t perm,
+ unsigned long flags);
+
extern key_ref_t key_create_or_update(key_ref_t keyring,
const char *type,
const char *description,