## 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);
    GTlsDatabase *      g_tls_backend_get_default_database  (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);
    GType               g_tls_backend_get_file_database_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;

TLS (Transport Layer Security, aka SSL) backend. This is an internal type used to coordinate the different classes implemented by a TLS backend.

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);
      GType          ( *get_file_database_type)     (void);
      GTlsDatabase * ( *get_default_database)       (GTlsBackend *backend);
    };

Provides an interface for describing TLS-related types.

GTypeInterface `g_iface`; | The parent interface.
`supports_tls` () | returns whether the backend 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
`get_file_database_type` () | returns the GTlsFileDatabase implementation type.
`get_default_database` () | returns a default GTlsDatabase instance.

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. [transfer none]

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_default_database ()

    GTlsDatabase *      g_tls_backend_get_default_database  (GTlsBackend *backend);

Gets the default GTlsDatabase used to verify TLS connections.

`backend` : | the GTlsBackend
Returns : | the default database, which should be unreffed when done. [transfer full]

Since 2.30

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

### g_tls_backend_get_file_database_type ()

    GType               g_tls_backend_get_file_database_type
                                                            (GTlsBackend *backend);

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

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

Since 2.30