4 May 2006
keyctl_get_keyring_ID - get the ID of a special keyring
key_serial_t keyctl_get_keyring_ID(key_serial_t key, int create);
keyctl_get_keyring_ID() maps a special key or keyring ID to the serial number of the key actually representing that feature. The serial number will be returned if that key exists.
If a valid keyring ID is passed in, then this will simply be returned if the key exists; an error will be issued if it doesn’t exist.
If the key or keyring does not yet exist, then if create is non-zero, the key or keyring will be created if it is appropriate to do so.
The following special key IDs may be specified as key:
|This specifies the caller’s thread-specific keyring.|
|This specifies the caller’s process-specific keyring.|
|This specifies the caller’s session-specific keyring.|
|This specifies the caller’s UID-specific keyring.|
|This specifies the caller’s UID-session keyring.|
|This specifies the authorisation key created by request_key() and passed to the process it spawns to generate a key.|
On success keyctl_get_keyring_ID() returns the serial number of the key it found. On error, the value -1 will be returned and errno will have been set to an appropriate error.
|ENOKEY||No matching key was found.|
|ENOMEM||Insufficient memory to create a key.|
|EDQUOT||The key quota for this user would be exceeded by creating this key or linking it to the keyring.|
This is a library function that can be found in libkeyutils. When linking, -lkeyutils should be specified to the linker.