summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/encrypt/EncryptionAlgorithm.java17
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/utils/EncryptionAlgorithmUtils.java30
2 files changed, 47 insertions, 0 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/encrypt/EncryptionAlgorithm.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/encrypt/EncryptionAlgorithm.java
new file mode 100644
index 0000000..3fc4e74
--- /dev/null
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/encrypt/EncryptionAlgorithm.java
@@ -0,0 +1,17 @@
+package com.geedgenetworks.core.udf.encrypt;
+
+import com.geedgenetworks.core.pojo.KmsKey;
+
+public interface EncryptionAlgorithm {
+ String getIdentifier();
+
+ int getSecretKeyLength();
+
+ KmsKey getKmsKey();
+
+ void setKmsKey(KmsKey kmsKey);
+
+ String encrypt(String content);
+
+ String decrypt(String content);
+}
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/utils/EncryptionAlgorithmUtils.java b/groot-core/src/main/java/com/geedgenetworks/core/utils/EncryptionAlgorithmUtils.java
new file mode 100644
index 0000000..7041c73
--- /dev/null
+++ b/groot-core/src/main/java/com/geedgenetworks/core/utils/EncryptionAlgorithmUtils.java
@@ -0,0 +1,30 @@
+package com.geedgenetworks.core.utils;
+
+import com.geedgenetworks.core.udf.encrypt.EncryptionAlgorithm;
+import com.geedgenetworks.core.udf.encrypt.AES128GCM96Algorithm;
+import com.geedgenetworks.core.udf.encrypt.AES256GCM96Algorithm;
+import com.geedgenetworks.core.udf.encrypt.SM4GCM96Algorithm;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Crypto shade utilities
+ */
+@Slf4j
+public final class EncryptionAlgorithmUtils {
+ public static final String ALGORITHM_AES_128_GCM96_NAME = "aes-128-gcm96";
+ public static final String ALGORITHM_AES_256_GCM96_NAME = "aes-256-gcm96";
+ public static final String ALGORITHM_SM4_GCM96_NAME = "sm4-gcm96";
+
+ public static EncryptionAlgorithm getEncryptionAlgorithm(String identifier) throws Exception {
+ switch (identifier) {
+ case ALGORITHM_AES_128_GCM96_NAME:
+ return new AES128GCM96Algorithm();
+ case ALGORITHM_AES_256_GCM96_NAME:
+ return new AES256GCM96Algorithm();
+ case ALGORITHM_SM4_GCM96_NAME:
+ return new SM4GCM96Algorithm();
+ default:
+ return null;
+ }
+ }
+}