помощи идентификатора.
Когда наш учитель из примера решает подписать экзаменационные задачи, чтобы сообщить, что их послали не студенты-шутники :) он набирает следующее:
pgp –s exam.doc
Эта команда создает файл с именем exam.doc.pgp, который не является ASCII-текстом, потому что PGP пытается сжать файл. Если, с другой стороны, вы хотите подписать файл, оставив текст читабельным и с подписью в конце, то процедура будет выглядеть:
pgp -sta exam.doc
Эта последняя команда очень полезна при подписи электронной почты, которую и дальше можно будет читать без использования PGP или тем, кому не хочется проверять подпись.
Кроме того, можно подписать документ и затем закодировать его при помощи следующей команды:
pgp -es файл идентификатор_получателя [-u мой_идентификатор]
Например:
pgp -es exam.doc marcos –u angel
Здесь файл exam.doc кодируется и подписывается и сохраняется в файле exam.pgp. Для кодирования файла используется открытый ключ, идентифицируемый подстрокой 'marcos', поэтому только этим ключом можно декодировать этот файл. Затем я идентифицирую мой закрытый ключ строкой 'angel', так как в моем кольце есть несколько ключей.
Даже в этом случае можно создать файл в формате ASCII, используя опцию -a.
Кроме того, нас может заинтересовать возможность создания подписи файла отдельно от данных. Чтобы это сделать, воспользуемся опцией -b:
pgp -sb exam.doc
Эта команда создает новый файл exam.sig, содержащий только подписи.
Декодирование.
Для декодирования файла и/или проверки его подписи используется команда:
pgp входной_файл [-o выходной_файл]
По умолчанию предполагается, что входной файл имеет расширение .pgp. Выходной файл является необязательным параметром и будет содержать декодированный файл. Если выходной файл не указан, декодированный файл будет сохранен в файле входной_файл без расширения .pgp.
Однако, после декодирования файла нам необходимо указать стандартный выход для декодированного файла. Это достигается использованием опции -m:
pgp -m файл
Существует еще одна возможность — использовать каналы ввода и вывода с опцией -f:
pgp -fs идентификатор < входной_файл > выходной_файл
Еще одним интересным сценарием является декодирование подписанного сообщения, посланного нам кем-нибудь, с сохранением подписи, например для кодирования его еще раз для того, чтобы послать его кому-нибудь еще. Чтобы это сделать, нужно использовать опцию -d:
pgp -d exam
Здесь мы берем файл exam.pgp и декодируем его, но при этом оставляем оригинальную подпись в файле. Теперь можно переходить к кодированию его открытым ключом того человека, который после получения может проверить аутентичность исходного сообщения.
Обработка текстовых файлов.
Часто PGP используется для кодирования электронной почты, которая чаще всего представляет собой текст. Проблема текстовых файлов заключается в том, что на разных машинах текст представляется по- разному; например в MS-DOS все строки заканчиваются символами возврата каретки и перевода строки, в Линуксе только перевод строки, в Macintosh только возврат каретки... и т.д. Чтобы избежать несовместимости платформ, нам необходимо сказать PGP, что мы хотим закодировать текстовый файл, а не бинарный файл, с тем, чтобы после разархивирования его можно было адаптировать к особенностям платформы получателя. Для кодирования текстового файла для e-mail используется опция -t. Например:
pgp -sta текстовый_файл идентификатор
'Отпечатки (fingerprints)'.
Отпечаток является последовательностью из 16 бит, которая идентифицирует ключ уникальным образом. Можно проверить, принадлежит ли имеющийся у вас ключ именно тому человеку, сравнив каждый из 16 бит вместо всех 1024 байт, которые составляют ключ.
Для просмотра отпечатка ключа используется команда:
pgp -kvc идентификатор [кольцо]
Использование PGP в командной строке.
PGP имеет опции, которые особенно полезны при использовании PGP в командной строке в автоматизирующих скриптах.
+batchmode
При использовании этой опции PGP не будет спрашивать ничего сверх крайне необходимого. Используйте эту опцию для автоматической проверки подписи. При отсутствии подписи в файле возвращается код ошибки 1; если файл подписан и подпись правильна, то возвращается 0.
pgp +batchmode файл
force
Использование этой опции одобряет любую операцию по переписыванию файла или удалению ключа.
pgp +force –kr marcos
В командной строке желательно обойтись без запросов паролей при кодировании файла. Например, чтобы избежать вопросов во время кодирования мы может просто обойти это, задав переменную окружения PGPPASS.
Здесь приведен пример:
PGPPASS='пароль'
export PGPPASS
pgp –s file.txt marcos
Еще одним способом передачи пароля PGP в неинтерактивном режиме является использование опции -z.
Как здесь:
pgp –sta exams.txt angel -z 'пароль'
Еще одна полезная операция в командной строке — это изменение 'разговорчивости' PGP при помощи опции +verbose. Она задает тихий режим - то есть отсутствие информационных сообщений, только сообщения об ошибках: