Hello community,

here is the log from the commit of package apache-ivy for openSUSE:Factory 
checked in at 2019-09-30 15:52:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache-ivy (Old)
 and      /work/SRC/openSUSE:Factory/.apache-ivy.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "apache-ivy"

Mon Sep 30 15:52:51 2019 rev:18 rq:732999 version:2.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/apache-ivy/apache-ivy.changes    2019-07-08 
14:59:15.406374146 +0200
+++ /work/SRC/openSUSE:Factory/.apache-ivy.new.2352/apache-ivy.changes  
2019-09-30 15:52:53.394255967 +0200
@@ -1,0 +2,8 @@
+Tue Sep 24 16:08:31 UTC 2019 - Fridrich Strba <[email protected]>
+
+- Build the bouncycastle signer plugin since bcpg is now present
+- Added patch:
+  * port-to-bc-1.52.patch
+    + Allow building the signer plugin against bouncycastle >= 1.52
+
+-------------------------------------------------------------------

New:
----
  port-to-bc-1.52.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ apache-ivy.spec ++++++
--- /var/tmp/diff_new_pack.k2Pfzx/_old  2019-09-30 15:52:54.010254327 +0200
+++ /var/tmp/diff_new_pack.k2Pfzx/_new  2019-09-30 15:52:54.014254317 +0200
@@ -30,8 +30,9 @@
 Source2:        
http://repo1.maven.org/maven2/org/apache/ivy/ivy/%{version}/ivy-%{version}.pom
 Patch0:         apache-ivy-2.4.0-jdk9.patch
 Patch1:         apache-ivy-global-settings.patch
+Patch2:         port-to-bc-1.52.patch
 BuildRequires:  ant
-BuildRequires:  bouncycastle
+BuildRequires:  bouncycastle-pg
 BuildRequires:  commons-httpclient
 BuildRequires:  fdupes
 BuildRequires:  java-devel >= 1.8
@@ -69,14 +70,12 @@
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 cp %{SOURCE2} pom.xml
 
 %pom_remove_parent .
 
-#TODO: return back when bouncycastle-pgp will be available
-rm -fr src/java/org/apache/ivy/plugins/signer/bouncycastle
-
 # Remove prebuilt documentation
 rm -rf doc build/doc
 
@@ -99,8 +98,8 @@
 %build
 # Craft class path
 mkdir -p lib
-build-jar-repository lib ant ant/ant-nodeps oro jsch commons-httpclient
-export CLASSPATH=$(build-classpath ant ant/ant-nodeps oro jsch 
commons-httpclient)
+build-jar-repository lib ant ant/ant-nodeps oro jsch commons-httpclient bcprov 
bcpg
+export CLASSPATH=$(build-classpath ant ant/ant-nodeps oro jsch 
commons-httpclient bcprov bcpg)
 %if %{with vfs}
 build-jar-repository lib commons-vfs2
 export CLASSPATH=${CLASSPATH}:$(build-classpath commons-vfs2)

++++++ port-to-bc-1.52.patch ++++++
diff --git a/ivy.xml b/ivy.xml
index d448897..7d8896a 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -50,8 +50,8 @@
                <dependency org="com.jcraft" name="jsch.agentproxy" rev="0.0.6" 
conf="default,sftp->default"/>
                <dependency org="com.jcraft" 
name="jsch.agentproxy.connector-factory" rev="0.0.6" 
conf="default,sftp->default"/>
                <dependency org="com.jcraft" name="jsch.agentproxy.jsch" 
rev="0.0.6" conf="default,sftp->default"/>
-               <dependency org="org.bouncycastle" name="bcpg-jdk14" rev="1.45" 
conf="default"/>
-        <dependency org="org.bouncycastle" name="bcprov-jdk14" rev="1.45" 
conf="default"/>
+               <dependency org="org.bouncycastle" name="bcpg-jdk15on" 
rev="1.52" conf="default"/>
+        <dependency org="org.bouncycastle" name="bcprov-jdk15on" rev="1.52" 
conf="default"/>
 
                <!-- Test dependencies -->
                <dependency org="junit" name="junit" rev="3.8.2" 
conf="test->default"/>
diff --git 
a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
 
b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
index af7beae..bec8ae4 100644
--- 
a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
+++ 
b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
@@ -23,16 +23,18 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
 import java.security.Security;
-import java.security.SignatureException;
 import java.util.Iterator;
 
 import org.apache.ivy.plugins.signer.SignatureGenerator;
 import org.bouncycastle.bcpg.ArmoredOutputStream;
 import org.bouncycastle.bcpg.BCPGOutputStream;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor;
+import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
+import org.bouncycastle.openpgp.operator.bc.BcPBESecretKeyDecryptorBuilder;
+import org.bouncycastle.openpgp.operator.bc.BcPGPContentSignerBuilder;
+import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider;
 import org.bouncycastle.openpgp.PGPException;
 import org.bouncycastle.openpgp.PGPPrivateKey;
 import org.bouncycastle.openpgp.PGPSecretKey;
@@ -101,11 +103,13 @@ public class OpenPGPSignatureGenerator implements 
SignatureGenerator {
                 pgpSec = readSecretKey(keyIn);
             }
 
-            PGPPrivateKey pgpPrivKey = 
pgpSec.extractPrivateKey(password.toCharArray(),
-                BouncyCastleProvider.PROVIDER_NAME);
-            PGPSignatureGenerator sGen = new 
PGPSignatureGenerator(pgpSec.getPublicKey()
-                    .getAlgorithm(), PGPUtil.SHA1, 
BouncyCastleProvider.PROVIDER_NAME);
-            sGen.initSign(PGPSignature.BINARY_DOCUMENT, pgpPrivKey);
+            PBESecretKeyDecryptor decryptor = new 
BcPBESecretKeyDecryptorBuilder(
+                new 
BcPGPDigestCalculatorProvider()).build(password.toCharArray());
+            PGPPrivateKey pgpPrivKey = pgpSec.extractPrivateKey(decryptor);
+            PGPSignatureGenerator sGen = new PGPSignatureGenerator(
+                new BcPGPContentSignerBuilder(pgpSec.getPublicKey()
+                    .getAlgorithm(), PGPUtil.SHA1));
+            sGen.init(PGPSignature.BINARY_DOCUMENT, pgpPrivKey);
 
             in = new FileInputStream(src);
             out = new BCPGOutputStream(new ArmoredOutputStream(new 
FileOutputStream(dest)));
@@ -116,22 +120,10 @@ public class OpenPGPSignatureGenerator implements 
SignatureGenerator {
             }
 
             sGen.generate().encode(out);
-        } catch (SignatureException e) {
-            IOException ioexc = new IOException();
-            ioexc.initCause(e);
-            throw ioexc;
         } catch (PGPException e) {
             IOException ioexc = new IOException();
             ioexc.initCause(e);
             throw ioexc;
-        } catch (NoSuchAlgorithmException e) {
-            IOException ioexc = new IOException();
-            ioexc.initCause(e);
-            throw ioexc;
-        } catch (NoSuchProviderException e) {
-            IOException ioexc = new IOException();
-            ioexc.initCause(e);
-            throw ioexc;
         } finally {
             if (out != null) {
                 try {
@@ -156,7 +148,8 @@ public class OpenPGPSignatureGenerator implements 
SignatureGenerator {
 
     private PGPSecretKey readSecretKey(InputStream in) throws IOException, 
PGPException {
         in = PGPUtil.getDecoderStream(in);
-        PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in);
+        PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in,
+            new BcKeyFingerprintCalculator());
 
         PGPSecretKey key = null;
         for (Iterator it = pgpSec.getKeyRings(); key == null && it.hasNext();) 
{

Reply via email to