Следующий: PKSIGN агента, Вверх: Протокол агента [Содержание][Указатель]
Программа-клиент запрашивает у сервера расшифровку сеансового ключа. Зашифрованный сеансовый ключ должен содержать все сведения, необходимые для выбора подходящего секретного ключа или перенаправления на электронную карту.
SETKEY <код_ключа>
Указать серверу ключ, который должен применяться для расшифровки. Если
команда не подана, gpg-agent
может попытаться выявить ключ,
пытаясь расшифровать сообщение всеми доступными ключами.
PKDECRYPT
Агент проверяет, разрешена ли эта команда, а затем производит запрос, чтобы получить зашифрованный текст; затем программа-клиент должна послать зашифрованный текст.
S: INQUIRE CIPHERTEXT C: D (xxxxxx C: D xxxx) C: END
Обратите внимание, что сервер при чтении строк данных из программы-клиента может высылать строки состояния. Высылаются SPKI-подобные S-выражения следующей структуры:
(enc-val (<алгоритм> (<имя_параметра_1> <длинное_число>) ... (<имя_параметра_n> <длинное_число>)))
Где алгоритм представлен строкой с названием алгоритма; допустимый список алгоритмов см. в документации Libgcrypt. Имена и количество параметров зависят от алгоритма. Ошибка программой-агентом в случае несоответствия выдается.
Если расшифровка прошла успешно, расшифрованные данные выдаются в виде строк на «D».
Вот пример сеанса:
C: PKDECRYPT S: INQUIRE CIPHERTEXT C: D (enc-val elg (a 349324324) C: D (b 3F444677CA))) C: END S: # следует сеансовый ключ S: S PADDING 0 S: D (значение 1234567890ABCDEF0) S: OK decryption successful |
Строка состояния «PADDING» высылается, только если gpg-agent
знает, какого рода заполнение используется. На сегодня применяется только
значение 0, чтобы указать, что заполнение удалено.