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


5.6.1 Шифрование сообщения

Перед шифрованием нужно задать получателя командой:

  RECIPIENT идентификатор пользователя

Задать получателя шифрованного сообщения. Идентификатор пользователя должен быть внутренним представлением ключа; сервер может принимать любой другой способ указания. Если это достоверный и доверенный получатель, сервер отвечает кодом OK; в противном случае он возвращает ERR с причиной, по которой получатель недопустим, шифрование для этого получателя производиться не будет. Если нужно, чтобы шифрование не производилось, если не все получатели достоверны, об этом должна позаботиться программа-клиент. Все команды RECIPIENT накапливаются до команды RESET или до успешной команды ENCRYPT.

  INPUT FD[=n] [--armor|--base64|--binary]

Задать файловый дескриптор для зашифрованного сообщения. Очевидно, он к этому моменту должен быть открыт, сервер настраивает его со своей стороны. Если сервер возвращает ошибку, программа-клиент должна считать сеанс сорванным. Если номер дескриптора не задан, команда пользуется последним переданным в приложение файловым дескриптором. О передаче дескрипторов см. функцию assuan_sendfd in руководстве Libassuan.

Параметр --armor можно применять, чтобы указать серверу, что данные на входе представлены в формате PEM, --base64 указывает на простую кодировку base-64, --binary указывает на двоичный формат (BER). Если не задан ни один из параметров, сервер пытается определить кодировку по входным данным, но результат иногда может быть неверен.

  OUTPUT FD[=n] [--armor|--base64]

Задать файловый дескриптор для вывода (т.е. зашифрованного сообщения). Очевидно, он к этому моменту должен быть открыт, сервер настраивает его со своей стороны. Если сервер возвращает ошибку, программа-клиент должна считать сеанс сорванным.

Параметр --armor можно применять, чтобы указать серверу, что данные на входе представлены в формате PEM, --base64 указывает на простую кодировку base-64. Если аргумента нет, данные выводятся в двоичном формате (BER).

Само шифрование проводится с помощью команды

  ENCRYPT

Открытый текст берется из команды INPUT, зашифрованный текст выводится в файловый дескриптор, заданный командой OUTPUT, получатели берутся из всех действующих на данный момент команд RECIPIENT. Если при выполнении этой команды происходит сбой, программы-клиенты должны попытаться аннулировать или пометить как неверные все выведенные данные. Однако программа gpgsm гарантирует, что в этом случае уже выведенные данные не будут представлять никакой проблемы безопасности.

В общем и целом эта команда не должна давать сбоев, поскольку все необходимые проверки уже проведены при установлении получателей. Входной и выходной канал закрываются.


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