Auto-merge: Merge master into jenkins_with_weblogic
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
package com.eactive.eai.transformer.function.crypto;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
import org.nfunk.jep.ParseException;
|
||||||
|
import org.nfunk.jep.function.PostfixMathCommand;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
// kj bank import 2025-09-23 jwhong
|
||||||
|
import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
|
||||||
|
|
||||||
|
public class AES256KJDecrypt extends PostfixMathCommand {
|
||||||
|
public AES256KJDecrypt() {
|
||||||
|
numberOfParameters = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run(Stack inStack) throws ParseException {
|
||||||
|
checkStack(inStack);
|
||||||
|
|
||||||
|
Object param = inStack.pop();
|
||||||
|
|
||||||
|
byte[] value = null;
|
||||||
|
|
||||||
|
if (param instanceof String) {
|
||||||
|
value = ((String) param).getBytes();
|
||||||
|
} else if (param instanceof byte[]) {
|
||||||
|
value = (byte[]) param;
|
||||||
|
} else if (param instanceof Double) {
|
||||||
|
if (((Double) param).doubleValue() == Math.round(((Double) param).doubleValue())) {
|
||||||
|
value = new Long(Math.round(((Double) param).doubleValue())).toString().getBytes();
|
||||||
|
} else {
|
||||||
|
value =((Number) param).toString().getBytes();
|
||||||
|
}
|
||||||
|
} else if (param instanceof Number) {
|
||||||
|
value = ((Number) param).toString().getBytes();
|
||||||
|
} else if (param == null) {
|
||||||
|
inStack.push(null);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
throw new ParseException("Function의 파라미터 인수가 byte[] 또는 String이 아닙니다. : " + param);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
String key = "0123456789abcdefghij0123456789ab";
|
||||||
|
String decryptedData = AES256Cipher.decrypt(new String(value, StandardCharsets.UTF_8), key);
|
||||||
|
inStack.push(decryptedData);
|
||||||
|
} catch (Exception e) {
|
||||||
|
//throw new ExecutionException(e.getMessage(), parameters, e);
|
||||||
|
throw new ParseException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.eactive.eai.transformer.function.crypto;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
import org.nfunk.jep.ParseException;
|
||||||
|
import org.nfunk.jep.function.PostfixMathCommand;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
// kj bank import 2025-09-23 jwhong
|
||||||
|
import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
|
||||||
|
|
||||||
|
public class AES256KJEncrypt extends PostfixMathCommand {
|
||||||
|
public AES256KJEncrypt() {
|
||||||
|
numberOfParameters = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run(Stack inStack) throws ParseException {
|
||||||
|
checkStack(inStack);
|
||||||
|
|
||||||
|
Object param = inStack.pop();
|
||||||
|
|
||||||
|
byte[] value = null;
|
||||||
|
|
||||||
|
if (param instanceof String) {
|
||||||
|
value = ((String) param).getBytes();
|
||||||
|
} else if (param instanceof byte[]) {
|
||||||
|
value = (byte[]) param;
|
||||||
|
} else if (param instanceof Double) {
|
||||||
|
if (((Double) param).doubleValue() == Math.round(((Double) param).doubleValue())) {
|
||||||
|
value = new Long(Math.round(((Double) param).doubleValue())).toString().getBytes();
|
||||||
|
} else {
|
||||||
|
value =((Number) param).toString().getBytes();
|
||||||
|
}
|
||||||
|
} else if (param instanceof Number) {
|
||||||
|
value = ((Number) param).toString().getBytes();
|
||||||
|
} else if (param == null) {
|
||||||
|
inStack.push(null);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
throw new ParseException("Function의 파라미터 인수가 byte[] 또는 String이 아닙니다. : " + param);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
String key = "0123456789abcdefghij0123456789ab";
|
||||||
|
String encryptedData = AES256Cipher.encrypt(new String(value, StandardCharsets.UTF_8), key);
|
||||||
|
inStack.push(encryptedData);
|
||||||
|
} catch (Exception e) {
|
||||||
|
//throw new ExecutionException(e.getMessage(), parameters, e);
|
||||||
|
throw new ParseException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.eactive.eai.transformer.function.crypto;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
import org.nfunk.jep.ParseException;
|
||||||
|
import org.nfunk.jep.function.PostfixMathCommand;
|
||||||
|
|
||||||
|
import com.eactive.eai.common.property.PropManager;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
// kj bank import 2025-09-23 jwhong
|
||||||
|
//import org.kjbank.simple.core.crypto.seed.SeedUtil;
|
||||||
|
import com.eactive.eai.common.seed.SeedKJ;
|
||||||
|
|
||||||
|
|
||||||
|
public class SeedKJDecrypt extends PostfixMathCommand {
|
||||||
|
public SeedKJDecrypt() {
|
||||||
|
numberOfParameters = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run(Stack inStack) throws ParseException {
|
||||||
|
checkStack(inStack);
|
||||||
|
|
||||||
|
// 아니면 USER FUNCTION에서 Parameter 에서 가져와야 하나
|
||||||
|
Object param2 = inStack.pop();
|
||||||
|
String param2Str = String.valueOf(param2); // null 안전 처리
|
||||||
|
String decryptKey = StringUtils.leftPad(param2Str, 16, '0');
|
||||||
|
|
||||||
|
Object param = inStack.pop();
|
||||||
|
|
||||||
|
byte[] value = null;
|
||||||
|
|
||||||
|
if (param instanceof String) {
|
||||||
|
value = ((String) param).getBytes();
|
||||||
|
} else if (param instanceof byte[]) {
|
||||||
|
value = (byte[]) param;
|
||||||
|
} else if (param instanceof Double) {
|
||||||
|
if (((Double) param).doubleValue() == Math.round(((Double) param).doubleValue())) {
|
||||||
|
value = new Long(Math.round(((Double) param).doubleValue())).toString().getBytes();
|
||||||
|
} else {
|
||||||
|
value =((Number) param).toString().getBytes();
|
||||||
|
}
|
||||||
|
} else if (param instanceof Number) {
|
||||||
|
value = ((Number) param).toString().getBytes();
|
||||||
|
} else if (param == null) {
|
||||||
|
inStack.push(null);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
throw new ParseException("Function의 파라미터 인수가 byte[] 또는 String이 아닙니다. : " + param);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
String decryptedData = SeedKJ.decrypt(new String(value, StandardCharsets.UTF_8), decryptKey);
|
||||||
|
//String decryptedData = SeedUtil.decrypt(new String(value, StandardCharsets.UTF_8),decryptKey); // 이건 광주 jar 사용
|
||||||
|
inStack.push(decryptedData);
|
||||||
|
//inStack.push(SeedUtil.encrypt(new String(value, StandardCharsets.UTF_8),"testkey123"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
//throw new ExecutionException(e.getMessage(), parameters, e);
|
||||||
|
throw new ParseException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
package com.eactive.eai.transformer.function.crypto;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
import org.nfunk.jep.ParseException;
|
||||||
|
import org.nfunk.jep.function.PostfixMathCommand;
|
||||||
|
|
||||||
|
import com.eactive.eai.common.property.PropManager;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
// kj bank import 2025-09-23 jwhong
|
||||||
|
import com.eactive.eai.common.seed.SeedKJ;
|
||||||
|
import com.eactive.eai.common.seed.SeedCipher;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import java.util.Base64;
|
||||||
|
//import org.kjbank.simple.core.crypto.seed.SeedUtil;
|
||||||
|
|
||||||
|
public class SeedKJEncrypt extends PostfixMathCommand {
|
||||||
|
public SeedKJEncrypt() {
|
||||||
|
numberOfParameters = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run(Stack inStack) throws ParseException {
|
||||||
|
checkStack(inStack);
|
||||||
|
|
||||||
|
// PROPERTY 에서 가져와야 하나
|
||||||
|
//PropManager propManager = PropManager.getInstance();
|
||||||
|
//String safeDbPath = propManager.getProperty("SafeDB","safedb.path");
|
||||||
|
|
||||||
|
SeedCipher seedCiper = new SeedCipher();
|
||||||
|
|
||||||
|
// 아니면 USER FUNCTION에서 Parameter 에서 가져와야 하나
|
||||||
|
Object param2 = inStack.pop();
|
||||||
|
String param2Str = String.valueOf(param2); // null 안전 처리
|
||||||
|
String encryptKey = StringUtils.leftPad(param2Str, 16, '0');
|
||||||
|
|
||||||
|
Object param = inStack.pop();
|
||||||
|
|
||||||
|
byte[] value = null;
|
||||||
|
|
||||||
|
if (param instanceof String) {
|
||||||
|
value = ((String) param).getBytes();
|
||||||
|
} else if (param instanceof byte[]) {
|
||||||
|
value = (byte[]) param;
|
||||||
|
} else if (param instanceof Double) {
|
||||||
|
if (((Double) param).doubleValue() == Math.round(((Double) param).doubleValue())) {
|
||||||
|
value = new Long(Math.round(((Double) param).doubleValue())).toString().getBytes();
|
||||||
|
} else {
|
||||||
|
value =((Number) param).toString().getBytes();
|
||||||
|
}
|
||||||
|
} else if (param instanceof Number) {
|
||||||
|
value = ((Number) param).toString().getBytes();
|
||||||
|
} else if (param == null) {
|
||||||
|
inStack.push(null);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
throw new ParseException("Function의 파라미터 인수가 byte[] 또는 String이 아닙니다. : " + param);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
//byte[] bbb =seedCiper.encrypt(new String(value, StandardCharsets.UTF_8), encryptKey.getBytes());
|
||||||
|
//String encryptedData = Base64.getEncoder().encodeToString(bbb);
|
||||||
|
String encryptedData = SeedKJ.encrypt(new String(value, StandardCharsets.UTF_8), encryptKey);
|
||||||
|
|
||||||
|
//String encryptedData = SeedUtil.encrypt(new String(value, StandardCharsets.UTF_8),encryptKey);
|
||||||
|
|
||||||
|
inStack.push(encryptedData);
|
||||||
|
} catch (Exception e) {
|
||||||
|
//throw new ExecutionException(e.getMessage(), parameters, e);
|
||||||
|
throw new ParseException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user