3737import org .bouncycastle .openpgp .PGPPBEEncryptedData ;
3838import org .bouncycastle .openpgp .PGPUtil ;
3939import org .bouncycastle .openpgp .jcajce .JcaPGPObjectFactory ;
40+ import org .bouncycastle .openpgp .operator .jcajce .JcaPGPDigestCalculatorProviderBuilder ;
4041import org .bouncycastle .openpgp .operator .jcajce .JcePBEDataDecryptorFactoryBuilder ;
4142import org .bouncycastle .util .io .Streams ;
4243import org .jetbrains .annotations .NotNull ;
4748import java .io .BufferedInputStream ;
4849import java .io .BufferedOutputStream ;
4950import java .io .BufferedReader ;
51+ import java .io .BufferedWriter ;
5052import java .io .ByteArrayInputStream ;
5153import java .io .File ;
5254import java .io .FileInputStream ;
5355import java .io .FileOutputStream ;
5456import java .io .IOException ;
5557import java .io .InputStream ;
5658import java .io .OutputStream ;
59+ import java .io .OutputStreamWriter ;
5760import java .io .Writer ;
5861import java .nio .charset .Charset ;
5962import java .nio .charset .StandardCharsets ;
@@ -469,7 +472,12 @@ public static File writeTempFile(String name, String contents) throws IOExceptio
469472 */
470473 public static File writeFile (File file , String contents ) throws IOException
471474 {
472- try (Writer writer = PrintWriters .getPrintWriter (file ))
475+ return writeFile (file , contents , false );
476+ }
477+
478+ public static File writeFile (File file , String contents , boolean append ) throws IOException
479+ {
480+ try (Writer writer = new OutputStreamWriter (new FileOutputStream (file , append ), StandardCharsets .UTF_8 ))
473481 {
474482 writer .write (contents );
475483 return file ;
@@ -577,10 +585,10 @@ private static List<File> unTar(final File inputFile, final File outputDir) thro
577585 {
578586 final List <File > untaredFiles = new ArrayList <>();
579587 try (InputStream is = new FileInputStream (inputFile );
580- TarArchiveInputStream inputStream = ( TarArchiveInputStream ) new ArchiveStreamFactory ().createArchiveInputStream ("tar" , is ))
588+ TarArchiveInputStream inputStream = new ArchiveStreamFactory ().createArchiveInputStream ("tar" , is ))
581589 {
582590 TarArchiveEntry entry ;
583- while ((entry = ( TarArchiveEntry ) inputStream .getNextEntry ()) != null )
591+ while ((entry = inputStream .getNextEntry ()) != null )
584592 {
585593 final File outputFile = new File (outputDir , entry .getName ());
586594 if (entry .isDirectory ())
@@ -597,7 +605,7 @@ private static List<File> unTar(final File inputFile, final File outputDir) thro
597605 {
598606 try (OutputStream outputFileStream = new FileOutputStream (outputFile ))
599607 {
600- org . apache . commons . compress . utils . IOUtils .copy (inputStream , outputFileStream );
608+ IOUtils .copy (inputStream , outputFileStream );
601609 }
602610 }
603611 untaredFiles .add (outputFile );
@@ -652,7 +660,7 @@ public static byte[] decrypt(byte[] encrypted, char[] passPhrase) throws IOExcep
652660 }
653661
654662 PGPPBEEncryptedData pbe = (PGPPBEEncryptedData ) enc .get (0 );
655- InputStream clear = pbe .getDataStream (new JcePBEDataDecryptorFactoryBuilder ()
663+ InputStream clear = pbe .getDataStream (new JcePBEDataDecryptorFactoryBuilder (new JcaPGPDigestCalculatorProviderBuilder (). setProvider ( BouncyCastleProvider . PROVIDER_NAME ). build () )
656664 .setProvider (BouncyCastleProvider .PROVIDER_NAME ).build (passPhrase ));
657665
658666 JcaPGPObjectFactory pgpFact = new JcaPGPObjectFactory (clear );
0 commit comments