Recentemente ho dovuto lavorare sulla decodifica della codifica GPG e ho trovato che la libreria PGP di BountyCastle fa il trucco. I gradini erano
1) Aggiungere la versione nelle proprietà pom.xml
<org.bouncycastle.version>1.46</org.bouncycastle.version>
2) Aggiungere le seguenti dipendenze
<!-- Dependency for PGP and GPG Encryption-Decryption -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15</artifactId>
<version>${org.bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpg-jdk15</artifactId>
<version>${org.bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15</artifactId>
<version>${org.bouncycastle.version}</version>
</dependency>
3) nella classe di implementazione aggiunto il provider con Java Security
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
4) Il resto del codice era solo una semplice implementazione Java
File encryptedFile = new File(encryptedFileName);
byte[] encryptedByteArray = FileUtils.readFileToByteArray(inputFile);
byte[] decryptedByteArray = ByteArrayHandler.decrypt(encryptedByteArray, passPhrase.toCharArray());
String decryptedString = new String(decryptedByteArray);
Spero che questo aiuti.
fonte
2013-06-06 12:57:06
Grazie per la risposta - sembra essere molto promettente. Ci proveremo e riferirò se posso farlo funzionare con GnuPG. Sembra che potrebbe essere solo un'attenta selezione di opzioni reciprocamente compatibili. –
Ora funziona. Consiglio di guardare il codice di esempio in org.bouncycastle.openpgp.examples.KeyBasedFileProcessor in particolare. I bit complicati comprendevano la ricerca della chiave pubblica desiderata all'interno della raccolta dei portachiavi e l'implementazione dell'implementazione dell'implementazione JCE fornita nel JDK standard, ed è necessario scaricare e installare in modo esplicito i file dei criteri di giurisdizione illimitata di Java Cryptography Extension (JCE) 6 "dal sito Web di Sun. –
@James Shade: grazie per il feedback. Molto istruttivo. – VonC