方法
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
不是NULL
,cert
的名称将与其进行比较,如果它不匹配,则在返回值中将设置G_TLS_CERTIFICATE_BAD_IDENTITY
。如果identity
是NULL
,那么这个位永远不会在返回值中设置。
如果trusted_ca
不是NULL
,那么cert
(或其链中的任何证书)必须由它签名,否则在返回值中将设置G_TLS_CERTIFICATE_UNKNOWN_CA
。如果trusted_ca
是NULL
,那么这个位永远不会在返回值中设置。
GLib保证,如果在证书验证失败时,至少会在返回值中设置一个错误,但它不保证设置所有可能错误的集合。因此,您不能安全地决定忽略任何特定类型的错误。例如,如果您想允许已过期的证书,那么掩码G_TLS_CERTIFICATE_EXPIRED
是不正确的,因为这可能是唯一设置的错误标志,即使证书存在其他问题。
因为不使用TLS会话上下文,所以GTlsCertificate
可能不会对证书进行像GTlsConnection
那样多的检查。例如,可能不会执行证书约束,也不会进行吊销检查。验证TLS连接使用的TLS证书的最佳方法是让GTlsConnection
处理验证。
自2.28以来可用
参数
identity
-
预期的对端身份。
此参数可以是 NULL
。数据由方法调用者拥有。 trusted_ca
-
类型:
GTlsCertificate
受信任的授权机构的证书。
此参数可以是 NULL
。数据由方法调用者拥有。