From 50d70a727b93e5b348ddb5fa597f411da277e35d Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 13 Mar 2018 22:19:17 +0100 Subject: gnu: Add java-bouncycastle. * gnu/packages/java.scm (java-bouncycastle): New variable. (java-bouncycastle-bcprov, java-bouncycastle-bcpkix): Remove variable. (java-kafka-clients)[inputs]: Use java-bouncycastle. --- gnu/packages/java.scm | 81 +++++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 51 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 500f27dcf2e..132671dc70b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -8145,70 +8145,50 @@ by technical operatives or consultants working with enterprise platforms.") algorithms and xxHash hashing algorithm.") (license license:asl2.0))) -(define-public java-bouncycastle-bcprov +(define-public java-bouncycastle (package - (name "java-bouncycastle-bcprov") - (version "1.58") + (name "java-bouncycastle") + (version "1.59") (source (origin (method url-fetch) - (uri "https://bouncycastle.org/download/bcprov-jdk15on-158.tar.gz") + (uri (string-append "https://github.com/bcgit/bc-java/archive/r" + (substring version 0 1) "rv" + (substring version 2 4) ".tar.gz")) (sha256 (base32 - "1hgkg96llbvgs8i0krwz2n0j7wlg6jfnq8w8kg0cc899j0wfmf3n")))) + "1bwl499whlbq896w18idqw2dkp8v0wp0npv9g71i5fgf8xjh0k3q")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + (find-files "." "\\.jar$")) + #t)))) (build-system ant-build-system) (arguments - `(#:jar-name "bouncycastle-bcprov.jar" - #:tests? #f; no tests - #:source-dir "src" + `(#:jdk ,icedtea-8 #:phases (modify-phases %standard-phases - (add-before 'configure 'unzip-src + (replace 'build (lambda _ - (mkdir-p "src") - (with-directory-excursion "src" - (invoke "unzip" "../src.zip")) - #t))))) - (native-inputs - `(("unzip" ,unzip) - ("junit" ,java-junit))) - (home-page "https://www.bouncycastle.org") - (synopsis "Cryptographic library") - (description "Bouncy Castle Provider (bcprov) is a cryptographic library -for the Java programming language.") - (license license:expat))) - -(define-public java-bouncycastle-bcpkix - (package - (name "java-bouncycastle-bcpkix") - (version "1.58") - (source (origin - (method url-fetch) - (uri "https://bouncycastle.org/download/bcpkix-jdk15on-158.tar.gz") - (sha256 - (base32 - "0is7qay02803s9f7lhnfcjlz61ni3hq5d7apg0iil7nbqkbfbcq2")))) - (build-system ant-build-system) - (arguments - `(#:jar-name "bouncycastle-bcpkix.jar" - #:tests? #f; no tests - #:source-dir "src" - #:phases - (modify-phases %standard-phases - (add-before 'configure 'unzip-src + (invoke "ant" "-f" "ant/jdk15+.xml" "build-provider") + (invoke "ant" "-f" "ant/jdk15+.xml" "build") + #t)) + (replace 'check (lambda _ - (mkdir-p "src") - (with-directory-excursion "src" - (invoke "unzip" "../src.zip")) - #t))))) + (invoke "ant" "-f" "ant/jdk15+.xml" "test"))) + (replace 'install + (install-jars "build/artifacts/jdk1.5/jars"))))) + (inputs + `(("java-javax-mail" ,java-javax-mail))) (native-inputs `(("unzip" ,unzip) - ("junit" ,java-junit))) - (inputs - `(("bcprov" ,java-bouncycastle-bcprov))) + ("junit" ,java-junit) + ("java-native-access" ,java-native-access) + ("java-native-access-platform" ,java-native-access-platform))) (home-page "https://www.bouncycastle.org") (synopsis "Cryptographic library") - (description "Bouncy Castle Java API for PKIX, CMS, EAC, TSP, PKCS, OCSP, -CMP, and CRMF.") + (description "Bouncy Castle is a cryptographic library for the Java +programming language.") (license license:expat))) (define-public java-lmax-disruptor @@ -8631,8 +8611,7 @@ protocol-independent framework to build mail and messaging applications.") ("powermock-junit4-common" ,java-powermock-modules-junit4-common) ("powermock-junit4" ,java-powermock-modules-junit4) ("powermock-support" ,java-powermock-api-support) - ("bouncycastle" ,java-bouncycastle-bcprov) - ("bouncycastle-bcpkix" ,java-bouncycastle-bcpkix))) + ("java-bouncycastle" ,java-bouncycastle))) (home-page "https://kafka.apache.org") (synopsis "Distributed streaming platform") (description "Kafka is a distributed streaming platform, which means: -- cgit v1.3 From 470674a541ffaf25022e371a3bbd6361f7329cff Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 5 Apr 2018 19:54:02 +0200 Subject: gnu: Add java-jsch-agentproxy-core. * gnu/packages/java.scm (java-jsch-agentproxy-core): New variable. --- gnu/packages/java.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 132671dc70b..b32134daf72 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9584,3 +9584,27 @@ Java method invocation.") and mappings for a number of commonly used platform functions, including a large number of Win32 mappings as well as a set of utility classes that simplify native access."))) + +(define-public java-jsch-agentproxy-core + (package + (name "java-jsch-agentproxy-core") + (version "0.0.8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ymnk/jsch-agent-proxy/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "02iqg6jbc1kxvfzqcg6wy9ygqxfm82bw5rf6vnswqy4y572niz4q")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jsch-agentproxy-core.jar" + #:source-dir "jsch-agent-proxy-core/src/main/java" + #:tests? #f)); no tests + (home-page "https://github.com/ymnk/jsch-agent-proxy") + (synopsis "Proxy to ssh-agent and Pageant in Java") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included Putty. It will be easily integrated into JSch, and users +will be allowed to use these programs for authentication.") + (license license:bsd-3))) -- cgit v1.3 From f1d79c97bec792e9e08d61f1a8308e453cc9b337 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:00:30 +0200 Subject: gnu: Add java-jsch-agentproxy-sshagent. * gnu/packages/java.scm (java-jsch-agentproxy-sshagent): New variable. --- gnu/packages/java.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b32134daf72..1ed965d3dcc 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9603,8 +9603,23 @@ simplify native access."))) #:source-dir "jsch-agent-proxy-core/src/main/java" #:tests? #f)); no tests (home-page "https://github.com/ymnk/jsch-agent-proxy") - (synopsis "Proxy to ssh-agent and Pageant in Java") + (synopsis "Core component of the proxy to ssh-agent and Pageant in Java") (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included Putty. It will be easily integrated into JSch, and users will be allowed to use these programs for authentication.") (license license:bsd-3))) + +(define-public java-jsch-agentproxy-sshagent + (package + (inherit java-jsch-agentproxy-core) + (name "java-jsch-agentproxy-sshagent") + (arguments + `(#:jar-name "jsch-agentproxy-sshagent.jar" + #:source-dir "jsch-agent-proxy-sshagent/src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core))) + (synopsis "Proxy to ssh-agent") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included in Putty. This component contains the code for a proxy to +ssh-agent."))) -- cgit v1.3 From f438e63835390b0cd72f603763d0872ddf518f3e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:02:49 +0200 Subject: gnu: Add java-jsch-agentproxy-usocket-jna. * gnu/packages/java.scm (java-jsch-agentproxy-usocket-jna): New variable. --- gnu/packages/java.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1ed965d3dcc..0b4656dff83 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9623,3 +9623,19 @@ will be allowed to use these programs for authentication.") (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included in Putty. This component contains the code for a proxy to ssh-agent."))) + +(define-public java-jsch-agentproxy-usocket-jna + (package + (inherit java-jsch-agentproxy-core) + (name "java-jsch-agentproxy-usocket-jna") + (arguments + `(#:jar-name "jsch-agentproxy-usocket-jna.jar" + #:source-dir "jsch-agent-proxy-usocket-jna/src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core) + ("java-native-access" ,java-native-access))) + (synopsis "USocketFactory implementation using JNA") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included in Putty. This component contains an implementation of +USocketFactory using @dfn{JNA} (Java Native Access)."))) -- cgit v1.3 From 475225e3064a4203595de0eacfc032f4fc6fb85b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:04:17 +0200 Subject: gnu: Add java-jsch-agentproxy-pageant. * gnu/packages/java.scm (java-jsch-agentproxy-pageant): New variable. --- gnu/packages/java.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 0b4656dff83..22d6f6fb04a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9639,3 +9639,20 @@ ssh-agent."))) (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included in Putty. This component contains an implementation of USocketFactory using @dfn{JNA} (Java Native Access)."))) + +(define-public java-jsch-agentproxy-pageant + (package + (inherit java-jsch-agentproxy-core) + (name "java-jsch-agentproxy-pageant") + (arguments + `(#:jar-name "jsch-agentproxy-pageant.jar" + #:source-dir "jsch-agent-proxy-pageant/src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core) + ("java-native-access" ,java-native-access) + ("java-native-access-platform" ,java-native-access-platform))) + (synopsis "Proxy to pageant") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included in Putty. This component contains the code for a proxy to +pageant."))) -- cgit v1.3 From 96d6d9c79749e5ad3e672ae6a4a470e312250923 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:05:39 +0200 Subject: gnu: Add java-jsch-agentproxy-usocket-nc. * gnu/packages/java.scm (java-jsch-agentproxy-usocket-nc): New variable. --- gnu/packages/java.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 22d6f6fb04a..8d1f820d9c1 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9656,3 +9656,18 @@ USocketFactory using @dfn{JNA} (Java Native Access)."))) (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included in Putty. This component contains the code for a proxy to pageant."))) + +(define-public java-jsch-agentproxy-usocket-nc + (package + (inherit java-jsch-agentproxy-core) + (name "java-jsch-agentproxy-usocket-nc") + (arguments + `(#:jar-name "jsch-agentproxy-usocket-nc.jar" + #:source-dir "jsch-agent-proxy-usocket-nc/src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core))) + (synopsis "USocketFactory implementation using netcat") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included in Putty. This component contains an implementation of +USocketFactory using netcat."))) -- cgit v1.3 From 5a46b17b129f1aed7c01d8a6c44199c2a27ab838 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:08:02 +0200 Subject: gnu: Add java-jsch-agentproxy-connector-factory. * gnu/packages/java.scm (java-jsch-agentproxy-connector-factory): New variable. --- gnu/packages/java.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8d1f820d9c1..115d44ac6cc 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9671,3 +9671,21 @@ pageant."))) (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included in Putty. This component contains an implementation of USocketFactory using netcat."))) + +(define-public java-jsch-agentproxy-connector-factory + (package + (inherit java-jsch-agentproxy-core) + (name "java-jsch-agentproxy-connector-factory") + (arguments + `(#:jar-name "jsch-agentproxy-connector-factory.jar" + #:source-dir "jsch-agent-proxy-connector-factory/src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core) + ("java-jsch-agentproxy-sshagent" ,java-jsch-agentproxy-sshagent) + ("java-jsch-agentproxy-usocket-jna" ,java-jsch-agentproxy-usocket-jna) + ("java-jsch-agentproxy-pageant" ,java-jsch-agentproxy-pageant) + ("java-jsch-agentproxy-usocket-nc" ,java-jsch-agentproxy-usocket-nc))) + (synopsis "Connector factory for jsch agent proxy") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included in Putty. This component contains a connector factory."))) -- cgit v1.3 From b0fbf59656442a44e18672a6b0ddfb9fb9c659a0 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:10:27 +0200 Subject: gnu: Add java-jsch-agentproxy-jsch. * gnu/packages/java.scm (java-jsch-agentproxy-jsch): New variable. --- gnu/packages/java.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 115d44ac6cc..a63d9707fbd 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9689,3 +9689,19 @@ USocketFactory using netcat."))) (synopsis "Connector factory for jsch agent proxy") (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included in Putty. This component contains a connector factory."))) + +(define-public java-jsch-agentproxy-jsch + (package + (inherit java-jsch-agentproxy-core) + (name "java-jsch-agentproxy-jsch") + (arguments + `(#:jar-name "jsch-agentproxy-jsch.jar" + #:source-dir "jsch-agent-proxy-jsch/src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-jsch" ,java-jsch) + ("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core))) + (synopsis "JSch integration library for agentproxy") + (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent +and Pageant included in Putty. This component contains a library to use +jsch-agent-proxy with JSch."))) -- cgit v1.3 From f1f4a4f016291509ed97034af0216573cdacf36c Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Apr 2018 17:19:12 +0200 Subject: gnu: Add java-apache-ivy. * 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. --- gnu/local.mk | 1 + gnu/packages/java.scm | 101 +++++++++++++++++++++ ...va-apache-ivy-port-to-latest-bouncycastle.patch | 81 +++++++++++++++++ 3 files changed, 183 insertions(+) create mode 100644 gnu/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch (limited to 'gnu/packages/java.scm') diff --git a/gnu/local.mk b/gnu/local.mk index cbf2c6f1b46..ec11b26632e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -792,6 +792,7 @@ dist_patch_DATA = \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ + %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a63d9707fbd..90fd07c5979 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9705,3 +9705,104 @@ and Pageant included in Putty. This component contains a connector factory."))) (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent and Pageant included in Putty. This component contains a library to use jsch-agent-proxy with JSch."))) + +(define-public java-apache-ivy + (package + (name "java-apache-ivy") + (version "2.4.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache//ant/ivy/" version + "/apache-ivy-" version "-src.tar.gz")) + (sha256 + (base32 + "1xkfn57g2m7l6y0xdq75x5rnrgk52m9jx2xah70g3ggl8750hbr0")) + (patches + (search-patches + "java-apache-ivy-port-to-latest-bouncycastle.patch")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "ivy.jar" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'remove-example + (lambda _ + (delete-file-recursively "src/example") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (with-directory-excursion "src/java" + (for-each (lambda (file) + (install-file file (string-append "../../build/classes/" (dirname file)))) + (append + (find-files "." ".*.css") + (find-files "." ".*.ent") + (find-files "." ".*.html") + (find-files "." ".*.properties") + (find-files "." ".*.xsd") + (find-files "." ".*.xsl") + (find-files "." ".*.xml")))))) + (add-before 'build 'fix-vfs + (lambda _ + (substitute* + '("src/java/org/apache/ivy/plugins/repository/vfs/VfsRepository.java" + "src/java/org/apache/ivy/plugins/repository/vfs/VfsResource.java") + (("import org.apache.commons.vfs") "import org.apache.commons.vfs2")) + #t)) + (add-before 'install 'copy-manifest + (lambda _ + (install-file "META-INF/MANIFEST.MF" "build/classes/META-INF") + #t)) + (add-before 'install 'repack + (lambda _ + (invoke "jar" "-cmf" "build/classes/META-INF/MANIFEST.MF" "build/jar/ivy.jar" + "-C" "build/classes" ".") + #t)) + (add-after 'install 'install-bin + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) + (ivy (string-append bin "/ivy")) + (jar (string-append (assoc-ref outputs "out") "/share/java/ivy.jar"))) + (mkdir-p bin) + (with-output-to-file ivy + (lambda _ + (display (string-append + "#!" (which "sh") "\n" + "if [[ -z $CLASSPATH ]]; then\n" + " cp=\"" (getenv "CLASSPATH") ":" jar "\"\n" + "else\n" + " cp=\"" (getenv "CLASSPATH") ":" jar ":$CLASSPATH\"\n" + "fi\n" + (which "java") " -cp $cp org.apache.ivy.Main $@\n")))) + (chmod ivy #o755) + #t)))))) + (inputs + `(("java-bouncycastle" ,java-bouncycastle) + ("java-commons-cli" ,java-commons-cli) + ("java-commons-collections" ,java-commons-collections) + ("java-commons-httpclient" ,java-commons-httpclient) + ("java-commons-lang" ,java-commons-lang) + ("java-commons-vfs" ,java-commons-vfs) + ("java-jakarta-oro" ,java-jakarta-oro) + ("java-jsch" ,java-jsch) + ("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core) + ("java-jsch-agentproxy-connector-factory" ,java-jsch-agentproxy-connector-factory) + ("java-jsch-agentproxy-jsch" ,java-jsch-agentproxy-jsch) + ("java-junit" ,java-junit))) + (home-page "https://ant.apache.org/ivy") + (synopsis "Dependency manager for the Java programming language") + (description "Ivy is a tool for managing (recording, tracking, resolving +and reporting) project dependencies. It is characterized by the following: + +@itemize +@item flexibility and configurability - Ivy is essentially process agnostic + and is not tied to any methodology or structure. Instead it provides the + necessary flexibility and configurability to be adapted to a broad range + of dependency management and build processes. +@item tight integration with Apache Ant - while available as a standalone tool, + Ivy works particularly well with Apache Ant providing a number of + powerful Ant tasks ranging from dependency resolution to dependency + reporting and publication. +@end itemize") + (license license:asl2.0))) diff --git a/gnu/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch b/gnu/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch new file mode 100644 index 00000000000..506de833dd5 --- /dev/null +++ b/gnu/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch @@ -0,0 +1,81 @@ +From 29055a825af5405e44ffcd59a776f8952bdc7203 Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +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 -- cgit v1.3