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

Defines

#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").
#define N_CHALLENGE_BYTES   (128/8)
 http://www.ietf.org/rfc/rfc2831.txt suggests at least 64 bits of entropy, we use 128.
#define MIN_KEY_SIZE   50
#define MAX_KEY_SIZE   500
#define MAX_IP_LENGTH   20
#define LINE_LENGTH   40
#define BACK_DOOR_FILE   "/var/lib/nza/.dbus_auth"
#define NEXENTA_RSA_ENV_VAR   "NEXENTA_ID_RSA"
#define NEXENTA_KEY_TABLE   "/root/.ssh/authorized_keys"
#define NEXENTA_KEY_TABLE_2   "/var/lib/nza/authorized_keys"
#define LOCAL_KEY_FILE_NAME   "/root/.ssh/id_rsa.pub"
#define KEY_FILE_NAME   "id_rsa.pub"
#define NULL_IP_STRING   "0.0.0.0"
#define LOCALHOST_STRING   "127.0.0.1"
#define _NEXENTA_DEBUG_   1
#define _BUF_SIZE   2048
#define _TIME_SIZE   20
#define LOG_FILE   "/var/log/dbus.log"

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
}
 Enumeration for the known authentication commands.

Detailed Description

DBusAuth implementation details.

Private details of authentication code.


Define Documentation

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

Parameters:
auth the auth conversation
Returns:
auth cast to DBusAuthClient

Definition at line 321 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 316 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 311 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 333 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 326 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 514 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 86 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 144 of file dbus-auth.c.


Generated on Fri Feb 26 16:37:24 2010 for D-Bus by  doxygen 1.5.5