方法

GioTlsCertificateverify

自从:2.28

声明 [源]

GTlsCertificateFlags
g_tls_certificate_verify (
  GTlsCertificate* cert,
  GSocketConnectable* identity,
  GTlsCertificate* trusted_ca
)

描述 [源]

这验证cert并返回一个表示任何找到问题的GTlsCertificateFlags集合。这可以用来验证在建立连接之外上下文中的证书,或者检查不属于系统CA 数据库的CA

如果cert有效,返回G_TLS_CERTIFICATE_NO_FLAGS

如果identity不是NULLcert的名称将与其进行比较,如果它不匹配,则在返回值中将设置G_TLS_CERTIFICATE_BAD_IDENTITY。如果identityNULL,那么这个位永远不会在返回值中设置。

如果trusted_ca不是NULL,那么cert(或其链中的任何证书)必须由它签名,否则在返回值中将设置G_TLS_CERTIFICATE_UNKNOWN_CA。如果trusted_caNULL,那么这个位永远不会在返回值中设置。

GLib保证,如果在证书验证失败时,至少会在返回值中设置一个错误,但它不保证设置所有可能错误的集合。因此,您不能安全地决定忽略任何特定类型的错误。例如,如果您想允许已过期的证书,那么掩码G_TLS_CERTIFICATE_EXPIRED是不正确的,因为这可能是唯一设置的错误标志,即使证书存在其他问题。

因为不使用TLS会话上下文,所以GTlsCertificate可能不会对证书进行像GTlsConnection那样多的检查。例如,可能不会执行证书约束,也不会进行吊销检查。验证TLS连接使用的TLS证书的最佳方法是让GTlsConnection处理验证。

自2.28以来可用

参数

identity

类型: GSocketConnectable

预期的对端身份。

此参数可以是NULL
数据由方法调用者拥有。
trusted_ca

类型: GTlsCertificate

受信任的授权机构的证书。

此参数可以是NULL
数据由方法调用者拥有。

返回值

类型: GTlsCertificateFlags

适当的GTlsCertificateFlags