KEYS: prevent keys from being removed from specified keyrings
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Tue, 10 Nov 2015 13:34:46 +0000 (08:34 -0500)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Tue, 15 Dec 2015 15:01:43 +0000 (10:01 -0500)
commitd3600bcf9d64d88dc1d189a754dcfab960ce751f
tree0db5cee0ddb99cfe1cbd7f8314653f36ddf5005f
parent80eae209d63ac6361c7b445f7e7e41f39c044772
KEYS: prevent keys from being removed from specified keyrings

Userspace should not be allowed to remove keys from certain keyrings
(eg. blacklist), though the keys themselves can expire.

This patch defines a new key flag named KEY_FLAG_KEEP to prevent
userspace from being able to unlink, revoke, invalidate or timed
out a key on a keyring.  When this flag is set on the keyring, all
keys subsequently added are flagged.

In addition, when this flag is set, the keyring itself can not be
cleared.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: David Howells <dhowells@redhat.com>
include/linux/key.h
security/keys/key.c
security/keys/keyctl.c