From 3db01bd9d652dfc2580e1a29f311c9311d0f3e13 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Mon, 13 Jul 2015 16:22:18 -0500 Subject: [PATCH] SEC-3002: Add JUnit Assume to GCM encryption tests Not all JDKs have GCM installed on them. --- .../crypto/encrypt/EncryptorsTests.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/crypto/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java b/crypto/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java index 9af20d5f69..f6c1224c36 100644 --- a/crypto/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java +++ b/crypto/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java @@ -5,12 +5,19 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import java.security.GeneralSecurityException; + +import javax.crypto.Cipher; + +import org.junit.Assume; import org.junit.Test; public class EncryptorsTests { @Test public void stronger() throws Exception { + Assume.assumeTrue("GCM must be available for this test", isAesGcmAvailable()); + BytesEncryptor encryptor = Encryptors.stronger("password", "5c0744940b5c369b"); byte[] result = encryptor.encrypt("text".getBytes("UTF-8")); assertNotNull(result); @@ -33,6 +40,8 @@ public class EncryptorsTests { @Test public void preferred() { + Assume.assumeTrue("GCM must be available for this test", isAesGcmAvailable()); + TextEncryptor encryptor = Encryptors.delux("password", "5c0744940b5c369b"); String result = encryptor.encrypt("text"); assertNotNull(result); @@ -68,4 +77,13 @@ public class EncryptorsTests { assertEquals("text", encryptor.encrypt("text")); assertEquals("text", encryptor.decrypt("text")); } + + private boolean isAesGcmAvailable() { + try { + Cipher.getInstance("AES/GCM/NoPadding"); + return true; + } catch (GeneralSecurityException e) { + return false; + } + } }