Credentials provable through authentication
[D-Bus secret internal implementation details]

DBusCredentials object. More...

Functions

DBusCredentials_dbus_credentials_new (void)
 Creates a new credentials object.
DBusCredentials_dbus_credentials_new_from_current_process (void)
 Creates a new object with credentials (user ID and process ID) from the current process.
void _dbus_credentials_ref (DBusCredentials *credentials)
 Increment refcount on credentials.
void _dbus_credentials_unref (DBusCredentials *credentials)
 Decrement refcount on credentials.
dbus_bool_t _dbus_credentials_add_unix_pid (DBusCredentials *credentials, dbus_pid_t pid)
 Add a UNIX process ID to the credentials.
dbus_bool_t _dbus_credentials_add_unix_uid (DBusCredentials *credentials, dbus_uid_t uid)
 Add a UNIX user ID to the credentials.
dbus_bool_t _dbus_credentials_add_windows_sid (DBusCredentials *credentials, const char *windows_sid)
 Add a Windows user SID to the credentials.
dbus_bool_t _dbus_credentials_add_adt_audit_data (DBusCredentials *credentials, void *audit_data, dbus_int32_t size)
 Add ADT audit data to the credentials.
dbus_bool_t _dbus_credentials_include (DBusCredentials *credentials, DBusCredentialType type)
 Checks whether the given credential is present.
dbus_pid_t _dbus_credentials_get_unix_pid (DBusCredentials *credentials)
 Gets the UNIX process ID in the credentials, or DBUS_PID_UNSET if the credentials object doesn't contain a process ID.
dbus_uid_t _dbus_credentials_get_unix_uid (DBusCredentials *credentials)
 Gets the UNIX user ID in the credentials, or DBUS_UID_UNSET if the credentials object doesn't contain a user ID.
const char * _dbus_credentials_get_windows_sid (DBusCredentials *credentials)
 Gets the Windows user SID in the credentials, or NULL if the credentials object doesn't contain a Windows user SID.
void * _dbus_credentials_get_adt_audit_data (DBusCredentials *credentials)
 Gets the ADT audit data in the credentials, or NULL if the credentials object doesn't contain ADT audit data.
dbus_int32_t _dbus_credentials_get_adt_audit_data_size (DBusCredentials *credentials)
 Gets the ADT audit data size in the credentials, or 0 if the credentials object doesn't contain ADT audit data.
dbus_bool_t _dbus_credentials_are_superset (DBusCredentials *credentials, DBusCredentials *possible_subset)
 Checks whether the first credentials object contains all the credentials found in the second credentials object.
dbus_bool_t _dbus_credentials_are_empty (DBusCredentials *credentials)
 Checks whether a credentials object contains anything.
dbus_bool_t _dbus_credentials_are_anonymous (DBusCredentials *credentials)
 Checks whether a credentials object contains a user identity.
dbus_bool_t _dbus_credentials_add_credentials (DBusCredentials *credentials, DBusCredentials *other_credentials)
 Merge all credentials found in the second object into the first object, overwriting the first object if there are any overlaps.
dbus_bool_t _dbus_credentials_add_credential (DBusCredentials *credentials, DBusCredentialType which, DBusCredentials *other_credentials)
 Merge the given credential found in the second object into the first object, overwriting the first object's value for that credential.
void _dbus_credentials_clear (DBusCredentials *credentials)
 Clear all credentials in the object.
DBusCredentials_dbus_credentials_copy (DBusCredentials *credentials)
 Copy a credentials object.
dbus_bool_t _dbus_credentials_same_user (DBusCredentials *credentials, DBusCredentials *other_credentials)
 Check whether the user-identifying credentials in two credentials objects are identical.

Detailed Description

DBusCredentials object.

Credentials are what you have to prove you have in order to authenticate. The main credentials right now are a unix user account, a Windows user account, or a UNIX process ID.


Function Documentation

dbus_bool_t _dbus_credentials_add_adt_audit_data ( DBusCredentials credentials,
void *  audit_data,
dbus_int32_t  size 
)

Add ADT audit data to the credentials.

Parameters:
credentials the object
audit_data the audit data
size the length of audit data
Returns:
FALSE if no memory

Definition at line 204 of file dbus-credentials.c.

References _dbus_memdup(), adt_audit_data, adt_audit_data_size, dbus_free(), FALSE, NULL, and TRUE.

Referenced by _dbus_credentials_add_credential(), and _dbus_read_credentials_socket().

dbus_bool_t _dbus_credentials_add_credential ( DBusCredentials credentials,
DBusCredentialType  which,
DBusCredentials other_credentials 
)

Merge the given credential found in the second object into the first object, overwriting the first object's value for that credential.

Does nothing if the second object does not contain the specified credential. i.e., will never delete a credential from the first object.

Parameters:
credentials the object
which the credential to overwrite
other_credentials credentials to merge
Returns:
FALSE if no memory

Definition at line 408 of file dbus-credentials.c.

References _dbus_credentials_add_adt_audit_data(), _dbus_credentials_add_unix_pid(), _dbus_credentials_add_unix_uid(), _dbus_credentials_add_windows_sid(), adt_audit_data, adt_audit_data_size, DBUS_PID_UNSET, DBUS_UID_UNSET, FALSE, NULL, TRUE, unix_pid, unix_uid, and windows_sid.

Referenced by _dbus_credentials_add_credentials().

dbus_bool_t _dbus_credentials_add_credentials ( DBusCredentials credentials,
DBusCredentials other_credentials 
)

Merge all credentials found in the second object into the first object, overwriting the first object if there are any overlaps.

Parameters:
credentials the object
other_credentials credentials to merge
Returns:
FALSE if no memory

Definition at line 377 of file dbus-credentials.c.

References _dbus_credentials_add_credential().

Referenced by _dbus_auth_set_credentials(), and _dbus_credentials_copy().

dbus_bool_t _dbus_credentials_add_unix_pid ( DBusCredentials credentials,
dbus_pid_t  pid 
)

Add a UNIX process ID to the credentials.

Parameters:
credentials the object
pid the process ID
Returns:
FALSE if no memory

Definition at line 149 of file dbus-credentials.c.

References TRUE, and unix_pid.

Referenced by _dbus_credentials_add_credential(), _dbus_credentials_add_from_current_process(), and _dbus_read_credentials_socket().

dbus_bool_t _dbus_credentials_add_unix_uid ( DBusCredentials credentials,
dbus_uid_t  uid 
)

Add a UNIX user ID to the credentials.

Parameters:
credentials the object
uid the user ID
Returns:
FALSE if no memory

Definition at line 164 of file dbus-credentials.c.

References TRUE, and unix_uid.

Referenced by _dbus_credentials_add_credential(), _dbus_credentials_add_from_current_process(), _dbus_credentials_add_from_user(), and _dbus_read_credentials_socket().

dbus_bool_t _dbus_credentials_add_windows_sid ( DBusCredentials credentials,
const char *  windows_sid 
)

Add a Windows user SID to the credentials.

Parameters:
credentials the object
windows_sid the user SID
Returns:
FALSE if no memory

Definition at line 180 of file dbus-credentials.c.

References _dbus_strdup(), dbus_free(), FALSE, NULL, TRUE, and windows_sid.

Referenced by _dbus_credentials_add_credential().

dbus_bool_t _dbus_credentials_are_anonymous ( DBusCredentials credentials  ) 

Checks whether a credentials object contains a user identity.

Parameters:
credentials the object
Returns:
TRUE if there are no user identities in the object

Definition at line 361 of file dbus-credentials.c.

References DBUS_UID_UNSET, NULL, unix_uid, and windows_sid.

Referenced by _dbus_append_keyring_directory_for_credentials(), _dbus_keyring_new_for_credentials(), and _dbus_transport_get_is_anonymous().

dbus_bool_t _dbus_credentials_are_empty ( DBusCredentials credentials  ) 

Checks whether a credentials object contains anything.

Parameters:
credentials the object
Returns:
TRUE if there are no credentials in the object

Definition at line 345 of file dbus-credentials.c.

References adt_audit_data, DBUS_PID_UNSET, DBUS_UID_UNSET, NULL, unix_pid, unix_uid, and windows_sid.

Referenced by _dbus_auth_get_identity().

dbus_bool_t _dbus_credentials_are_superset ( DBusCredentials credentials,
DBusCredentials possible_subset 
)

Checks whether the first credentials object contains all the credentials found in the second credentials object.

Parameters:
credentials the object
possible_subset see if credentials in here are also in the first arg
Returns:
TRUE if second arg is contained in first

Definition at line 321 of file dbus-credentials.c.

References adt_audit_data, adt_audit_data_size, DBUS_PID_UNSET, DBUS_UID_UNSET, NULL, unix_pid, unix_uid, and windows_sid.

void _dbus_credentials_clear ( DBusCredentials credentials  ) 

Clear all credentials in the object.

Parameters:
credentials the object

Definition at line 446 of file dbus-credentials.c.

References adt_audit_data, adt_audit_data_size, dbus_free(), DBUS_PID_UNSET, DBUS_UID_UNSET, NULL, unix_pid, unix_uid, and windows_sid.

Referenced by _dbus_auth_set_credentials(), and _dbus_read_credentials_socket().

DBusCredentials* _dbus_credentials_copy ( DBusCredentials credentials  ) 

Copy a credentials object.

Parameters:
credentials the object
Returns:
the copy or NULL

Definition at line 464 of file dbus-credentials.c.

References _dbus_credentials_add_credentials(), _dbus_credentials_new(), _dbus_credentials_unref(), and NULL.

Referenced by _dbus_keyring_new_for_credentials().

void* _dbus_credentials_get_adt_audit_data ( DBusCredentials credentials  ) 

Gets the ADT audit data in the credentials, or NULL if the credentials object doesn't contain ADT audit data.

Parameters:
credentials the object
Returns:
Solaris ADT audit data

Definition at line 294 of file dbus-credentials.c.

References adt_audit_data.

Referenced by _dbus_transport_get_adt_audit_session_data().

dbus_int32_t _dbus_credentials_get_adt_audit_data_size ( DBusCredentials credentials  ) 

Gets the ADT audit data size in the credentials, or 0 if the credentials object doesn't contain ADT audit data.

Parameters:
credentials the object
Returns:
Solaris ADT audit data size

Definition at line 307 of file dbus-credentials.c.

References adt_audit_data_size.

Referenced by _dbus_transport_get_adt_audit_session_data().

dbus_pid_t _dbus_credentials_get_unix_pid ( DBusCredentials credentials  ) 

Gets the UNIX process ID in the credentials, or DBUS_PID_UNSET if the credentials object doesn't contain a process ID.

Parameters:
credentials the object
Returns:
UNIX process ID

Definition at line 255 of file dbus-credentials.c.

References unix_pid.

Referenced by _dbus_transport_get_unix_process_id().

dbus_uid_t _dbus_credentials_get_unix_uid ( DBusCredentials credentials  ) 

Gets the UNIX user ID in the credentials, or DBUS_UID_UNSET if the credentials object doesn't contain a user ID.

Parameters:
credentials the object
Returns:
UNIX user ID

Definition at line 268 of file dbus-credentials.c.

References unix_uid.

Referenced by _dbus_append_keyring_directory_for_credentials(), and _dbus_transport_get_unix_user().

const char* _dbus_credentials_get_windows_sid ( DBusCredentials credentials  ) 

Gets the Windows user SID in the credentials, or NULL if the credentials object doesn't contain a Windows user SID.

Parameters:
credentials the object
Returns:
Windows user SID

Definition at line 281 of file dbus-credentials.c.

References windows_sid.

Referenced by _dbus_transport_get_windows_user().

dbus_bool_t _dbus_credentials_include ( DBusCredentials credentials,
DBusCredentialType  type 
)

Checks whether the given credential is present.

Parameters:
credentials the object
type the credential to check for
Returns:
TRUE if the credential is present

Definition at line 228 of file dbus-credentials.c.

References _dbus_assert_not_reached, adt_audit_data, DBUS_PID_UNSET, DBUS_UID_UNSET, FALSE, NULL, unix_pid, unix_uid, and windows_sid.

Referenced by _dbus_transport_get_adt_audit_session_data(), _dbus_transport_get_is_authenticated(), _dbus_transport_get_unix_process_id(), _dbus_transport_get_unix_user(), and _dbus_transport_get_windows_user().

DBusCredentials* _dbus_credentials_new ( void   ) 

Creates a new credentials object.

Returns:
the new object or NULL if no memory

Definition at line 70 of file dbus-credentials.c.

References adt_audit_data, adt_audit_data_size, dbus_new, DBUS_PID_UNSET, DBUS_UID_UNSET, NULL, refcount, unix_pid, unix_uid, and windows_sid.

Referenced by _dbus_credentials_copy(), _dbus_credentials_new_from_current_process(), and _dbus_transport_init_base().

DBusCredentials* _dbus_credentials_new_from_current_process ( void   ) 

Creates a new object with credentials (user ID and process ID) from the current process.

Returns:
the new object or NULL if no memory

Definition at line 93 of file dbus-credentials.c.

References _dbus_credentials_add_from_current_process(), _dbus_credentials_new(), _dbus_credentials_unref(), and NULL.

Referenced by _dbus_keyring_new_for_credentials().

void _dbus_credentials_ref ( DBusCredentials credentials  ) 

Increment refcount on credentials.

Parameters:
credentials the object

Definition at line 116 of file dbus-credentials.c.

References _dbus_assert, and refcount.

dbus_bool_t _dbus_credentials_same_user ( DBusCredentials credentials,
DBusCredentials other_credentials 
)

Check whether the user-identifying credentials in two credentials objects are identical.

Credentials that are not related to the user are ignored, but any kind of user ID credentials must be the same (UNIX user ID, Windows user SID, etc.) and present in both objects for the function to return TRUE.

Parameters:
credentials the object
other_credentials credentials to compare
Returns:
TRUE if the two credentials refer to the same user

Definition at line 493 of file dbus-credentials.c.

References unix_uid, and windows_sid.

Referenced by _dbus_keyring_is_for_credentials().

void _dbus_credentials_unref ( DBusCredentials credentials  ) 

Decrement refcount on credentials.

Parameters:
credentials the object

Definition at line 128 of file dbus-credentials.c.

References _dbus_assert, adt_audit_data, dbus_free(), refcount, and windows_sid.

Referenced by _dbus_auth_unref(), _dbus_credentials_copy(), _dbus_credentials_new_from_current_process(), _dbus_keyring_new_for_credentials(), _dbus_keyring_unref(), _dbus_transport_finalize_base(), and _dbus_transport_init_base().


Generated on Sat Dec 6 19:43:44 2008 for D-Bus by  doxygen 1.5.1