getkeycreatecon(3) SELinux API documentation getkeycreatecon(3)

# [NAME](#NAME)

getkeycreatecon, setkeycreatecon - get or set the SELinux security context used for creating a new kernel keyrings

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;selinux/selinux.h&gt;**

**int getkeycreatecon(char \*\*con);**

**int getkeycreatecon\_raw(char \*\*con);**

**int setkeycreatecon(const char \*context);**

**int setkeycreatecon\_raw(const char \*context);**

# [DESCRIPTION](#DESCRIPTION)

**getkeycreatecon**() retrieves the context used for creating a new kernel keyring. This returned context should be freed with [**freecon**(3)](/man/os/libselinux/freecon.3) if non-NULL. **getkeycreatecon**() sets \*con to NULL if no keycreate context has been explicitly set by the program (i.e. using the default policy behavior).

**setkeycreatecon**() sets the context used for creating a new kernel keyring. NULL can be passed to **setkeycreatecon**() to reset to the default policy behavior. The keycreate context is automatically reset after the next [**execve**(2)](/man/os/libselinux/execve.2), so a program doesn't need to explicitly sanitize it upon startup.

**setkeycreatecon**() can be applied prior to library functions that internally perform an file creation, in order to set an file context on the objects.

**getkeycreatecon\_raw**() and **setkeycreatecon\_raw**() behave identically to their non-raw counterparts but do not perform context translation.

**Note:** Signal handlers that perform a **setkeycreatecon**() must take care to save, reset, and restore the keycreate context to avoid unexpected behavior.

**Note:** Contexts are thread specific.

# [RETURN VALUE](#RETURN_VALUE)

On error -1 is returned. On success 0 is returned.

# [SEE ALSO](#SEE_ALSO)

[**selinux**(8)](/man/os/libselinux/selinux.8), [**freecon**(3)](/man/os/libselinux/freecon.3), [**getcon**(3)](/man/os/libselinux/getcon.3), [**getexeccon**(3)](/man/os/libselinux/getexeccon.3)

9 September 2008 dwalsh@redhat.com

---

Document: getkeycreatecon(3) from libselinux 3.11-r2 (Chainguard OS)
Source: https://github.com/SELinuxProject/selinux.git
