Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]


2.6.2 Подписать хeш

Программа-клиент запрашивает подпись данного значения хeша. Если ключ не задан, будет использован основной ключ. Чтобы задать ключ, программа-клиент сначала подает команду:

   SIGKEY <код_ключа>

Это можно делать несколько раз, чтобы подписать несколькими ключами; список сбрасывается после следующей команды PKSIGN или RESET. Сервер проверяет, можно ли подписывать что-нибудь этим ключом, и выдает квитанцию об успешной операции.

   SETHASH --hash=<хeш>|<алгоритм> <шестнадцатеричная строка>

Эту команду можно применять, чтобы сообщить серверу, какие данные (<шестнадцатеричная строка>) надо подписать (обычно это хeш). Параметр <алгоритм> представляет номер алгоритма хeша в десятичной системе в нумерации Libgcrypt. Должен быть задан либо алгоритм, либо –hash=<хeш>. Допустимые значения аргумента <хeш>:

sha1

Алгоритм SHA-1

sha256

Алгоритм SHA-256

rmd160

Алгоритм RIPE-MD160

md5

Старый взломанный алгоритм MD5

tls-md5sha1

Комбинированный алгоритм, применяемый в протоколе TLS.

Сама подпись производится командой:

   PKSIGN <параметры>

Параметры пока не определены, но впоследствии могут применяться для выбора различных алгоритмов. Затем gpg-agent проводит некоторые проверки, запрашивает фразу-пароль, и в результате сервер возвращает подпись в виде SPKI-подобного S-выражения в строках на «D»:

     (sig-val
       (<алгоритм>
         (<имя_параметра_1> <длинное_число>)
 	   ...
         (<имя_параметра_n> <длинное_число>)))

На работу влияет параметр

   OPTION use-cache-for-signing=0|1

Исходное значение, 1, означает пользование буфером. Установка этого параметра в 0 приведет к тому, что gpg-agent станет игнорировать буфер фраз-паролей. Обратите внимание, что есть также глобальный параметр командной строки gpg-agent, который позволяет глобально выключать буферы.

Вот пример сеанса:

   C: SIGKEY <код_ключа>
   S: OK key available
   C: SIGKEY <код_ключа>
   S: OK key available
   C: PKSIGN
   S: # Здесь запрос подтверждения подписи у пользователя
   S: # Здесь запрос фразы-пароля у пользователя
   S: INQUIRE HASHVAL
   C: D ABCDEF012345678901234
   C: END
   S: # далее подпись
   S: D (sig-val rsa (s 45435453654612121212))
   S: OK

Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]