Как бороться с ошибкой "gpg: [don't know]: invalid packet (ctb=6c)" ?
JОшибка возникает при попытке расшифровать некоторые файлы. Для декриптования используется примерно следующая строка:
gpg -d -r --passphrase MyPassphrase -o file.txt file.gpg
Что интересно, все файлы шифруются одним открытым ключом, но часть из них дешифруется нормально, а для остальных возникает упомянутая ошибка.
Использую GPG 1.4.7
В чём может быть дело?
Смотрите декодировку пакетов и сравнивайте результат. Используйте --list-packets.
Вот что получается:
А каковы различия и сходства между файлами, которые расшифровываются нормально, и теми, которые дают ошибку?
По содержущейся в файлах информации их можно поделить на две группы.
По размеру файлы из обеих групп существенно не отличаются друг от друга и могут быть 1-100Кб как те, так и другие.
Имена файлам 1й гр. дают по дате, 2й – по серийному номеру, но не думаю что это имеет значение.
Исходных файлов 2й группы(для которых ошибки) я не видел, но, по идее, в открытом виде это тоже простой .txt, они различаются только по структуре.
Утверждается, что для шифрования файлов обеих групп используется одна и та же процедура. Они используют GPG v1.4.0. Я пробовал работать с этой версией, но и здесь та же ошибка.
Может ли Ваш контрагент передать Вам один проблемный файл открытым текстом, дабы Вы могли поэкспериментировать на своей стороне? (Разумеется, содержимое файла должно быть некоторым образом изменено или сам файл должен содержать неактуальные сведения. Важно, чтобы общая структура осталась прежней.)
Ещё вопрос: может ли контрагент обновить GPG до последней версии? В любом случае, 1.4.0 имеет ряд недостатков, от обновления никому хуже не станет.