Заранее извиняюсь, если вопросы будут наивными - я немного не в теме, только-только влезаю...
Опишу ситуацию для понимания:есть три стороны - владелицы ключей:
- "клиент"
- "сервер"
- "посредник"
Публичный GPG-ключ "клиента" подписан "посредником". "Сервер" имеет абсолютное доверие к публичному ключу "посредника", но не имеет в своём keyring (кольце ключей?) ключа "клиента".
"Сервер" проинициализировал GnuTLS (своими private/public ключи и keyring), повис на сокете и ждёт соединений.
"Клиент" также проинициализировал GnuTLS (своими private/public ключами без keyring) и соединяется к "серверу".
Теперь вопрос: как указать "серверу" проверять ключи подписантов на этапе установления соединения? То есть, чтобы такой подписанный "посредником" ключ был валидным, а неподписанные или подписанные другими посредниками (не "свои") ключи были бы невалидными и отвергались бы сервером?
Расширенный вопрос: ключ "посредника" подписан ключом "посредник-2". Ключа "посредника" нет у сервера, но есть ключ "посредника-2" с абсолютным доверием... Короче, как сделать аналог X509-инфраструктуры, но с возможностью мультиподписей?
Ну и напоследок: Возможно ли расширять keyring новыми ключами и подсовывать это "серверу" на лету, без переинициализации TLS?