From 812c3e2e37e8e98de35a24a558fd694463ee31ef Mon Sep 17 00:00:00 2001 From: Ajay Kemparaj Date: Thu, 6 Sep 2018 12:30:50 -0700 Subject: [PATCH] Minor java code cleanup --- pom.xml | 8 ++--- .../DefaultCryptoMaterialsManager.java | 7 ++-- .../CachingCryptoMaterialsManager.java | 7 ++-- .../internal/BlockEncryptionHandler.java | 3 -- .../encryptionsdk/internal/Constants.java | 18 +++++----- .../internal/DecryptionHandler.java | 2 +- .../internal/FrameEncryptionHandler.java | 1 - .../encryptionsdk/internal/Utils.java | 1 - .../encryptionsdk/internal/VersionInfo.java | 2 +- .../model/CipherFrameHeaders.java | 2 +- .../encryptionsdk/model/CiphertextType.java | 2 +- .../amazonaws/encryptionsdk/UtilsTest.java | 5 ++- .../caching/CacheIdentifierTests.java | 2 -- .../LocalCryptoMaterialsCacheTest.java | 34 +++++++++---------- .../caching/NullCryptoMaterialsCacheTest.java | 4 +-- 15 files changed, 44 insertions(+), 54 deletions(-) diff --git a/pom.xml b/pom.xml index 8869ccf4c..ae4faee30 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 + 3.8.0 1.8 1.8 @@ -110,7 +110,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.9.1 + 3.0.1 128m 1024m @@ -172,7 +172,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.20 + 2.22.0 **/AllTestsSuite.java @@ -193,7 +193,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.20 + 2.22.0 **/FastTestsOnlySuite.java diff --git a/src/main/java/com/amazonaws/encryptionsdk/DefaultCryptoMaterialsManager.java b/src/main/java/com/amazonaws/encryptionsdk/DefaultCryptoMaterialsManager.java index 7da2d19ce..d31c615b5 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/DefaultCryptoMaterialsManager.java +++ b/src/main/java/com/amazonaws/encryptionsdk/DefaultCryptoMaterialsManager.java @@ -125,7 +125,7 @@ public DefaultCryptoMaterialsManager(MasterKeyProvider mkp) { } pubKey = deserializeTrailingKeyFromEc(request.getAlgorithm(), serializedPubKey); - } catch (final GeneralSecurityException ex) { + } catch (final IllegalStateException ex) { throw new AwsCryptoException(ex); } } @@ -136,10 +136,7 @@ public DefaultCryptoMaterialsManager(MasterKeyProvider mkp) { .build(); } - private PublicKey deserializeTrailingKeyFromEc( - CryptoAlgorithm algo, - String pubKey - ) throws GeneralSecurityException { + private PublicKey deserializeTrailingKeyFromEc(CryptoAlgorithm algo, String pubKey) { return TrailingSignatureAlgorithm.forCryptoAlgorithm(algo).deserializePublicKey(pubKey); } diff --git a/src/main/java/com/amazonaws/encryptionsdk/caching/CachingCryptoMaterialsManager.java b/src/main/java/com/amazonaws/encryptionsdk/caching/CachingCryptoMaterialsManager.java index e34770fbf..daf5c549e 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/caching/CachingCryptoMaterialsManager.java +++ b/src/main/java/com/amazonaws/encryptionsdk/caching/CachingCryptoMaterialsManager.java @@ -11,6 +11,7 @@ import com.amazonaws.encryptionsdk.CryptoMaterialsManager; import com.amazonaws.encryptionsdk.DefaultCryptoMaterialsManager; import com.amazonaws.encryptionsdk.MasterKeyProvider; +import com.amazonaws.encryptionsdk.exception.AwsCryptoException; import com.amazonaws.encryptionsdk.internal.EncryptionContextSerializer; import com.amazonaws.encryptionsdk.internal.Utils; import com.amazonaws.encryptionsdk.model.DecryptionMaterialsRequest; @@ -249,7 +250,7 @@ private CachingCryptoMaterialsManager(Builder builder) { partitionId.getBytes(StandardCharsets.UTF_8) ); } catch (GeneralSecurityException e) { - throw new RuntimeException(e); + throw new AwsCryptoException(e); } } @@ -349,7 +350,7 @@ private byte[] getCacheIdentifier(EncryptionMaterialsRequest req) { return digest.digest(); } catch (GeneralSecurityException e) { - throw new RuntimeException(e); + throw new AwsCryptoException(e); } } @@ -377,7 +378,7 @@ private byte[] getCacheIdentifier(DecryptionMaterialsRequest req) { return digest.digest(); } catch (GeneralSecurityException e) { - throw new RuntimeException(e); + throw new AwsCryptoException(e); } } diff --git a/src/main/java/com/amazonaws/encryptionsdk/internal/BlockEncryptionHandler.java b/src/main/java/com/amazonaws/encryptionsdk/internal/BlockEncryptionHandler.java index c5f87055f..e40ac944c 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/internal/BlockEncryptionHandler.java +++ b/src/main/java/com/amazonaws/encryptionsdk/internal/BlockEncryptionHandler.java @@ -14,8 +14,6 @@ package com.amazonaws.encryptionsdk.internal; import java.io.ByteArrayOutputStream; -import java.security.SecureRandom; - import javax.crypto.Cipher; import javax.crypto.SecretKey; @@ -33,7 +31,6 @@ * {@link BlockDecryptionHandler}. */ class BlockEncryptionHandler implements CryptoHandler { - private static final SecureRandom RND = new SecureRandom(); private final SecretKey encryptionKey_; private final CryptoAlgorithm cryptoAlgo_; private final int nonceLen_; diff --git a/src/main/java/com/amazonaws/encryptionsdk/internal/Constants.java b/src/main/java/com/amazonaws/encryptionsdk/internal/Constants.java index 05363936e..e580f7c79 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/internal/Constants.java +++ b/src/main/java/com/amazonaws/encryptionsdk/internal/Constants.java @@ -18,7 +18,7 @@ public final class Constants { * Default length of the message identifier used to uniquely identify every * ciphertext created by this library. */ - public final static int MESSAGE_ID_LEN = 16; + public static final int MESSAGE_ID_LEN = 16; private Constants() { // Prevent instantiation @@ -27,39 +27,39 @@ private Constants() { /** * Marker for identifying the final frame. */ - public final static int ENDFRAME_SEQUENCE_NUMBER = ~0; // is 0xFFFFFFFF + public static final int ENDFRAME_SEQUENCE_NUMBER = ~0; // is 0xFFFFFFFF /** * The identifier for non-final frames in the framing content type. This value is used as part * of the additional authenticated data (AAD) when encryption of content in a frame. */ - public final static String FRAME_STRING_ID = "AWSKMSEncryptionClient Frame"; + public static final String FRAME_STRING_ID = "AWSKMSEncryptionClient Frame"; /** * The identifier for the final frame in the framing content type. This value is used as part of * the additional authenticated data (AAD) when encryption of content in a frame. */ - public final static String FINAL_FRAME_STRING_ID = "AWSKMSEncryptionClient Final Frame"; + public static final String FINAL_FRAME_STRING_ID = "AWSKMSEncryptionClient Final Frame"; /** * The identifier for the single block content type. This value is used as part of the * additional authenticated data (AAD) when encryption of content in a single block. */ - public final static String SINGLE_BLOCK_STRING_ID = "AWSKMSEncryptionClient Single Block"; + public static final String SINGLE_BLOCK_STRING_ID = "AWSKMSEncryptionClient Single Block"; /** * Maximum length of the content that can be encrypted in GCM mode. */ - public final static long GCM_MAX_CONTENT_LEN = (1L << 36) - 32; + public static final long GCM_MAX_CONTENT_LEN = (1L << 36) - 32; - public final static int MAX_NONCE_LENGTH = (1 << 8) - 1; + public static final int MAX_NONCE_LENGTH = (1 << 8) - 1; /** * Maximum value of an unsigned short. */ - public final static int UNSIGNED_SHORT_MAX_VAL = (1 << 16) - 1; + public static final int UNSIGNED_SHORT_MAX_VAL = (1 << 16) - 1; - public final static long MAX_FRAME_NUMBER = (1L << 32) - 1; + public static final long MAX_FRAME_NUMBER = (1L << 32) - 1; public static final String EC_PUBLIC_KEY_FIELD = "aws-crypto-public-key"; } diff --git a/src/main/java/com/amazonaws/encryptionsdk/internal/DecryptionHandler.java b/src/main/java/com/amazonaws/encryptionsdk/internal/DecryptionHandler.java index a4f8f7437..482286bc1 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/internal/DecryptionHandler.java +++ b/src/main/java/com/amazonaws/encryptionsdk/internal/DecryptionHandler.java @@ -515,7 +515,7 @@ private void readHeaderFields(final CiphertextHeaders ciphertextHeaders) { private void updateTrailingSignature(final CiphertextHeaders headers) { if (trailingSig_ != null) { - final byte[] reserializedHeaders = ciphertextHeaders_.toByteArray(); + final byte[] reserializedHeaders = headers.toByteArray(); updateTrailingSignature(reserializedHeaders, 0, reserializedHeaders.length); } } diff --git a/src/main/java/com/amazonaws/encryptionsdk/internal/FrameEncryptionHandler.java b/src/main/java/com/amazonaws/encryptionsdk/internal/FrameEncryptionHandler.java index 8045c003a..1bd8f4511 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/internal/FrameEncryptionHandler.java +++ b/src/main/java/com/amazonaws/encryptionsdk/internal/FrameEncryptionHandler.java @@ -15,7 +15,6 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; diff --git a/src/main/java/com/amazonaws/encryptionsdk/internal/Utils.java b/src/main/java/com/amazonaws/encryptionsdk/internal/Utils.java index 15881aa3d..174905d0a 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/internal/Utils.java +++ b/src/main/java/com/amazonaws/encryptionsdk/internal/Utils.java @@ -21,7 +21,6 @@ import java.util.Comparator; import java.util.WeakHashMap; import java.util.concurrent.atomic.AtomicLong; -import java.util.regex.Pattern; /** * Internal utility methods. diff --git a/src/main/java/com/amazonaws/encryptionsdk/internal/VersionInfo.java b/src/main/java/com/amazonaws/encryptionsdk/internal/VersionInfo.java index e0dfbc962..eb33ca99d 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/internal/VersionInfo.java +++ b/src/main/java/com/amazonaws/encryptionsdk/internal/VersionInfo.java @@ -33,6 +33,6 @@ public class VersionInfo { /** * The current version number of the ciphertext produced by this library. */ - public final static byte CURRENT_CIPHERTEXT_VERSION = 1; + public static final byte CURRENT_CIPHERTEXT_VERSION = 1; } diff --git a/src/main/java/com/amazonaws/encryptionsdk/model/CipherFrameHeaders.java b/src/main/java/com/amazonaws/encryptionsdk/model/CipherFrameHeaders.java index 11e4aaca2..25cd140d4 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/model/CipherFrameHeaders.java +++ b/src/main/java/com/amazonaws/encryptionsdk/model/CipherFrameHeaders.java @@ -113,7 +113,7 @@ public byte[] toByteArray() { dataStream.close(); return outBytes.toByteArray(); } catch (IOException e) { - throw new RuntimeException("Failed to serialize cipher frame headers", e); + throw new AwsCryptoException("Failed to serialize cipher frame headers", e); } } diff --git a/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextType.java b/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextType.java index fd052b51e..8e6825436 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextType.java +++ b/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextType.java @@ -33,7 +33,7 @@ public enum CiphertextType { * This is a static method so the map is created when the class is loaded. * This enables fast lookups of the CiphertextType given a value. */ - private static final Map ID_MAPPING = new HashMap(); + private static final Map ID_MAPPING = new HashMap<>(); static { for (final CiphertextType s : EnumSet.allOf(CiphertextType.class)) { ID_MAPPING.put(s.value_, s); diff --git a/src/test/java/com/amazonaws/encryptionsdk/UtilsTest.java b/src/test/java/com/amazonaws/encryptionsdk/UtilsTest.java index 0d93e90f3..dbbd7d66c 100644 --- a/src/test/java/com/amazonaws/encryptionsdk/UtilsTest.java +++ b/src/test/java/com/amazonaws/encryptionsdk/UtilsTest.java @@ -5,7 +5,6 @@ import static org.junit.Assert.assertTrue; import java.util.Arrays; -import java.util.Collections; import org.junit.Test; @@ -13,7 +12,7 @@ public class UtilsTest { @Test - public void compareObjectIdentityTest() throws Exception { + public void compareObjectIdentityTest() { assertNotEquals(0, Utils.compareObjectIdentity(null, new Object())); assertNotEquals(0, Utils.compareObjectIdentity(new Object(), null)); @@ -63,7 +62,7 @@ public void compareObjectIdentity_handlesHashCodeCollisions() { } @Test - public void testSaturatingAdd() throws Exception { + public void testSaturatingAdd() { assertEquals(0, Utils.saturatingAdd(0, 0)); assertEquals(2, Utils.saturatingAdd(1, 1)); assertEquals(-2, Utils.saturatingAdd(-1, -1)); diff --git a/src/test/java/com/amazonaws/encryptionsdk/caching/CacheIdentifierTests.java b/src/test/java/com/amazonaws/encryptionsdk/caching/CacheIdentifierTests.java index 1af7efc6f..a3506fed3 100644 --- a/src/test/java/com/amazonaws/encryptionsdk/caching/CacheIdentifierTests.java +++ b/src/test/java/com/amazonaws/encryptionsdk/caching/CacheIdentifierTests.java @@ -37,8 +37,6 @@ public class CacheIdentifierTests { contextFull.put("encryption", "context"); } - CachingCryptoMaterialsManager cmm; - static List keyBlobs = Arrays.asList( new KeyBlob("this is a provider ID", "this is some key info".getBytes(UTF_8), "super secret key, now with encryption!".getBytes(UTF_8) diff --git a/src/test/java/com/amazonaws/encryptionsdk/caching/LocalCryptoMaterialsCacheTest.java b/src/test/java/com/amazonaws/encryptionsdk/caching/LocalCryptoMaterialsCacheTest.java index 8a5e19ba5..98a61dd2d 100644 --- a/src/test/java/com/amazonaws/encryptionsdk/caching/LocalCryptoMaterialsCacheTest.java +++ b/src/test/java/com/amazonaws/encryptionsdk/caching/LocalCryptoMaterialsCacheTest.java @@ -30,21 +30,21 @@ public class LocalCryptoMaterialsCacheTest { CryptoMaterialsCache.CacheHint hint = () -> 1000; // maxAge = 1000 @Before - public void setUp() throws Exception { + public void setUp() { clock = new FakeClock(); cache = new LocalCryptoMaterialsCache(5); cache.clock = clock; } @Test - public void whenNoEntriesInCache_noEntriesReturned() throws Exception { + public void whenNoEntriesInCache_noEntriesReturned() { assertNull(cache.getEntryForDecrypt(new byte[10])); byte[] cacheId = new byte[10]; assertNull(cache.getEntryForEncrypt(cacheId, UsageStats.ZERO)); } @Test - public void whenEntriesAddedToDecryptCache_correctEntriesReturned() throws Exception { + public void whenEntriesAddedToDecryptCache_correctEntriesReturned() { DecryptionMaterials result1 = CacheTestFixtures.createDecryptResult(CacheTestFixtures.createDecryptRequest(1)); DecryptionMaterials result2 = CacheTestFixtures.createDecryptResult(CacheTestFixtures.createDecryptRequest(2)); @@ -55,7 +55,7 @@ public void whenEntriesAddedToDecryptCache_correctEntriesReturned() throws Excep } @Test - public void whenManyDecryptEntriesAdded_LRURespected() throws Exception { + public void whenManyDecryptEntriesAdded_LRURespected() { DecryptionMaterials[] results = new DecryptionMaterials[6]; for (int i = 0; i < results.length; i++) { @@ -86,7 +86,7 @@ public void whenManyDecryptEntriesAdded_LRURespected() throws Exception { } @Test - public void whenEncryptEntriesAdded_theyCanBeRetrieved() throws Exception { + public void whenEncryptEntriesAdded_theyCanBeRetrieved() { EncryptionMaterials result1a = CacheTestFixtures.createMaterialsResult(CacheTestFixtures.createMaterialsRequest(0)); EncryptionMaterials @@ -103,7 +103,7 @@ public void whenEncryptEntriesAdded_theyCanBeRetrieved() throws Exception { } @Test - public void whenInitialUsagePassed_itIsRetained() throws Exception { + public void whenInitialUsagePassed_itIsRetained() { UsageStats stats = new UsageStats(123, 456); EncryptionMaterials result1a = CacheTestFixtures.createMaterialsResult(CacheTestFixtures.createMaterialsRequest(0)); @@ -113,7 +113,7 @@ public void whenInitialUsagePassed_itIsRetained() throws Exception { } @Test - public void whenManyEncryptEntriesAdded_LRUIsRespected() throws Exception { + public void whenManyEncryptEntriesAdded_LRUIsRespected() { EncryptionMaterials[] results = new EncryptionMaterials[6]; for (int i = 0; i < results.length; i++) { results[i] = CacheTestFixtures.createMaterialsResult(CacheTestFixtures.createMaterialsRequest(i / 3)); @@ -128,7 +128,7 @@ public void whenManyEncryptEntriesAdded_LRUIsRespected() throws Exception { } @Test - public void whenManyEncryptEntriesAdded_andEntriesTouched_LRUIsRespected() throws Exception { + public void whenManyEncryptEntriesAdded_andEntriesTouched_LRUIsRespected() { EncryptionMaterials[] results = new EncryptionMaterials[6]; for (int i = 0; i < 3; i++) { results[i] = CacheTestFixtures.createMaterialsResult(CacheTestFixtures.createMaterialsRequest(0)); @@ -151,7 +151,7 @@ public void whenManyEncryptEntriesAdded_andEntriesTouched_LRUIsRespected() throw } @Test - public void whenManyEncryptEntriesAdded_andEntryInvalidated_LRUIsRespected() throws Exception { + public void whenManyEncryptEntriesAdded_andEntryInvalidated_LRUIsRespected() { EncryptionMaterials[] results = new EncryptionMaterials[6]; for (int i = 0; i < 3; i++) { results[i] = CacheTestFixtures.createMaterialsResult(CacheTestFixtures.createMaterialsRequest(0)); @@ -174,7 +174,7 @@ public void whenManyEncryptEntriesAdded_andEntryInvalidated_LRUIsRespected() thr } @Test - public void testCacheEntryBehavior() throws Exception { + public void testCacheEntryBehavior() { EncryptionMaterials result = createResult(); CryptoMaterialsCache.EncryptCacheEntry e = cache.putEntryForEncrypt(new byte[]{0}, result, hint, new UsageStats(1, 2)); @@ -208,7 +208,7 @@ public void whenTTLExceeded_encryptEntriesAreEvicted() throws Exception { } @Test - public void whenManyEntriesExpireAtOnce_expiredEncryptEntriesStillNotReturned() throws Exception { + public void whenManyEntriesExpireAtOnce_expiredEncryptEntriesStillNotReturned() { // Our active TTL expiration logic will only remove a certain number of entries per call, make sure that even // if we bail out before removing a particular entry, it's still filtered from the return value. cache = new LocalCryptoMaterialsCache(200); @@ -225,7 +225,7 @@ public void whenManyEntriesExpireAtOnce_expiredEncryptEntriesStillNotReturned() } @Test - public void whenAccessed_encryptEntryTTLNotReset() throws Exception { + public void whenAccessed_encryptEntryTTLNotReset() { EncryptionMaterials result = createResult(); cache.putEntryForEncrypt(new byte[]{0}, result, hint, UsageStats.ZERO); @@ -249,7 +249,7 @@ public void whenTTLExceeded_decryptEntriesAreEvicted() throws Exception { } @Test - public void whenAccessed_decryptEntryTTLNotReset() throws Exception { + public void whenAccessed_decryptEntryTTLNotReset() { DecryptionMaterials result = CacheTestFixtures.createDecryptResult(CacheTestFixtures.createDecryptRequest(0)); cache.putEntryForDecrypt(new byte[]{0}, result, hint); @@ -261,7 +261,7 @@ public void whenAccessed_decryptEntryTTLNotReset() throws Exception { } @Test - public void whenManyEntriesExpireAtOnce_expiredDecryptEntriesStillNotReturned() throws Exception { + public void whenManyEntriesExpireAtOnce_expiredDecryptEntriesStillNotReturned() { cache = new LocalCryptoMaterialsCache(200); cache.clock = clock; @@ -278,7 +278,7 @@ public void whenManyEntriesExpireAtOnce_expiredDecryptEntriesStillNotReturned() } @Test - public void testDecryptInvalidate() throws Exception { + public void testDecryptInvalidate() { DecryptionMaterials result = CacheTestFixtures.createDecryptResult(CacheTestFixtures.createDecryptRequest(0)); cache.putEntryForDecrypt(new byte[]{0}, result, hint); @@ -288,7 +288,7 @@ public void testDecryptInvalidate() throws Exception { } @Test - public void testDecryptEntryCreationTime() throws Exception { + public void testDecryptEntryCreationTime() { DecryptionMaterials result = CacheTestFixtures.createDecryptResult(CacheTestFixtures.createDecryptRequest(0)); cache.putEntryForDecrypt(new byte[]{0}, result, hint); @@ -311,7 +311,7 @@ public void whenIdentifiersDifferInLowOrderBytes_theyAreNotConsideredEquivalent( } @Test - public void testUsageStatsCtorValidation() throws Exception { + public void testUsageStatsCtorValidation() { assertThrows(() -> new UsageStats(1, -1)); assertThrows(() -> new UsageStats(-1, 1)); } diff --git a/src/test/java/com/amazonaws/encryptionsdk/caching/NullCryptoMaterialsCacheTest.java b/src/test/java/com/amazonaws/encryptionsdk/caching/NullCryptoMaterialsCacheTest.java index 949462126..ca3f028a2 100644 --- a/src/test/java/com/amazonaws/encryptionsdk/caching/NullCryptoMaterialsCacheTest.java +++ b/src/test/java/com/amazonaws/encryptionsdk/caching/NullCryptoMaterialsCacheTest.java @@ -14,7 +14,7 @@ public class NullCryptoMaterialsCacheTest { @Test - public void testEncryptPath() throws Exception { + public void testEncryptPath() { NullCryptoMaterialsCache cache = new NullCryptoMaterialsCache(); EncryptionMaterialsRequest req = CacheTestFixtures.createMaterialsRequest(1); @@ -36,7 +36,7 @@ public void testEncryptPath() throws Exception { } @Test - public void testDecryptPath() throws Exception { + public void testDecryptPath() { NullCryptoMaterialsCache cache = new NullCryptoMaterialsCache(); DecryptionMaterialsRequest request = CacheTestFixtures.createDecryptRequest(1);