From b9029ea7a61a45012072f4e4a4ef2c212a716f6b Mon Sep 17 00:00:00 2001 From: Ignasi Barrera Date: Tue, 1 Jul 2014 15:37:50 +0200 Subject: [PATCH] JCLOUDS-617: Use the configured JCE provider in the Cipher payloads --- .../java/org/jclouds/io/payloads/BaseCipherPayload.java | 6 +++++- .../java/org/jclouds/io/payloads/RSADecryptingPayload.java | 7 ++++--- .../java/org/jclouds/io/payloads/RSAEncryptingPayload.java | 7 ++++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java b/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java index 6b4a5b91db..099036bcdd 100644 --- a/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java +++ b/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java @@ -24,14 +24,18 @@ import java.security.Key; import javax.crypto.Cipher; import javax.crypto.CipherInputStream; +import org.jclouds.crypto.Crypto; import org.jclouds.io.Payload; public abstract class BaseCipherPayload extends DelegatingPayload { private final Key key; - public BaseCipherPayload(Payload delegate, Key key) { + protected final Crypto crypto; + + public BaseCipherPayload(Crypto crypto, Payload delegate, Key key) { super(delegate); + this.crypto = checkNotNull(crypto, "crypto"); this.key = checkNotNull(key, "key"); } diff --git a/core/src/main/java/org/jclouds/io/payloads/RSADecryptingPayload.java b/core/src/main/java/org/jclouds/io/payloads/RSADecryptingPayload.java index c6566fd473..0251e6604b 100644 --- a/core/src/main/java/org/jclouds/io/payloads/RSADecryptingPayload.java +++ b/core/src/main/java/org/jclouds/io/payloads/RSADecryptingPayload.java @@ -23,21 +23,22 @@ import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; +import org.jclouds.crypto.Crypto; import org.jclouds.io.Payload; import com.google.common.base.Throwables; public class RSADecryptingPayload extends BaseCipherPayload { - public RSADecryptingPayload(Payload delegate, Key key) { - super(delegate, key); + public RSADecryptingPayload(Crypto crypto, Payload delegate, Key key) { + super(crypto, delegate, key); } @Override public Cipher initializeCipher(Key key) { Cipher cipher = null; try { - cipher = Cipher.getInstance("RSA"); + cipher = crypto.cipher("RSA"); cipher.init(Cipher.DECRYPT_MODE, key); } catch (NoSuchAlgorithmException e) { Throwables.propagate(e); diff --git a/core/src/main/java/org/jclouds/io/payloads/RSAEncryptingPayload.java b/core/src/main/java/org/jclouds/io/payloads/RSAEncryptingPayload.java index 1adc79be12..b8b7f33c06 100644 --- a/core/src/main/java/org/jclouds/io/payloads/RSAEncryptingPayload.java +++ b/core/src/main/java/org/jclouds/io/payloads/RSAEncryptingPayload.java @@ -23,21 +23,22 @@ import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; +import org.jclouds.crypto.Crypto; import org.jclouds.io.Payload; import com.google.common.base.Throwables; public class RSAEncryptingPayload extends BaseCipherPayload { - public RSAEncryptingPayload(Payload delegate, Key key) { - super(delegate, key); + public RSAEncryptingPayload(Crypto crypto, Payload delegate, Key key) { + super(crypto, delegate, key); } @Override public Cipher initializeCipher(Key key) { Cipher cipher = null; try { - cipher = Cipher.getInstance("RSA"); + cipher = crypto.cipher("RSA"); cipher.init(Cipher.ENCRYPT_MODE, key); } catch (NoSuchAlgorithmException e) { Throwables.propagate(e);