erreur mdc quand un message GPG décryptage
-
03-10-2019 - |
Question
J'ai un client et un système de serveur qui exécutent régulièrement des tâches planifiées et communiquer via des fichiers XML qui ont été chiffrés par GPG. Toutes les clés publiques nécessaires ont été échangées avec succès entre le client et le serveur. Les appels de chiffrement et de déchiffrement sont effectuées à partir d'un fichier batch.
Chiffrer la syntaxe
gpg.exe --batch --yes --recipient% 1 --output% 4% 5 --passphrase --local utilisateur% 2% 3 --sign --encrypt
Décrypter la syntaxe
gpg.exe --batch --yes --output% 3% 4 --passphrase --decrypt% 2 2>% 1
Le client crée un fichier xml, encrypte GPG utilisant le serveur à clé publique, des signes avec la clé privée et le télécharge sur le site ftp du serveur. Serveur régulièrement vérifie les nouveaux fichiers dans le dossier ftp. Pour tout nouveau fichier déchiffre avec GPG et traite ensuite le fichier XML dans le fichier.
Pour certains des fichiers XML que le serveur tente de déchiffrer, je reçois une erreur comme suit:
gpg: block_filter 00AA8400: erreur de lecture (taille = 7841, a-> size = 395)
GPG: mdc_packet avec encodage incorrect
GPG: Echec du déchiffrement: paquet incorrect
GPG: block_filter: octets en attente
Le point à noter est que cela ne se produit pas avec tous les fichiers, mais avec seulement quelques fichiers. Je ne l'ai pas été en mesure de trouver des points communs entre les fichiers qu'il échoue sur.
Quelqu'un est-il familier ce que cela signifie d'erreur? des suggestions pour aider à suivre ce bas sont les bienvenus.
La solution
Enfin compris. GPG n'a pas été le coupable ici. lorsque le serveur vérifiait pour les fichiers dans le dossier spécifié, il utilisait la méthode Append (FileHandler) sur Delphi pour tester si le fichier pourrait être ouvert. Mais cette méthode avait une condition particulière comme si elle trouve le caractère ascii 26 (à savoir CTRL + z) dans le dernier bloc de 128 octets du fichier, il supprimerait tout de ce caractère jusqu'à la fin du fichier. Cela a causé une partie des fichiers cryptés à supprimer, puis a provoqué l'erreur ci-dessus lorsque le déchiffrant par GPG. Après avoir remplacé la méthode Append avec Reset (FileHandler), les fichiers cryptés sont pas plus modifié et le déchiffrement fonctionne parfaitement.