类别
GioTlsCertificate
自 2.28 起
描述 [src]
abstract class Gio.TlsCertificate : GObject.Object
{
priv: GTlsCertificatePrivate*
}
用于 TLS 身份验证和加密的证书。它既可以表示单独的证书(例如,客户端从服务器接收的证书),也可以表示证书和私钥的组合(当充当 GTlsServerConnection
时,需要这个组合)。
自 2.28 起可用
构造函数
g_tls_certificate_new_from_files
从 cert_file
和 key_file
中的 PEM 编码数据创建 GTlsCertificate
。返回的证书将是 cert_file
中找到的第一张证书。从 GLib 2.44 开始,如果 cert_file
包含多张证书,它将尝试加载一个证书链。所有证书都将按照找到的顺序进行验证(顶级证书应该是文件中最后一个证书),并根据验证成功情况设置每个证书的 GTlsCertificate:issuer
属性。如果链中的任何证书都不能验证,仍然将返回文件中的第一张证书。
自 2.28 起
g_tls_certificate_new_from_pem
从 data
中的 PEM 编码数据创建 GTlsCertificate
。如果 data
包括证书和私钥,则返回的证书也将包括私钥数据。(有关支持的格式的信息,请参阅 GTlsCertificate:private-key-pem
属性)。
自 2.28 起
函数
g_tls_certificate_list_new_from_file
从 file
中的 PEM 编码数据创建一或多个 GTlsCertificates
。如果无法读取或解析 file
,该函数将返回 NULL
并设置 error
。如果 file
不包含任何 PEM 编码证书,这将返回一个空列表,而不会设置 error
。
自 2.28 起
实例方法
g_tls_certificate_is_same
检查两个 GTlsCertificate
对象是否表示同一证书。将检查两个证书的原始 DER 字节数据的相等性。这会产生这样的效果:即使它们的 GTlsCertificate:issuer
、GTlsCertificate:private-key
或 GTlsCertificate:private-key-pem
属性不同,两个证书也可能进行比较。
自 2.34 起生效
g_tls_certificate_verify
这将验证 cert
并返回一组 GTlsCertificateFlags
,指示在其中发现的任何问题。这可用于在连接的环境外验证证书,或针对不属于系统 CA 数据库的 CA 检查证书。
自 2.28 起
属性
Gio.TlsCertificate:certificate
证书的 DER(二进制)编码表示。此属性和 GTlsCertificate:certificate-pem
属性表示相同的数据,只是形式不同。
自 2.28 起
Gio.TlsCertificate:certificate-pem
证书的 PEM(ASCII)编码表示。此属性和 GTlsCertificate:certificate
属性表示相同的数据,只是形式不同。
自 2.28 起
Gio.TlsCertificate:private-key
证书的私钥的 DER(二进制)编码表示形式,采用 PKCS #1 格式 或未加密的 PKCS #8 格式。自 2.32 版本起支持 PKCS #8 格式;早期版本仅支持 PKCS #1。你可以使用 openssl rsa
工具将 PKCS #8 密钥转换为 PKCS #1。
自 2.28 起
Gio.TlsCertificate:private-key-pem
证书的私钥的 PEM (ASCII) 编码表示形式,采用 PKCS #1 格式(BEGIN RSA PRIVATE KEY
“)或未加密的 PKCS #8 格式(BEGIN PRIVATE KEY
“)。自 2.32 版本起支持 PKCS #8 格式;早期版本仅支持 PKCS #1。你可以使用 openssl rsa
工具将 PKCS #8 密钥转换为 PKCS #1。
自 2.28 起
信号
从 GObject (1) 继承的信号
GObject::notify
当通过 g_object_set_property()、g_object_set() 等方式设置一个对象的一个属性值时,notify 信号将在该对象上发送。
类结构
struct GioTlsCertificateClass {
GObjectClass parent_class;
GTlsCertificateFlags (* verify) (
GTlsCertificate* cert,
GSocketConnectable* identity,
GTlsCertificate* trusted_ca
);
}
无可用描述。
类成员
parent_class: GObjectClass
无可用描述。
verify: GTlsCertificateFlags (* verify) ( GTlsCertificate* cert, GSocketConnectable* identity, GTlsCertificate* trusted_ca )
无可用描述。
虚拟方法
Gio.TlsCertificateClass.verify
这将验证 cert
并返回一组 GTlsCertificateFlags
,指示在其中发现的任何问题。这可用于在连接的环境外验证证书,或针对不属于系统 CA 数据库的 CA 检查证书。
自 2.28 起