### Interface

# Gio TlsBackend

since: 2.28

#### Description

    interface Gio.TlsBackend : GObject.Object

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

Available since: 2.28

#### Prerequisite

In order to implement TlsBackend, your type must inherit from`GObject`.

#### Functions

###### g_tls_backend_get_default

Gets the default `GTlsBackend` for the system.

since: 2.28

#### Instance methods

###### g_tls_backend_get_certificate_type

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

since: 2.28

###### g_tls_backend_get_client_connection_type

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

since: 2.28

###### g_tls_backend_get_default_database

Gets the default `GTlsDatabase` used to verify TLS connections.

since: 2.30

###### g_tls_backend_get_dtls_client_connection_type

Gets the `GType` of `backend`’s `GDtlsClientConnection` implementation.

since: 2.48

###### g_tls_backend_get_dtls_server_connection_type

Gets the `GType` of `backend`’s `GDtlsServerConnection` implementation.

since: 2.48

###### g_tls_backend_get_file_database_type

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

since: 2.30

###### g_tls_backend_get_server_connection_type

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

since: 2.28

###### g_tls_backend_set_default_database

Set the default `GTlsDatabase` used to verify TLS connections.

since: 2.60

###### g_tls_backend_supports_dtls

Checks if DTLS is supported. DTLS support may not be available even if TLS support is available, and vice-versa.

since: 2.48

###### g_tls_backend_supports_tls

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

since: 2.28

#### Interface structure

    struct GioTlsBackendInterface {
      GTypeInterface g_iface;
      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
      );
      gboolean (* supports_dtls) (
        GTlsBackend* backend
      );
      GType (* get_dtls_client_connection_type) (
    void
      );
      GType (* get_dtls_server_connection_type) (
    void
      );

    }

Provides an interface for describing TLS-related types.

###### Interface members

`g_iface` |
    GTypeInterface
| The parent interface.
`supports_tls` |
    gboolean (* supports_tls) (
        GTlsBackend* backend
      )
| Returns whether the backend supports TLS.
`get_certificate_type` |
    GType (* get_certificate_type) (
    void
      )
| Returns the `GTlsCertificate` implementation type.
`get_client_connection_type` |
    GType (* get_client_connection_type) (
    void
      )
| Returns the `GTlsClientConnection` implementation type.
`get_server_connection_type` |
    GType (* get_server_connection_type) (
    void
      )
| Returns the `GTlsServerConnection` implementation type.
`get_file_database_type` |
    GType (* get_file_database_type) (
    void
      )
| Returns the `GTlsFileDatabase` implementation type.
`get_default_database` |
    GTlsDatabase* (* get_default_database) (
        GTlsBackend* backend
      )
| Returns a default `GTlsDatabase` instance.
`supports_dtls` |
    gboolean (* supports_dtls) (
        GTlsBackend* backend
      )
| Returns whether the backend supports DTLS.
`get_dtls_client_connection_type` |
    GType (* get_dtls_client_connection_type) (
    void
      )
| Returns the `GDtlsClientConnection` implementation type.
`get_dtls_server_connection_type` |
    GType (* get_dtls_server_connection_type) (
    void
      )
| Returns the `GDtlsServerConnection` implementation type.

#### Virtual methods

###### Gio.TlsBackend.get_default_database

Gets the default `GTlsDatabase` used to verify TLS connections.

since: 2.30

###### Gio.TlsBackend.supports_dtls

Checks if DTLS is supported. DTLS support may not be available even if TLS support is available, and vice-versa.

since: 2.48

###### Gio.TlsBackend.supports_tls

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

since: 2.28