This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 58f93d1f8b NIFI-10085 Removed 
CryptoUtility.isUnlimitedStrengthCryptoSupported() and references
58f93d1f8b is described below

commit 58f93d1f8b812b87a82348b7b60ecd1f376441a5
Author: Emilio Setiadarma <[email protected]>
AuthorDate: Fri Jun 3 00:38:13 2022 -0700

    NIFI-10085 Removed CryptoUtility.isUnlimitedStrengthCryptoSupported() and 
references
    
    This closes #6098
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../nifi/security/util/crypto/CipherUtility.java   |   9 --
 .../crypto/Argon2CipherProviderGroovyTest.groovy   |   9 +-
 .../crypto/BcryptCipherProviderGroovyTest.groovy   |   9 +-
 .../NiFiLegacyCipherProviderGroovyTest.groovy      |  43 ---------
 .../OpenSSLPKCS5CipherProviderGroovyTest.groovy    |   4 -
 .../crypto/PBKDF2CipherProviderGroovyTest.groovy   |   8 +-
 .../crypto/ScryptCipherProviderGroovyTest.groovy   |  11 +--
 .../nifi/processors/standard/EncryptContent.java   |  29 ------
 .../standard/TestEncryptContentGroovy.groovy       | 103 +--------------------
 .../processors/standard/TestEncryptContent.java    |  24 +----
 10 files changed, 11 insertions(+), 238 deletions(-)

diff --git 
a/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/crypto/CipherUtility.java
 
b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/crypto/CipherUtility.java
index 85016ecc7f..4f1ba11978 100644
--- 
a/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/crypto/CipherUtility.java
+++ 
b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/crypto/CipherUtility.java
@@ -31,7 +31,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
-import java.security.NoSuchAlgorithmException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -327,14 +326,6 @@ public class CipherUtility {
         return 
MAX_PASSWORD_LENGTH_BY_ALGORITHM.getOrDefault(encryptionMethod.getAlgorithm(), 
-1);
     }
 
-    public static boolean isUnlimitedStrengthCryptoSupported() {
-        try {
-            return (Cipher.getMaxAllowedKeyLength("AES") > 
DEFAULT_MAX_ALLOWED_KEY_LENGTH);
-        } catch (NoSuchAlgorithmException e) {
-            return false;
-        }
-    }
-
     /**
      * Returns the salt length for various PBE algorithms. These values were 
determined empirically from configured/chosen legacy values from the earlier 
version of the project.
      *
diff --git 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/Argon2CipherProviderGroovyTest.groovy
 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/Argon2CipherProviderGroovyTest.groovy
index 1bfb0313dc..66aa10383b 100644
--- 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/Argon2CipherProviderGroovyTest.groovy
+++ 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/Argon2CipherProviderGroovyTest.groovy
@@ -59,11 +59,7 @@ class Argon2CipherProviderGroovyTest extends GroovyTestCase {
             logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
         }
 
-        if (CipherUtility.isUnlimitedStrengthCryptoSupported()) {
-            AES_KEY_LENGTHS = [128, 192, 256]
-        } else {
-            AES_KEY_LENGTHS = [128]
-        }
+        AES_KEY_LENGTHS = [128, 192, 256]
     }
 
     @BeforeEach
@@ -225,9 +221,6 @@ class Argon2CipherProviderGroovyTest extends GroovyTestCase 
{
     @Test
     void testGetCipherWithUnlimitedStrengthShouldBeInternallyConsistent() 
throws Exception {
         // Arrange
-        
Assumptions.assumeTrue(CipherUtility.isUnlimitedStrengthCryptoSupported(),
-                "Test is being skipped due to this JVM lacking JCE Unlimited 
Strength Jurisdiction Policy file.")
-
         final String PASSWORD = "shortPassword"
         final byte[] SALT = cipherProvider.generateSalt()
 
diff --git 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/BcryptCipherProviderGroovyTest.groovy
 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/BcryptCipherProviderGroovyTest.groovy
index 8d28e7709d..efecb9cbce 100644
--- 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/BcryptCipherProviderGroovyTest.groovy
+++ 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/BcryptCipherProviderGroovyTest.groovy
@@ -59,11 +59,7 @@ class BcryptCipherProviderGroovyTest {
             logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
         }
 
-        if (CipherUtility.isUnlimitedStrengthCryptoSupported()) {
-            AES_KEY_LENGTHS = [128, 192, 256]
-        } else {
-            AES_KEY_LENGTHS = [128]
-        }
+        AES_KEY_LENGTHS = [128, 192, 256]
     }
 
     @Test
@@ -129,9 +125,6 @@ class BcryptCipherProviderGroovyTest {
     @Test
     void testGetCipherWithUnlimitedStrengthShouldBeInternallyConsistent() 
throws Exception {
         // Arrange
-        assumeTrue(CipherUtility.isUnlimitedStrengthCryptoSupported(),
-                "Test is being skipped due to this JVM lacking JCE Unlimited 
Strength Jurisdiction Policy file.")
-
         RandomIVPBECipherProvider cipherProvider = new BcryptCipherProvider(4)
 
         final String PASSWORD = "shortPassword"
diff --git 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/NiFiLegacyCipherProviderGroovyTest.groovy
 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/NiFiLegacyCipherProviderGroovyTest.groovy
index 525a4fae15..261e56f600 100644
--- 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/NiFiLegacyCipherProviderGroovyTest.groovy
+++ 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/NiFiLegacyCipherProviderGroovyTest.groovy
@@ -233,47 +233,4 @@ class NiFiLegacyCipherProviderGroovyTest {
             assert plaintext.equals(recovered)
         }
     }
-
-    /**
-     * This test determines for each PBE encryption algorithm if it actually 
requires the JCE unlimited strength jurisdiction policies to be installed.
-     * Even some algorithms that use 128-bit keys (which should be allowed on 
all systems) throw exceptions because BouncyCastle derives the key
-     * from the password using a long digest result at the time of key length 
checking.
-     * @throws IOException
-     */
-    @EnabledIfSystemProperty(named = "legacyCipherTest", matches = "true", 
disabledReason = "Only needed once to determine max supported password lengths")
-    @Test
-    void testShouldDetermineDependenceOnUnlimitedStrengthCrypto() throws 
IOException {
-        def encryptionMethods = EncryptionMethod.values().findAll { 
it.algorithm.startsWith("PBE") }
-
-        boolean unlimitedCryptoSupported = 
CipherUtility.isUnlimitedStrengthCryptoSupported()
-        logger.info("This JVM supports unlimited strength crypto: 
${unlimitedCryptoSupported}")
-
-        def longestSupportedPasswordByEM = [:]
-
-        encryptionMethods.each { EncryptionMethod encryptionMethod ->
-            logger.info("Attempting ${encryptionMethod.name()} 
(${encryptionMethod.algorithm}) which claims unlimited strength required: 
${encryptionMethod.unlimitedStrength}")
-
-            (1..20).find { int length ->
-                String password = "x" * length
-
-                try {
-                    NiFiLegacyCipherProvider cipherProvider = new 
NiFiLegacyCipherProvider()
-                    Cipher cipher = cipherProvider.getCipher(encryptionMethod, 
password, true)
-                    return false
-                } catch (Exception e) {
-                    logger.error("Unable to create the cipher with 
${encryptionMethod.algorithm} and password ${password} (${password.length()}) 
due to ${e.getMessage()}")
-                    if 
(!longestSupportedPasswordByEM.containsKey(encryptionMethod)) {
-                        longestSupportedPasswordByEM.put(encryptionMethod, 
password.length() - 1)
-                    }
-                    return true
-                }
-            }
-            logger.info("\n")
-        }
-
-        logger.info("Longest supported password by encryption method:")
-        longestSupportedPasswordByEM.each { EncryptionMethod encryptionMethod, 
int length ->
-            logger.info("\t${encryptionMethod.algorithm}\t${length}")
-        }
-    }
 }
\ No newline at end of file
diff --git 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/OpenSSLPKCS5CipherProviderGroovyTest.groovy
 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/OpenSSLPKCS5CipherProviderGroovyTest.groovy
index b3c337b9b3..5a4a399d7c 100644
--- 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/OpenSSLPKCS5CipherProviderGroovyTest.groovy
+++ 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/OpenSSLPKCS5CipherProviderGroovyTest.groovy
@@ -33,7 +33,6 @@ import java.security.Security
 
 import static groovy.test.GroovyAssert.shouldFail
 import static org.junit.Assert.fail
-import static org.junit.jupiter.api.Assumptions.assumeTrue
 
 class OpenSSLPKCS5CipherProviderGroovyTest {
     private static final Logger logger = 
LoggerFactory.getLogger(OpenSSLPKCS5CipherProviderGroovyTest.class)
@@ -107,9 +106,6 @@ class OpenSSLPKCS5CipherProviderGroovyTest {
     @Test
     void testGetCipherWithUnlimitedStrengthShouldBeInternallyConsistent() 
throws Exception {
         // Arrange
-        assumeTrue(CipherUtility.isUnlimitedStrengthCryptoSupported(),
-                "Test is being skipped due to this JVM lacking JCE Unlimited 
Strength Jurisdiction Policy file.")
-
         OpenSSLPKCS5CipherProvider cipherProvider = new 
OpenSSLPKCS5CipherProvider()
 
         final String PASSWORD = "shortPassword"
diff --git 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/PBKDF2CipherProviderGroovyTest.groovy
 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/PBKDF2CipherProviderGroovyTest.groovy
index 28aff8e859..c0b9fbd57a 100644
--- 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/PBKDF2CipherProviderGroovyTest.groovy
+++ 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/PBKDF2CipherProviderGroovyTest.groovy
@@ -20,7 +20,6 @@ import org.apache.commons.codec.binary.Hex
 import org.apache.nifi.security.util.EncryptionMethod
 import org.bouncycastle.jce.provider.BouncyCastleProvider
 import org.junit.jupiter.api.BeforeAll
-import org.junit.jupiter.api.Disabled
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.condition.EnabledIfSystemProperty
 import org.slf4j.Logger
@@ -31,7 +30,6 @@ import java.security.Security
 
 import static groovy.test.GroovyAssert.shouldFail
 import static org.junit.Assert.assertTrue
-import static org.junit.jupiter.api.Assumptions.assumeTrue
 
 class PBKDF2CipherProviderGroovyTest {
     private static final Logger logger = 
LoggerFactory.getLogger(PBKDF2CipherProviderGroovyTest.class)
@@ -58,11 +56,7 @@ class PBKDF2CipherProviderGroovyTest {
             logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
         }
 
-        if (CipherUtility.isUnlimitedStrengthCryptoSupported()) {
-            AES_KEY_LENGTHS = [128, 192, 256]
-        } else {
-            AES_KEY_LENGTHS = [128]
-        }
+        AES_KEY_LENGTHS = [128, 192, 256]
     }
 
     @Test
diff --git 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/ScryptCipherProviderGroovyTest.groovy
 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/ScryptCipherProviderGroovyTest.groovy
index bac83486e2..4c23b43ad7 100644
--- 
a/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/ScryptCipherProviderGroovyTest.groovy
+++ 
b/nifi-commons/nifi-security-utils/src/test/groovy/org/apache/nifi/security/util/crypto/ScryptCipherProviderGroovyTest.groovy
@@ -23,7 +23,6 @@ import org.apache.nifi.security.util.crypto.scrypt.Scrypt
 import org.bouncycastle.jce.provider.BouncyCastleProvider
 import org.junit.jupiter.api.BeforeAll
 import org.junit.jupiter.api.BeforeEach
-import org.junit.jupiter.api.Disabled
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.condition.EnabledIfSystemProperty
 import org.slf4j.Logger
@@ -38,7 +37,6 @@ import java.security.Security
 
 import static groovy.test.GroovyAssert.shouldFail
 import static org.junit.Assert.assertTrue
-import static org.junit.jupiter.api.Assumptions.assumeTrue
 
 class ScryptCipherProviderGroovyTest {
     private static final Logger logger = 
LoggerFactory.getLogger(ScryptCipherProviderGroovyTest.class)
@@ -63,11 +61,7 @@ class ScryptCipherProviderGroovyTest {
             logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
         }
 
-        if (CipherUtility.isUnlimitedStrengthCryptoSupported()) {
-            AES_KEY_LENGTHS = [128, 192, 256]
-        } else {
-            AES_KEY_LENGTHS = [128]
-        }
+        AES_KEY_LENGTHS = [128, 192, 256]
     }
 
     @BeforeEach
@@ -135,9 +129,6 @@ class ScryptCipherProviderGroovyTest {
     @Test
     void testGetCipherWithUnlimitedStrengthShouldBeInternallyConsistent() 
throws Exception {
         // Arrange
-        assumeTrue(CipherUtility.isUnlimitedStrengthCryptoSupported(),
-                "Test is being skipped due to this JVM lacking JCE Unlimited 
Strength Jurisdiction Policy file.")
-
         final String PASSWORD = "shortPassword"
         final byte[] SALT = cipherProvider.generateSalt()
 
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
index 522980c690..1b5f02d93a 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
@@ -437,8 +437,6 @@ public class EncryptContent extends AbstractProcessor {
     private List<ValidationResult> validatePassword(EncryptionMethod 
encryptionMethod, KeyDerivationFunction kdf, String password, boolean 
allowWeakCrypto) {
         List<ValidationResult> validationResults = new ArrayList<>();
 
-        boolean limitedStrengthCrypto = 
!CipherUtility.isUnlimitedStrengthCryptoSupported();
-
         // Password required (short circuits validation because other 
conditions depend on password presence)
         if (StringUtils.isEmpty(password)) {
             validationResults.add(new 
ValidationResult.Builder().subject(PASSWORD.getName())
@@ -456,40 +454,13 @@ public class EncryptContent extends AbstractProcessor {
             }
         }
 
-        // Multiple checks on machine with limited strength crypto
-        if (limitedStrengthCrypto) {
-            // Cannot use unlimited strength ciphers on machine that lacks 
policies
-            if (encryptionMethod.isUnlimitedStrength()) {
-                validationResults.add(new 
ValidationResult.Builder().subject(ENCRYPTION_ALGORITHM.getName())
-                        .explanation(encryptionMethod.name() + " (" + 
encryptionMethod.getAlgorithm() + ") is not supported by this JVM due to 
lacking JCE Unlimited " +
-                                "Strength Jurisdiction Policy files. See Admin 
Guide.").build());
-            }
-
-            // Check if the password exceeds the limit
-            final boolean passwordLongerThanLimit = 
!CipherUtility.passwordLengthIsValidForAlgorithmOnLimitedStrengthCrypto(passwordBytesLength,
 encryptionMethod);
-            if (passwordLongerThanLimit) {
-                int maxPasswordLength = 
CipherUtility.getMaximumPasswordLengthForAlgorithmOnLimitedStrengthCrypto(encryptionMethod);
-                validationResults.add(new 
ValidationResult.Builder().subject(PASSWORD.getName())
-                        .explanation("Password length greater than " + 
maxPasswordLength + " characters is not supported by this JVM" +
-                                " due to lacking JCE Unlimited Strength 
Jurisdiction Policy files. See Admin Guide.").build());
-            }
-        }
-
         return validationResults;
     }
 
 
     private List<ValidationResult> validateKeyed(EncryptionMethod 
encryptionMethod, KeyDerivationFunction kdf, String keyHex, String password, 
boolean allowWeakCrypto, boolean encrypt) {
         List<ValidationResult> validationResults = new ArrayList<>();
-        boolean limitedStrengthCrypto = 
!CipherUtility.isUnlimitedStrengthCryptoSupported();
 
-        if (limitedStrengthCrypto) {
-            if (encryptionMethod.isUnlimitedStrength()) {
-                validationResults.add(new 
ValidationResult.Builder().subject(ENCRYPTION_ALGORITHM.getName())
-                        .explanation(encryptionMethod.name() + " (" + 
encryptionMethod.getAlgorithm() + ") is not supported by this JVM due to 
lacking JCE Unlimited " +
-                                "Strength Jurisdiction Policy files. See Admin 
Guide.").build());
-            }
-        }
         int allowedKeyLength = 
PasswordBasedEncryptor.getMaxAllowedKeyLength(ENCRYPTION_ALGORITHM.getName());
 
         // Scenario 1: RKH is present & KDF == NONE
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/groovy/org/apache/nifi/processors/standard/TestEncryptContentGroovy.groovy
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/groovy/org/apache/nifi/processors/standard/TestEncryptContentGroovy.groovy
index 15b3f6d03f..0e711e9f0d 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/groovy/org/apache/nifi/processors/standard/TestEncryptContentGroovy.groovy
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/groovy/org/apache/nifi/processors/standard/TestEncryptContentGroovy.groovy
@@ -35,7 +35,6 @@ import org.apache.nifi.util.TestRunners
 import org.bouncycastle.jce.provider.BouncyCastleProvider
 import org.junit.After
 import org.junit.Assert
-import org.junit.Assume
 import org.junit.Before
 import org.junit.BeforeClass
 import org.junit.Test
@@ -81,9 +80,6 @@ class TestEncryptContentGroovy {
     @Test
     void testShouldValidateMaxKeySizeForAlgorithmsOnUnlimitedStrengthJVM() 
throws IOException {
         // Arrange
-        Assume.assumeTrue("Test is being skipped due to this JVM lacking JCE 
Unlimited Strength Jurisdiction Policy file.",
-                CipherUtility.isUnlimitedStrengthCryptoSupported())
-
         final TestRunner runner = 
TestRunners.newTestRunner(EncryptContent.class)
         Collection<ValidationResult> results
         MockProcessContext pc
@@ -116,50 +112,6 @@ class TestEncryptContentGroovy {
         Assert.assertTrue(message, vr.toString().contains(expectedResult))
     }
 
-    @Test
-    void testShouldValidateMaxKeySizeForAlgorithmsOnLimitedStrengthJVM() 
throws IOException {
-        // Arrange
-        Assume.assumeTrue("Test is being skipped because this JVM supports 
unlimited strength crypto.",
-                !CipherUtility.isUnlimitedStrengthCryptoSupported())
-
-        final TestRunner runner = 
TestRunners.newTestRunner(EncryptContent.class)
-        Collection<ValidationResult> results
-        MockProcessContext pc
-
-        EncryptionMethod encryptionMethod = EncryptionMethod.AES_CBC
-
-        final int MAX_KEY_LENGTH = 128
-        final String TOO_LONG_KEY_HEX = "ab" * (MAX_KEY_LENGTH / 8 + 1)
-        logger.info("Using key ${TOO_LONG_KEY_HEX} 
(${TOO_LONG_KEY_HEX.length() * 4} bits)")
-
-        runner.setProperty(EncryptContent.MODE, EncryptContent.ENCRYPT_MODE)
-        runner.setProperty(EncryptContent.ENCRYPTION_ALGORITHM, 
encryptionMethod.name())
-        runner.setProperty(EncryptContent.KEY_DERIVATION_FUNCTION, 
KeyDerivationFunction.NONE.name())
-        runner.setProperty(EncryptContent.RAW_KEY_HEX, TOO_LONG_KEY_HEX)
-
-        runner.enqueue(new byte[0])
-        pc = (MockProcessContext) runner.getProcessContext()
-
-        // Act
-        results = pc.validate()
-
-        // Assert
-
-        // Two validation problems -- max key size and key length is invalid
-        Assert.assertEquals(2, results.size())
-        logger.expected(results)
-        ValidationResult maxKeyLengthVR = results.first()
-
-        String expectedResult = "'raw-key-hex' is invalid because Key length 
greater than ${MAX_KEY_LENGTH} bits is not supported"
-        String message = "'" + maxKeyLengthVR.toString() + "' contains '" + 
expectedResult + "'"
-        Assert.assertTrue(message, 
maxKeyLengthVR.toString().contains(expectedResult))
-
-        expectedResult = "'raw-key-hex' is invalid because Key must be valid 
length [128, 192, 256]"
-        ValidationResult keyLengthInvalidVR = results.last()
-        message = "'" + keyLengthInvalidVR.toString() + "' contains '" + 
expectedResult + "'"
-        Assert.assertTrue(message, 
keyLengthInvalidVR.toString().contains(expectedResult))
-    }
-
     @Test
     void testShouldValidateKeyFormatAndSizeForAlgorithms() throws IOException {
         // Arrange
@@ -379,10 +331,6 @@ class TestEncryptContentGroovy {
         final String PASSWORD = "short"
 
         def encryptionMethods = EncryptionMethod.values().findAll { 
it.algorithm.startsWith("PBE") }
-        if (!CipherUtility.isUnlimitedStrengthCryptoSupported()) {
-            // Remove all unlimited strength algorithms
-            encryptionMethods.removeAll { it.unlimitedStrength }
-        }
 
         runner.setProperty(EncryptContent.MODE, EncryptContent.ENCRYPT_MODE)
         runner.setProperty(EncryptContent.PASSWORD, PASSWORD)
@@ -825,53 +773,6 @@ class TestEncryptContentGroovy {
         assert [fiveSecondDiff, tenSecondDiff, parsedTenSecondDiff].every { 
it.days == 0 }
     }
 
-    @Test
-    void testShouldCheckMaximumLengthOfPasswordOnLimitedStrengthCryptoJVM() 
throws IOException {
-        // Arrange
-        Assume.assumeTrue("Only run on systems with limited strength crypto", 
!CipherUtility.isUnlimitedStrengthCryptoSupported())
-
-        final TestRunner testRunner = TestRunners.newTestRunner(new 
EncryptContent())
-        testRunner.setProperty(EncryptContent.KEY_DERIVATION_FUNCTION, 
KeyDerivationFunction.NIFI_LEGACY.name())
-        testRunner.setProperty(EncryptContent.ALLOW_WEAK_CRYPTO, 
WEAK_CRYPTO_ALLOWED)
-
-        Collection<ValidationResult> results
-        MockProcessContext pc
-
-        def encryptionMethods = EncryptionMethod.values().findAll { 
it.algorithm.startsWith("PBE") }
-
-        // Use .find instead of .each to allow "breaks" using return false
-        encryptionMethods.find { EncryptionMethod encryptionMethod ->
-            def invalidPasswordLength = 
CipherUtility.getMaximumPasswordLengthForAlgorithmOnLimitedStrengthCrypto(encryptionMethod)
 + 1
-            String tooLongPassword = "x" * invalidPasswordLength
-            if (encryptionMethod.isUnlimitedStrength() || 
encryptionMethod.isKeyedCipher()) {
-                return false
-                // cannot test unlimited strength in unit tests because it's 
not enabled by the JVM by default.
-            }
-
-            testRunner.setProperty(EncryptContent.PASSWORD, tooLongPassword)
-            logger.info("Attempting ${encryptionMethod.algorithm} with 
password of length ${invalidPasswordLength}")
-            testRunner.setProperty(EncryptContent.ENCRYPTION_ALGORITHM, 
encryptionMethod.name())
-            testRunner.setProperty(EncryptContent.MODE, 
EncryptContent.ENCRYPT_MODE)
-
-            testRunner.clearTransferState()
-            testRunner.enqueue(new byte[0])
-            pc = (MockProcessContext) testRunner.getProcessContext()
-
-            // Act
-            results = pc.validate()
-
-            // Assert
-            logger.expected(results)
-            Assert.assertEquals(1, results.size())
-            ValidationResult passwordLengthVR = results.first()
-
-            String expectedResult = "'Password' is invalid because Password 
length greater than ${invalidPasswordLength - 1} characters is not supported 
by" +
-                    " this JVM due to lacking JCE Unlimited Strength 
Jurisdiction Policy files."
-            String message = "'" + passwordLengthVR.toString() + "' contains 
'" + expectedResult + "'"
-            Assert.assertTrue(message, 
passwordLengthVR.toString().contains(expectedResult))
-        }
-    }
-
     @Test
     void testShouldCheckLengthOfPasswordWhenNotAllowed() throws IOException {
         // Arrange
@@ -883,7 +784,7 @@ class TestEncryptContentGroovy {
 
         def encryptionMethods = EncryptionMethod.values().findAll { 
it.algorithm.startsWith("PBE") }
 
-        boolean limitedStrengthCrypto = 
!CipherUtility.isUnlimitedStrengthCryptoSupported()
+        boolean limitedStrengthCrypto = false
         boolean allowWeakCrypto = false
         testRunner.setProperty(EncryptContent.ALLOW_WEAK_CRYPTO, 
WEAK_CRYPTO_NOT_ALLOWED)
 
@@ -933,7 +834,7 @@ class TestEncryptContentGroovy {
 
         def encryptionMethods = EncryptionMethod.values().findAll { 
it.algorithm.startsWith("PBE") }
 
-        boolean limitedStrengthCrypto = 
!CipherUtility.isUnlimitedStrengthCryptoSupported()
+        boolean limitedStrengthCrypto = false
         boolean allowWeakCrypto = true
         testRunner.setProperty(EncryptContent.ALLOW_WEAK_CRYPTO, 
WEAK_CRYPTO_ALLOWED)
 
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
index f86d17b3f2..7dc66ce4b5 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
@@ -39,7 +39,6 @@ import org.apache.nifi.components.AllowableValue;
 import org.apache.nifi.components.ValidationResult;
 import org.apache.nifi.security.util.EncryptionMethod;
 import org.apache.nifi.security.util.KeyDerivationFunction;
-import org.apache.nifi.security.util.crypto.CipherUtility;
 import org.apache.nifi.security.util.crypto.PasswordBasedEncryptor;
 import org.apache.nifi.util.MockFlowFile;
 import org.apache.nifi.util.MockProcessContext;
@@ -209,8 +208,8 @@ public class TestEncryptContent {
         final String AES_ALGORITHM = 
EncryptionMethod.MD5_256AES.getAlgorithm();
         final String DES_ALGORITHM = EncryptionMethod.MD5_DES.getAlgorithm();
 
-        final int AES_MAX_LENGTH = 
CipherUtility.isUnlimitedStrengthCryptoSupported() ? Integer.MAX_VALUE : 128;
-        final int DES_MAX_LENGTH = 
CipherUtility.isUnlimitedStrengthCryptoSupported() ? Integer.MAX_VALUE : 64;
+        final int AES_MAX_LENGTH = Integer.MAX_VALUE;
+        final int DES_MAX_LENGTH = Integer.MAX_VALUE;
 
         // Act
         int determinedAESMaxLength = 
PasswordBasedEncryptor.getMaxAllowedKeyLength(AES_ALGORITHM);
@@ -224,8 +223,6 @@ public class TestEncryptContent {
     @Test
     public void testShouldDecryptOpenSSLRawSalted() throws IOException {
         // Arrange
-        Assume.assumeTrue("Test is being skipped due to this JVM lacking JCE 
Unlimited Strength Jurisdiction Policy file.",
-                CipherUtility.isUnlimitedStrengthCryptoSupported());
 
         final TestRunner testRunner = TestRunners.newTestRunner(new 
EncryptContent());
 
@@ -258,8 +255,6 @@ public class TestEncryptContent {
     @Test
     public void testShouldDecryptOpenSSLRawUnsalted() throws IOException {
         // Arrange
-        Assume.assumeTrue("Test is being skipped due to this JVM lacking JCE 
Unlimited Strength Jurisdiction Policy file.",
-                CipherUtility.isUnlimitedStrengthCryptoSupported());
 
         final TestRunner testRunner = TestRunners.newTestRunner(new 
EncryptContent());
 
@@ -484,18 +479,9 @@ public class TestEncryptContent {
         runner.setProperty(EncryptContent.PASSWORD, 
"ThisIsAPasswordThatIsLongerThanSixteenCharacters");
         pc = (MockProcessContext) runner.getProcessContext();
         results = pc.validate();
-        if (!CipherUtility.isUnlimitedStrengthCryptoSupported()) {
-            logger.info(results.toString());
-            Assert.assertEquals(1, results.size());
-            for (final ValidationResult vr : results) {
-                Assert.assertTrue(
-                        "Did not successfully catch validation error of a long 
password in a non-JCE Unlimited Strength environment",
-                        vr.toString().contains("Password length greater than " 
+ 
CipherUtility.getMaximumPasswordLengthForAlgorithmOnLimitedStrengthCrypto(encryptionMethod)
-                                + " characters is not supported by this JVM 
due to lacking JCE Unlimited Strength Jurisdiction Policy files."));
-            }
-        } else {
-            Assert.assertEquals(results.toString(), 0, results.size());
-        }
+
+        Assert.assertEquals(results.toString(), 0, results.size());
+
         runner.removeProperty(EncryptContent.PASSWORD);
 
         runner.setProperty(EncryptContent.ENCRYPTION_ALGORITHM, 
EncryptionMethod.PGP.name());

Reply via email to