Authentication implementation details
D-Bus secret internal implementation details

DBusAuth implementation details. More...

## Data Structures

struct | DBusAuthMechanismHandler
| Virtual table representing a particular auth mechanism. More...
struct | DBusAuthStateData
| Information about a auth state. More...
struct | DBusAuth
| Internal members of DBusAuth. More...
struct | DBusAuthClient
| "Subclass" of DBusAuth for client side More...
struct | DBusAuthServer
| "Subclass" of DBusAuth for server side. More...
struct | DBusAuthCommandName
| Mapping from command name to enum. More...

## Macros

#define | DBUS_AUTH_IS_SERVER(auth) ((auth)->side == auth_side_server)
#define | DBUS_AUTH_IS_CLIENT(auth) ((auth)->side == auth_side_client)
#define | DBUS_AUTH_CLIENT(auth) ((DBusAuthClient*)(auth))
#define | DBUS_AUTH_SERVER(auth) ((DBusAuthServer*)(auth))
#define | DBUS_AUTH_NAME(auth) ((auth)->side)
| The name of the auth ("client" or "server") More...
#define | N_CHALLENGE_BYTES (128/8)
| http://www.ietf.org/rfc/rfc2831.txt suggests at least 64 bits of entropy, we use 128. More...

## Typedefs

typedef dbus_bool_t(* | DBusInitialResponseFunction )(DBusAuth *auth, DBusString *response)
| This function appends an initial client response to the given string.
typedef dbus_bool_t(* | DBusAuthDataFunction )(DBusAuth *auth, const DBusString *data)
| This function processes a block of data received from the peer. More...
typedef dbus_bool_t(* | DBusAuthEncodeFunction )(DBusAuth *auth, const DBusString *data, DBusString *encoded)
| This function encodes a block of data from the peer.
typedef dbus_bool_t(* | DBusAuthDecodeFunction )(DBusAuth *auth, const DBusString *data, DBusString *decoded)
| This function decodes a block of data from the peer.
typedef void(* | DBusAuthShutdownFunction )(DBusAuth *auth)
| This function is called when the mechanism is abandoned.
typedef dbus_bool_t(* | DBusAuthStateFunction )(DBusAuth *auth, DBusAuthCommand command, const DBusString *args)
| Auth state function, determines the reaction to incoming events for a particular state. More...

## Enumerations

enum | DBusAuthCommand { DBUS_AUTH_COMMAND_AUTH, DBUS_AUTH_COMMAND_CANCEL, DBUS_AUTH_COMMAND_DATA, DBUS_AUTH_COMMAND_BEGIN, DBUS_AUTH_COMMAND_REJECTED, DBUS_AUTH_COMMAND_OK, DBUS_AUTH_COMMAND_ERROR, DBUS_AUTH_COMMAND_UNKNOWN, DBUS_AUTH_COMMAND_NEGOTIATE_UNIX_FD, DBUS_AUTH_COMMAND_AGREE_UNIX_FD }
| Enumeration for the known authentication commands.

## Detailed Description

DBusAuth implementation details.

Private details of authentication code.

## Macro Definition Documentation

#define DBUS_AUTH_CLIENT | ( |  | auth) |  | ((DBusAuthClient*)(auth))

Parameters

  auth | the auth conversation

Returns
  auth cast to DBusAuthClient

Definition at line 323 of file dbus-auth.c.

Referenced by _dbus_auth_client_new(), _dbus_auth_get_guid_from_server(), and _dbus_auth_unref().

#define DBUS_AUTH_IS_CLIENT | ( |  | auth) |  | ((auth)->side == auth_side_client)

Parameters

  auth | the auth conversation

Returns
  TRUE if the conversation is the client side

Definition at line 318 of file dbus-auth.c.

Referenced by _dbus_auth_decode_data(), _dbus_auth_encode_data(), _dbus_auth_get_guid_from_server(), _dbus_auth_needs_decoding(), _dbus_auth_needs_encoding(), and _dbus_auth_unref().

#define DBUS_AUTH_IS_SERVER | ( |  | auth) |  | ((auth)->side == auth_side_server)

Parameters

  auth | the auth conversation

Returns
  TRUE if the conversation is the server side

Definition at line 313 of file dbus-auth.c.

Referenced by _dbus_auth_unref().

#define DBUS_AUTH_NAME | ( |  | auth) |  | ((auth)->side)

The name of the auth ("client" or "server")

Parameters

  auth | the auth conversation

Returns
  a string

Definition at line 335 of file dbus-auth.c.

Referenced by _dbus_auth_bytes_sent(), and _dbus_auth_do_work().

#define DBUS_AUTH_SERVER | ( |  | auth) |  | ((DBusAuthServer*)(auth))

Parameters

  auth | the auth conversation

Returns
  auth cast to DBusAuthServer

Definition at line 328 of file dbus-auth.c.

Referenced by _dbus_auth_server_new(), and _dbus_auth_unref().

#define N_CHALLENGE_BYTES (128/8)

http://www.ietf.org/rfc/rfc2831.txt suggests at least 64 bits of entropy, we use 128.

This is the number of bytes in the random challenge.

Definition at line 516 of file dbus-auth.c.

## Typedef Documentation

typedef dbus_bool_t(* DBusAuthDataFunction)(DBusAuth *auth, const DBusString *data)

This function processes a block of data received from the peer.

i.e. handles a DATA command.

Definition at line 77 of file dbus-auth.c.

typedef dbus_bool_t(* DBusAuthStateFunction)(DBusAuth *auth, DBusAuthCommand command, const DBusString *args)

Auth state function, determines the reaction to incoming events for a particular state.

Returns whether we had enough memory to complete the operation.

Definition at line 137 of file dbus-auth.c.