## Service-side Channel Authentication interfaces

Service-side Channel Authentication interfaces — GInterfaces to implement authentication channels

## Functions

void | (*tp_svc_channel_interface_sasl_authentication_abort_sasl_impl) ()
void | (*tp_svc_channel_interface_sasl_authentication_accept_sasl_impl) ()
void | tp_svc_channel_interface_sasl_authentication_emit_new_challenge ()
void | tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed ()
void | tp_svc_channel_interface_sasl_authentication_implement_abort_sasl ()
void | tp_svc_channel_interface_sasl_authentication_implement_accept_sasl ()
void | tp_svc_channel_interface_sasl_authentication_implement_respond ()
void | tp_svc_channel_interface_sasl_authentication_implement_start_mechanism ()
void | tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data ()
void | (*tp_svc_channel_interface_sasl_authentication_respond_impl) ()
void | tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl ()
void | tp_svc_channel_interface_sasl_authentication_return_from_accept_sasl ()
void | tp_svc_channel_interface_sasl_authentication_return_from_respond ()
void | tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism ()
void | tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism_with_data ()
void | (*tp_svc_channel_interface_sasl_authentication_start_mechanism_impl) ()
void | (*tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl) ()
void | (*tp_svc_channel_interface_captcha_authentication_answer_captchas_impl) ()
void | (*tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl) ()
void | (*tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl) ()
void | (*tp_svc_channel_interface_captcha_authentication_get_captchas_impl) ()
void | tp_svc_channel_interface_captcha_authentication_implement_answer_captchas ()
void | tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha ()
void | tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data ()
void | tp_svc_channel_interface_captcha_authentication_implement_get_captchas ()
void | tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas ()
void | tp_svc_channel_interface_captcha_authentication_return_from_cancel_captcha ()
void | tp_svc_channel_interface_captcha_authentication_return_from_get_captcha_data ()
void | tp_svc_channel_interface_captcha_authentication_return_from_get_captchas ()

## Signals

void | new-challenge | Has Details
void | s-as-lstatus-changed | Has Details

## Types and Values

| TpSvcChannelTypeServerAuthentication
| TpSvcChannelTypeServerAuthenticationClass
| TpSvcChannelInterfaceSASLAuthentication
| TpSvcChannelInterfaceSASLAuthenticationClass
| TpSvcChannelInterfaceCaptchaAuthentication
| TpSvcChannelInterfaceCaptchaAuthenticationClass

## Object Hierarchy

        GInterface
        ├── TpSvcChannelInterfaceCaptchaAuthentication
        ├── TpSvcChannelInterfaceSASLAuthentication
        ╰── TpSvcChannelTypeServerAuthentication

## Known Implementations

TpSvcChannelTypeServerAuthentication is implemented by TpBasePasswordChannel.

TpSvcChannelInterfaceSASLAuthentication is implemented by TpBasePasswordChannel.

## Includes

    #include <telepathy-glib/telepathy-glib-dbus.h>

## Description

The ServerAuthentication channel type represents a request for client/UI processes to carry out authentication with a server.

The SASLAuthentication interface allows authentication via SASL, and also allows providing a simple password to the connection manager for it to use with SASL or non-SASL mechanisms.

The CaptchaAuthentication interface (since 0.17.5) allows interactive captcha-solving so that the user can prove that they are not a bot, on protocols requiring this.

## Functions

### tp_svc_channel_interface_sasl_authentication_abort_sasl_impl ()

    void
    (*tp_svc_channel_interface_sasl_authentication_abort_sasl_impl)
                                   (TpSvcChannelInterfaceSASLAuthentication *self,
                                    guint in_Reason,
                                    const gchar *in_Debug_Message,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method AbortSASL on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

self | The object implementing this interface |
in_Reason | guint (FIXME, generate documentation) |
in_Debug_Message | const gchar * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_sasl_authentication_accept_sasl_impl ()

    void
    (*tp_svc_channel_interface_sasl_authentication_accept_sasl_impl)
                                   (TpSvcChannelInterfaceSASLAuthentication *self,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method AcceptSASL on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

self | The object implementing this interface |
context | Used to return values or throw an error |

### tp_svc_channel_interface_sasl_authentication_emit_new_challenge ()

    void
    tp_svc_channel_interface_sasl_authentication_emit_new_challenge
                                   (gpointer instance,
                                    const GArray *arg_Challenge_Data);

Type-safe wrapper around g_signal_emit to emit the NewChallenge signal on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

instance | The object implementing this interface |
arg_Challenge_Data | const GArray * (FIXME, generate documentation) |

### tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed ()

    void
    tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed
                                   (gpointer instance,
                                    guint arg_Status,
                                    const gchar *arg_Reason,
                                    GHashTable *arg_Details);

Type-safe wrapper around g_signal_emit to emit the SASLStatusChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

instance | The object implementing this interface |
arg_Status | guint (FIXME, generate documentation) |
arg_Reason | const gchar * (FIXME, generate documentation) |
arg_Details | GHashTable * (FIXME, generate documentation) |

### tp_svc_channel_interface_sasl_authentication_implement_abort_sasl ()

    void
    tp_svc_channel_interface_sasl_authentication_implement_abort_sasl
                                   (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                    tp_svc_channel_interface_sasl_authentication_abort_sasl_impl impl);

Register an implementation for the AbortSASL method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the AbortSASL D-Bus method |

### tp_svc_channel_interface_sasl_authentication_implement_accept_sasl ()

    void
    tp_svc_channel_interface_sasl_authentication_implement_accept_sasl
                                   (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                    tp_svc_channel_interface_sasl_authentication_accept_sasl_impl impl);

Register an implementation for the AcceptSASL method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the AcceptSASL D-Bus method |

### tp_svc_channel_interface_sasl_authentication_implement_respond ()

    void
    tp_svc_channel_interface_sasl_authentication_implement_respond
                                   (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                    tp_svc_channel_interface_sasl_authentication_respond_impl impl);

Register an implementation for the Respond method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the Respond D-Bus method |

### tp_svc_channel_interface_sasl_authentication_implement_start_mechanism ()

    void
    tp_svc_channel_interface_sasl_authentication_implement_start_mechanism
                                   (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                    tp_svc_channel_interface_sasl_authentication_start_mechanism_impl impl);

Register an implementation for the StartMechanism method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the StartMechanism D-Bus method |

### tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data ()

    void
    tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data
                                   (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                    tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl impl);

Register an implementation for the StartMechanismWithData method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the StartMechanismWithData D-Bus method |

### tp_svc_channel_interface_sasl_authentication_respond_impl ()

    void
    (*tp_svc_channel_interface_sasl_authentication_respond_impl)
                                   (TpSvcChannelInterfaceSASLAuthentication *self,
                                    const GArray *in_Response_Data,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Respond on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

self | The object implementing this interface |
in_Response_Data | const GArray * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl ()

    void
    tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_sasl_authentication_return_from_accept_sasl ()

    void
    tp_svc_channel_interface_sasl_authentication_return_from_accept_sasl
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_sasl_authentication_return_from_respond ()

    void
    tp_svc_channel_interface_sasl_authentication_return_from_respond
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism ()

    void
    tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism_with_data ()

    void
    tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism_with_data
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_sasl_authentication_start_mechanism_impl ()

    void
    (*tp_svc_channel_interface_sasl_authentication_start_mechanism_impl)
                                   (TpSvcChannelInterfaceSASLAuthentication *self,
                                    const gchar *in_Mechanism,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method StartMechanism on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

self | The object implementing this interface |
in_Mechanism | const gchar * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl ()

    void
    (*tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl)
                                   (TpSvcChannelInterfaceSASLAuthentication *self,
                                    const gchar *in_Mechanism,
                                    const GArray *in_Initial_Data,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method StartMechanismWithData on interface org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication.

#### Parameters

self | The object implementing this interface |
in_Mechanism | const gchar * (FIXME, generate documentation) |
in_Initial_Data | const GArray * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_captcha_authentication_answer_captchas_impl ()

    void
    (*tp_svc_channel_interface_captcha_authentication_answer_captchas_impl)
                                   (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                    GHashTable *in_Answers,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method AnswerCaptchas on interface org.freedesktop.Telepathy.Channel.Interface.CaptchaAuthentication1.

#### Parameters

self | The object implementing this interface |
in_Answers | GHashTable * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl ()

    void
    (*tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl)
                                   (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                    guint in_Reason,
                                    const gchar *in_Debug_Message,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method CancelCaptcha on interface org.freedesktop.Telepathy.Channel.Interface.CaptchaAuthentication1.

#### Parameters

self | The object implementing this interface |
in_Reason | guint (FIXME, generate documentation) |
in_Debug_Message | const gchar * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl ()

    void
    (*tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl)
                                   (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                    guint in_ID,
                                    const gchar *in_Mime_Type,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetCaptchaData on interface org.freedesktop.Telepathy.Channel.Interface.CaptchaAuthentication1.

#### Parameters

self | The object implementing this interface |
in_ID | guint (FIXME, generate documentation) |
in_Mime_Type | const gchar * (FIXME, generate documentation) |
context | Used to return values or throw an error |

### tp_svc_channel_interface_captcha_authentication_get_captchas_impl ()

    void
    (*tp_svc_channel_interface_captcha_authentication_get_captchas_impl)
                                   (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                    DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetCaptchas on interface org.freedesktop.Telepathy.Channel.Interface.CaptchaAuthentication1.

#### Parameters

self | The object implementing this interface |
context | Used to return values or throw an error |

### tp_svc_channel_interface_captcha_authentication_implement_answer_captchas ()

    void
    tp_svc_channel_interface_captcha_authentication_implement_answer_captchas
                                   (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                    tp_svc_channel_interface_captcha_authentication_answer_captchas_impl impl);

Register an implementation for the AnswerCaptchas method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the AnswerCaptchas D-Bus method |

### tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha ()

    void
    tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha
                                   (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                    tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl impl);

Register an implementation for the CancelCaptcha method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the CancelCaptcha D-Bus method |

### tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data ()

    void
    tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data
                                   (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                    tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl impl);

Register an implementation for the GetCaptchaData method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the GetCaptchaData D-Bus method |

### tp_svc_channel_interface_captcha_authentication_implement_get_captchas ()

    void
    tp_svc_channel_interface_captcha_authentication_implement_get_captchas
                                   (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                    tp_svc_channel_interface_captcha_authentication_get_captchas_impl impl);

Register an implementation for the GetCaptchas method in the vtable of an implementation of this interface. To be called from the interface init function.

#### Parameters

klass | A class whose instances implement this interface |
impl | A callback used to implement the GetCaptchas D-Bus method |

### tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas ()

    void
    tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_captcha_authentication_return_from_cancel_captcha ()

    void
    tp_svc_channel_interface_captcha_authentication_return_from_cancel_captcha
                                   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |

### tp_svc_channel_interface_captcha_authentication_return_from_get_captcha_data ()

    void
    tp_svc_channel_interface_captcha_authentication_return_from_get_captcha_data
                                   (DBusGMethodInvocation *context,
                                    const GArray *out_Captcha_Data);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |
out_Captcha_Data | const GArray * (FIXME, generate documentation) |

### tp_svc_channel_interface_captcha_authentication_return_from_get_captchas ()

    void
    tp_svc_channel_interface_captcha_authentication_return_from_get_captchas
                                   (DBusGMethodInvocation *context,
                                    const GPtrArray *out_Captcha_Info,
                                    guint out_Number_Required,
                                    const gchar *out_Language);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

#### Parameters

context | The D-Bus method invocation context |
out_Captcha_Info | const GPtrArray * (FIXME, generate documentation) |
out_Number_Required | guint (FIXME, generate documentation) |
out_Language | const gchar * (FIXME, generate documentation) |

## Types and Values

### TpSvcChannelTypeServerAuthentication

    typedef struct _TpSvcChannelTypeServerAuthentication TpSvcChannelTypeServerAuthentication;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelTypeServerAuthenticationClass

    typedef struct _TpSvcChannelTypeServerAuthenticationClass TpSvcChannelTypeServerAuthenticationClass;

The class of TpSvcChannelTypeServerAuthentication. This interface has no D-Bus methods, so an implementation can typically pass `NULL` to `G_IMPLEMENT_INTERFACE()` as the interface initialization function.

### TpSvcChannelInterfaceSASLAuthentication

    typedef struct _TpSvcChannelInterfaceSASLAuthentication TpSvcChannelInterfaceSASLAuthentication;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceSASLAuthenticationClass

    typedef struct _TpSvcChannelInterfaceSASLAuthenticationClass TpSvcChannelInterfaceSASLAuthenticationClass;

The class of TpSvcChannelInterfaceSASLAuthentication.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_sasl_authentication (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_sasl_authentication_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (start_mechanism);
      IMPLEMENT (start_mechanism_with_data);
      IMPLEMENT (respond);
      IMPLEMENT (accept_sasl);
      IMPLEMENT (abort_sasl);
    #undef IMPLEMENT
    }

### TpSvcChannelInterfaceCaptchaAuthentication

    typedef struct _TpSvcChannelInterfaceCaptchaAuthentication TpSvcChannelInterfaceCaptchaAuthentication;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceCaptchaAuthenticationClass

    typedef struct _TpSvcChannelInterfaceCaptchaAuthenticationClass TpSvcChannelInterfaceCaptchaAuthenticationClass;

The class of TpSvcChannelInterfaceCaptchaAuthentication.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_captcha_authentication (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_captcha_authentication_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (get_captchas);
      IMPLEMENT (get_captcha_data);
      IMPLEMENT (answer_captchas);
      IMPLEMENT (cancel_captcha);
    #undef IMPLEMENT
    }

## Signal Details

### The `“new-challenge”` signal

    void
    user_function (TpSvcChannelInterfaceSASLAuthentication *self,
                   GArray_guchar_                          *arg_Challenge_Data,
                   gpointer                                 user_data)

The NewChallenge D-Bus signal is emitted whenever this GObject signal is.

#### Parameters

self | an object |
arg_Challenge_Data | const GArray * (FIXME, generate documentation) |
user_data | user data set when the signal handler was connected. |

Flags: Has Details

### The `“s-as-lstatus-changed”` signal

    void
    user_function (TpSvcChannelInterfaceSASLAuthentication *self,
                   guint                                    arg_Status,
                   gchar                                   *arg_Reason,
                   gpointer                                 user_data)

The SASLStatusChanged D-Bus signal is emitted whenever this GObject signal is.

#### Parameters

self | an object |
arg_Status | guint (FIXME, generate documentation) |
arg_Reason | const gchar * (FIXME, generate documentation) |
arg_Details | GHashTable * (FIXME, generate documentation) |
user_data | user data set when the signal handler was connected. |

Flags: Has Details