1 #include "key_control.h"
5 #include <sys/syscall.h>
6 #include <linux/keyctl.h>
8 static long keyctl(int cmd, ...)
11 unsigned long arg2, arg3, arg4, arg5;
14 arg2 = va_arg(va, unsigned long);
15 arg3 = va_arg(va, unsigned long);
16 arg4 = va_arg(va, unsigned long);
17 arg5 = va_arg(va, unsigned long);
19 return syscall(__NR_keyctl, cmd, arg2, arg3, arg4, arg5);
22 key_serial_t add_key(const char *type,
23 const char *description,
28 return syscall(__NR_add_key, type, description, payload, plen, ringid);
31 long keyctl_revoke(key_serial_t id)
33 return keyctl(KEYCTL_REVOKE, id);
36 long keyctl_setperm(key_serial_t id, int permissions)
38 return keyctl(KEYCTL_SETPERM, id, permissions);
41 long keyctl_search(key_serial_t ringid, const char *type,
42 const char *description, key_serial_t destringid)
44 return keyctl(KEYCTL_SEARCH, ringid, type, description, destringid);