add_key(2) System Calls Manual add_key(2) add_key - (libc -lc) #include key_serial_t add_key(size_t size; const char *type, const char *description, const void payload[size], size_t size, key_serial_t keyring); : glibc NOTES. add_key() type description payload size keyring . . keyring type description ( ) keyring. keyring keyring write . keyring : KEY_SPEC_THREAD_KEYRING keyring (thread-keyring(7)). KEY_SPEC_PROCESS_KEYRING keyring (process-keyring(7)). KEY_SPEC_SESSION_KEYRING keyring (session-keyring(7)). KEY_SPEC_USER_KEYRING keyring (user-keyring(7)). KEY_SPEC_USER_SESSION_KEYRING keyring (user-session-keyring(7)). type . . type add_key() : "keyring" Keyrings . keyring payload NULL size . "user" . . 32,767 . "logon" ( 3.3) "user" . . description "service" description ':' . "big_key" ( 3.13) "user" 1 MiB. tmpfs ( ) . keyrings(7). add_key() . -1 errno . EACCES . EDQUOT . EFAULT type description payload . EINVAL ( null ) type description (32 4096 ). EINVAL . EINVAL type "logon" description "service:". EKEYEXPIRED keyring. EKEYREVOKED keyring. ENOKEY keyring . ENOMEM . EPERM type ('.'). . EPERM type "keyring" description ('.'). Keyrings () . . 2.6.10. glibc . libkeyutils. ( .) -lkeyutils. keyring . : $ ./a.out user mykey "Some payload"; Key ID is 64a4dca $ grep '64a4dca' /proc/keys; 064a4dca I--Q--- 1 perm 3f010000 1000 1000 user mykey: 12 #include #include #include #include #include int main(int argc, char *argv[]) { key_serial_t key; if (argc != 4) { fprintf(stderr, "Usage: %s type description payload\n", argv[0]); exit(EXIT_FAILURE); } key = add_key(argv[1], argv[2], argv[3], strlen(argv[3]), KEY_SPEC_SESSION_KEYRING); if (key == -1) { perror("add_key"); exit(EXIT_FAILURE); } printf("Key ID is %jx\n", (uintmax_t) key); exit(EXIT_SUCCESS); } keyctl(1), keyctl(2), request_key(2), keyctl(3), keyrings(7), keyutils(7), persistent-keyring(7), process-keyring(7), session-keyring(7), thread-keyring(7), user-keyring(7), user-session-keyring(7) Documentation/security/keys/core.rst Documentation/keys/request-key.rst. 3 . . : . 6.18 8 2026 add_key(2)