gio::prelude

Trait TlsConnectionExtManual

Source
pub trait TlsConnectionExtManual: IsA<TlsConnection> {
    // Provided methods
    fn channel_binding_data(
        &self,
        type_: TlsChannelBindingType,
    ) -> Result<ByteArray, Error> { ... }
    fn set_advertised_protocols(&self, protocols: impl IntoStrV) { ... }
}

Provided Methods§

Source

fn channel_binding_data( &self, type_: TlsChannelBindingType, ) -> Result<ByteArray, Error>

Available on crate feature v2_66 only.

Query the TLS backend for TLS channel binding data of @type_ for @self.

This call retrieves TLS channel binding data as specified in RFC 5056, RFC 5929, and related RFCs. The binding data is returned in @data. The @data is resized by the callee using #GByteArray buffer management and will be freed when the @data is destroyed by g_byte_array_unref(). If @data is None, it will only check whether TLS backend is able to fetch the data (e.g. whether @type_ is supported by the TLS backend). It does not guarantee that the data will be available though. That could happen if TLS connection does not support @type_ or the binding data is not available yet due to additional negotiation or input required.

§type_

#GTlsChannelBindingType type of data to fetch

§Returns

true on success, false otherwise

§data

#GByteArray is filled with the binding data, or None

Source

fn set_advertised_protocols(&self, protocols: impl IntoStrV)

Available on crate feature v2_60 only.

Sets the list of application-layer protocols to advertise that the caller is willing to speak on this connection. The Application-Layer Protocol Negotiation (ALPN) extension will be used to negotiate a compatible protocol with the peer; use g_tls_connection_get_negotiated_protocol() to find the negotiated protocol after the handshake. Specifying None for the the value of @protocols will disable ALPN negotiation.

See IANA TLS ALPN Protocol IDs for a list of registered protocol IDs.

§protocols

a None-terminated array of ALPN protocol names (eg, “http/1.1”, “h2”), or None

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§