* gnu/package/java.scm (java-apache-ivy): New variable. * gnu/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 29055a825af5405e44ffcd59a776f8952bdc7203 Mon Sep 17 00:00:00 2001
 | |
| From: Julien Lepiller <julien@lepiller.eu>
 | |
| Date: Fri, 15 Dec 2017 16:03:23 +0100
 | |
| Subject: [PATCH] Port to latest bouncycastle.
 | |
| 
 | |
| ---
 | |
|  .../bouncycastle/OpenPGPSignatureGenerator.java    | 34 ++++++++++------------
 | |
|  1 file changed, 16 insertions(+), 18 deletions(-)
 | |
| 
 | |
| 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..34c204f 100644
 | |
| --- a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
 | |
| +++ b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
 | |
| @@ -41,6 +41,11 @@ import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
 | |
|  import org.bouncycastle.openpgp.PGPSignature;
 | |
|  import org.bouncycastle.openpgp.PGPSignatureGenerator;
 | |
|  import org.bouncycastle.openpgp.PGPUtil;
 | |
| +import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor;
 | |
| +import org.bouncycastle.openpgp.operator.bc.BcPBESecretKeyDecryptorBuilder;
 | |
| +import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider;
 | |
| +import org.bouncycastle.openpgp.operator.bc.BcPGPContentSignerBuilder;
 | |
| +import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
 | |
|  
 | |
|  public class OpenPGPSignatureGenerator implements SignatureGenerator {
 | |
|  
 | |
| @@ -101,11 +106,15 @@ 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);
 | |
| +            BcPGPContentSignerBuilder builder = new BcPGPContentSignerBuilder(
 | |
| +                            pgpSec.getPublicKey().getAlgorithm(), PGPUtil.SHA1);
 | |
| +
 | |
| +            PGPSignatureGenerator sGen = new PGPSignatureGenerator(builder);
 | |
| +            sGen.init(PGPSignature.BINARY_DOCUMENT, pgpPrivKey);
 | |
|  
 | |
|              in = new FileInputStream(src);
 | |
|              out = new BCPGOutputStream(new ArmoredOutputStream(new FileOutputStream(dest)));
 | |
| @@ -116,22 +125,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 +153,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();) {
 | |
| -- 
 | |
| 2.15.1
 |