1bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#include <sys/cdefs.h> 2bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#include <sys/types.h> 3bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 4bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence__BEGIN_DECLS 5bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 6bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence// ext4enc:TODO - get these keyring standard definitions from proper system file 7bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence// keyring serial number type 8bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrencetypedef int32_t key_serial_t; 9bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 10bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence// special process keyring shortcut IDs 11bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#define KEY_SPEC_THREAD_KEYRING -1 // key ID for thread-specific keyring 12bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#define KEY_SPEC_PROCESS_KEYRING -2 // key ID for process-specific keyring 13bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#define KEY_SPEC_SESSION_KEYRING -3 // key ID for session-specific keyring 14bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#define KEY_SPEC_USER_KEYRING -4 // key ID for UID-specific keyring 15bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#define KEY_SPEC_USER_SESSION_KEYRING -5 // key ID for UID-session keyring 16bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence#define KEY_SPEC_GROUP_KEYRING -6 // key ID for GID-specific keyring 17bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 18bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrencekey_serial_t add_key(const char *type, 19bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence const char *description, 20bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence const void *payload, 21bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence size_t plen, 22bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence key_serial_t ringid); 23bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 2431654044064d5bac0dd57c495ad43afb7573c393Paul Crowleylong keyctl_revoke(key_serial_t id); 2531654044064d5bac0dd57c495ad43afb7573c393Paul Crowley 26bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrencelong keyctl_setperm(key_serial_t id, int permissions); 27bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 28bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrencelong keyctl_search(key_serial_t ringid, const char *type, 29bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence const char *description, key_serial_t destringid); 30bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence 31bc2eb8c3fd621605ff1ccaed04a71e6685acc974Paul Lawrence__END_DECLS 32