类别

GioTlsCertificate

自 2.28 起

描述 [src]

abstract class Gio.TlsCertificate : GObject.Object
{
  priv: GTlsCertificatePrivate*
}

用于 TLS 身份验证和加密的证书。它既可以表示单独的证书(例如,客户端从服务器接收的证书),也可以表示证书和私钥的组合(当充当 GTlsServerConnection 时,需要这个组合)。

自 2.28 起可用

父类

构造函数

g_tls_certificate_new_from_file

根据 file 中的数据创建一个 GTlsCertificate

自 2.28 起

g_tls_certificate_new_from_file_with_password

根据 file 中的数据创建一个 GTlsCertificate

自 2.72 起

g_tls_certificate_new_from_files

cert_filekey_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_new_from_pkcs11_uris

PKCS #11 URI 创建 GTlsCertificate

自 2.68 起生效

g_tls_certificate_new_from_pkcs12

data 中的数据创建 GTlsCertificate。它必须包含证书和匹配的私钥。

自 2.72 起

函数

g_tls_certificate_list_new_from_file

file 中的 PEM 编码数据创建一或多个 GTlsCertificates。如果无法读取或解析 file,该函数将返回 NULL 并设置 error。如果 file 不包含任何 PEM 编码证书,这将返回一个空列表,而不会设置 error

自 2.28 起

实例方法

g_tls_certificate_get_dns_names

获取 GTlsCertificate:dns-names 的值。

自 2.70 起生效

g_tls_certificate_get_ip_addresses

获取 GTlsCertificate:ip-addresses 的值。

自 2.70 起生效

g_tls_certificate_get_issuer

获取表示 cert 颁发者的 GTlsCertificate,如果已知的话。

自 2.28 起

g_tls_certificate_get_issuer_name

从证书返回颁发者名称。

自 2.70 起生效

g_tls_certificate_get_not_valid_after

返回证书失效或将失效的时间。

自 2.70 起生效

g_tls_certificate_get_not_valid_before

返回证书生效或将生效的时间。

自 2.70 起生效

g_tls_certificate_get_subject_name

从证书返回主题名称。

自 2.70 起生效

g_tls_certificate_is_same

检查两个 GTlsCertificate 对象是否表示同一证书。将检查两个证书的原始 DER 字节数据的相等性。这会产生这样的效果:即使它们的 GTlsCertificate:issuerGTlsCertificate:private-keyGTlsCertificate:private-key-pem 属性不同,两个证书也可能进行比较。

自 2.34 起生效

g_tls_certificate_verify

这将验证 cert 并返回一组 GTlsCertificateFlags,指示在其中发现的任何问题。这可用于在连接的环境外验证证书,或针对不属于系统 CA 数据库的 CA 检查证书。

自 2.28 起

GObject(43)继承的方法

有关方法的完整列表,请参阅 GObject

属性

Gio.TlsCertificate:certificate

证书的 DER(二进制)编码表示。此属性和 GTlsCertificate:certificate-pem 属性表示相同的数据,只是形式不同。

自 2.28 起

Gio.TlsCertificate:certificate-pem

证书的 PEMASCII)编码表示。此属性和 GTlsCertificate:certificate 属性表示相同的数据,只是形式不同。

自 2.28 起

Gio.TlsCertificate:dns-names

来自证书主题备用名称 (SAN) 的 DNS 名称,如果不可用,则为 NULL

自 2.70 起生效

Gio.TlsCertificate:ip-addresses

来自证书主题备用名称 (SAN) 的 IP 地址;为空,表示不可用。

自 2.70 起生效

Gio.TlsCertificate:issuer

用于表示颁发该证书的实体的 GTlsCertificate。如果为空,则表示证书是自签名的,或者颁发者的证书不可用。

自 2.28 起

Gio.TlsCertificate:issuer-name

来自证书的颁发者;为空,表示不可用。

自 2.70 起生效

Gio.TlsCertificate:not-valid-after

此证书不再有效的日期,为空,表示不可用。

自 2.70 起生效

Gio.TlsCertificate:not-valid-before

此证书被视为有效的时间,为空,表示不可用。

自 2.70 起生效

Gio.TlsCertificate:password

在使用 GTlsCertificate:pkcs12-data 构建时使用的可选密码。

自 2.72 起

Gio.TlsCertificate:pkcs11-uri

一个 URI,引用包含 X.509 证书和可选私钥的 PKCS #11 对象。

自 2.68 起生效

Gio.TlsCertificate:pkcs12-data

用于构建对象的 PKCS #12 格式化数据。

自 2.72 起

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 起

Gio.TlsCertificate:private-key-pkcs11-uri

一个 URI,引用包含私钥的 PKCS #11 对象。

自 2.68 起生效

Gio.TlsCertificate:subject-name

来自证书的主体;为空,表示不可用。

自 2.70 起生效

信号

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 起