Проверьте зашифрованный файл на пустое содержимое - PullRequest
0 голосов
/ 15 октября 2010

Я использую gpg для расшифровки файлов, отправленных мне продавцом. Все работает нормально, если содержимое зашифрованного файла пустое (продавец сказал мне, что в рассматриваемых файлах нет содержимого).

Если я пытаюсь расшифровать один из этих файлов, я получаю:

gpg: не могу справиться с этим неоднозначно данные подписи

Есть ли способ проверить, что в файле нет содержимого, принимаемого для заголовка, чтобы я мог настроить его на более элегантный сбой?

Ответы [ 2 ]

1 голос
/ 21 июня 2012

Согласно этой записи в списке рассылки , официальный инструмент PGP имеет ошибку, которая иногда приводит к тому, что он генерирует искаженные сообщения.Вы можете проверить, так ли это для вашего конкретного файла, запустив gpg --list-packets path/to/encrypted/file.pgp и просмотрев вывод.Если вы видите :onepass_sig packet:, за которым сразу следует :signature packet:, то, вероятно, именно это и происходит.

По моему (ограниченному) опыту, это происходит, если отправитель пытался зашифровать пустой файл.К сожалению, поскольку шифрование разработано так, чтобы было трудно увидеть, что находится внутри, трудно сказать, так ли это на самом деле, прежде чем пытаться расшифровать его.Вывод gpg --list-packets даст вам некоторую информацию, но я заметил, что вывод :literal data packet: обычно говорит "raw data: 0 bytes", даже если сообщение содержит непустой файл.

Youможет заставить gpg игнорировать все данные подписи в зашифрованном файле с параметром --skip-verify, но тогда, конечно, вы не можете определить, происходит ли дешифрование файла из надежного источника.

0 голосов
/ 08 февраля 2011

Если вы используете сценарий оболочки Unix, вы можете сначала сделать '[-s / the / file]', прежде чем пытаться расшифровать GPG.

...