TLS 概述
TLS 概述
GTlsConnection
及相关类提供了基于 GIO 的网络流对 TLS(传输层安全,以前称为 SSL,安全套接字层)的支持。
GDtlsConnection
及相关类为基于 GIO 的网络套接字提供 DTLS(数据报 TLS)支持,使用 GDatagramBased
接口。TLS 和 DTLS API 几乎相同,除了 TLS 是基于流的,而 DTLS 是基于数据报的。它们共享证书和后端的基础设施。
在最简单的情况下,对于客户端 TLS 连接,您只需在 GSocketClient:tls
上设置标志,然后再设置 GSocketClient
,然后该客户端创建的任何连接都将自动协商 TLS,使用适当的默认设置,并拒绝任何无效的自签名证书(除非您通过设置 GSocketClient:tls-validation-flags
属性更改该默认值)。返回的对象将是一个 GTcpWrapperConnection
,它包装了底层的 GTlsClientConnection
。
为了进行更精细的控制,您可以创建自己的 GTlsClientConnection
,包装一个 GSocketConnection
(或一个带有可轮询输入和输出流的任意 GIOStream
)并连接到其信号,如 GTlsConnection::accept-certificate
,在握手开始之前。
服务器端的 TLS 类似,使用 GTlsServerConnection
。目前,尚不支持像 GSocketClient
为客户端连接所做的那样自动包装服务器端连接。