diff --git a/3rd-party/dguard/conf/dguard.conf b/3rd-party/dguard/conf/dguard.conf new file mode 100644 index 0000000..141cbc0 --- /dev/null +++ b/3rd-party/dguard/conf/dguard.conf @@ -0,0 +1,41 @@ +# DGuard Java API Agent Configuration File +isEncrypt=false +daemon_number=5 +daemon_ip=211.119.124.9 +daemon_ip2=127.0.0.1 +daemon_ip3=127.0.0.1 +daemon_port=9999 +log_level=5 +cache=ON +info_index=1 +certification=null +private_key=null +Query_Collection_Mode=3 +db_type=oracle +token_file=3rd-party/dguard/token/xit_agent.token +audit_path=3rd-party/dguard/logs/ +server_name=localhost +audit_option=false +prove_mode=false +DBuser=oracle +SecureId= +SecurePwd= +TokenPwd= +Double_Enc_Flag=true +Double_Enc_Error_Flag=false +Random_Algorithm=SHA256DRBG +log_server_use=false +log_server_ip=127.0.0.1 +log_server_port=19999 +acc_flag=false +Timeout=3000 +Policy_File_Flag=false +Policy_File_Path= +Trim_Flag=true +Exception_Flag=true +Encoding_Flag=false +Encoding_Type=UTF-8 +BLOB_Decrypt_Size=976 +Hmac_Digest_Use=false +Jar_HMAC_Checksum=cAKi10ktdv9T+G1BY+ax0eIHD4Y0WM8KFHB6BVupcx8= +Config_HMAC_Checksum=nkNp7yruN6EJ5XLYkSdDZVrATe99sK7qBsz9Yw+2MBY= diff --git a/3rd-party/dguard/lib/DguardAPI.jar b/3rd-party/dguard/lib/DguardAPI.jar new file mode 100644 index 0000000..31f1eec Binary files /dev/null and b/3rd-party/dguard/lib/DguardAPI.jar differ diff --git a/3rd-party/dguard/lib/MagicJCrypto-v2.0.0.0.jar b/3rd-party/dguard/lib/MagicJCrypto-v2.0.0.0.jar new file mode 100644 index 0000000..7c64148 Binary files /dev/null and b/3rd-party/dguard/lib/MagicJCrypto-v2.0.0.0.jar differ diff --git a/3rd-party/dguard/lib/MagicJCrypto-v2.0.0.0.jar.hmac b/3rd-party/dguard/lib/MagicJCrypto-v2.0.0.0.jar.hmac new file mode 100644 index 0000000..decc5f3 --- /dev/null +++ b/3rd-party/dguard/lib/MagicJCrypto-v2.0.0.0.jar.hmac @@ -0,0 +1 @@ +7141df12354b9cc23474c858645b9859c349215e4c40bdc477840ae58164a751 diff --git a/3rd-party/dguard/lib/log4j-1.2.17.jar b/3rd-party/dguard/lib/log4j-1.2.17.jar new file mode 100644 index 0000000..068867e Binary files /dev/null and b/3rd-party/dguard/lib/log4j-1.2.17.jar differ diff --git a/3rd-party/dguard/sample/APITest2.class b/3rd-party/dguard/sample/APITest2.class new file mode 100644 index 0000000..d4fcef3 Binary files /dev/null and b/3rd-party/dguard/sample/APITest2.class differ diff --git a/3rd-party/dguard/sample/APITest2.java b/3rd-party/dguard/sample/APITest2.java new file mode 100644 index 0000000..107bdda --- /dev/null +++ b/3rd-party/dguard/sample/APITest2.java @@ -0,0 +1,36 @@ +import com.Ineb.Dguard.*; +import com.Ineb.Exception.DguardLoginException; +import com.Ineb.Exception.DguardNetworkException; +import com.Ineb.Exception.DGuardPropertyException; + +import java.sql.*; +import java.util.*; +import java.io.*; + +public class APITest2 { + + public static void main(String[] args) { + try { + DguardManager dm = DguardManager.Init("db_agent", "Agent!1700", "Agent!1700", "./3rd-party/dguard/conf/dguard.conf"); + + String Table = "CRYPTO"; + String Column1 = "PWD"; + String Column2 = "ENC"; + String[] Data = {"1234", "000010000001", "9999999999999"}; + + String HashStr = dm.MsgDigest(Table, Column1, Data[0]); + System.out.println("MsgDigest " + " : [" + HashStr + "]"); + + String EncStr; + String DecStr; + for (int i = 0; i < Data.length; i++) { + EncStr = dm.Encrypt(Table, Column2, Data[i]); + System.out.println("Encrypt " + i + " : [" + EncStr + "]"); + DecStr = dm.Decrypt(Table, Column2, EncStr); + System.out.println("Decrypt " + i + " : [" + DecStr + "]"); + } + } catch(Exception e) { + e.printStackTrace(); + } + } +} diff --git a/3rd-party/dguard/sample/compile.bat b/3rd-party/dguard/sample/compile.bat new file mode 100644 index 0000000..16753b7 --- /dev/null +++ b/3rd-party/dguard/sample/compile.bat @@ -0,0 +1,2 @@ +javac -classpath C:\Ineb\lib\SecureDriver.jar;C:\Ineb\lib\INICrypto_v4.0.4.jar;C:\Ineb\lib\INISAFEPKI_v1.1.0.jar;C:\Ineb\lib\tibero4-jdbc.jar APITest2.java + diff --git a/3rd-party/dguard/sample/compile.sh b/3rd-party/dguard/sample/compile.sh new file mode 100644 index 0000000..d00daf7 --- /dev/null +++ b/3rd-party/dguard/sample/compile.sh @@ -0,0 +1,2 @@ +javac -classpath ../lib/DguardAPI.jar:../lib/MagicJCrypto-v2.0.0.0.jar:../lib/log4j-1.2.17.jar APITest2.java + diff --git a/3rd-party/dguard/sample/mysql/MySQLDec.class b/3rd-party/dguard/sample/mysql/MySQLDec.class new file mode 100644 index 0000000..48509d4 Binary files /dev/null and b/3rd-party/dguard/sample/mysql/MySQLDec.class differ diff --git a/3rd-party/dguard/sample/mysql/MySQLDec.java b/3rd-party/dguard/sample/mysql/MySQLDec.java new file mode 100644 index 0000000..1650d47 --- /dev/null +++ b/3rd-party/dguard/sample/mysql/MySQLDec.java @@ -0,0 +1,69 @@ +import com.Ineb.Dguard.*; +import com.Ineb.Exception.DguardLoginException; +import com.Ineb.Exception.DguardNetworkException; +import com.Ineb.Exception.DGuardPropertyException; + +import java.io.*; +import java.sql.*; + +public class MySQLDec { + + static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; + static final String DB_URL = "jdbc:mysql://192.168.100.211:3306/testdb"; + + static final String USERNAME = "ineb"; + static final String PASSWORD = "ineb1234"; + + public static void main(String[] args) { + DguardManager dm = null; + + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rset=null; + + try{ + dm = DguardManager.Init("bidfunding", "Agent!1700", "Agent!1700", "/home/dguard/javaapi/conf/dguard.conf"); + + Class.forName(JDBC_DRIVER); + conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD); + conn.setAutoCommit(false); + System.out.println("- MySQL Connection"); + + String selectSql = "SELECT seq, data FROM tbl01"; + pstmt = conn.prepareStatement(selectSql.toString()); + rset = pstmt.executeQuery(); + + while(rset.next()){ + int seq = rset.getInt("SEQ"); + String data01 = rset.getString("data"); + + String decdata01 = dm.Decrypt("TBL", "ENC", data01); + + System.out.print("SEQ : " + seq + "\n"); + System.out.print("DATA : " + data01 + "\n"); + System.out.print("DEC : " + decdata01 + "\n"); + } + + rset.close(); + pstmt.close(); + conn.close(); + }catch(SQLException se1){ + se1.printStackTrace(); + }catch(Exception ex){ + ex.printStackTrace(); + }finally{ + try{ + if(pstmt!=null) + pstmt.close(); + }catch(SQLException se2){ + } + try{ + if(conn!=null) + conn.close(); + }catch(SQLException se){ + se.printStackTrace(); + } + } + System.out.println("- MySQL Connection Close"); + } +} diff --git a/3rd-party/dguard/sample/mysql/MySQLEnc.class b/3rd-party/dguard/sample/mysql/MySQLEnc.class new file mode 100644 index 0000000..2182aad Binary files /dev/null and b/3rd-party/dguard/sample/mysql/MySQLEnc.class differ diff --git a/3rd-party/dguard/sample/mysql/MySQLEnc.java b/3rd-party/dguard/sample/mysql/MySQLEnc.java new file mode 100644 index 0000000..ad15883 --- /dev/null +++ b/3rd-party/dguard/sample/mysql/MySQLEnc.java @@ -0,0 +1,98 @@ +import com.Ineb.Dguard.*; +import com.Ineb.Exception.DguardLoginException; +import com.Ineb.Exception.DguardNetworkException; +import com.Ineb.Exception.DGuardPropertyException; + +import java.io.*; +import java.sql.*; + +public class MySQLEnc { + + static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; + static final String DB_URL = "jdbc:mysql://192.168.100.211:3306/testdb"; + + static final String USERNAME = "ineb"; + static final String PASSWORD = "ineb1234"; + + public static void main(String[] args) { + DguardManager dm = null; + + Connection conn = null; + PreparedStatement pstmt = null; + PreparedStatement updatePstmt = null; + ResultSet rset=null; + + try{ + dm = DguardManager.Init("bidfunding", "Agent!1700", "Agent!1700", "/home/dguard/javaapi/conf/dguard.conf"); + + Class.forName(JDBC_DRIVER); + conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD); + conn.setAutoCommit(false); + System.out.println("- MySQL Connection"); + + String selectSql = "SELECT seq, data FROM tbl01"; + pstmt = conn.prepareStatement(selectSql.toString()); + rset = pstmt.executeQuery(); + + String updateSql = "UPDATE tbl01 SET data = ? WHERE seq = ?"; + updatePstmt = conn.prepareStatement(updateSql.toString()); + + int commitCnt = 0; + + while(rset.next()){ + int seq = rset.getInt("SEQ"); + String data01 = rset.getString("data"); + + String encdata01 = dm.Encrypt("TBL", "ENC", data01); + + System.out.print("SEQ : " + seq + "\n"); + System.out.print("DATA : " + data01 + "\n"); + System.out.print("ENC : " + encdata01 + "\n"); + + updatePstmt.setString(1, encdata01); + updatePstmt.setInt(2, seq); + + updatePstmt.addBatch(); + updatePstmt.clearParameters(); + + if ( commitCnt > 0 && commitCnt % 1000 == 0 ) { + updatePstmt.executeBatch(); + updatePstmt.clearBatch(); + conn.commit(); + + System.out.println(commitCnt + ", " + data01 + ", " + encdata01); + } + + commitCnt++; + } + + updatePstmt.executeBatch(); + conn.commit(); + conn.setAutoCommit(true); + + System.out.println("Commit count : " + commitCnt); + + rset.close(); + updatePstmt.close(); + pstmt.close(); + conn.close(); + }catch(SQLException se1){ + se1.printStackTrace(); + }catch(Exception ex){ + ex.printStackTrace(); + }finally{ + try{ + if(pstmt!=null) + pstmt.close(); + }catch(SQLException se2){ + } + try{ + if(conn!=null) + conn.close(); + }catch(SQLException se){ + se.printStackTrace(); + } + } + System.out.println("- MySQL Connection Close"); + } +} diff --git a/3rd-party/dguard/sample/mysql/com_mysqldec.sh b/3rd-party/dguard/sample/mysql/com_mysqldec.sh new file mode 100644 index 0000000..9917256 --- /dev/null +++ b/3rd-party/dguard/sample/mysql/com_mysqldec.sh @@ -0,0 +1,2 @@ +javac -classpath ../../lib/DguardAPI.jar:../../lib/INICrypto_v4.1.1.jar:../../lib/INISAFEPKI_v1.1.21.jar:../../lib/log4j-1.2.17.jar MySQLDec.java + diff --git a/3rd-party/dguard/sample/mysql/com_mysqlenc.sh b/3rd-party/dguard/sample/mysql/com_mysqlenc.sh new file mode 100644 index 0000000..bfd5d5b --- /dev/null +++ b/3rd-party/dguard/sample/mysql/com_mysqlenc.sh @@ -0,0 +1,2 @@ +javac -classpath ../../lib/DguardAPI.jar:../../lib/INICrypto_v4.1.1.jar:../../lib/INISAFEPKI_v1.1.21.jar:../../lib/log4j-1.2.17.jar MySQLEnc.java + diff --git a/3rd-party/dguard/sample/mysql/exec_mysqldec.sh b/3rd-party/dguard/sample/mysql/exec_mysqldec.sh new file mode 100644 index 0000000..a71a4fd --- /dev/null +++ b/3rd-party/dguard/sample/mysql/exec_mysqldec.sh @@ -0,0 +1,2 @@ +java -Xms64m -Xmx128m -classpath .:../../lib/DguardAPI.jar:../../lib/MagicJCrypto-v2.0.0.0.jar:../../lib/log4j-1.2.17.jar:../../lib/com.mysql.jdbc_5.1.5.jar MySQLDec + diff --git a/3rd-party/dguard/sample/mysql/exec_mysqlenc.sh b/3rd-party/dguard/sample/mysql/exec_mysqlenc.sh new file mode 100644 index 0000000..89851c2 --- /dev/null +++ b/3rd-party/dguard/sample/mysql/exec_mysqlenc.sh @@ -0,0 +1,2 @@ +java -Xms64m -Xmx128m -classpath .:../../lib/DguardAPI.jar:../../lib/MagicJCrypto-v2.0.0.0.jar:../../lib/log4j-1.2.17.jar:../../lib/com.mysql.jdbc_5.1.5.jar MySQLEnc + diff --git a/3rd-party/dguard/sample/pgsql/PGSQLDec.class b/3rd-party/dguard/sample/pgsql/PGSQLDec.class new file mode 100644 index 0000000..339e6ba Binary files /dev/null and b/3rd-party/dguard/sample/pgsql/PGSQLDec.class differ diff --git a/3rd-party/dguard/sample/pgsql/PGSQLDec.java b/3rd-party/dguard/sample/pgsql/PGSQLDec.java new file mode 100644 index 0000000..8b413ed --- /dev/null +++ b/3rd-party/dguard/sample/pgsql/PGSQLDec.java @@ -0,0 +1,68 @@ +import com.Ineb.Dguard.*; +import com.Ineb.Exception.DguardLoginException; +import com.Ineb.Exception.DguardNetworkException; +import com.Ineb.Exception.DGuardPropertyException; + +import java.io.*; +import java.sql.*; + +public class PGSQLDec { + + static final String DB_URL = "jdbc:postgresql://10.22.170.25:5432/miracle"; + + static final String USERNAME = "miracle"; + static final String PASSWORD = "q!fvYOP^evn"; + + public static void main(String[] args) { + DguardManager dm = null; + + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rset=null; + + try{ + dm = DguardManager.Init("miraclefunding", "Agent!1700", "Agent!1700", "/home/inebsoft/javaapi/conf/dguard.conf"); + + conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD); + conn.setAutoCommit(false); + System.out.println("- PostgreeSQL Connection"); + + String selectSql = "SELECT id, seyfert_guid FROM admin_model"; + pstmt = conn.prepareStatement(selectSql.toString()); + rset = pstmt.executeQuery(); + + while(rset.next()){ + int id = rset.getInt("id"); + String data01 = rset.getString("seyfert_guid"); + + System.out.print("ID : " + id + "\n"); + System.out.print("DATA : " + data01 + "\n"); + + String decdata01 = dm.Decrypt("TBL", "ENC", data01); + + System.out.print("DEC : " + decdata01 + "\n"); + } + + rset.close(); + pstmt.close(); + conn.close(); + }catch(SQLException se1){ + se1.printStackTrace(); + }catch(Exception ex){ + ex.printStackTrace(); + }finally{ + try{ + if(pstmt!=null) + pstmt.close(); + }catch(SQLException se2){ + } + try{ + if(conn!=null) + conn.close(); + }catch(SQLException se){ + se.printStackTrace(); + } + } + System.out.println("- PostgreeSQL Connection Close"); + } +} diff --git a/3rd-party/dguard/sample/pgsql/PGSQLEnc.java b/3rd-party/dguard/sample/pgsql/PGSQLEnc.java new file mode 100644 index 0000000..019a5a5 --- /dev/null +++ b/3rd-party/dguard/sample/pgsql/PGSQLEnc.java @@ -0,0 +1,96 @@ +import com.Ineb.Dguard.*; +import com.Ineb.Exception.DguardLoginException; +import com.Ineb.Exception.DguardNetworkException; +import com.Ineb.Exception.DGuardPropertyException; + +import java.io.*; +import java.sql.*; + +public class PGSQLEnc { + + static final String DB_URL = "jdbc:postgressql://127.0.0.1:5432/miracle"; + + static final String USERNAME = "miracle"; + static final String PASSWORD = "q!fvYOP^evn"; + + public static void main(String[] args) { + DguardManager dm = null; + + Connection conn = null; + PreparedStatement pstmt = null; + PreparedStatement updatePstmt = null; + ResultSet rset=null; + + try{ + dm = DguardManager.Init("miraclefunding", "Agent!1700", "Agent!1700", "/home/inebsoft/javaapi/conf/dguard.conf"); + + conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD); + conn.setAutoCommit(false); + System.out.println("- PostgreeSQL Connection"); + + String selectSql = "SELECT seq, data FROM tbl01"; + pstmt = conn.prepareStatement(selectSql.toString()); + rset = pstmt.executeQuery(); + + String updateSql = "UPDATE tbl01 SET data = ? WHERE seq = ?"; + updatePstmt = conn.prepareStatement(updateSql.toString()); + + int commitCnt = 0; + + while(rset.next()){ + int seq = rset.getInt("SEQ"); + String data01 = rset.getString("data"); + + String encdata01 = dm.Encrypt("TBL", "ENC", data01); + + System.out.print("SEQ : " + seq + "\n"); + System.out.print("DATA : " + data01 + "\n"); + System.out.print("ENC : " + encdata01 + "\n"); + + updatePstmt.setString(1, encdata01); + updatePstmt.setInt(2, seq); + + updatePstmt.addBatch(); + updatePstmt.clearParameters(); + + if ( commitCnt > 0 && commitCnt % 1000 == 0 ) { + updatePstmt.executeBatch(); + updatePstmt.clearBatch(); + conn.commit(); + + System.out.println(commitCnt + ", " + data01 + ", " + encdata01); + } + + commitCnt++; + } + + updatePstmt.executeBatch(); + conn.commit(); + conn.setAutoCommit(true); + + System.out.println("Commit count : " + commitCnt); + + rset.close(); + updatePstmt.close(); + pstmt.close(); + conn.close(); + }catch(SQLException se1){ + se1.printStackTrace(); + }catch(Exception ex){ + ex.printStackTrace(); + }finally{ + try{ + if(pstmt!=null) + pstmt.close(); + }catch(SQLException se2){ + } + try{ + if(conn!=null) + conn.close(); + }catch(SQLException se){ + se.printStackTrace(); + } + } + System.out.println("- PostgreeSQL Connection Close"); + } +} diff --git a/3rd-party/dguard/sample/pgsql/com_pgsqldec.sh b/3rd-party/dguard/sample/pgsql/com_pgsqldec.sh new file mode 100644 index 0000000..3ecc1f1 --- /dev/null +++ b/3rd-party/dguard/sample/pgsql/com_pgsqldec.sh @@ -0,0 +1,2 @@ +javac -classpath ../../lib/DguardAPI.jar:../../lib/INICrypto_v4.1.1.jar:../../lib/INISAFEPKI_v1.1.21.jar:../../lib/log4j-1.2.17.jar PGSQLDec.java + diff --git a/3rd-party/dguard/sample/pgsql/com_pgsqlenc.sh b/3rd-party/dguard/sample/pgsql/com_pgsqlenc.sh new file mode 100644 index 0000000..03be4ce --- /dev/null +++ b/3rd-party/dguard/sample/pgsql/com_pgsqlenc.sh @@ -0,0 +1,2 @@ +javac -classpath ../../lib/DguardAPI.jar:../../lib/INICrypto_v4.1.1.jar:../../lib/INISAFEPKI_v1.1.21.jar:../../lib/log4j-1.2.17.jar PGSQLEnc.java + diff --git a/3rd-party/dguard/sample/pgsql/exec_pgsqldec.sh b/3rd-party/dguard/sample/pgsql/exec_pgsqldec.sh new file mode 100644 index 0000000..de1aada --- /dev/null +++ b/3rd-party/dguard/sample/pgsql/exec_pgsqldec.sh @@ -0,0 +1,2 @@ +java -Xms64m -Xmx128m -classpath .:../../lib/DguardAPI.jar:../../lib/MagicJCrypto-v2.0.0.0.jar:../../lib/log4j-1.2.17.jar:../../lib/postgresql-9.3-1100.jdbc4.jar PGSQLDec + diff --git a/3rd-party/dguard/sample/pgsql/exec_pgsqlenc.sh b/3rd-party/dguard/sample/pgsql/exec_pgsqlenc.sh new file mode 100644 index 0000000..e01d4c2 --- /dev/null +++ b/3rd-party/dguard/sample/pgsql/exec_pgsqlenc.sh @@ -0,0 +1,2 @@ +java -Xms64m -Xmx128m -classpath .:../../lib/DguardAPI.jar:../../lib/MagicJCrypto-v2.0.0.0.jar:../../lib/log4j-1.2.17.jar:../../lib/postgresql-9.3-1100.jdbc4.jar PGSQLEnc + diff --git a/3rd-party/dguard/sample/test.bat b/3rd-party/dguard/sample/test.bat new file mode 100644 index 0000000..e3f2ea3 --- /dev/null +++ b/3rd-party/dguard/sample/test.bat @@ -0,0 +1,2 @@ +java -classpath .;..\lib\SecureDriver.jar;..\lib\INICrypto_v4.0.4.jar;..\lib\INISAFEPKI_v1.1.0.jar;..\lib\tibero4-jdbc.jar APITest2 + diff --git a/3rd-party/dguard/sample/test.sh b/3rd-party/dguard/sample/test.sh new file mode 100644 index 0000000..725930b --- /dev/null +++ b/3rd-party/dguard/sample/test.sh @@ -0,0 +1,2 @@ +java -Xms64m -Xmx128m -classpath .:../lib/DguardAPI.jar:../lib/MagicJCrypto-v2.0.0.0.jar:../lib/log4j-1.2.17.jar: APITest2 + diff --git a/3rd-party/dguard/token/xit_agent.token b/3rd-party/dguard/token/xit_agent.token new file mode 100644 index 0000000..f542f9a --- /dev/null +++ b/3rd-party/dguard/token/xit_agent.token @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/3rd-party/echelon/EchelonClientV2.5.jar b/3rd-party/echelon/EchelonClientV2.5.jar new file mode 100644 index 0000000..f0e9db1 Binary files /dev/null and b/3rd-party/echelon/EchelonClientV2.5.jar differ diff --git a/3rd-party/echelon/EchelonCryptoV2.5.jar b/3rd-party/echelon/EchelonCryptoV2.5.jar new file mode 100644 index 0000000..2c08477 Binary files /dev/null and b/3rd-party/echelon/EchelonCryptoV2.5.jar differ diff --git a/3rd-party/echelon/MPowerCrypto2.0.jar b/3rd-party/echelon/MPowerCrypto2.0.jar new file mode 100644 index 0000000..89497ed Binary files /dev/null and b/3rd-party/echelon/MPowerCrypto2.0.jar differ diff --git a/3rd-party/echelon/MPowerCrypto2.0.sig b/3rd-party/echelon/MPowerCrypto2.0.sig new file mode 100644 index 0000000..dbf49f9 Binary files /dev/null and b/3rd-party/echelon/MPowerCrypto2.0.sig differ