如何在 GJS 中获取 TlsCertificate 的 SHA1 指纹?

How can I get the SHA1 fingerprint of a TlsCertificate in GJS?

我正在尝试获取连接的 Gio.TlsCertificate 指纹,据我所知,这只是 DER 格式证书的 SHA1 校验和。所以我想我可以在 Gio.TlsCertificate 对象的 certificate 属性 上使用 GLib.compute_checksum_for_data(),但是任何访问 属性 的尝试都会导致:

JS ERROR: Error: Unable to introspect element-type of container in GValue

有什么方法可以让我访问证书 属性,或者有更简单的方法在 GLib 中对证书进行指纹识别吗?

这看起来像是为 Gio.TlsCertificate.certificate 生成的内省 XML 中的错误。我已经filed an upstream bug了。

与此同时,您可以通过使用 g_object_get() 手动检索 属性 并以这种方式处理事情来解决此问题;我不知道在 JS 中究竟有哪些解决方法。