]> git.hungrycats.org Git - linux/commit
[PATCH] implement in-kernel keys & keyring management
authorDavid Howells <dhowells@redhat.com>
Tue, 19 Oct 2004 00:58:51 +0000 (17:58 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 19 Oct 2004 00:58:51 +0000 (17:58 -0700)
commite4262f594a9e36cf93a8789fc7e02e9ff0d1f564
treef5265fb6090dc67eb231c3554b88320e9bfeeb26
parent322f317d1f560b90d8fe79d77fb248c98af92305
[PATCH] implement in-kernel keys & keyring management

The feature set the patch includes:

 - Key attributes:
   - Key type
   - Description (by which a key of a particular type can be selected)
   - Payload
   - UID, GID and permissions mask
   - Expiry time
 - Keyrings (just a type of key that holds links to other keys)
 - User-defined keys
 - Key revokation
 - Access controls
 - Per user key-count and key-memory consumption quota
 - Three std keyrings per task: per-thread, per-process, session
 - Two std keyrings per user: per-user and default-user-session
 - prctl() functions for key and keyring creation and management
 - Kernel interfaces for filesystem, blockdev, net stack access
 - JIT key creation by usermode helper

There are also two utility programs available:

 (*) http://people.redhat.com/~dhowells/keys/keyctl.c

     A comprehensive key management tool, permitting all the interfaces
     available to userspace to be exercised.

 (*) http://people.redhat.com/~dhowells/keys/request-key

     An example shell script (to be installed in /sbin) for instantiating a
     key.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
26 files changed:
Documentation/keys.txt [new file with mode: 0644]
arch/i386/kernel/entry.S
fs/afs/main.c
fs/exec.c
include/asm-i386/unistd.h
include/linux/key-ui.h [new file with mode: 0644]
include/linux/key.h [new file with mode: 0644]
include/linux/keyctl.h [new file with mode: 0644]
include/linux/prctl.h
include/linux/sched.h
include/linux/syscalls.h
kernel/exit.c
kernel/fork.c
kernel/sys.c
kernel/user.c
security/Kconfig
security/Makefile
security/keys/Makefile [new file with mode: 0644]
security/keys/internal.h [new file with mode: 0644]
security/keys/key.c [new file with mode: 0644]
security/keys/keyctl.c [new file with mode: 0644]
security/keys/keyring.c [new file with mode: 0644]
security/keys/proc.c [new file with mode: 0644]
security/keys/process_keys.c [new file with mode: 0644]
security/keys/request_key.c [new file with mode: 0644]
security/keys/user_defined.c [new file with mode: 0644]