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

pradeep pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.8 by this push:
     new 668ca8853 RANGER-5320:Handling unsupported cipher key creation (#754)
668ca8853 is described below

commit 668ca885339828babd3424b8ad34968393e20a2c
Author: Chinmay Hegde <[email protected]>
AuthorDate: Wed Dec 3 10:53:13 2025 +0530

    RANGER-5320:Handling unsupported cipher key creation (#754)
---
 .../apache/hadoop/crypto/key/RangerKeyStoreProvider.java    | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git 
a/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java 
b/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java
index 957d2ca0e..9adddcd18 100755
--- a/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java
+++ b/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java
@@ -40,8 +40,10 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import javax.crypto.KeyGenerator;
 import javax.crypto.spec.SecretKeySpec;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.crypto.CipherSuite;
 import org.apache.ranger.plugin.util.AutoClosableLock.AutoClosableReadLock;
 import org.apache.ranger.plugin.util.AutoClosableLock.AutoClosableTryWriteLock;
 import org.apache.ranger.plugin.util.AutoClosableLock.AutoClosableWriteLock;
@@ -240,6 +242,7 @@ public KeyVersion createKey(String name, byte[] material, 
Options options) throw
         }
 
         KeyVersion ret;
+        validateKeyCiphers(options.getCipher());
 
         try (AutoClosableWriteLock ignored = new AutoClosableWriteLock(lock)) {
             reloadKeys();
@@ -604,6 +607,16 @@ private static Configuration getConfiguration(boolean 
loadHadoopDefaults, String
         return conf;
     }
 
+    private void validateKeyCiphers(String ciphers) throws IOException {
+        if (StringUtils.isNotEmpty(ciphers)) {
+            try {
+                CipherSuite.convert(ciphers);
+            }  catch (Exception e) {
+                throw new IOException("Invalid ciphers: " + ciphers, e);
+            }
+        }
+    }
+
     private static void getFromJceks(Configuration conf, String path, String 
alias, String key) {
         if (logger.isDebugEnabled()) {
             logger.debug("==> getFromJceks()");

Reply via email to