Вопрос

У меня есть клиентская и серверная система, которая регулярно запускает запланированные задачи и обменивается через файлы XML, которые были зашифрованы GPG. Все обязательные общедоступные ключи были успешно обменены между клиентом и сервером. Вызывы шифрования и дешифрования выполняются из файла пакет.

шифрование синтаксиса

gpg.exe --batch --yes --recipient% 1 --output% 4 --passheathephrase% 5 --Local-user% 2 --sign - grypt% 3

Расшифровать синтаксис

GPG.exe --batch - dyes --output% 3 - перефразий% 4 --decrypt% 2 2>% 1

Клиент создает XML-файл, шифрует его с GPG, используя открытый ключ сервера, подписавшись с закрытым ключом и загружает его на FTP-сайт сервера. Сервер регулярно проверяет новые файлы в FTP папке. Для любого нового файла он расшифрует использование GPG, а затем обрабатывает XML внутри файла.

Для некоторых файлов XML, которые сервер пытается расшифровать, я получаю ошибку следующим образом:

GPG: BLOCK_FILTER 00AAA8400: ошибка чтения (размер = 7841, A-> Размер = 395)

GPG: MDC_Packet с недействительным кодировкой

GPG: Ошибка дешифрования: неверный пакет

GPG: Block_Filter: Ожидание байтов!

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

Кто-нибудь знаком для того, что означает эту ошибку? Любые предложения, которые помогут отслеживать это, приветствуются.

Это было полезно?

Решение

Наконец выяснил это. GPG не был виновником здесь. Когда сервер проверял файлы в указанной папке, он использовал метод Append (FileHandler) на Delphi, чтобы проверить, можно ли открыть файл. Но этот метод имел своеобразное состояние, как если бы он нашел символ 26 26 ASCII (т.е. Ctrl + z) в последнем 128 байтовом блоке файла, он удалит все от этого символа до конца файла. Это вызвало удаление некоторой части зашифрованных файлов, и впоследствии вызвала вышеуказанную ошибку при расшифровании его через GPG. После того, как я заменил способ добавления с помощью сброса (FileHandler), зашифрованные файлы больше не были модифицированы, а дешифрование работает отлично.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top