Как я могу получить отпечаток SHA1 TlsCertificate в GJS?

Я пытаюсь получить отпечаток Gio.TlsCertificate соединения, который, как я понимаю, представляет собой просто контрольную сумму SHA1 сертификата в форме DER. Поэтому я думаю, что мог бы использовать GLib.compute_checksum_for_data() для свойства certificate объекта Gio.TlsCertificate, но любая попытка доступа к этому свойству приводит к:

ОШИБКА JS: Ошибка: невозможно проанализировать тип элемента контейнера в GValue

Есть ли способ получить доступ к свойству сертификата или более простой способ снять отпечаток сертификата в GLib?


person andy.holmes    schedule 27.09.2017    source источник


Ответы (1)


Это похоже на ошибку в сгенерированном XML для самоанализа для Gio.TlsCertificate.certificate. Я сообщил об ошибке в основной ветке.

Тем временем вы можете обойти это, извлекая свойство вручную с помощью g_object_get() и обрабатывая вещи таким образом; Я не знаю, какие именно обходные пути возможны в JS.

person Philip Withnall    schedule 27.09.2017
comment
Это стоило того (я все время забываю об этой функции), но приводит к той же ошибке. Как правило, единственным обходным путем в GJS является использование или цепочка других функций, которые обеспечивают ту же функциональность, но в этом случае я не думаю, что есть другой способ получить формат DER. Вероятно, это не так уж часто используется для чего-либо, хотя функция fingerprint() была бы, я уверен. Спасибо за регистрацию сообщения об ошибке для меня. - person andy.holmes; 28.09.2017
comment
Функцию fingerprint() (или свойство), вероятно, было бы полезно иметь в основной ветке — хотите ли вы подать отчет об ошибке в основной ветке, чтобы добавить это (и убедиться, что это можно проверить!)? Спасибо. - person Philip Withnall; 28.09.2017