虚拟方法

GioTlsConnectionhandshake

自:2.28

声明 [src]

gboolean
handshake (
  GTlsConnection* conn,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

尝试在conn上执行TLS握手。

在客户端,从不必要调用此方法;尽管在连接后需要执行握手(或发送“STARTTLS”类型命令后),但在尝试在连接上发送或接收数据时,GTlsConnection会自动为您处理此操作。如果您想手动知道最初的握手是否成功或失败(与立即尝试使用conn进行读取或写入相反,在这种情况下,如果它失败,可能无法判断是在握手之前还是之后失败),但请注意,服务器可能在接受握手后拒绝客户端验证,因此成功的握手并不表示连接可以

类似地,在服务器端,虽然在通信开始时需要进行握手,但除非您想要更清晰的错误报告,否则不需要显式调用此函数。

以前,在初始握手后调用g_tls_connection_handshake()将触发重新握手;然而,由于从TLS 1.3的TLS协议中删除了重新握手,因此这种用法在GLib 2.60中被弃用。从GLib 2.64开始,在初始握手后调用此函数将不再执行任何操作。

当使用由GSocketClient创建的GTlsConnection时,GSocketClient执行初始握手,因此不建议手动调用此函数。

在握手过程中可能会触发GTlsConnection::accept_certificate

自:2.28

参数

cancellable

类型: GCancellable

A GCancellable,或 NULL

该参数可以为 NULL
数据归方法调用者所有。
error

类型: GError **

恢复错误的返回位置。

该参数可以为 NULL
如果返回位置不是 NULL,则必须将其初始化为零个GError
如果没有错误,则虚拟函数将初始化该参数为零个GError
在出现错误的情况下,如果有的话,该参数将被设置为新分配的GError;调用者将获取数据的所有权,并负责释放它。

返回值

类型: gboolean

成功或失败。