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)
#define | DBUS_AUTH_IS_CLIENT(auth)
#define | DBUS_AUTH_CLIENT(auth)
#define | DBUS_AUTH_SERVER(auth)
#define | DBUS_AUTH_NAME(auth)
| The name of the auth ("client" or "server").
#define | N_CHALLENGE_BYTES (128/8)
| http://www.ietf.org/rfc/rfc2831.txt suggests at least 64 bits of entropy, we use 128.

## 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.
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.

## 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. More...

## Detailed Description

DBusAuth implementation details.

Private details of authentication code.

## Macro Definition Documentation

## DBUS_AUTH_CLIENT

#define DBUS_AUTH_CLIENT | ( |  | auth | ) |

Value:
((DBusAuthClient*)(auth))
DBusAuthClient
"Subclass" of DBusAuth for client side
Definition dbus-auth.c:202

Parameters

  auth | the auth conversation

Returns
  auth cast to DBusAuthClient

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

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

## DBUS_AUTH_IS_CLIENT

#define DBUS_AUTH_IS_CLIENT | ( |  | auth | ) |

Value:
((auth)->side == auth_side_client)

Parameters

  auth | the auth conversation

Returns
  TRUE if the conversation is the client side

Definition at line 323 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().

## DBUS_AUTH_IS_SERVER

#define DBUS_AUTH_IS_SERVER | ( |  | auth | ) |

Value:
((auth)->side == auth_side_server)

Parameters

  auth | the auth conversation

Returns
  TRUE if the conversation is the server side

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

Referenced by _dbus_auth_unref().

## DBUS_AUTH_NAME

#define DBUS_AUTH_NAME | ( |  | auth | ) |

Value:
((auth)->side)

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

Parameters

  auth | the auth conversation

Returns
  a string

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

Referenced by _dbus_auth_bytes_sent(), and _dbus_auth_do_work().

## DBUS_AUTH_SERVER

#define DBUS_AUTH_SERVER | ( |  | auth | ) |

Value:
((DBusAuthServer*)(auth))
DBusAuthServer
"Subclass" of DBusAuth for server side.
Definition dbus-auth.c:215

Parameters

  auth | the auth conversation

Returns
  auth cast to DBusAuthServer

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

Referenced by _dbus_auth_server_new(), and _dbus_auth_unref().

## N_CHALLENGE_BYTES

#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 521 of file dbus-auth.c.

## Typedef Documentation

## DBusAuthDataFunction

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 79 of file dbus-auth.c.

## DBusAuthDecodeFunction

typedef dbus_bool_t(* DBusAuthDecodeFunction) (DBusAuth *auth, const DBusString *data, DBusString *decoded)

This function decodes a block of data from the peer.

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

## DBusAuthEncodeFunction

typedef dbus_bool_t(* DBusAuthEncodeFunction) (DBusAuth *auth, const DBusString *data, DBusString *encoded)

This function encodes a block of data from the peer.

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

## DBusAuthShutdownFunction

typedef void(* DBusAuthShutdownFunction) (DBusAuth *auth)

This function is called when the mechanism is abandoned.

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

## DBusAuthStateFunction

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 139 of file dbus-auth.c.

## DBusInitialResponseFunction

typedef dbus_bool_t(* DBusInitialResponseFunction) (DBusAuth *auth, DBusString *response)

This function appends an initial client response to the given string.

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

## Enumeration Type Documentation

## DBusAuthCommand

enum DBusAuthCommand

Enumeration for the known authentication commands.

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