## GTlsBackend GTlsBackend — TLS backend implementation |

## Synopsis

    #include <gio/gio.h>

    #define             G_TLS_BACKEND_EXTENSION_POINT_NAME
                        GTlsBackend;
    struct              GTlsBackendInterface;
    GTlsBackend *       g_tls_backend_get_default           (void);
    gboolean            g_tls_backend_supports_tls          (GTlsBackend *backend);
    GType               g_tls_backend_get_certificate_type  (GTlsBackend *backend);
    GType               g_tls_backend_get_client_connection_type
                                                            (GTlsBackend *backend);
    GType               g_tls_backend_get_server_connection_type
                                                            (GTlsBackend *backend);

## Object Hierarchy

      GInterface
       +----GTlsBackend

## Prerequisites

GTlsBackend requires GObject.

## Description

## Details

### G_TLS_BACKEND_EXTENSION_POINT_NAME

    #define G_TLS_BACKEND_EXTENSION_POINT_NAME "gio-tls-backend"

Extension point for TLS functionality via GTlsBackend. See Extending GIO.

### GTlsBackend

    typedef struct _GTlsBackend GTlsBackend;

Type implemented by TLS GIOModules to provide access to additional TLS-related types.

Since 2.28

### struct GTlsBackendInterface

    struct GTlsBackendInterface {
      GTypeInterface g_iface;

      /* methods */
      gboolean ( *supports_tls)               (GTlsBackend *backend);
      GType    ( *get_certificate_type)       (void);
      GType    ( *get_client_connection_type) (void);
      GType    ( *get_server_connection_type) (void);
    };

Provides an interface for describing TLS-related types.

GTypeInterface `g_iface`; | The parent interface.
`supports_tls` () |
`get_certificate_type` () | returns the GTlsCertificate implementation type
`get_client_connection_type` () | returns the GTlsClientConnection implementation type
`get_server_connection_type` () | returns the GTlsServerConnection implementation type

Since 2.28

### g_tls_backend_get_default ()

    GTlsBackend *       g_tls_backend_get_default           (void);

Gets the default GTlsBackend for the system.

Returns : | a GTlsBackend

Since 2.28

### g_tls_backend_supports_tls ()

    gboolean            g_tls_backend_supports_tls          (GTlsBackend *backend);

Checks if TLS is supported; if this returns `FALSE` for the default GTlsBackend, it means no "real" TLS backend is available.

`backend` : | the GTlsBackend
Returns : | whether or not TLS is supported

Since 2.28

### g_tls_backend_get_certificate_type ()

    GType               g_tls_backend_get_certificate_type  (GTlsBackend *backend);

Gets the GType of `backend`'s GTlsCertificate implementation.

`backend` : | the GTlsBackend
Returns : | the GType of `backend`'s GTlsCertificate implementation.

Since 2.28

### g_tls_backend_get_client_connection_type ()

    GType               g_tls_backend_get_client_connection_type
                                                            (GTlsBackend *backend);

Gets the GType of `backend`'s GTlsClientConnection implementation.

`backend` : | the GTlsBackend
Returns : | the GType of `backend`'s GTlsClientConnection implementation.

Since 2.28

### g_tls_backend_get_server_connection_type ()

    GType               g_tls_backend_get_server_connection_type
                                                            (GTlsBackend *backend);

Gets the GType of `backend`'s GTlsServerConnection implementation.

`backend` : | the GTlsBackend
Returns : | the GType of `backend`'s GTlsServerConnection implementation.

Since 2.28