From 3a53a4e5fa60db8461bdc19bd7e4afe252d39c41 Mon Sep 17 00:00:00 2001 From: Richard Downer Date: Wed, 1 Feb 2012 17:06:25 +0000 Subject: [PATCH] Add support for getting ciphers through the Crypto interface --- core/src/main/java/org/jclouds/crypto/Crypto.java | 4 ++++ .../java/org/jclouds/encryption/internal/JCECrypto.java | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/core/src/main/java/org/jclouds/crypto/Crypto.java b/core/src/main/java/org/jclouds/crypto/Crypto.java index 9c17654817..b6617c7ce7 100644 --- a/core/src/main/java/org/jclouds/crypto/Crypto.java +++ b/core/src/main/java/org/jclouds/crypto/Crypto.java @@ -25,7 +25,9 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateFactory; +import javax.crypto.Cipher; import javax.crypto.Mac; +import javax.crypto.NoSuchPaddingException; import org.jclouds.encryption.internal.JCECrypto; @@ -61,4 +63,6 @@ public interface Crypto { MessageDigest sha512(); + Cipher cipher(String algorithm) throws NoSuchAlgorithmException, NoSuchPaddingException; + } \ No newline at end of file diff --git a/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java b/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java index 4efa54abe0..4c6dfd6fee 100644 --- a/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java +++ b/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java @@ -28,7 +28,10 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import org.jclouds.javax.annotation.Nullable; + +import javax.crypto.Cipher; import javax.crypto.Mac; +import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; import javax.inject.Inject; import javax.inject.Singleton; @@ -86,6 +89,11 @@ public class JCECrypto implements Crypto { return provider == null ? MessageDigest.getInstance(algorithm) : MessageDigest.getInstance(algorithm, provider); } + @Override + public Cipher cipher(String algorithm) throws NoSuchAlgorithmException, NoSuchPaddingException { + return provider == null ? Cipher.getInstance(algorithm) : Cipher.getInstance(algorithm, provider); + } + public final static String MD5 = "MD5"; public final static String SHA1 = "SHA1"; public final static String SHA256 = "SHA-256";