Domanda

Ho un sistema client-server e che regolarmente eseguito le operazioni pianificate e comunicare attraverso file XML che sono stati crittografati con gpg. Tutte le chiavi pubbliche richiesti sono stati scambiati con successo tra il client e il server. Le chiamate di crittografia e decrittografia sono stato fatto da un file batch.

Encrypt sintassi

gpg.exe --batch --Sì --recipient% 1 --output% 4% --passphrase 5 --local-utente% 2 --sign --encrypt% 3

decifrare la sintassi

gpg.exe --batch --Sì --output% 3 --passphrase% 4% --decrypt 2 2>% 1

Il client crea un file XML, crittografa con gpg utilizzando la chiave pubblica del server, cartelli con la chiave privata e lo carica sul sito FTP del server. Server regolarmente i controlli per i nuovi file nella cartella ftp. Per ogni nuovo file decripta usando gpg e poi elabora il file XML all'interno del file.

Per alcuni dei file XML che il server tenta di decifrare, ricevo un errore come segue:

  

gpg: block_filter 00AA8400: errore di lettura (size = 7841, a-> size = 395)

     

gpg: mdc_packet con la codifica non valida

     

gpg: decrittazione non riuscita: non valida pacchetto

     

gpg: block_filter: byte in attesa

Il punto da notare è che questo non sta accadendo con tutti i file ma con solo alcuni file. Non sono stato in grado di trovare qualsiasi comunanza tra i file che non riesce a.

C'è qualcuno familiare a cosa significa questo errore? eventuali suggerimenti per contribuire a rintracciare questo giù sono i benvenuti.

È stato utile?

Soluzione

Finalmente capito. gpg non era il colpevole qui. quando il server era il controllo per i file nella cartella specificata, è stato con il metodo Append (filehandler) su Delphi per verificare se il file può essere aperto. Ma questo metodo ha una condizione particolare, come se si trova il carattere ASCII 26 (cioè CTRL + z) nell'ultima 128 blocco byte del file, sarebbe rimuovere tutto dallo carattere fino alla fine del file. Questo ha causato una certa parte dei file crittografati da eliminare e, successivamente, ha causato l'errore di cui sopra quando decifrare attraverso gpg. Dopo ho sostituito il metodo Append di Reset (filehandler), file crittografati non erano più modificato e decifratura funziona perfettamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top