Top |
The GCredentials type is a reference-counted wrapper for native credentials. This information is typically used for identifying, authenticating and authorizing other processes.
Some operating systems supports looking up the credentials of the
remote peer of a communication endpoint - see e.g.
g_socket_get_credentials()
.
Some operating systems supports securely sending and receiving
credentials over a Unix Domain Socket, see
GUnixCredentialsMessage, g_unix_connection_send_credentials()
and
g_unix_connection_receive_credentials()
for details.
On Linux, the native credential type is a struct ucred - see the
unix(7) man page for details. This corresponds to
G_CREDENTIALS_TYPE_LINUX_UCRED
.
On FreeBSD, Debian GNU/kFreeBSD, and GNU/Hurd, the native
credential type is a struct cmsgcred. This corresponds
to G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED
.
On NetBSD, the native credential type is a struct unpcbid.
This corresponds to G_CREDENTIALS_TYPE_NETBSD_UNPCBID
.
On OpenBSD, the native credential type is a struct sockpeercred.
This corresponds to G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED
.
On Solaris (including OpenSolaris and its derivatives), the native
credential type is a ucred_t. This corresponds to
G_CREDENTIALS_TYPE_SOLARIS_UCRED
.
GCredentials *
g_credentials_new (void
);
Creates a new GCredentials object with credentials matching the the current process.
Since 2.26
gchar *
g_credentials_to_string (GCredentials *credentials
);
Creates a human-readable textual representation of credentials
that can be used in logging and debug messages. The format of the
returned string may change in future GLib release.
Since 2.26
gpointer g_credentials_get_native (GCredentials *credentials
,GCredentialsType native_type
);
Gets a pointer to native credentials of type native_type
from
credentials
.
It is a programming error (which will cause an warning to be
logged) to use this method if there is no GCredentials support for
the OS or if native_type
isn't supported by the OS.
The pointer to native credentials or NULL
if the
operation there is no GCredentials support for the OS or if
native_type
isn't supported by the OS. Do not free the returned
data, it is owned by credentials
.
Since 2.26
void g_credentials_set_native (GCredentials *credentials
,GCredentialsType native_type
,gpointer native
);
Copies the native credentials of type native_type
from native
into credentials
.
It is a programming error (which will cause an warning to be
logged) to use this method if there is no GCredentials support for
the OS or if native_type
isn't supported by the OS.
credentials |
A GCredentials. |
|
native_type |
The type of native credentials to set. |
|
native |
A pointer to native credentials. |
Since 2.26
gboolean g_credentials_is_same_user (GCredentials *credentials
,GCredentials *other_credentials
,GError **error
);
Checks if credentials
and other_credentials
is the same user.
This operation can fail if GCredentials is not supported on the the OS.
credentials |
A GCredentials. |
|
other_credentials |
A GCredentials. |
|
error |
Return location for error or |
TRUE
if credentials
and other_credentials
has the same
user, FALSE
otherwise or if error
is set.
Since 2.26
uid_t g_credentials_get_unix_user (GCredentials *credentials
,GError **error
);
Tries to get the UNIX user identifier from credentials
. This
method is only available on UNIX platforms.
This operation can fail if GCredentials is not supported on the OS or if the native credentials type does not contain information about the UNIX user.
Since 2.26
gboolean g_credentials_set_unix_user (GCredentials *credentials
,uid_t uid
,GError **error
);
Tries to set the UNIX user identifier on credentials
. This method
is only available on UNIX platforms.
This operation can fail if GCredentials is not supported on the OS or if the native credentials type does not contain information about the UNIX user. It can also fail if the OS does not allow the use of "spoofed" credentials.
credentials |
A GCredentials. |
|
uid |
The UNIX user identifier to set. |
|
error |
Return location for error or |
Since 2.26
pid_t g_credentials_get_unix_pid (GCredentials *credentials
,GError **error
);
Tries to get the UNIX process identifier from credentials
. This
method is only available on UNIX platforms.
This operation can fail if GCredentials is not supported on the OS or if the native credentials type does not contain information about the UNIX process ID.
Since 2.36
typedef struct _GCredentials GCredentials;
The GCredentials structure contains only private data and should only be accessed using the provided API.
Since 2.26
Enumeration describing different kinds of native credential types.
Indicates an invalid native credential type. |
||
The native credentials type is a <type>struct ucred</type>. |
||
The native credentials type is a <type>struct cmsgcred</type>. |
||
The native credentials type is a <type>struct sockpeercred</type>. Added in 2.30. |
||
The native credentials type is a <type>ucred_t</type>. Added in 2.40. |
||
The native credentials type is a <type>struct unpcbid</type>. |
Since 2.26