diff --git a/src/main/java/kcc/xxx/web/XxxController.java b/src/main/java/kcc/xxx/web/XxxController.java index 09edcd06..2c2605ee 100644 --- a/src/main/java/kcc/xxx/web/XxxController.java +++ b/src/main/java/kcc/xxx/web/XxxController.java @@ -229,8 +229,8 @@ public class XxxController { } } - @RequestMapping("/web/xxx/xxxPpurioTest.do") - public String xxxPpurioTest() { + @RequestMapping("/web/xxx/xxxAtTest.do") + public String xxxAtTest() { try { //신청인_접수확인_1 diff --git a/src/main/java/seed/com/gtm/base/BaseController.java b/src/main/java/seed/com/gtm/base/BaseController.java index 546a8efe..e53f4dbb 100644 --- a/src/main/java/seed/com/gtm/base/BaseController.java +++ b/src/main/java/seed/com/gtm/base/BaseController.java @@ -69,6 +69,7 @@ public class BaseController { } ///gtm/case/nanum/ajax/SanctnhistoryIns.do + ///gtm/case/common/ajax/NICE.do @RequestMapping(value = "/gtm/case/{pageFolder}/{pageName}/{pageAction}.do") public ModelAndView getManagerPage(HttpServletRequest request, HttpSession session, Map map, @@ -208,11 +209,12 @@ public class BaseController { params.put("data", JSPUtil.fixNull(bservice.delete(params)).toString()); }else if("NICELOOKUP".equals(type)){ Nice nice = new Nice(); - params.put("niceLookup", nice.Lookup(((String) params.get("bizno")).trim().replaceAll("-", ""))); + params.put("niceLookup", nice.Lookup2(((String) params.get("bizno")).trim().replaceAll("-", ""))); //params.put("niceLookup", nice.Lookup("1248100998")); }else if("NICESEARCH".equals(type)){ Nice nice = new Nice(); - params.put("niceSearch", nice.Search((String)params.get("niceNm"), (String)params.get("niceCnt"))); +// params.put("niceSearch", nice.Search((String)params.get("niceNm"), (String)params.get("niceCnt"))); + params.put("niceSearch", nice.Search2((String)params.get("niceNm"), (String)params.get("niceCnt"))); }else if("NANUM".equals(type)){ Nanum nanum = new Nanum(); params.put("nanumCall", nanum.NanumCall(params)); diff --git a/src/main/java/seed/com/gtm/util/Nice.java b/src/main/java/seed/com/gtm/util/Nice.java index c2946d98..8b2a7c1b 100644 --- a/src/main/java/seed/com/gtm/util/Nice.java +++ b/src/main/java/seed/com/gtm/util/Nice.java @@ -8,11 +8,14 @@ import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLEncoder; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.Date; +import javax.net.ssl.HttpsURLConnection; + import org.apache.commons.codec.binary.Base64; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; @@ -276,4 +279,51 @@ public class Nice { return html; } + public StringBuilder Search2(String nm, String page) throws Exception { + String encoded_query = URLEncoder.encode(nm, "UTF-8"); + String host = "https://w.datapoint.co.kr/v3.1/search/company.info?apikey=" + this.NiceApikey() + "&uid=kofair&index=SA0701&eprdatasvcstscd=07&itg_srch=" + encoded_query + "&prn_rst_cnt=20&pge_st_no=" + page + "&output=json"; + URL url = new URL(host); + StringBuilder html = new StringBuilder(); + HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); + connection.setRequestMethod("GET"); + connection.setDoInput(true); + connection.setDoOutput(true); + connection.setUseCaches(false); + new StringBuilder(); + BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); + + while(true) { + String line = br.readLine(); + if (line == null) { + br.close(); + return html; + } + + html.append(line.trim().replaceAll(" ||@", "")); + } + } + + public StringBuilder Lookup2(String bizno) throws Exception { + String host = "https://w.datapoint.co.kr/v2.0/lookup/lookup.info?apikey=" + this.NiceApikey() + "&uid=kofair&resgp=LP0202,LP0209,LP0212,LP0232&allsvcpdtcd=KLP&eprdatasvcstscd=07&bizno=" + bizno + "&output=json"; + URL url = new URL(host); + StringBuilder html = new StringBuilder(); + HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); + connection.setRequestMethod("GET"); + connection.setDoInput(true); + connection.setDoOutput(true); + connection.setUseCaches(false); + new StringBuilder(); + BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); + + while(true) { + String line = br.readLine(); + if (line == null) { + br.close(); + return html; + } + + html.append(line.trim().replaceAll(" ||@", "")); + } + } + } diff --git a/src/main/java/seed/com/user/mediation/WebMediationController.java b/src/main/java/seed/com/user/mediation/WebMediationController.java index 6e97443d..a561e0b5 100644 --- a/src/main/java/seed/com/user/mediation/WebMediationController.java +++ b/src/main/java/seed/com/user/mediation/WebMediationController.java @@ -1,5 +1,9 @@ package seed.com.user.mediation; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; @@ -7,6 +11,7 @@ import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; @@ -244,7 +249,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -417,7 +422,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -592,7 +597,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -789,7 +794,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -970,7 +975,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -1128,7 +1133,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -1260,7 +1265,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -1402,7 +1407,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -1553,7 +1558,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -1708,7 +1713,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -2111,7 +2116,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -2445,7 +2450,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -2884,7 +2889,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -3100,7 +3105,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -3293,7 +3298,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -3479,7 +3484,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -3702,7 +3707,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -3994,7 +3999,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -4139,7 +4144,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -4260,7 +4265,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -4468,7 +4473,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -4624,7 +4629,7 @@ public class WebMediationController { //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ - String[] siteMenuTitles = siteMenuTitle.split("\\|"); + String[] siteMenuTitles = siteMenuTitle.split("//|"); tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); } @@ -4720,6 +4725,7 @@ public class WebMediationController { /* params.put("fileName", "/pdf/web/compressed.tracemonkey-pldi-09.pdf"); mav.addAllObjects(params);*/ + map.addAttribute("dataIdx", params.get("dataIdx")); mav.setViewName("_extra/web/user/mediation/caseViewer"); return mav; } @@ -4738,5 +4744,32 @@ public class WebMediationController { } return true; } + + @RequestMapping(value = "/web/user/mediation/case/pdf/pdfDownload.do") + public void downloadPdf( + HttpServletResponse response + , @RequestParam Map paramMap + ) throws IOException { + + Map fileList = fileService.caseFileOne(paramMap); + + // PDF 파일 경로 +// String pdfFilePath = "/path/to/your/pdf/file.pdf"; + String pdfFilePath = fileList.get("FILE_PATH").toString() + fileList.get("FILE_ORGNAME").toString(); + + // Content-Type 설정 + response.setContentType("application/pdf"); + + // 파일 스트림을 통해 PDF 파일을 읽고 클라이언트에게 전송 + try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(pdfFilePath)); + OutputStream out = response.getOutputStream()) { + + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = in.read(buffer)) != -1) { + out.write(buffer, 0, bytesRead); + } + } + } } diff --git a/src/main/webapp/AnySign4PC/anySign4PCInterface.js b/src/main/webapp/AnySign4PC/anySign4PCInterface.js index e9862bf8..8eeccc6a 100644 --- a/src/main/webapp/AnySign4PC/anySign4PCInterface.js +++ b/src/main/webapp/AnySign4PC/anySign4PCInterface.js @@ -24,7 +24,7 @@ function AnySignInitialize () * AnySign 기본 설정. *----------------------------------------------------------------------*/ var aProtocol = document.location.protocol; // window.location.protocol (http:) - var aDownloadURL = "//download.softforum.com/Published/AnySign/"; // CDN 경로 + var aDownloadURL = "//download.softforum.com/Published/AnySign/v"; // CDN 경로 var aPort = document.location.port; // window.location.port (port) var aHostName; @@ -58,9 +58,11 @@ function AnySignInitialize () //AnySign FCMS License 정보 var aLicense2 = ""; - if(aHostName == "it-make.co.kr") { + if(aHostName == "fairnet.kofair.or.kr") { + aLicense = "30820a3606092a864886f70d010702a0820a2730820a23020101310b300906052b0e03021a05003082039e06092a864886f70d010701a082038f0482038b313a666169726e65742e6b6f666169722e6f722e6b723a67657443657274547265652c6765744d656469614c6973742c7369676e44617461434d532c73657449644e756d2c76657269667950617373776f72642c766572696679436572742c766572696679436572744f776e65722c766572696679526f6f744361436572742c64656c65746543657274696669636174652c6368616e67654365727450617373776f72642c636865636b5046585077642c696d706f7274436572742c6578706f7274436572742c676574504658466f6c6465724c6973742c73617665436572742c626c6f636b446563436f6e7374616e742c7265717565737443657274696669636174652c72656e657743657274696669636174652c7265766f6b6543657274696669636174652c656e76656c6f7049644e756d2c676574566964496e666f2c7365744c616e67756167652c696e7374616c6c43657274696669636174652c736574497373756572436f6e766572745461626c652c736574506f6c696379436f6e766572745461626c652c656e76656c6f7065446174615769746850454d2c656e76656c6f70654461746157697468436572742c656e76656c6f706544617461576974685061737377642c6465456e76656c6f70654461746157697468436572742c6465456e76656c6f706544617461576974685061737377642c6765744c6173744c6f636174696f6e2c6c6f67696e504b4353313146726f6d496e6465782c6c6f67696e504b4353313146726f6d4e616d652c676574504b4353313144656661756c7450726f76696465722c7369676e44617461576974685046582c67657450465841636365737361626c654d656469614c6973742c7769662c66696e616c697a65504b4353313146726f6d4e616d652c696e697469616c697a65504b4353313146726f6d4e616d652c68736d4472697665724d616e616765722c636865636b50617373776f72644c656e2c67657443657274496e666f45782c6765744361636865436572744c6f636174696f6e2c626c6f636b456e632c626c6f636b44656345782c67657450465841636365737361626c654d656469614c697374496e636c75646553797374656d44726976652c676574504658466f6c6465724c697374496e636c75646553797374656d44726976652c676574466f6c6465724c697374496e636c75646553797374656d44726976652c656e76656c6f7049644e756d2c616e797369676e6c697465a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf31820202308201fe020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300906052b0e03021a0500a05d301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3230303132323031333230395a302306092a864886f70d01090431160414f058169914b36e7a66be268bdd2d88f803d2347e300d06092a864886f70d01010105000482010010502dbe87e0fe01fced8a3ba1a828c377a963e2b9bcc6f52753f5c9c24700f272609e9d47be2227c9b05b222fb034d9343991712577e43033c012be833fcb9254a14769567ad149861a584e7f9eacfc8c1e1c6add678ba4f569759075073342363dca618faa21e94799d5ce438bd4df4fc866ae95d378d75245c85295a0b81a76a6cecdf042f39ef1f1d669beba8e47c31ab6de0144b3b09e636aab5db4bcf862aa7a115dd56abb77c6d8073114e3677f8a610e7db036a2a0d2dbaf5ba714e2e4fb82ff5526e5e69147a727e69dfd8d8c8bc5c33ca4594d5d400b600c973365d22f2c14487faba69037f881861ddd41c51a998a1d0cdca33428e9f798e53783" + } else if(aHostName == "it-make.co.kr") { aLicense = "30820a2306092a864886f70d010702a0820a1430820a10020101310b300906052b0e03021a05003082038b06092a864886f70d010701a082037c04820378313a69742d6d616b652e636f2e6b723a67657443657274547265652c6765744d656469614c6973742c7369676e44617461434d532c73657449644e756d2c76657269667950617373776f72642c766572696679436572742c766572696679436572744f776e65722c766572696679526f6f744361436572742c64656c65746543657274696669636174652c6368616e67654365727450617373776f72642c636865636b5046585077642c696d706f7274436572742c6578706f7274436572742c676574504658466f6c6465724c6973742c73617665436572742c626c6f636b446563436f6e7374616e742c7265717565737443657274696669636174652c72656e657743657274696669636174652c7265766f6b6543657274696669636174652c656e76656c6f7049644e756d2c676574566964496e666f2c7365744c616e67756167652c696e7374616c6c43657274696669636174652c736574497373756572436f6e766572745461626c652c736574506f6c696379436f6e766572745461626c652c656e76656c6f7065446174615769746850454d2c656e76656c6f70654461746157697468436572742c656e76656c6f706544617461576974685061737377642c6465456e76656c6f70654461746157697468436572742c6465456e76656c6f706544617461576974685061737377642c6765744c6173744c6f636174696f6e2c6c6f67696e504b4353313146726f6d496e6465782c6c6f67696e504b4353313146726f6d4e616d652c676574504b4353313144656661756c7450726f76696465722c7369676e44617461576974685046582c67657450465841636365737361626c654d656469614c6973742c7769662c66696e616c697a65504b4353313146726f6d4e616d652c696e697469616c697a65504b4353313146726f6d4e616d652c68736d4472697665724d616e616765722c636865636b50617373776f72644c656e2c67657443657274496e666f45782c6765744361636865436572744c6f636174696f6e2c626c6f636b456e632c626c6f636b44656345782c67657450465841636365737361626c654d656469614c697374496e636c75646553797374656d44726976652c676574504658466f6c6465724c697374496e636c75646553797374656d44726976652c676574466f6c6465724c697374496e636c75646553797374656d44726976652c656e76656c6f7049644e756da0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf31820202308201fe020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300906052b0e03021a0500a05d301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3139313130383033313134355a302306092a864886f70d0109043116041484c62d5b05a638c0068269a07c6f55575876e337300d06092a864886f70d0101010500048201000dca7d40e1ccc1255c05e9e2d15941ce80332d060b7e3c427bab2ec913e953d6cb713dd495ae2daed5ea036f1069a0321c1629020c27ca2617afb513471343a4728e1f4766926353c89b7aaea9c384bad470e98e1dccb729983d510919272e51d49d4db7f9c70a31866e2c4934a39d34f2c82ccc56615d8912aadc4574f7265050a214f73bbcc54b92e4e86cdc5b3f217957233e71e27e6bef657d1c12889876ad7ece224b123be7ffe43bbe8f3911718ec34b4f22133ffaf5bed4705e3d1e3052bc925b8cadb09eaf3e5f2e2dd793f732948d3d39eeecfbf6f7103beb6d94a999174ad29ecfea0e2df40cb91433d58281b5946b50b63ba5c166321bbfadfbb9"; - }else if(aHostName == "it-make.co.kr:8080") { + } else if(aHostName == "it-make.co.kr:8080") { aLicense = "30820a2806092a864886f70d010702a0820a1930820a15020101310b300906052b0e03021a05003082039006092a864886f70d010701a08203810482037d313a69742d6d616b652e636f2e6b723a383038303a67657443657274547265652c6765744d656469614c6973742c7369676e44617461434d532c73657449644e756d2c76657269667950617373776f72642c766572696679436572742c766572696679436572744f776e65722c766572696679526f6f744361436572742c64656c65746543657274696669636174652c6368616e67654365727450617373776f72642c636865636b5046585077642c696d706f7274436572742c6578706f7274436572742c676574504658466f6c6465724c6973742c73617665436572742c626c6f636b446563436f6e7374616e742c7265717565737443657274696669636174652c72656e657743657274696669636174652c7265766f6b6543657274696669636174652c656e76656c6f7049644e756d2c676574566964496e666f2c7365744c616e67756167652c696e7374616c6c43657274696669636174652c736574497373756572436f6e766572745461626c652c736574506f6c696379436f6e766572745461626c652c656e76656c6f7065446174615769746850454d2c656e76656c6f70654461746157697468436572742c656e76656c6f706544617461576974685061737377642c6465456e76656c6f70654461746157697468436572742c6465456e76656c6f706544617461576974685061737377642c6765744c6173744c6f636174696f6e2c6c6f67696e504b4353313146726f6d496e6465782c6c6f67696e504b4353313146726f6d4e616d652c676574504b4353313144656661756c7450726f76696465722c7369676e44617461576974685046582c67657450465841636365737361626c654d656469614c6973742c7769662c66696e616c697a65504b4353313146726f6d4e616d652c696e697469616c697a65504b4353313146726f6d4e616d652c68736d4472697665724d616e616765722c636865636b50617373776f72644c656e2c67657443657274496e666f45782c6765744361636865436572744c6f636174696f6e2c626c6f636b456e632c626c6f636b44656345782c67657450465841636365737361626c654d656469614c697374496e636c75646553797374656d44726976652c676574504658466f6c6465724c697374496e636c75646553797374656d44726976652c676574466f6c6465724c697374496e636c75646553797374656d44726976652c656e76656c6f7049644e756da0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf31820202308201fe020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300906052b0e03021a0500a05d301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3139313130383033313331345a302306092a864886f70d01090431160414e9b500cbc8f1691d3037bb35d9d5edff43fe98a0300d06092a864886f70d01010105000482010014c4e285a5fb913ce5a476e87d145c024af82108f7e94806e1d8dd8121c19055da1c32936d0fc6a3020c6e510ddb48986cfd59c7ab5065acedb489762ca28aa53eeecf358f1d0942ed1d72fd94dbcd6578fb3777166ae54db3cbced3360ec1371b07367ee5eb9fadfc53d6a5de30a3fb858e2f4666bb904bc987846e921d985699ebcb52196652874ffacda10862ee39d2ed3f4f399b9030d0ec4fbfbe50bbea62439ca9a5405327888c314090224ee8fa799a4afa7913943c1d3a9bbee29e114f5933e8dbd310a6e4762ff67142a6018405978ef303c8eab7af1ab8ce7389dded96ff18935fb566fec0769cc193f0218e9dd1503c8a82f57b74af8beb26f650"; } else { // localhost @@ -425,20 +427,20 @@ function AnySignInitialize () var aLimitedTrial = 3; // Default CA list. - var aCAList = "Root CA,XecurePKI51 ca,cn=CA131000010,pki50ca,pki70_test_CA"; - aCAList += ",CA131000002Test,CA131000002,CA131000010,Softforum CA 3.0"; - aCAList += ",SoftforumCA,yessignCA-OCSP,signGATE CA,signGATE CA4,SignKorea CA,SignKorea CA2,CrossCertCA,CrossCertCA2"; - aCAList += ",CrossCertCA-Test2,3280TestCAServer,NCASignCA,TradeSignCA,TradeSignCA2,yessignCA-TEST"; - aCAList += ",lotto test CA,NCATESTSign,SignGateFTCA,SignKorea Test CA,SignKorea Test CA2,TestTradeSignCA"; - aCAList += ",Softforum Demo CA,mma ca,병무청 인증기관,MND CA,signGATE FTCA02"; - aCAList += ",.ROOT.CA.KT.BCN.BU,CA974000001,setest CA,3280TestCAServer"; - aCAList += ",yessignCA-Test Class 0,yessignCA-Test Class 1,yessignCA-Test Class 2,yessignCA-Test Class 3,yessignCA-Test Class 4,TradeSignCA2009Test2,CrossCertTestCA2,1024TestCA"; - aCAList += ",yessignCA,yessignCA Class 1,yessignCA Class 2"; - aCAList += ",CA130000031T,CA131000031T,CA131100001,CA134040001,Test1024CA,subca,subca_02,MMACA001"; - //var aCAList=""; + //var aCAList = "Root CA,XecurePKI51 ca,cn=CA131000010,pki50ca,pki70_test_CA"; + //aCAList += ",CA131000002Test,CA131000002,CA131000010,Softforum CA 3.0"; + //aCAList += ",SoftforumCA,yessignCA-OCSP,signGATE CA,signGATE CA4,SignKorea CA,SignKorea CA2,CrossCertCA,CrossCertCA2"; + //aCAList += ",CrossCertCA-Test2,3280TestCAServer,NCASignCA,TradeSignCA,TradeSignCA2,yessignCA-TEST"; + //aCAList += ",lotto test CA,NCATESTSign,SignGateFTCA,SignKorea Test CA,SignKorea Test CA2,TestTradeSignCA"; + //aCAList += ",Softforum Demo CA,mma ca,병무청 인증기관,MND CA,signGATE FTCA02"; + //aCAList += ",.ROOT.CA.KT.BCN.BU,CA974000001,setest CA,3280TestCAServer"; + //aCAList += ",yessignCA-Test Class 0,yessignCA-Test Class 1,yessignCA-Test Class 2,yessignCA-Test Class 3,yessignCA-Test Class 4,TradeSignCA2009Test2,CrossCertTestCA2,1024TestCA"; + //aCAList += ",yessignCA,yessignCA Class 1,yessignCA Class 2"; + //aCAList += ",CA130000031T,CA131000031T,CA131100001,CA134040001,Test1024CA,subca,subca_02,MMACA001"; + var aCAList=""; // real //금융결제원 - aCAList += "yessignCA Class 1"; + aCAList += "yessignCA Class 3"; aCAList+=":1.2.410.200005.1.1.1"; aCAList+=":1.2.410.200005.1.1.2"; aCAList+=":1.2.410.200005.1.1.4"; @@ -451,7 +453,7 @@ function AnySignInitialize () aCAList+=":1.2.410.200005.1.1.5"; //한국정보인증 - aCAList += ",signGATE CA4"; + aCAList += ",signGATE CA6"; aCAList+=":1.2.410.200004.5.2.1.1"; aCAList+=":1.2.410.200004.5.2.1.2"; aCAList+=":1.2.410.200004.5.2.1.7.1"; @@ -464,7 +466,7 @@ function AnySignInitialize () aCAList+=":1.2.410.200004.5.2.1.7.2"; //한국증권전산(코스콤) - aCAList += ",SignKorea CA2"; + aCAList += ",SignKorea CA4"; aCAList+=":1.2.410.200004.5.1.1.5"; aCAList+=":1.2.410.200004.5.1.1.7"; aCAList+=":1.2.410.200004.5.1.1.9"; @@ -475,7 +477,7 @@ function AnySignInitialize () aCAList+=":1.2.410.200004.5.1.1.9"; //한국전자인증 - aCAList += ",CrossCertCA2"; + aCAList += ",CrossCertCA4"; aCAList+=":1.2.410.200004.5.4.1.1"; aCAList+=":1.2.410.200004.5.4.1.2"; aCAList+=":1.2.410.200004.5.4.1.101"; @@ -486,7 +488,7 @@ function AnySignInitialize () aCAList+=":1.2.410.200004.5.4.1.101"; //한국무역정보통신(KTNet) - aCAList += ",TradeSignCA2"; + aCAList += ",TradeSignCA3"; aCAList+=":1.2.410.200012.1.1.1"; aCAList+=":1.2.410.200012.1.1.3"; aCAList+=":1.2.410.200012.1.1.101"; @@ -498,8 +500,6 @@ function AnySignInitialize () aCAList+=":1.2.410.200012.1.1.101"; aCAList+=":1.2.410.200012.1.1.103"; - //이니텍(INIPASS) - aCAList += ",INIPASS CA"; // dev aCAList += ",yessignCA-Test Class 4"; aCAList += ",SignKorea Test CA5"; @@ -508,6 +508,9 @@ function AnySignInitialize () aCAList += ",TradeSignCA2009Test2"; aCAList += ",INIPASS TEST CA2"; aCAList += ",subca,subca_02"; + + //교육부 + aCAList += ",CA134100031"; // Storage 정보. var aStorage = "HARD,REMOVABLE,SMARTCERT,MOBISIGN,MPHONE,PKCS11,ICCARD,USBTOKEN,CSP,SECUREDISK"; @@ -840,7 +843,7 @@ function UnifiedPluginInterface (aBasePath, aSearchWord : "Chrome", aSearchLength : 7, aMinVersion : "24.0", - aMaxVersion : "99.0" + aMaxVersion : "199.0" }, { aName : "firefox", diff --git a/src/main/webapp/AnySign4PC/anySign4PCInterface.js_20221209 b/src/main/webapp/AnySign4PC/anySign4PCInterface.js_20221209 new file mode 100644 index 00000000..261657ae --- /dev/null +++ b/src/main/webapp/AnySign4PC/anySign4PCInterface.js_20221209 @@ -0,0 +1,6607 @@ +/*! +* AnySign, v1.0.1.21. +* +* For more information on this product, please see +* https://www.hsecure.co.kr/ +* +* Copyright (c) Hancom Secure Inc. All Rights Reserved. +* +* Date: 2019-08-21 +*/ +document.write(""); +document.write(""); +document.write(" + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+
+ + + + + + + + + + + + +

공통 설정

Charset + 현재 페이지 : <%=charset%>
+ [AnySign4PC/Lite <%=link_charset%>] +
Language + ko-KR + en-US +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

AnySign4PC 설정

AnySign4PC 설치 확인 및 초기화 + Version : + +
가상 키패드Transkey
v4.5.1 (2013.01.11)
+ +
XecureKeyPad
v1.0.0.2 (2016.10.19)
+ +
IncaKeyPad
2016.10.19
+ +
Openkeyboard
v1.0 (2013.07.21)
+ +
키보드 보안TouchenKey
v3.1.0.11 (2013.02.26)
+ Module Load (ActiveX/Plugin): [설치페이지] + +
nProtect KeyCrypt HTML5 + [설치파일] + +
키보드 보안AhnLab Safe Transaction
v1.3.4.393(2015.12.30)
+ + [설치파일] + +
TouchEn nxKey
v1.0.0.8 (2015.07.24)
+ [설치페이지] + +
Kings Online Security
v1.0.0.7 (2016.04.07)
+ [설치파일] + +
EzKeyTec 키보드보안
v2.2(2016.4.29.2)
+ [설치파일] + +
키보드 보안 + 가상 키패드nProtect Online Security V1.0
v1.0 (2015.12.23)
+ [설치파일] + +
보안 토큰XecureHSM v2.0.0.3 (driver: v1.1.0.1) + xhsm_install.exe + [다운로드] +
+
+ + + + + + + + + + + + + + + + + + +

AnySignLite 설정

AnySignLite 사용 유무 + +
OpenCert 사용 유무 + +
가상 키패드XecureKeyPad Lite
v1.0.0.2 (2016.09.28)
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +

XecureFreeSign 설정

XecureFreeSign 사용 유무 + +
서명 방식 + server + server-digest + client +
가상 키패드XecureKeyPad E2E
v1.0.1.0 (2017.01.17)
+ +
OpenAPI + +
+
+
+ +

XecureLink

+ + + + + + + + + + + + + +
XecureLink + 전송 +
AnySign.XecureLink KB + 전송 +
AnySign.XecureLink LGUPlus + 전송 +
+
+ +

XecureSubmit

+ + + + + +
AnySign.XecureSubmit +
+
+
+ +
+
+
+ +

XecureNavigate

+ + + + + + + + + + + + + +
XecureNavigate + 전송 +
XecureNavigate KB + 전송 +
XecureNavigate LGUPlus + 전송 +
+
+ +

BlockEnc

+ + + + + +
BlockEncEx + 전송 +
+
+ + +

SignDataCMS

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000002 : 로그인한 인증서만 보여준다.
+ + 0x00000100 : 출력 값을 Base64로
+ + 0x00000200 : 서명 시간 추가 (SignedAttributes)
+ + 0x00001000 : 분리 서명 (No Content)
+ + 0x00800000 : SignKorea 축약서명 (PKCS1)
+ + 0x01800000 : SignKorea 축약서명 (PKCS1) + 출력값 추가(subjectRDN|certSerial|인증서값)
+ + 0x02010000 : SignKorea 풀서명 (NO CMS + SignKorea)
+ + 0x00200000 : 스마트 인증 캐쉬
+ + 0x00100000 : 인증서 위치 캐쉬
+
aDescription
aLimitedTrial
Run + +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
Output + + SignDataCMS: + + + + SignDataAdd: + +
Reset + +
+
+
+ +

SignDataCMSWithSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aPlain
aOption + + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+
aDescription
aLimitedTrial
Run + +
+ +
+
+ +
+ +
Output + +
Send + + +
+
+
+ +

SignDataCMSWithHTMLEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aForm
aPlain
aCert
aOption + + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 4 : VID 생성
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aDescription
aLimitedTrial
Run + +
+ +
Output + +
+ +
Send + + +
+
+
+ +

SignDataCMSWithHTMLExAndSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aForm
aPlain
aCert
aOption + + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 4 : VID 생성
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aDescription
aLimitedTrial
Run + +
+ +
+
+ +
+ +
Output + +
+ +
Send + + +
+
+
+ + +

SignDataWithVID

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aCert
aOption + (공통 옵션)
+ + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 8 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aIdn
aDescription
aLimitedTrial
Run + +
+ +
+ +
+ +
+ +
+ +
Output + +
VID Output + +
Send + + +
+
+ + +

SignDataWithVID_Serial

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aPlain
aCert
aOption + (공통 옵션)
+ + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 8 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 16 : IDN값을 입력받지 않는다 ""로 대체 (VID입력창 뜨지 않음)
+
aIdn
aDescription
aLimitedTrial
Run + + +
+
+ +
+ +
Output + +
Vid Output + +
Send +
+
+ + +

MultiSignEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aTotal
aDelimiter
aCertSerial
aCertLocation
aCert
Run + +
+ +
+ +
Output + +
+ +
Send + +
+
+
+ + +

SignFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
SignFilePath
OutFilePath
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+
aDescription
aLimitedTrial
Run + +
+ +
+
+
+
+ + +

MultiFileSign

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSignFiles
aTotal
aDelimiter
aCertSerial
aCertLocation
Run + +
+
+
+
+ + +

EnvelopeData

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + + 1 : 인증서 사용.
+ + 2 : 비밀번호 사용.
+ + 4 : 여러개의 인증서 사용 (1과 함께 사용).
+
aPassword
aPEM + 서버 인증서 (PEM) 사용
+ +
aCertSerial
aCertLocation
aDescription
Run + +
+
+ +
+ +
Output + +
+
+
+ + +

DeEnvelopeData

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aEnvelopedData
aOption + + 1 : 인증서 사용.
+ + 2 : 비밀번호 사용.
+
aPassword
aDescription
Run + + +
Output + +
+
+
+ + +

ShowCertManager

+ + + + + +
Run + +
+ +
+
+ + +

CMP

+ + + + + + + + + + + + + + + +
Option인증서 갱신 + ShowRenewCertSaveLoc +
Run + 참조번호:
+ 인가코드:
+ 이름:
+ 주민등록번호:
+ +
+ + + + + + + + + + + + + + + + +
+
+ 인증 기관 종류: +
+ 공개키 알고리즘: +
+ 키길이: +
+ 인증서 용도: +

+
+ + + +
+ + + +
+ + + +
+
Output + +
+
+ + +

RevokeCertificate

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaType
aJobCode
aReason
aLimitedTrial
Run + +
+ +
Output + +
+
+
+ +

FileHash

+
+ + + + + + + + + + + + + + + + + + +
InputaFilePath
Algorithm + + XW_HASH_MD2
+ + XW_HASH_MD5
+ + XW_HASH_SHA1
+ + XW_HASH_RIPEMD160
+ + XW_HASH_HAS160
+ + XW_HASH_SHA256
+
Run + +
+
Output + +
+
+
+ + +

Wif

+
+ + + + + + + + + + + + + + + + + + +
InputaCert
aOption + + 0x0001 : HDD Serial(only windows)
+ + 0x0002 : Mac Address
+ + 0x0004 : IP Address
+ + 0x0100 : All User Info
+
Run + +
+
Output + + +
+
+
+ +

getKTBScanInfo

+
+ + + + + + + + + + + + + + + + + + +
InputaServerIP
aServerPort
Run + +
+
Output + +
+
+
+ +

getCertPath

+
+ + + + + + + + + + + + + +
Run + +
Output + +
Signed + +
+
+
+ +

certselectwide

+ + + + +
+ [certselectwide] +
+
+ +

SignFileInfo

+ + + + +
+ [SignFileInfo] +
+
+ +

FCMS

+ + + + +
+ [FCMS] +
+
+ +
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/AnySign4PCTest.jsp b/src/main/webapp/AnySign4PC/test/AnySign4PCTest.jsp new file mode 100644 index 00000000..0c6ceec7 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/AnySign4PCTest.jsp @@ -0,0 +1,2987 @@ + +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> +<% request.setCharacterEncoding("utf-8"); %> +<% response.setContentType("text/html; charset=utf-8"); %> +<% + String charset = "utf-8"; + String sign_result_page = "./sign_result.jsp"; + String sign_result1_page = "./sign_result1.jsp"; + String sign_result2_page = "./sign_result2.jsp"; + String sign_result3_page = "./sign_result3.jsp"; + + String link_charset = "euc-kr"; + String link_page = "./AnySign4PCTest_euckr.jsp"; +%> + + +AnySign4PC/AnySignLite TEST + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+
+ + + + + + + + + + + + +

공통 설정

Charset + 현재 페이지 : <%=charset%>
+ [AnySign4PC/Lite <%=link_charset%>] +
Language + ko-KR + en-US +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

AnySign4PC 설정

AnySign4PC 설치 확인 및 초기화 + Version : + +
가상 키패드Transkey
v4.5.1 (2013.01.11)
+ +
XecureKeyPad
v1.0.0.2 (2016.10.19)
+ +
IncaKeyPad
2016.10.19
+ +
Openkeyboard
v1.0 (2013.07.21)
+ +
키보드 보안TouchenKey
v3.1.0.11 (2013.02.26)
+ Module Load (ActiveX/Plugin): [설치페이지] + +
nProtect KeyCrypt HTML5 + [설치파일] + +
키보드 보안AhnLab Safe Transaction
v1.3.4.393(2015.12.30)
+ + [설치파일] + +
TouchEn nxKey
v1.0.0.8 (2015.07.24)
+ [설치페이지] + +
Kings Online Security
v1.0.0.7 (2016.04.07)
+ [설치파일] + +
EzKeyTec 키보드보안
v2.2(2016.4.29.2)
+ [설치파일] + +
키보드 보안 + 가상 키패드nProtect Online Security V1.0
v1.0 (2015.12.23)
+ [설치파일] + +
보안 토큰XecureHSM v2.0.0.3 (driver: v1.1.0.1) + xhsm_install.exe + [다운로드] +
+
+ + + + + + + + + + + + + + + + + + +

AnySignLite 설정

AnySignLite 사용 유무 + +
OpenCert 사용 유무 + +
가상 키패드XecureKeyPad Lite
v1.0.0.2 (2016.09.28)
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +

XecureFreeSign 설정

XecureFreeSign 사용 유무 + +
서명 방식 + server + server-digest + client +
가상 키패드XecureKeyPad E2E
v1.0.1.0 (2017.01.17)
+ +
OpenAPI + +
+
+
+ +

XecureLink

+ + + + + + + + + + + + + +
XecureLink + 전송 +
AnySign.XecureLink KB + 전송 +
AnySign.XecureLink LGUPlus + 전송 +
+
+ +

XecureSubmit

+ + + + + +
AnySign.XecureSubmit +
+
+
+ +
+
+
+ +

XecureNavigate

+ + + + + + + + + + + + + +
XecureNavigate + 전송 +
XecureNavigate KB + 전송 +
XecureNavigate LGUPlus + 전송 +
+
+ +

BlockEnc

+ + + + + +
BlockEncEx + 전송 +
+
+ + +

SignDataCMS

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000002 : 로그인한 인증서만 보여준다.
+ + 0x00000100 : 출력 값을 Base64로
+ + 0x00000200 : 서명 시간 추가 (SignedAttributes)
+ + 0x00001000 : 분리 서명 (No Content)
+ + 0x00800000 : SignKorea 축약서명 (PKCS1)
+ + 0x01800000 : SignKorea 축약서명 (PKCS1) + 출력값 추가(subjectRDN|certSerial|인증서값)
+ + 0x02010000 : SignKorea 풀서명 (NO CMS + SignKorea)
+ + 0x00200000 : 스마트 인증 캐쉬
+ + 0x00100000 : 인증서 위치 캐쉬
+
aDescription
aLimitedTrial
Run + +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
Output + + SignDataCMS: + + + + SignDataAdd: + +
Reset + +
+
+
+ +

SignDataCMSWithSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aPlain
aOption + + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+
aDescription
aLimitedTrial
Run + +
+ +
+
+ +
+ +
Output + +
Send + + +
+
+
+ +

SignDataCMSWithHTMLEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aForm
aPlain
aCert
aOption + + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 4 : VID 생성
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aDescription
aLimitedTrial
Run + +
+ +
Output + +
+ +
Send + + +
+
+
+ +

SignDataCMSWithHTMLExAndSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aForm
aPlain
aCert
aOption + + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 4 : VID 생성
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aDescription
aLimitedTrial
Run + +
+ +
+
+ +
+ +
Output + +
+ +
Send + + +
+
+
+ + +

SignDataWithVID

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aCert
aOption + (공통 옵션)
+ + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 8 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aIdn
aDescription
aLimitedTrial
Run + +
+ +
+ +
+ +
+ +
+ +
Output + +
VID Output + +
Send + + +
+
+ + +

SignDataWithVID_Serial

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aPlain
aCert
aOption + (공통 옵션)
+ + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 8 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 16 : IDN값을 입력받지 않는다 ""로 대체 (VID입력창 뜨지 않음)
+
aIdn
aDescription
aLimitedTrial
Run + + +
+
+ +
+ +
Output + +
Vid Output + +
Send +
+
+ + +

MultiSignEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aTotal
aDelimiter
aCertSerial
aCertLocation
aCert
Run + +
+ +
+ +
Output + +
+ +
Send + +
+
+
+ + +

SignFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
SignFilePath
OutFilePath
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+
aDescription
aLimitedTrial
Run + +
+ +
+
+
+
+ + +

MultiFileSign

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSignFiles
aTotal
aDelimiter
aCertSerial
aCertLocation
Run + +
+
+
+
+ + +

EnvelopeData

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + + 1 : 인증서 사용.
+ + 2 : 비밀번호 사용.
+ + 4 : 여러개의 인증서 사용 (1과 함께 사용).
+
aPassword
aPEM + 서버 인증서 (PEM) 사용
+ +
aCertSerial
aCertLocation
aDescription
Run + +
+
+ +
+ +
Output + +
+
+
+ + +

DeEnvelopeData

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aEnvelopedData
aOption + + 1 : 인증서 사용.
+ + 2 : 비밀번호 사용.
+
aPassword
aDescription
Run + + +
Output + +
+
+
+ + +

ShowCertManager

+ + + + + +
Run + +
+ +
+
+ + +

CMP

+ + + + + + + + + + + + + + + +
Option인증서 갱신 + ShowRenewCertSaveLoc +
Run + 참조번호:
+ 인가코드:
+ 이름:
+ 주민등록번호:
+ +
+ + + + + + + + + + + + + + + + +
+
+ 인증 기관 종류: +
+ 공개키 알고리즘: +
+ 키길이: +
+ 인증서 용도: +

+
+ + + +
+ + + +
+ + + +
+
Output + +
+
+ + +

RevokeCertificate

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaType
aJobCode
aReason
aLimitedTrial
Run + +
+ +
Output + +
+
+
+ +

FileHash

+
+ + + + + + + + + + + + + + + + + + +
InputaFilePath
Algorithm + + XW_HASH_MD2
+ + XW_HASH_MD5
+ + XW_HASH_SHA1
+ + XW_HASH_RIPEMD160
+ + XW_HASH_HAS160
+ + XW_HASH_SHA256
+
Run + +
+
Output + +
+
+
+ + +

Wif

+
+ + + + + + + + + + + + + + + + + + +
InputaCert
aOption + + 0x0001 : HDD Serial(only windows)
+ + 0x0002 : Mac Address
+ + 0x0004 : IP Address
+ + 0x0100 : All User Info
+
Run + +
+
Output + + +
+
+
+ +

getKTBScanInfo

+
+ + + + + + + + + + + + + + + + + + +
InputaServerIP
aServerPort
Run + +
+
Output + +
+
+
+ +

getCertPath

+
+ + + + + + + + + + + + + +
Run + +
Output + +
Signed + +
+
+
+ +

certselectwide

+ + + + +
+ [certselectwide] +
+
+ +

SignFileInfo

+ + + + +
+ [SignFileInfo] +
+
+ +

FCMS

+ + + + +
+ [FCMS] +
+
+ +
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/AnySign4PCTest_euckr.jsp b/src/main/webapp/AnySign4PC/test/AnySign4PCTest_euckr.jsp new file mode 100644 index 00000000..a22b9a90 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/AnySign4PCTest_euckr.jsp @@ -0,0 +1,2993 @@ + +<%@ page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> +<% request.setCharacterEncoding("euc-kr"); %> +<% response.setContentType("text/html; charset=euc-kr"); %> +<% + String charset = "euc-kr"; + String sign_result_page = "./sign_result_euckr.jsp"; + String sign_result1_page = "./sign_result1_euckr.jsp"; + String sign_result2_page = "./sign_result2_euckr.jsp"; + String sign_result3_page = "./sign_result3_euckr.jsp"; + + String link_charset = "utf-8"; + String link_page = "./AnySign4PCTest.jsp"; +%> + + +AnySign4PC/AnySignLite TEST + + + + + + + + + + + + + + + + + + +<%@ include file="../transkey/includeKeyboardSecurity.jsp" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+
+ + + + + + + + + + + + +

Charset + : <%=charset%>
+ [AnySign4PC/Lite <%=link_charset%>] +
Language + ko-KR + en-US +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

AnySign4PC

AnySign4PC ġ Ȯ ʱȭ + Version : + +
ŰеTranskey
v4.5.1 (2013.01.11)
+ +
XecureKeyPad
v1.0.0.2 (2016.10.19)
+ +
IncaKeyPad
2016.10.19
+ +
Openkeyboard
v1.0 (2013.07.21)
+ +
Ű TouchenKey
v3.1.0.11 (2013.02.26)
+ Module Load (ActiveX/Plugin): [ġ] + +
nProtect KeyCrypt HTML5 + [ġ] + +
Ű AhnLab Safe Transaction
v1.3.4.393(2015.12.30)
+ + [ġ] + +
TouchEn nxKey
v1.0.0.8 (2015.07.24)
+ [ġ] + +
Kings Online Security
v1.0.0.7 (2016.04.07)
+ [ġ] + +
EzKeyTec Ű庸
v2.2(2016.4.29.2)
+ [ġ] + +
Ű + ŰеnProtect Online Security V1.0
v1.0 (2015.12.23)
+ [ġ] + +
ūXecureHSM v2.0.0.3 (driver: v1.1.0.1) + xhsm_install.exe + [ٿε] +
+
+ + + + + + + + + + + + + + + + + + +

AnySignLite

AnySignLite + +
OpenCert + +
ŰеXecureKeyPad Lite
v1.0.0.2 (2016.09.28)
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +

XecureFreeSign

XecureFreeSign + +
+ server + server-digest + client +
ŰеXecureKeyPad E2E
v1.0.1.0 (2017.01.17)
+ +
OpenAPI + +
+
+
+ +

XecureLink

+ + + + + + + + + + + + + +
XecureLink + +
AnySign.XecureLink KB + +
AnySign.XecureLink LGUPlus + +
+
+ +

XecureSubmit

+ + + + + +
AnySign.XecureSubmit +
+
+
+ +
+
+
+ +

XecureNavigate

+ + + + + + + + + + + + + +
XecureNavigate + +
XecureNavigate KB + +
XecureNavigate LGUPlus + +
+
+ +

BlockEnc

+ + + + + +
BlockEncEx + +
+
+ + +

SignDataCMS

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + + 0x00000000 : ⺻
+ + 0x00000001 : Ȯâ ش.
+ + 0x00000002 : α ش.
+ + 0x00000100 : Base64
+ + 0x00000200 : ð ߰ (SignedAttributes)
+ + 0x00001000 : и (No Content)
+ + 0x00800000 : SignKorea ༭ (PKCS1)
+ + 0x01800000 : SignKorea ༭ (PKCS1) + ° ߰(subjectRDN|certSerial|)
+ + 0x02010000 : SignKorea Ǯ (NO CMS + SignKorea)
+ + 0x00200000 : Ʈ ij
+ + 0x00100000 : ġ ij
+
aDescription
aLimitedTrial
Run + +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
Output + + SignDataCMS: + + + + SignDataAdd: + +
Reset + +
+
+
+ +

SignDataCMSWithSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aPlain
aOption + + 0 : ⺻
+ + 1 : Ȯâ ش.
+
aDescription
aLimitedTrial
Run + +
+ +
+
+ +
+ +
Output + +
Send + + +
+
+
+ +

SignDataCMSWithHTMLEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aForm
aPlain
aCert
aOption + + 0 : ⺻
+ + 1 : Ȯâ ش.
+ + 4 : VID
+ + 16 : IDN Է¹ ʴ´ "" IDNü (VIDԷâ )
+
aDescription
aLimitedTrial
Run + +
+ +
Output + +
+ +
Send + + +
+
+
+ +

SignDataCMSWithHTMLExAndSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aForm
aPlain
aCert
aOption + + 0 : ⺻
+ + 1 : Ȯâ ش.
+ + 4 : VID
+ + 16 : IDN Է¹ ʴ´ "" IDNü (VIDԷâ )
+
aDescription
aLimitedTrial
Run + +
+ +
+
+ +
+ +
Output + +
+ +
Send + + +
+
+
+ + +

SignDataWithVID

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aCert
aOption + ( ɼ)
+ + 0 : ⺻
+ + 1 : Ȯâ ش.
+ + 8 : WEB(aIdn) VID Է¹޴´ (VIDԷâ )
+ + 16 : IDN Է¹ ʴ´ "" IDNü (VIDԷâ )
+
aIdn
aDescription
aLimitedTrial
Run + +
+ +
+ +
+ +
+ +
+ +
Output + +
VID Output + +
Send + + +
+
+ + +

SignDataWithVID_Serial

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aPlain
aCert
aOption + ( ɼ)
+ + 0 : ⺻
+ + 1 : Ȯâ ش.
+ + 8 : WEB(aIdn) VID Է¹޴´ (VIDԷâ )
+ + 16 : IDN Է¹ ʴ´ "" ü (VIDԷâ )
+
aIdn
aDescription
aLimitedTrial
Run + + +
+
+ +
+ +
Output + +
Vid Output + +
Send +
+
+ + +

MultiSignEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aTotal
aDelimiter
aCertSerial
aCertLocation
aCert
Run + +
+ +
+ +
Output + +
+ +
Send + +
+
+
+ + +

SignFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
SignFilePath
OutFilePath
aOption + + 0x00000000 : ⺻
+ + 0x00000001 : Ȯâ ش.
+
aDescription
aLimitedTrial
Run + +
+ +
+
+
+
+ + +

MultiFileSign

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSignFiles
aTotal
aDelimiter
aCertSerial
aCertLocation
Run + +
+
+
+
+ + +

EnvelopeData

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + + 1 : .
+ + 2 : йȣ .
+ + 4 : (1 Բ ).
+
aPassword
aPEM + (PEM)
+ +
aCertSerial
aCertLocation
aDescription
Run + +
+
+ +
+ +
Output + +
+
+
+ + +

DeEnvelopeData

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aEnvelopedData
aOption + + 1 : .
+ + 2 : йȣ .
+
aPassword
aDescription
Run + + +
Output + +
+
+
+ + +

ShowCertManager

+ + + + + +
Run + +
+ +
+
+ + +

CMP

+ + + + + + + + + + + + + + + +
Option + ShowRenewCertSaveLoc +
Run + ȣ:
+ ΰڵ:
+ ̸:
+ ֹεϹȣ:
+ +
+ + + + + + + + + + + + + + + + +
+
+ : +
+ Ű ˰: +
+ Ű: +
+ 뵵: +

+
+ + + +
+ + + +
+ + + +
+
Output + +
+
+ + +

RevokeCertificate

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaType
aJobCode
aReason
aLimitedTrial
Run + +
+ +
Output + +
+
+
+ +

FileHash

+
+ + + + + + + + + + + + + + + + + + +
InputaFilePath
Algorithm + + XW_HASH_MD2
+ + XW_HASH_MD5
+ + XW_HASH_SHA1
+ + XW_HASH_RIPEMD160
+ + XW_HASH_HAS160
+ + XW_HASH_SHA256
+
Run + +
+
Output + +
+
+
+ + +

Wif

+
+ + + + + + + + + + + + + + + + + + +
InputaCert
aOption + + 0x0001 : HDD Serial(only windows)
+ + 0x0002 : Mac Address
+ + 0x0004 : IP Address
+ + 0x0100 : All User Info
+
Run + +
+
Output + + +
+
+
+ +

getKTBScanInfo

+
+ + + + + + + + + + + + + + + + + + +
InputaServerIP
aServerPort
Run + +
+
Output + +
+
+
+ +

getCertPath

+
+ + + + + + + + + + + + + +
Run + +
Output + +
Signed + +
+
+
+ +

certselectwide

+ + + + +
+ [certselectwide] +
+
+ +

SignFileInfo

+ + + + +
+ [SignFileInfo] +
+
+ +

FCMS

+ + + + +
+ [FCMS] +
+
+ +
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/KB_qa.jsp b/src/main/webapp/AnySign4PC/test/KB_qa.jsp new file mode 100644 index 00000000..0158c53d --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/KB_qa.jsp @@ -0,0 +1,1524 @@ + + + +KB국민카드 + +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page language="java" extends="xecure.servlet.jsp.XecureHttpJspPage" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + KB국민카드 / 공지 + +
+ + + +
+ +
+ 이 메일은 KB국민카드에서 발송한 발신전용 메일입니다. +
+ 국번없이 어디서나 1588-1688(유료) + + + ARS 메뉴안내 + + + + 고객센터 + + + + KB국민카드 홈페이지 + +
+ 이메일 하단 내용 +
+ 서울특별시 종로구 새문안로3길 30 (주)KB국민카드 대표이사 김덕수 +
    +
  • 사업자등록번호 : 101-86-61717
  • +
  • 통신판매업신고 : 제2011-서울종로-0277호
  • +
  • 관광사업자등록번호 : 26004-2011-8호
  • +
+ copyrightⓒ2011 KB Kookmin Card Co.Ltd.All Rights Reserved +
    +
  • 국가고객만족도 신용카드부문 2년연속 1위(2012-2013)한국생산성본부 선정
  • +
  • 한국산업의 고객만족도 체크카드부문 3년연속 1위(2011-2013)KMAC선정
  • +
  • 한국서비스품질지수 신용카드부문 3년 연속 1위(2011-2013)한국표준협회-중앙일보 공동 선정
  • +
+ 국민을 먼저 생각합니다 KB금융그룹 +
+
+ + + + +
+ + + + +KB국민카드 e-메일명세서 + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + +
+ + +

+ + 결제요약정보 + +

+
+ +

결제요약정보

+ + + + + + + + + + + + +
+ 결제하실 총 금액 + 결제하실 총 금액 + 3,199,702 + + 원 + +

+ 상세보기 열림 +

+
+ 카드 최소결제금액  + 433,601원  + 단, 장기카드대출(카드론) 제외. 일부결제금액이월약정(리볼빙) 등록 중 +
+ + + +
+
+ + + + + + + + + +
청구내역,미결제금액,당월결제금액
+
+ + + + + + + + + + + + +
카드 결제하실 총 금액 3,199,702
연회비/SMS 0
미결제 연체원금 0
미결제 연체이자 0
일시불 900
할부 87,352
단기카드대출(현금서비스) 0
해외이용 0
일부결제금액이월약정(리볼빙) 3,115,250
차감된 금액 3,800
+
+
+
+ + + + + + + + + + + + +
장기카드대출(카드론) 결제하실 총 금액 -
미결제금액 0
이번달 결제하실 금액 0
수수료 0
 
만기도래 금액 0
 
 
 
 
+
+
+ +
+
    + +
  • 카드 결제하실 최소금액 이상만 결제하셔도 정상적인 카드 사용이 가능합니다. 다만, 장기카드대출(카드론)의 결제일 및 결제계좌가 카드와 같은 경우 "카드 결제하실 총 금액+장기카드대출(카드론) 결제하실 금액"을 입금하셔야 정상 결제됩니다.
  • + +
  • 명세서 작성기준일 현재 장기카드대출(카드론) 결제금액이 연체된 경우 안내가 제외될 수 있습니다.
  • + +
+
+ +
+
+ + + + + + + + + + + + + +
+ 이달의 할인금액 + 이달의 할인금액 + 13,125 + 원 + + +

+ 상세보기 열림 +

+
2015년 누적할인혜택 (2015.01~2015.05)107,302원
+
+ + + + + + + + + +
이달의 할인금액
+
+ + + + + + + + + + +
스타샵 할인 0
주유할인 0
쇼핑할인 0
영화할인 0
엔터테인먼트할인 0
학원/서점/도서할인 0
의료비할인 0
통신요금할인 9,000
+
+
+
+ + + + + + + + + + +
외식할인 0
여행/레저할인 0
교통할인 0
자동이체할인 0
유류세 환급 0
기타할인 0
무이자혜택금액 4,125
   
+
+
+
+ + + + + + + + + +
+ + + + + +
카드이용한도 + 카드이용한도 500만원
+ + + + + + + + + + + + + + + + +
일시불/할부카드이용한도 범위내
해외이용 0
단기카드대출(현금서비스)월간 170만원
+
+

+ 이용안내 열림 +

+
+
+
    + +
  • 카드이용한도는 고객님의 신용도와 이용실적에 따라 수시로 변동될 수 있습니다. (현재 시점의 카드 잔여한도 조회☎1588-1688 ①→②번)
  • +
  • 해외이용한도는 국내이용한도에 실제환율(전신환매도율)이 적용된 금액으로 부여됩니다
  • +
+
+
+ + + + + +
장기카드대출(카드론) 가능금액장기카드대출(카드론) 가능금액장기카드대출(카드론)신청
+ + + + + + + + + + + + + + + + + +
이지론 100만원
작성기준일2015년 05월 22일
+
+

+ 이용안내 열림 +

+
+
+
    + +
  • 장기카드대출(카드론) 이용에 동의하여 대상자 선정시 취급이 가능하며, 인터넷, 영업점, 고객센터(1588-1688), ARS(1588-2788)를 통해 이용동의를 철회할 수 있습니다.
  • + +
  • 장기카드대출(카드론) 가능금액은 신용도 및 이용실적에 따라 변동 가능하며, 카드금융상품을 이용할 경우 신용등급에 영향이 있을 수 있습니다. (이지론 조회 및 신청: KB국민카드 홈페이지, ☎1588-2788, 모바일홈App , 이용가능시간 : 365일, 08:00~23:00)
  • +
+
+
+ + + + + + + + +
작성기준작성기준
+ + + + + + + + + + + + + + + + + + + + + + +
작성기준일 2015년 05월 22일이용기간[일시불/할부] 2015.04.22 ~ 2015.05.21
결제일 2015년 06월 05일 [단기카드대출(현금서비스)] 2015.04.07 ~ 2015.05.06
실제출금일2015년 06월 05일결제계좌 국민은행 037-21-1***-*28
+
+
    + + +
  • 카드이용대금 및 장기카드대출(카드론) 결제금액을 은행영업시간(16시) 이후 입금하실 경우 결제일 당일 결제가 되지 않아 연체료가 부과될 수 있습니다.
  • + + + + + +
  • 명세서 작성기준일이 휴무일인 경우에는 전 영업일을 작성기준일로 하며, 이 경우 이용기간은 명세서 작성일까지로 적용됩니다.
  • +
  • 명세서 작성기준일 이후 발생한 매출취소 및 선결제금액은 명세서에 반영되지 않습니다.
  • +
+
+ + + + + + + + + + +
공지사항공지사항
+
+
+
보이스피싱 피해사례 및 예방 안내
+
+ 최근 금융회사 및 공공기관을 사칭하여 신용카드 비밀번호 등 개인정보를 알아낸 뒤 ARS, 인터넷 등을 통해 장기카드대출(카드론)/ 단기카드대출(현금서비스)의 부정 취급 후 불법자금의 송금(이체)을 유도하는 범죄가 늘고 있습니다. 고객님의 정보를 철저히 관리하시고, 유출 즉시 거래 금융기관, 경찰서, 금융감독원 등에 신고(지급정지 포함)하시기 바랍니다. +
+
카드이용정지 안내 서비스
+
+ - 카드대금 및 대출금이 연체(타 금융기관 포함)되어 장ㆍ단기연체정보가 발생하는 경우 신용정보회사를 통해 금융회사 간에 해당 연체정보가 공유되어 신용등급 하락 및 신용카드 사용정지, 카드금융상품 이용 등 금융거래가 제한될 수 있습니다. +
+
+ - ‘세금체납’ 등 기타 사유로 회원님의 카드이용이 정지될 수 있으며, 카드이용이 정지 및 해제되는 경우 개인회원 표준약관 제7조 제①항 및 제⑥항에 따라 SMS 및 E-MAIL, 서면 등을 통해 안내하여 드립니다. +
+
+ - 카드이용정지 및 해제안내를 원치 않는 경우에는 인터넷 홈페이지 (www.kbcard.com > 개인 > 서비스 > 고객안심서비스 > 카드이용정지안내신청/해지), ARS(1588-1688 ①→ ⑥→ ③) 또는 가까운 KB국민카드 영업점을 통해 신청하여 주시기바랍니다. +
+
+ - KB국민카드 또는 장기카드대출(카드론) 결제대금 미납금액이 5만원 미만 소액인 경우도 6개월 이상 미납시는 부득이 카드 이용이 제한될 수 있으므로 유의하여 주시기 바랍니다. +
+
이용한도 반영시점
+
+ - KB국민은행, 우리(Woori), 스탠다드차타드은행(구 SC제일은행) 이용 고객님은 결제일 당일 야간, 이를 제외한 타행계좌는 결제일 + 1영업일에 한도 반영됩니다. +
+
+
+
+ + +
+ 다음페이지 +
+ +
+ 55명이 12개월동안 이메일 명세서를 받으면 아름드리 나무 1그루를 심는 효과가 있습니다. +
+
+ + + +

+ + 이용내역 + +

+
+

카드이용내역

+
+ 바로출금결제 바로가기 + 이용내역조회 바로가기 + 교통/자판기 이용내역 바로가기 + + 단기카드대출(현금서비스)로 결제 바로가기 + +
+ + + + + +
+ 고객님의 수수료등급은 최우수3(A) 입니다. + +

+ 수수료율 상세보기 +

+
+ +
+ + + + +
적용기준일 : 2014년11월01일 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
수수료율 표
단기카드대출
(현금서비스)
연 19.95% 
할부개월수2개월이내3개월4~5개월6~8개월9~11개월12~17개월18개월이상
수수료율연 11.65% 연 15.15% 연 16.15% 연 16.65% 연 17.05%연 17.15%연 17.25%
100원당
할부수수료
1.41원 2.47원3.30~3.97원 4.79~6.18원7.04~8.46원9.22~12.80원13.59원
일부결제금액
이월약정(리볼빙)
일시불연 18.90%단기카드대출
(현금서비스)
연 19.95%
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연체이자율 표
구분연체이자율
일시불, 할부연 22.9~23.7%
일부결제금액이월약정(리볼빙)
/단기카드대출(현금서비스)
/장기카드대출(카드론)
연 18%미만연 22.9~23.7%
연 18%이상~23%미만연 23.9~24.7%
연23%이상연 28.5~29.3%
※ 연체이자율은 연체기간별로 차등적용
+
+
    +
  • 단기카드대출(현금서비스) 수수료 : [이용금액 × 회원등급별 수수료율) × 이용일수 / 365]
  • +
  • 단기카드대출(현금서비스)를 KB국민은행 이외 기관에서 신청 시 별도의 ATM수수료(500~800원) 추가
  • +
  • 단기카드대출(현금서비스)를 과도하게 이용하시는 경우 신용등급에 부정적 영향이 있을 수 있습니다.
  • +
  • 할부수수료 : 1회차 (할부잔액 X 할부수수료율 X 이용일수(이용일-결제일)÷365)
                     2회차 이후 (할부잔액 X 할부수수료율 ÷ 12)
  • +
  • 100원당 할부수수료는 100원을 할부 이용하신 경우, 회원님이 해당 할부 기간 동안 납부하여야 하는 할부수수료 총액을 1회차는 일할(29일-평균신용공여기간), 2회차 이후는 월할로 산출한 예시 금액입니다.
  • +
  • 할부기간은 18개월이내에서 가맹점별로 차등 적용될 수 있으며, 18개월을 초과하는 할부이용은 특정가맹점에서만 이용가능합니다.
  • +
  • 할부이용 후 90일을 초과하여 취소하는 경우, 할부 수수료가 환급되지 않습니다.
  • +
  • 장기카드대출(카드론) : 이지론 이자율은 고객님의 신용도(이용실적 및 연체경력)에 따라 연7.50 ~ 25.80%(적용일 : 2014.10.08) 가 적용되며, 취급수수료와 중도상환수수료가 없어 쉽고 편리하게, 부담 없이 신청하시고 자유롭게 상환하실 수 있습니다.
  • +
  • 대환론 취급금리 : 초기 선납비율에 따라 연 12 ~ 22%가 적용됩니다. (적용기준일: 2014.10.08)
  • +
+
+
+ + + + + + + + + +
카드이용내역카드이용내역 + 인쇄 + 인쇄미리보기 + + 엑셀파일저장 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
카드이용내역표
이용
일자
이용
하신분
이용자
번호
구분이용하신 가맹점이용금액할부개월이번달 결제금액결제후 잔액적립
예정
포인
트리
회차원금수수료
(이자)
회차원금
15.04.27테스트KK007일시홈플러스 서울남현점 온라인마트P-3,800  -3,800   -2
15.05.15테스트KK007일시Wise Info 플러스 (05 월분 ) 900  900    
15.04.07테스트KK007할부홈플러스 서울남현점 온라인마트P128,7503240,7711,029140,771 
     무이자혜택금액     -1,029   
15.04.08테스트KK007할부GS 샵 - 덴마크유산균 197,00010218,7152,3938149,720 
     무이자혜택금액     -2,393   
15.04.09테스트KK007할부GS 샵 - (GS_150 88,0003227,866703127,866 
     무이자혜택금액     -703   
15.04.22테스트KK007RLS네이버페이-네이버(주) 61,750  61,750    
15.04.24테스트KK007RLS( 주 ) 롯데닷컴 3,000  3,000    
15.04.27테스트KK007RLS이지스(정기과금)-쿠쿠전자주식회사 21,900  21,900    
15.04.27테스트KK007RLS홈플러스 서울남현점 온라인마트P56,460  56,460   44
15.04.28테스트KK007RLS네이버페이-네이버(주) 18,000  18,000    
15.04.29테스트KK007RLS티머니서울택시 6,500  6,500    
15.05.02테스트KK007RLS티머니서울택시 5,100  5,100    
15.05.03테스트KK007RLSGS 샵 - 뉴발란스_플립 12,400  12,400    
15.05.04테스트KK007RLS티머니서울택시 3,000  3,000    
15.05.04테스트KK007RLS티머니서울택시 4,400  4,400    
15.05.04테스트KK007RLS티머니서울택시 5,900  5,900    
15.05.05테스트KK007RLS네이버페이1-네이버주식회사 20,160  20,160    
15.05.11테스트KK007RLSOLLEH 모바일자동납부 (4992) 128,510  128,510    
15.05.12테스트KK007RLSLGUPLUS 통신요금자동이체 62,610  53,610    
    LG U+ 통신요금 할인  -9,000       
15.05.15테스트KK007RLS한국세계자연기-한국세계자연기금 20,000  20,000    
15.05.21테스트KK007RLS버스00001건 1,050  1,050    
소 계 21 건    506,192  218,35742
합 계 21 건    506,192  218,35742
일부결제금액이월약정(리볼빙)이월금액 합계   2,651,70541,805   
신용카드 결제하실 총금액    3,157,89741,805   
+
+
+

+ 이용안내 열림 +

+
+
+
    +
  • 상기 이용내역은 2015년 05월 22일까지 접수된 매출전표 기준이며 이후 접수분은 다음달에 청구됩니다. 이 경우 할부매출의 수수료는 차기 결제일까지 일수만큼 계산되어 청구됩니다.
  • +
  • RLS, RCA 매출은 이번달 결제일별 이용기간동안 사용한 내역만 표시됩니다.
  • +
  • 이용자번호 KK/BB(국내), KM/BM(마스터), KV/BV(비자), KJ/BJ(JCB), KA(아멕스), KC(은련) + 카드번호 3자리
  • +
  • 구분 : 일시-일시불, 할부-할부, 연회-연회비, 현금- 단기카드대출(현금서비스), RLS- 일부결제금액이월약정(리볼빙) 일시불, RCA- 일부결제금액이월약정(리볼빙) 단기카드대출(현금서비스)
  • +
  • 정상금액과 취소금액이 일치할 경우에는 해당내역이 표시되지 않을 수 있으며, 명세서 작성기준일 이후 취소할 경우에는 명세서 표기금액과 실제 결제할 금액이 상이할 수 있습니다.
  • +
  • 정상금액과 취소금액이 불일치 하는 경우에는 자동상계처리 되지 않을 수 있으며, 이 경우 취소전표 매입일 기준 해당 결제일에 차감 청구됩니다.
  • +
  • 수협, 신협, 상호저축은행, 지방은행, 한국시티, HSBC 결제계좌를 이용하시는 경우에는 미납금액 발생 시 2~3영업일 간격으로 출금됩니다.
  • +
  • 이용가맹점에 표시되는 “P”는 ‘포인트리 스타샵(적립) 가맹점’으로 포인트리 추가적립 및 포인트리를 현금처럼 이용 가능한 가맹점을 말합니다.
  • +
  • 교통카드 이용금액은 해당 이용기간의 합산금액을 표시하며, 상세내역은 KB국민카드 홈페이지에서 조회 가능합니다.
  • +
  • 해외이용대금은 국제카드사가 정한 환율에 의해 미달러화로 환산 후, 국제카드사가 부과하는 해외서비스수수료(비자,마스타:1%, 아멕스:1.4%)가 포함되며, 회원님께 원화로 청구되는 금액은 당사 접수일의 KB국민은행 최초 고시 전신환매도율이 적용되며, 청구금액에는 해외이용수수료(0.25%)가 포함됩니다.
  • +
  • 포인트리는 청구일 익영업일에 적립되며, 회원님의 명세서 작성기준일과 매출전표 매입일이 동일한 경우에는 적립예정 포인트리가 표기되지 않을 수 있습니다.
  • +
  • 고객의 매출 취소등의 사유로 포인트리가 차감되어 마이너스 포인트리가 발생할 경우에는 향후 적립되는 포인트리와 상계하며, 카드해지, 3개월간 포인트리 미적립등의 사유발생 시 마이너스 포인트리 1점당 1원으로 계산하여 고객에게 신용카드 대금으로 청구됩니다.
  • +
  • 카드 이용내역 중 이용 가맹점 정보(실제 판매자 상호, 구매 상품명 등)는 해당 가맹점에서 제공한 정보로, 고객님께서 실제 구매하신 정보와 상이할 수 있습니다.
  • +
  • 통신요금 자동납부 가맹점명 우측 괄호 안에 전화번호 뒤 4자리를 표시하고 있습니다.
  • + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
일부결제금액이월약정(리볼빙) 상세내역일부결제금액이월약정(리볼빙) 상세내역
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
일부결제금액이월약정(리볼빙) 상세내역
구분일시불단기카드대출(현금서비스)
이월분금액2,651,7050
수수료41,8050
신규
+ 이용분
금액421,7400
수수료00
합계금액①3,073,4450
수수료②41,8050
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
일부결제금액이월약정(리볼빙) 상세내역
산출방법약정결제최소결제
결제비율③ 100.00%10.00%
금액④=①x③
(단, 최소 5만원 청구)
3,073,445307,344
수수료⑤=②41,80541,805
이번달 결제금액
⑥=④+⑤
3,115,250349,149
결제 후 잔액
⑦=①-④
02,766,101
+
+
+

이용안내 열림

+
+
+
    +
  • 이월된 금액은 일부결제금액이월약정(리볼빙) 수수료가 부과되며, 즉시 결제를 원하실 경우는 고객센터로 문의하시기 바랍니다.
  • +
+
+ + + +
+ + + + + + + + +
+ 가계부작성 +
공인인증서 소지고객만 가능합니다.
+ +
+ + + + + + +
+ 이전페이지 + + 다음페이지 +
+ +
+ + + +

+ + 서비스혜택 + +

+
+

서비스혜택

+ + + + + + +
포인트 및 마일리지 적립안내포인트 및 마일리지 적립안내
+ + + + + + + + + + + + + + + + + +
포인트 및 마일리지 적립안내
 포인트리 506
+ +
+

+ 이용안내 열림 +

+
+
+
    +
  • 적립포인트리가 1점 이상 시 스타샵 적립가맹점 및 포인트리 사은품몰(www.kbpointreemall.com)에서 사용 가능하시며, KB국민은행 영업점에서 송금수수료 및 예ㆍ적금, 대출금, 이자납부 등 금융거래에 이용하실 수 있습니다. 또한, 3만점 이상 시 신용카드 결제대금에서 차감이 가능합니다.
  • +
  • 포인트리는 매출전표 최초 청구일(결제일) 익영업일에 적립됩니다.
  • +
  • 항공 마일리지는 다른 제휴카드 마일리지와 비행기 탑승 마일리지가 합산되어 표시됩니다.
  • + +
+
+ +
+ 사은품신청 + 포인트리상세조회 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ 이전페이지 + + 다음페이지 +
+ + +
+ + + +

+ + 이벤트&안내 + +

+
+

이벤트안내

+ + + + + + + + + + + + + + + + +
+ 분야별 이용현황 + 분야별 이용현황 +
+ + + + + + + + +
+
+ + + + + + + + + +
+
+
+ + + + + + + + + + + + + + +
주유/자동차/보험 0%
의료/스포츠/뷰티 8%
항공/여행 0%
쇼핑/전자상거래 39%
생활요금(교통/통신/관리비) 10%
교육 0%
외식/공연/영화 6%
기타 38%
+
+
+
+
+
    +
  • 분야별 이용현황은 신용카드 및 체크카드 이용금액을 합산하여 작성되었으며, 고객님의 명세서 작성기준일 '전월1일~말일까지'
    이용현황입니다.
  • +
  • 이용현황 비율이 5% 미만인 경우 그래프 상 분야명이 표시되지 않습니다.
  • +
  • 기타 자세한 사항은 KB국민카드 홈페이지 카드이용내역조회에서 확인 가능합니다. + + 바로가기 + +
  • +
+
+ + + + + + + + + + + +
안내말씀안내말씀
+
+ + + + +
+
+자동화기기 카드금융거래 이용 시 유의사항 안내
+1. 자동화기기 이용 시 불법 복제된 MS카드(IC칩이 없는 신용/체크카드)에 의한 사고를 예방하기 위하여 2015년 3월부터 모든 자동화기기에서 MS카드를 이용한 장기카드대출(카드론) 또는 단기카드대출(현금서비스) 거래가 제한됨을 안내드립니다.
+2. 현재 KB국민카드 중 MS카드를 소지하고 계신 고객님께서는 반드시 IC카드로 교체하여 주시기 바랍니다.
+ +
+
+새우편번호 시행 관련 안내 말씀
+국가기초구역 체계로의 새우편번호 시행('15.8.1)으로 기존 우편번호가 6자리에서 5자리로 사용이 의무화 됨에 따라 고객님의 우편번호를 새우편번호로 일괄 전환할 예정입니다.
+아울러 새우편번호는 도로명 주소 사용을 기반으로 하고 있어 KB국민카드 고객님을 위한 이용대금명세서 등 우편물이 올바르게 배송될 수 있도록 자택 또는 직장 주소를 도로명 주소로 전환하여 주시기 바랍니다.
+※ 자세한 내용은 KB국민카드 홈페이지(www.kbcard.com) 및 고객센터(1588-1688)로 문의하시기 바랍니다.
+
+ +
+
+장기카드대출(카드론) 결제대금 자동출금 변경안내
+장기카드대출(카드론) 결제계좌가 농협, 기업, SC, 외환, 신한, 하나, 우리은행인 경우 약정납입일에 납입하실 회차별 금액보다 출금가능잔액이 적을 경우 해당 결제대금 전체가 출금되지 않았으나 시행일(2015. 3.16)부터 출금가능잔액 범위내에서 출금되오니 이용에 참고하여 주시기 바랍니다.
+
+※ 자세한 내용은 홈페이지(www.kbcard.com) 및 고객센터(1588-1688)로 문의하여 주시기 바랍니다.
+ +
+
+KB국민 굿세이브 서비스 변경안내 (시행(예정)일: 2015년 5월21일)
+- 서비스 명칭 변경: KB국민 굿세이브 서비스 → 포인트 연계 할부서비스(KB국민 굿세이브)
+- 세이브 이용가능금액: 최대70만원 → 최대 50만원 내 물품가격의 30%까지 제한
+- 세이브 이용 횟수 제한: 회원별 1회 (중복 약정 불가)
+※ 자세한 내용은 KB국민카드 홈페이지(www.kbcard.com) 새소식 게시판 또는 KB국민카드 세이브 전용 콜센터(☎1577-9900)로 문의하여 주시기 바라며, 시행일은 대내 외 사정에 의해 변경될 수 있습니다.
+
+ + + + + +
+ 도로명 주소 일괄 전환에 따른 안내
+ 도로명주소법(법률 제10987호)에 따라 기 사용중인 고객님의 지번주소를 도로명주소로 전환하였습니다. 아직 전환되지 않은 고객님께서는 홈페이지, 고객센터, 영업점을 통해 개별 전환하여 주시기 바랍니다. +
  +
+
+ + + +
+
    +
  • 명세서는 3회이상 반송 등록시 발송이 되지 않습니다. + + + + +
  • 고객센터 : ☎ 1588-1688 (전국단일망) +
+
+ + + + + + +
+ 이전페이지 +
+ +
+ + +
+ 맨위로 이동 +
+
  + +
+ 서울 종로구 새문안로 3길 30 (주)KB국민카드 사업자등록번호 101-86-61717  COPYRIGHT(C)2011 KB KOOKMIN CARD CO.,LTD. ALL RIGHTS RESERVED. +
+
+ +
+ + + + diff --git a/src/main/webapp/AnySign4PC/test/LGUPlus_qa.jsp b/src/main/webapp/AnySign4PC/test/LGUPlus_qa.jsp new file mode 100644 index 00000000..3c6a6fa5 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/LGUPlus_qa.jsp @@ -0,0 +1,6452 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LG 유플러스 이메일 청구서입니다. +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page language="java" extends="xecure.servlet.jsp.XecureHttpJspPage" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/AnySign4PC/test/browserCertificate_user_guide.pdf b/src/main/webapp/AnySign4PC/test/browserCertificate_user_guide.pdf new file mode 100644 index 00000000..b4ee11c5 Binary files /dev/null and b/src/main/webapp/AnySign4PC/test/browserCertificate_user_guide.pdf differ diff --git a/src/main/webapp/AnySign4PC/test/certificate_mini.jsp b/src/main/webapp/AnySign4PC/test/certificate_mini.jsp new file mode 100644 index 00000000..53c01e58 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_mini.jsp @@ -0,0 +1,186 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> +<%@ page buffer="16kb" %> +<% + request.setCharacterEncoding("utf-8"); + response.setContentType("text/html; charset=utf-8"); + + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); + + String sign_result_page = "./sign_result.jsp"; +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + +Page Title - mini + + + + + + + + + + + + + + + + + + + + + + + + + +

설정

AnySign4PC 초기화 + +
AnySignLite 사용 유무 + +
Run + +
+
+
+
+
+전자서명 결과
+
+ + + diff --git a/src/main/webapp/AnySign4PC/test/certificate_pop.jsp b/src/main/webapp/AnySign4PC/test/certificate_pop.jsp new file mode 100644 index 00000000..b382cdcc --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_pop.jsp @@ -0,0 +1,61 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + + + + + + Test Page + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/AnySign4PC/test/certificate_wide.jsp b/src/main/webapp/AnySign4PC/test/certificate_wide.jsp new file mode 100644 index 00000000..7b4aa089 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_wide.jsp @@ -0,0 +1,153 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + +Page Title - 바닥페이지 + +<%@ include file="../transkey/includeKeyboardSecurity.jsp" %> + + + + + + + + + + + + + + + +
+
+ +
+ + +

+ +
+ +

+ + diff --git a/src/main/webapp/AnySign4PC/test/certificate_wide_ahnlab.jsp b/src/main/webapp/AnySign4PC/test/certificate_wide_ahnlab.jsp new file mode 100644 index 00000000..379440c6 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_wide_ahnlab.jsp @@ -0,0 +1,152 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + +Page Title - 바닥페이지 + + + + + + + + + + + +
+
+ +
+ + +

+ +
+ +

+ + diff --git a/src/main/webapp/AnySign4PC/test/certificate_wide_inca.jsp b/src/main/webapp/AnySign4PC/test/certificate_wide_inca.jsp new file mode 100644 index 00000000..0bc4c672 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_wide_inca.jsp @@ -0,0 +1,160 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + +Page Title - 바닥페이지 + + + + + + + + +
+
+ +
+ + +

+ +
+ +

+ + diff --git a/src/main/webapp/AnySign4PC/test/certificate_wide_inca10.jsp b/src/main/webapp/AnySign4PC/test/certificate_wide_inca10.jsp new file mode 100644 index 00000000..4644d14d --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_wide_inca10.jsp @@ -0,0 +1,148 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + +Page Title - 바닥페이지 + + + + + + + + + + + +
+
+ +
+ + +

+ +
+ +

+ + diff --git a/src/main/webapp/AnySign4PC/test/certificate_wide_kos.jsp b/src/main/webapp/AnySign4PC/test/certificate_wide_kos.jsp new file mode 100644 index 00000000..2222625e --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_wide_kos.jsp @@ -0,0 +1,144 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + +Page Title - 바닥페이지 + + + + + + + +
+
+ +
+ + +

+ +
+ +

+ + diff --git a/src/main/webapp/AnySign4PC/test/certificate_wide_nxkey.jsp b/src/main/webapp/AnySign4PC/test/certificate_wide_nxkey.jsp new file mode 100644 index 00000000..407a330a --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certificate_wide_nxkey.jsp @@ -0,0 +1,144 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<% + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + +Page Title - 바닥페이지 + + + + + + + +
+
+ +
+ + +

+ +
+ +

+ + diff --git a/src/main/webapp/AnySign4PC/test/certselectwide.jsp b/src/main/webapp/AnySign4PC/test/certselectwide.jsp new file mode 100644 index 00000000..d30e8e18 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/certselectwide.jsp @@ -0,0 +1,830 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> +<%@ page buffer="16kb" %> +<% + request.setCharacterEncoding("utf-8"); + response.setContentType("text/html; charset=utf-8"); + + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expires", 0); + + String sign_result_page = "./sign_result.jsp"; +%> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + +Page Title - 바닥페이지 + + + + + + + + + + + + + + + +<%@ include file="../transkey/includeKeyboardSecurity.jsp" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +

공통 설정

Language + ko-KR + en-US +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

AnySign4PC 설정

AnySign4PC 설치 확인 및 초기화 + Version : + +
가상 키패드Transkey
v4.5.1 (2013.01.11)
+ +
XecureKeyPad
v1.0.0.2 (2016.10.19)
+ +
Openkeyboard
v1.0 (2013.07.21)
+ +
키보드 보안TouchenKey
v3.1.0.11 (2013.02.26)
+ Module Load (ActiveX/Plugin): [설치페이지] + +
nProtect KeyCrypt HTML5 + [설치파일] + +
키보드 보안AhnLab Safe Transaction
v1.3.4.393(2015.12.30)
+ + [설치파일] + +
TouchEn nxKey
v1.0.0.8 (2015.07.24)
+ [설치페이지] + +
Kings Online Security
v1.0.0.7 (2016.04.07)
+ [설치파일] + +
키보드 보안 + 가상 키패드nProtect Online Security V1.0
v1.0 (2015.12.23)
+ [설치파일] + +
보안 토큰XecureHSM 1.1.0.0 + http://download.softforum.co.kr/Published/XecureHSM/xhsm_install.exe + [다운로드] +
+
+ + + + + + + + + + + + + + +

AnySignLite 설정

AnySignLite 사용 유무 + +
가상 키패드XecureKeyPad Lite
v1.0.0.2 (2016.09.28)
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +

XecureFreeSign 설정

XecureFreeSign 사용 유무 + +
서명 방식 + server + server-digest + client +
가상 키패드XecureKeyPad E2E
v1.0.1.0 (2017.01.17)
+ +
OpenAPI + +
+
+
+ +

SignDataCMS

+ + + + +
+ +
+
+ +
+ +
+ + + + + +
+
+
+ +
+ + +

+ +
+ +

+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/check_integrity.jsp b/src/main/webapp/AnySign4PC/test/check_integrity.jsp new file mode 100644 index 00000000..c0d12ea7 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/check_integrity.jsp @@ -0,0 +1,100 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.security.*" %> +<%@ page import="javax.crypto.Mac" %> +<%@ page import="javax.crypto.SecretKey" %> +<%@ page import="javax.crypto.spec.SecretKeySpec" %> + +<% + XecureConfig aXecureConfig = new XecureConfig (); + SignVerifier verifier = null; + + StringBuffer aResponse = new StringBuffer (); + + String sm = request.getParameter("SIGNED"); + String integrityValue = request.getParameter("ITGTVALUE"); + String DaemonPortNumber = request.getParameter("PORTVALUE"); + + if (sm != null && sm.substring(0, 4).equalsIgnoreCase("3082")) + { + if (sm != null && sm.length() < 3100) + { + aResponse.append ("({"); + aResponse.append ("code:\"" + "-1000" + "\","); + aResponse.append ("reason:\"" + "invalid parameter" + "\","); + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); + return; + } + /* Hex encoded Data */ + verifier = new SignVerifier (aXecureConfig , sm, 0); + } + else + { + /* Base64 encoded Data */ + verifier = new SignVerifier (aXecureConfig , sm, 1); + System.out.println ("base64:" + sm); + } + + aResponse.append ("({"); + aResponse.append ("code:\"" + verifier.getLastError () + "\","); + aResponse.append ("reason:\"" + verifier.getLastErrorMsg () + "\","); + + if (verifier.getLastError() == 0) + { + aResponse.append ("plain:\"" + verifier.getVerifiedMsg_Text () + "\","); + aResponse.append ("certificatePEM:\"" + verifier.getSignerCertificate().getCertPem ().replaceAll ("\n", "") + "\","); + aResponse.append ("subjectRDN:\"" + verifier.getSignerCertificate().getSubject () + "\","); + } + else + { + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); + return; + } + + //////////////////////////////////////////////////////////////////////////////////// + // check integrity code start. + + int VerifyResult = verifier.verifyAnySignIntegrity(integrityValue,DaemonPortNumber); + + if (VerifyResult != 0) + { + // 무결성 검증 실패 + // 필요한 경우 현재 서버의 사용자 세션을 삭제하거나 서비스를 중단시키는 것을 권고한다. + // + // 서버 사용자 세션 중단코드 작성 공간 + // ------------------------------------- + // + // + // + // ------------------------------------- + + //out.println ("alert(\"Integrity Check Fail!!\");"); + aResponse.setLength(0); + aResponse.append ("({"); + aResponse.append ("code:\"" + verifier.getLastError () + "\","); + aResponse.append ("reason:\"" + verifier.getLastErrorMsg () + "\","); + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); + return; + } + else + { + //out.println ("alert(\"Integrity Check Success!!\");"); + } + + // check integrity finish. + //////////////////////////////////////////////////////////////////////////////////// + + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); +%> + diff --git a/src/main/webapp/AnySign4PC/test/dev_server.jsp b/src/main/webapp/AnySign4PC/test/dev_server.jsp new file mode 100644 index 00000000..50b97d03 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/dev_server.jsp @@ -0,0 +1,35 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + String envData = request.getParameter("ENVDATA"); + + XecureConfig aXecureConfig = new XecureConfig (); + + if (envData == null || envData.length() == 0) + { + out.println("invalid param"); + return; + } + + if (envData.substring(0,1).equalsIgnoreCase("3") == false) + { + out.println("invalid param"); + return; + } + + EnvelopeData ed = new EnvelopeData(aXecureConfig); + String result = ed.deEnvelopeData(envData); + + if (ed.getLastError() == 0) + { + out.println(result); + } + else + { + out.println("Error:[" + ed.getLastError() + "]" + ed.getLastErrorMsg()); + } +%> diff --git a/src/main/webapp/AnySign4PC/test/enc_server_response.jsp b/src/main/webapp/AnySign4PC/test/enc_server_response.jsp new file mode 100644 index 00000000..59892511 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/enc_server_response.jsp @@ -0,0 +1,1384 @@ + + + +ENC DEMO + + + + + +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page language="java" extends="xecure.servlet.jsp.XecureHttpJspPage" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + +

RESULT 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 3

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 4

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 6

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 7

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 8

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 9

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 3

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 4

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 6

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 7

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 8

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 9

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ +

RESULT 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + +

+

+ + + diff --git a/src/main/webapp/AnySign4PC/test/enc_server_response_20.jsp b/src/main/webapp/AnySign4PC/test/enc_server_response_20.jsp new file mode 100644 index 00000000..4d8a179a --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/enc_server_response_20.jsp @@ -0,0 +1,1422 @@ + + + +ENC DEMO + + + + + +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page language="java" extends="xecure.servlet.jsp.XecureHttpJspPage" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + +

RESULT 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 3

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 4

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 6

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 7

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 8

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 9

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 3

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 4

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 6

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 7

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 8

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 9

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + + +

RESULT 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
user MAC address : + <%=request.getSession().getAttribute("MAC") %> +
user hard serial : + <%=request.getSession().getAttribute("Serial") %> +
Client Request QueryString : +<%=((XecureHttpServletRequest)request).req.getQueryString( ) %> +
Client Request QueryString abc: +<%=((XecureHttpServletRequest)request).req.getParameter("abc" ) %> +
Client Request QueryString pop: +<%=((XecureHttpServletRequest)request).req.getParameter("pop" ) %> +
Decrypted QueryString : +<%=request.getQueryString( ) %> +
Decrypted QueryString abc : +<%=request.getParameter("abc" ) %> +
Decrypted QueryString pop : +<%=request.getParameter("pop" ) %> +
Decrypted text_field1 : +<%=request.getParameter("text_field1" ) %> + +
Decrypted text_field2 : +<%=request.getParameter("text_field2" ) %> +
+ + +

+

+ + + diff --git a/src/main/webapp/AnySign4PC/test/fcms.jsp b/src/main/webapp/AnySign4PC/test/fcms.jsp new file mode 100644 index 00000000..8ebf404d --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/fcms.jsp @@ -0,0 +1,2622 @@ + +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> +<%@ page import="java.io.File" %> +<% + File file = null; + int i = 0; + File[] files = null; + +// String servletPath = request.getServletPath(); +// String realPath = request.getRealPath(servletPath); + +// file = new File (realPath); +// realPath = file.getParent() + "/download"; + + String realPath = "/home/eomjh/workspace/AnySignLite_temp/js/test/FileStore/"; + file = new File(realPath); + if (file.exists() && file.isDirectory()) + { + files = file.listFiles(); + } +%> + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+
+ +

SignFileEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aLimitPassword
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aSignOption + (서명 옵션)
+ + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명에 Cert Chain을 포함한다.
+ + 0x00000002 : 서명에 CRL을 포함한다.
+ + 0x00000020 : 다른 인증서로 추가 서명을 진행한다.
+ + 0x00000040 : 분리서명 (서명 파일을 생성하지 않고, 서명값을 리턴합니다)
+ + 0x00000080 : 분리서명 결과값 Base64 (기본값 Hex)
+ + 0x00001000 : 인증서 캐쉬
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+ +
aDescription
Run + + + +
+ +
Output + +
+
+
+ +

SignFileExWithSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aCertSerial
aCertLocation
aLimitPassword
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aSignOption + (서명 옵션)
+ + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명에 Cert Chain을 포함한다.
+ + 0x00000002 : 서명에 CRL을 포함한다.
+ + 0x00000020 : 다른 인증서로 추가 서명을 진행한다.
+ + 0x00000040 : 분리서명 (서명 파일을 생성하지 않고, 서명값을 리턴합니다)
+ + 0x00000080 : 분리서명 결과값 Base64 (기본값 Hex)
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+ +
aDescription
Run + +
Output + +
+
+
+ +

SignFileExWithVID

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aLimitPassword
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aSignOption + (서명 옵션)
+ + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명에 Cert Chain을 포함한다.
+ + 0x00000002 : 서명에 CRL을 포함한다.
+ + 0x00000020 : 다른 인증서로 추가 서명을 진행한다.
+ + 0x00000040 : 분리서명 (서명 파일을 생성하지 않고, 서명값을 리턴합니다)
+ + 0x00000080 : 분리서명 결과값 Base64 (기본값 Hex)
+ (VID 옵션)
+ + 0x00000008 : WEB 으로 부터 직접 입력받는다.
+ + 0x00000010 : IDN값을 입력받지 않는다. (""로 대체)
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+ +
aIdn
aDescription
Run + + +
Output + +
VID Output + +
+
+
+ +

SignFileExWithVID_Serial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aCertSerial
aCertLocation
aLimitPassword
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aSignOption + (서명 옵션)
+ + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명에 Cert Chain을 포함한다.
+ + 0x00000002 : 서명에 CRL을 포함한다.
+ + 0x00000020 : 다른 인증서로 추가 서명을 진행한다.
+ + 0x00000040 : 분리서명 (서명 파일을 생성하지 않고, 서명값을 리턴합니다)
+ + 0x00000080 : 분리서명 결과값 Base64 (기본값 Hex)
+ (VID 옵션)
+ + 0x00000008 : WEB 으로 부터 직접 입력받는다.
+ + 0x00000010 : IDN값을 입력받지 않는다. (""로 대체)
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+ +
aIdn
aDescription
Run + +
Output + +
VID Output + +
+
+
+ +

VerifyFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaInputFilePath + + +
aSignedData
aVerifyOption + (검증 옵션)
+ + 0x00000000 : 기본 검증
+ + 0x00000004 : 인증서 CRL 검증을 수행한다.
+ + 0x00000010 : 분리서명 검증 (원문 파일과 서명값을 입력한다)
+ (공통 옵션)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x10000000 : 진행창 완료 후 검증 확인창을 띄운다.
+ + 0x20000000 : 검증 확인창에 추가 서명 버튼을 표시한다.
+
aDescription
Run + +
Output + +
+
+
+ +

VerifyAndSignFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aCertSerial
aCertLocation
aLimitPassword
aInputFilePath + + +
aOutputFilePath
aSignedData
aVerifyOption + (검증 옵션)
+ + 0x00000000 : 기본 검증
+ + 0x00000004 : 인증서 CRL 검증을 수행한다.
+ + 0x00000010 : 분리서명 검증 (원문 파일과 서명값을 입력한다)
+ (공통 옵션)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x10000000 : 진행창 완료 후 검증 확인창을 띄운다.
+ +
aSignOption + (서명 옵션)
+ + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명에 Cert Chain을 포함한다.
+ + 0x00000002 : 서명에 CRL을 포함한다.
+ + 0x00000004 : 다른 인증서로 추가 서명을 진행한다.
+ + 0x00000010 : 분리서명 (서명 파일을 생성하지 않고, 서명값을 리턴합니다)
+ + 0x00000020 : 분리서명 결과값 Base64 (기본값 Hex)
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+ +
aDescription
aDescription
Run + +
Output + +
+
+
+ +

GetVerifiedFileCertInfo

+
+ + + + + + + + + + + + + + + + + + +
InputaOption + + 0 : Full (인증서의 자세한 정보)
+ + 1 : Simple (서명시간 및 인증서의 간단한 정보)
+
aIndex + + + + + + +
+ * Full
+ 0 인증서 검증 결과
   (0 - 정상, 오류코드|오류메세지)
+ 1 버전
+ 2 일련번호
+ 3 서명 알고리즘
+ 4 발급자
+ 5 다음부터 유효함
+ 6 다음까지 유효함
+ 7 발급대상
+ 8 공개키 알고리즘
+ 9 공개키
+ 10 서명
+ 11 CA 키 고유번호
+ 12 인증서 정책
+ 13 키사용
+ 14 기본 규제
+ 15 주체 대체 이름
+ 16 CRL 분배점
+ 17 사용자 알림
+ 18 CPS
+ 19 기관정보 엑세스
+
+ * Simple
+ 0 서명 시간
+ 1 인증서 상태
   (0 - 정상, 1 - 만료 예정, 2 - 만료 된)
+ 2 인증서 구분
+ 3 사용자
+ 4 발급자 구분
+ 5 유효기간
+ 6 발급자
+ 7 일련번호
+
+
Run + +
Output + +
+
+
+ +

ExtractFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaInputFilePath + + +
aOutputFilePath
aOption + + 0x00000000 : 기본 옵션
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+
aDescription
Run + +
Output + +
+
+
+ +

EnvelopeFileWithPEM

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aCertPEM
aOption + + 0x00000000 : 기본 옵션
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

EnvelopeFileWithCert

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aOption + + 0x00000000 : 기본 옵션
+ + 0x00000004 : 여러개의 인증서로 암호화한다.
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

EnvelopeFileWithCert_Serial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aCertSerial
aCertLocation
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aOption + + 0x00000000 : 기본 옵션
+ + 0x00000004 : 여러개의 인증서로 암호화한다.
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

DeEnvelopeFileWithCert

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aLimitPassword
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aOption + + 0x00000000 : 기본 옵션
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

DeEnvelopeFileWithCert_Serial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aCertSerial
aCertLocation
aLimitPassword
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aOption + + 0x00000000 : 기본 옵션
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

EnvelopeFileWithPasswd

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aPassword + +
aOption + (패스워드 입력창 옵션)
+ + 0x00000000 : WEB으로 부터 직접 입력받는다.
+ + 0x00000001 : 패스워드 입력창을 출력한다.
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

DeEnvelopeFileWithPasswd

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aPassword + +
aOption + (패스워드 입력창 옵션)
+ + 0x00000000 : WEB으로 부터 직접 입력받는다.
+ + 0x00000001 : 패스워드 입력창을 출력한다.
+ (공통 옵션)
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

GetEnvelopedFileInfo

+
+ + + + + + + + + + + + + + + + + + +
InputaInputFilePath + + +
aOption + + 0x00000001 : 전자봉투 타입
+ + 0x00000002 : 파일명
+ + 0x00000004 : 인증서 일련번호
+
Run + +
Output + +
+
+
+ +

UploadFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aPath
aQuery
aHostName
aPort
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOption + + 0x00000000 : 기본 옵션
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

DownloadFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aPath
aQuery
aHostName
aPort
aTargetFilePath + + * Multi Select: Ctrl + Click
+
+ +
aDownloadPath + + +
aOption + + 0x00000000 : 기본 옵션
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
Run + +
Output + +
+
+
+ +

ZipFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOutputFilePath
aOption + + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+
aDescription
Run + +
Output + +
+
+
+ +

UnZipFile

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aInputFilePath + + +
aOutputFilePath
aOption + + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+
aDescription
Run + +
Output + +
+
+
+ +

SelectFile

+
+ + + + + + + + + + + + + + + + + + + + + + +
InputaInitPath
aFilterString + +
aOption + + 0x00000000 : 열기 모드
+ + 0x00000001 : 저장 모드
+ + 0x00000002 : 다중 파일 선택 (저장 모드인 경우 폴더 선택창을 띄운다)
+
Run + +
Output + +
+
+
+ +

GetFileInfo

+
+ + + + + + + + + + + + + + + + + + +
InputaFilePath + + +
aOption + + 0x00000001 : 크기
+ + 0x00000002 : 생성 시간
+ + 0x00000004 : 마지막 접근 시간
+ + 0x00000008 : 마지막 수정 시간
+
Run + +
Output + +
+
+
+ +

ClearTempFile

+
+ + + + + + + + + + + + + + +
InputaXgateAddress
Run + +
Output + +
+
+
+ +

GetHomeDir

+
+ + + + + + + + + +
Run + +
Output + +
+
+
+ +
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/fcms_updownloadex.jsp b/src/main/webapp/AnySign4PC/test/fcms_updownloadex.jsp new file mode 100644 index 00000000..901a1235 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/fcms_updownloadex.jsp @@ -0,0 +1,479 @@ + +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> +<%@ page import="java.io.File" %> +<% + File file = null; + int i = 0; + File[] files = null; + + String realPath = "/home/eomjh/workspace/FCMS/js/test/FileStore/"; + file = new File(realPath); + if (file.exists() && file.isDirectory()) + { + files = file.listFiles(); + } +%> + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+
+ +

UploadFileEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aPath
aQuery
aHostName
aPort
aInputFilePath + + 0 : 단일 파일 선택
+ + 2 : 복수 파일 선택 (Ctrl + Click)
+ + +
aOption + + 0x00000000 : 기본 옵션
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
aSID
aCharset + + utf-8
+ + euc-kr
+
Run + +
Output + +
+
+
+ +

DownloadFileEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aPath
aQuery
aHostName
aPort
aTargetFilePath + + * Multi Select: Ctrl + Click
+
+ +
aDownloadPath + + +
aOption + + 0x00000000 : 기본 옵션
+ + 0x00010000 : 저장할 파일 선택창을 출력하지 않는다.
+ + 0x00020000 : 저장할 파일을 임시 폴더에 저장한다.
+ + 0x00040000 : 동일한 이름의 저장 파일이 있는 경우 오류 처리한다.(기본값은 덮어쓴다)
+ + 0x00080000 : 진행창을 보이지 않는다.
+ + 0x00100000 : 성공 시 진행창을 닫는다.(오류 시는 닫지 않는다)
+ + 0x00200000 : 완료 시 진행창을 닫는다.(오류가 발생해도 닫는다)
+ + 0x00400000 : 오류 시 다음 파일 계속 진행한다.(기본값은 종료한다)
+ + 0x00800000 : 오류 시 다음 파일 계속 진행할지 확인창을 띄운다.
+
aDescription
aSID
aCharset + + utf-8
+ + euc-kr
+
Run + +
Output + +
+
+
+
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/fcms_updownloadex_euckr.jsp b/src/main/webapp/AnySign4PC/test/fcms_updownloadex_euckr.jsp new file mode 100644 index 00000000..6e985d82 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/fcms_updownloadex_euckr.jsp @@ -0,0 +1,481 @@ + +<%@ page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> +<%@ page import="java.io.File" %> +<% request.setCharacterEncoding("euc-kr"); %> +<% response.setContentType("text/html; charset=euc-kr"); %> +<% + File file = null; + int i = 0; + File[] files = null; + + String realPath = "/home/eomjh/workspace/FCMS/js/test/FileStore/"; + file = new File(realPath); + if (file.exists() && file.isDirectory()) + { + files = file.listFiles(); + } +%> + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+
+ +

UploadFileEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aPath
aQuery
aHostName
aPort
aInputFilePath + + 0 :
+ + 2 : (Ctrl + Click)
+ + +
aOption + + 0x00000000 : ⺻ ɼ
+ + 0x00080000 : â ʴ´.
+ + 0x00100000 : â ݴ´.( ô ʴ´)
+ + 0x00200000 : Ϸ â ݴ´.( ߻ص ݴ´)
+ + 0x00400000 : Ѵ.(⺻ Ѵ)
+ + 0x00800000 : Ȯâ .
+
aDescription
aSID
aCharset + + utf-8
+ + euc-kr
+
Run + +
Output + +
+
+
+ +

DownloadFileEx

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aPath
aQuery
aHostName
aPort
aTargetFilePath + + * Multi Select: Ctrl + Click
+
+ +
aDownloadPath + + +
aOption + + 0x00000000 : ⺻ ɼ
+ + 0x00010000 : â ʴ´.
+ + 0x00020000 : ӽ Ѵ.
+ + 0x00040000 : ̸ ִ óѴ.(⺻ )
+ + 0x00080000 : â ʴ´.
+ + 0x00100000 : â ݴ´.( ô ʴ´)
+ + 0x00200000 : Ϸ â ݴ´.( ߻ص ݴ´)
+ + 0x00400000 : Ѵ.(⺻ Ѵ)
+ + 0x00800000 : Ȯâ .
+
aDescription
aSID
aCharset + + utf-8
+ + euc-kr
+
Run + +
Output + +
+
+
+
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/file_download.jsp b/src/main/webapp/AnySign4PC/test/file_download.jsp new file mode 100644 index 00000000..c155cf67 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/file_download.jsp @@ -0,0 +1,57 @@ +<%@ page contentType="text/html; charset=euc-kr" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.file.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% +try{ + +////////////////////////////////////////////////////////////////////////// +//tomcat + +// out.clear(); +// out = pageContext.pushBody(); + + + XecureServlet xservlet = new XecureServlet(request, response); + // tomcat, 기타 WAS + XecureFileOutputStream file; + file = new XecureFileOutputStream(xservlet.getXecureSession(), + xservlet.request, + xservlet.response, + response.getOutputStream()); + // jeus + /* + XecureFilePrintWriter file; + file = new XecureFilePrintWriter(xservlet.getXecureSession(), + xservlet.request, + xservlet.response, + response.getWriter()); + */ + + String filePATH = "/home/eomjh/workspace/AnySignLite_temp/js/test/FileStore/" + xservlet.request.getParameter("filename"); + + file.flush(); + //file.fileDownload(); + file.fileDownload(filePATH); +} +catch(FileNotFoundException e) { + out.print ("SFE123"); + System.out.println("FileNotFoundException"); +} +catch(IOException e) { + out.print ("SFE123"); + System.out.println("IOException"); +} +catch(XecureServletConfigException e) { + out.print ("SFE123"); + System.out.println("XecureServletConfigException"); +} +catch(XecureServletException e) { + out.print ("SFE123"); + System.out.println("XecureServletException"); +} + +%> diff --git a/src/main/webapp/AnySign4PC/test/file_upload.jsp b/src/main/webapp/AnySign4PC/test/file_upload.jsp new file mode 100644 index 00000000..d773073c --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/file_upload.jsp @@ -0,0 +1,39 @@ +<%@ page contentType="text/html; charset=euc-kr" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.file.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + + +<% + +session.setAttribute("session1", "s1_value"); +session.setAttribute("session2", "s2_value"); + + +String aUploadDirectory = "/home/eomjh/workspace/AnySignLite_temp/js/test/FileStore/"; + +try { + + XecureFileInputStream file; + XecureServlet xservlet = new XecureServlet(request, response); + + file = new XecureFileInputStream(xservlet.getXecureSession(), xservlet.request); + file.saveFileAt(aUploadDirectory); + + out.print ("OK"); +} +catch(XecureServletConfigException e) { + out.print ("SFE20"); +} +catch(XecureServletException e) { + out.print ("SFE21"); +} +catch(IOException e) { + out.print ("SFE22"); +} +catch(Exception e) { + out.print ("SFE23"); +} +%> diff --git a/src/main/webapp/AnySign4PC/test/file_upload_proxy.jsp b/src/main/webapp/AnySign4PC/test/file_upload_proxy.jsp new file mode 100644 index 00000000..0d4fd49a --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/file_upload_proxy.jsp @@ -0,0 +1,44 @@ +<%@ page contentType="text/html; charset=euc-kr" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.file.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + + +<% +session.setAttribute("session1", "s1_value"); +session.setAttribute("session2", "s2_value"); + + +String aUploadDirectory = ""; + +try { + + XecureFileInputStream file; + XecureServlet xservlet = new XecureServlet(request, response); + + file = new XecureFileInputStream(xservlet.getXecureSession(), xservlet.request); + String name = file.getFileName(); + if (name != null) { + file.saveFileAt(aUploadDirectory); + + out.print ("OK"); + } + else { + out.print ("upload file name is null"); + } +} +catch(XecureServletConfigException e) { + out.print ("SFE20"); +} +catch(XecureServletException e) { + out.print ("SFE21"); +} +catch(IOException e) { + out.print ("SFE22"); +} +catch(Exception e) { + out.print ("SFE23"); +} +%> diff --git a/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_register.jsp b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_register.jsp new file mode 100644 index 00000000..dd7adc3b --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_register.jsp @@ -0,0 +1,331 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + + +
+ + + +12인증서 (재)발급, 갱신등록 + + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + +
  +

인증서 (재)발급, 갱신등록 +

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   +

이 페이지는 금융결제원 인증기관에 사용자를 등록하고 작업을 수행합니다. 반드시 운영시스템에서는 + 이 페이지를 웹상에서 제거하고 절대 운영시스템에서는 수행하지 마십시요. 사용자 확인을 + 위해서 아래의 정보를 입력해 주십시요.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
자동입력
개인/법인/단체 구분
+  + + + +개인 + + +  + + +법인 +
+ + 전자거래범용 + 은행/보험용
+ 신용카드결제용 + 보안메일용 + +
+
법인/단체명 ( 법인/단체일 경우 필수, 영문 필수 )
개인명 / 법인단체 세부명 ( 필수 )
영문 개인명 / 영문 법인단체 세부명 ( 옵션 )
개인 (법인단체) ID ( 필수 )
주민등록번호 ( 사업자 등록번호 ) ( 필수 )
전자우편 ( 옵션 )
핸드폰 ( 옵션 )
Fax ( 옵션 )
자택 우편번호 ( 개인 필수 )
자택 주소 ( 개인 필수 )
자택 전화 ( 개인 필수 )
회사 우편번호 ( 법인 필수 )
회사 주소 ( 법인 필수 )
회사 전화 ( 법인 필수 )
+
+

+
+ +
+
+ +
   +

 

+
   
   +

 

+
   
   
+
  
+
+
+ +  
+ + + + diff --git a/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_request.jsp b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_request.jsp new file mode 100644 index 00000000..fd19b9b5 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_request.jsp @@ -0,0 +1,295 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +
+ + + + + +<% + String account = request.getParameter("account"); + String ac_pwd = request.getParameter("ac_pwd"); + String pcard = request.getParameter("pcard"); + String operaterId = "internet"; + String user_policy_type = request.getParameter("user_policy_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + user_name = new String(user_name.getBytes("ISO-8859-1"), "UTF-8"); + out.println( "user_name:" + user_name + "
"); + + String euser_name = request.getParameter("euser_name"); + String user_id = request.getParameter("user_id"); + String ssn = request.getParameter("ssn"); + + + + + + String policy_type ; + String user_type; +/* + if ( user_type.equals("1") ) { + policy_type = "01"; + user_id = policy_type + ssn.charAt(5) + user_id; + } + else if(user_type.equals("2")) { + policy_type = "02"; + user_id = policy_type + ssn.charAt(8) + user_id; + } + else policy_type = "06"; +*/ + + user_type = user_policy_type.substring(0, 1); + + if( user_type.equals("1") ) { + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(5) + user_id; + + + } + else if ( user_type.equals("2") ) { + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(8) + user_id; + + } + else + policy_type = user_policy_type.substring(1,2); + + String email = request.getParameter("email"); + String cell_phone = request.getParameter("cell_phone"); + String fax = request.getParameter("fax"); + String zipcode = request.getParameter("zipcode"); + String address = request.getParameter("address"); + String phone = request.getParameter("phone"); + String czipcode = request.getParameter("czipcode"); + String caddress = request.getParameter("caddress"); + String cphone = request.getParameter("cphone"); + int ra_result; + + XecureConfig xconf = new XecureConfig (); + PublicRA sfra = new PublicRA (xconf); + + ra_result = sfra.registerNewUser ( operaterId, user_type, company_name, user_name, euser_name, user_id, + ssn, policy_type, email,cell_phone, fax, zipcode, address, phone, + czipcode, caddress, cphone ); + +%> + + + +사용자 등록 확인 +<%=policy_type%> + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + +
  +

사용자 + 등록 확인

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   
+
+

 

+ +<% + if ( ra_result == 0 ) { +%> + + + + + + + + + + + + +
사용자<%=user_name%>
계좌번호<%=account%>
등록일<%=sfra.getResponseFromRegUser("REGDATE")%>
등록번호<%=sfra.getResponseFromRegUser("REGSERIAL")%>
사용자 ID<%=sfra.getResponseFromRegUser("USERID")%>
주민등록번호<%=sfra.getResponseFromRegUser("SSN")%>
참조코드<%=sfra.getResponseFromRegUser("REFCODE")%>
인가코드<%=sfra.getResponseFromRegUser("AUTHCODE")%>
인증정책식별코드<%=sfra.getResponseFromRegUser("POLICYTYPE")%>
최상위인증기관 해쉬값<%=sfra.getResponseFromRegUser("ROOTHASH")%>
+
+<%=request.getParameter("user_name")%>'님의 사용자 정보가 금융결제원 인증기관에 등록 되었습니다.
+
+ 이제 '확인' 버튼을 누르시면 금융결제원 공인인증기관으로 부터 인증서를 발급받을 수 있습니다. +

+
+ + + +
+<% } + else { +%> +

사용자 등록에 실패했습니다.

+에러 코드 : <%=sfra.getLastError()%>
+에러 메시지 : <%=sfra.getLastErrorMsg()%>
+<%=xconf.getRaHost() + xconf.getRaPort()%> +<% } +%> + +
+
   +

 

+
   
   +

 

+
   
   
+
  
+
+
+ +  
+ + diff --git a/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_rereg.jsp b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_rereg.jsp new file mode 100644 index 00000000..bfc1652a --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/cert_rereg.jsp @@ -0,0 +1,265 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + + +
+ + + + +<% + String account = request.getParameter("account"); + String ac_pwd = request.getParameter("ac_pwd"); + String pcard = request.getParameter("pcard"); + String operaterId = "internet"; + //String user_type = request.getParameter("user_type") ; + String user_policy_type = request.getParameter("user_policy_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + String euser_name = request.getParameter("euser_name"); + String user_id = request.getParameter("user_id"); + String ssn = request.getParameter("ssn"); + + String policy_type ; + String user_type; + +/* + if ( user_type.equals("1") ) { + policy_type = "01"; + user_id = policy_type + ssn.charAt(5) + user_id; + } + else if(user_type.equals("2")) { + policy_type = "02"; + user_id = policy_type + ssn.charAt(8) + user_id; + } + else policy_type = "06"; +*/ + + user_type = user_policy_type.substring(0, 1); + + if( user_type.equals("1") ) { + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(5) + user_id; + + + } + else if ( user_type.equals("2") ) { + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(8) + user_id; + + } + else + policy_type = user_policy_type.substring(1,2); + + String email = request.getParameter("email"); + String cell_phone = request.getParameter("cell_phone"); + String fax = request.getParameter("fax"); + String zipcode = request.getParameter("zipcode"); + String address = request.getParameter("address"); + String phone = request.getParameter("phone"); + String czipcode = request.getParameter("czipcode"); + String caddress = request.getParameter("caddress"); + String cphone = request.getParameter("cphone"); + int ra_result; + + XecureConfig xconf = new XecureConfig (); + PublicRA sfra = new PublicRA (xconf); + + ra_result = sfra.registerRenewUser ( operaterId, user_type, company_name, user_name, euser_name, user_id, + ssn, policy_type, email,cell_phone, fax, zipcode, address, phone, + czipcode, caddress, cphone ); + +%> + + + +사용자 등록 확인 + + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + +
  +

사용자 + 등록 확인

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   
+
+ +
+<% + if ( ra_result == 0 ) { +%> + + + + + + + + + +
사용자<%=user_name%>
등록일<%=sfra.getResponseFromRegUser("REGDATE")%>
등록번호<%=sfra.getResponseFromRegUser("REGSERIAL")%>
사용자 ID<%=sfra.getResponseFromRegUser("USERID")%>
주민등록번호<%=sfra.getResponseFromRegUser("SSN")%>
참조코드<%=sfra.getResponseFromRegUser("REFCODE")%>
인가코드<%=sfra.getResponseFromRegUser("AUTHCODE")%>
+
+<%=request.getParameter("user_name")%>'님의 사용자 정보가 금융결제원 인증기관에 등록 되었습니다.
+
+ 이제 '확인' 버튼을 누르시면 금융결제원 공인인증기관으로 부터 인증서를 재발급받을 수 있습니다. +

+
+ + + +
+<% } + else { +%> +

사용자 등록에 실패했습니다.

+에러 코드 : <%=sfra.getLastError()%>
+에러 메시지 : <%=sfra.getLastErrorMsg()%>
+<% } +%> + +

 

+
+
   +

 

+
   
   +

 

+
   
   
+
  
+
+
+ +  
+ + diff --git a/src/main/webapp/AnySign4PC/test/ibs/pub_cert/user_regist.jsp b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/user_regist.jsp new file mode 100644 index 00000000..ab2014f5 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/pub_cert/user_regist.jsp @@ -0,0 +1,285 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="xecure.crypto.jni.XecureLib" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.Calendar" %> + +<% + String []nameList = { + "자신", "남편", "부인", "딸램", "아들", "막내", "장남", "장녀", + "차녀", "차남", "엄마", "아빠", "형님", "언니", "누나", "오빠", "동생", + "할아버지", "할머니", "큰아버지", "큰어머니", "삼촌", "사촌", + "매부", "매재", "매형", "제수", "제부", "고모", "고모부", + "이모", "이모부", "아저씨", "조카"}; + + java.util.Random aRandom = null; + + aRandom = (java.util.Random)application.getAttribute ("xwup.ibs.random"); + if (aRandom == null) + { + aRandom = new java.util.Random (); + application.setAttribute ("xwup.ibs.random", aRandom); + } +%> +<% + String commandType = request.getParameter("commandType"); + String operaterId = "internet"; + String user_policy_type = request.getParameter("user_policy_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + + + if (commandType != null && commandType.equalsIgnoreCase ("update")) + { + boolean isError = false; + if (user_policy_type == null) + isError = true; + + if (user_name == null) + isError = true; + + if (isError) + { +%> +({"code":"-1", +"reason":"no policy or user_name or ssn", +"moreinformation":""}) +<% + return; + } + + } + + if (user_policy_type == null) + { + user_policy_type = "104"; + } + + if (user_name == null || user_name.length () == 0) + { + user_name = nameList [aRandom.nextInt (nameList.length)]; + } + else + user_name = new String(user_name.getBytes("iso8859-1"), "utf-8"); + + String euser_name = request.getParameter("euser_name"); + String user_id = request.getParameter("user_id"); + String ssn = request.getParameter("ssn"); + + String policy_type ; + String user_type; + + user_type = user_policy_type.substring(0, 1); + + if( user_type.equals("1") ) + { + if (ssn == null || ssn.length () == 0) + { + StringBuffer aBuffer = new StringBuffer (); + Calendar aCalendar = Calendar.getInstance (); + String aSSNTail = null; + aSSNTail = String.valueOf (aRandom.nextInt (2999999)); + + aBuffer.append (String.valueOf (aCalendar.get(Calendar.YEAR)).substring (2)); + + if (aCalendar.get(Calendar.MONTH) < 10) + aBuffer.append ("0"); + aBuffer.append (String.valueOf (aCalendar.get(Calendar.MONTH))); + + if (aCalendar.get(Calendar.DAY_OF_MONTH) < 10) + aBuffer.append ("0"); + aBuffer.append (String.valueOf (aCalendar.get(Calendar.DAY_OF_MONTH))); + + + if (aSSNTail.length () < 7) + { + for (int aIter = 0; aIter < 7 - aSSNTail.length (); ++aIter) + { + aBuffer.append ("0"); + } + } + aBuffer.append (aSSNTail); + + ssn = aBuffer.toString (); + + } + if (user_id == null) + user_id = ssn; + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(5) + user_id; + } + else if ( user_type.equals("2") ) + { + if (ssn == null || ssn.length () == 0) + { + StringBuffer aBuffer = new StringBuffer (); + String aSSNTail = null; + aSSNTail = "2" + String.valueOf (aRandom.nextInt (999999999)); + + if (aSSNTail.length () < 10) + { + for (int aIter = 0; aIter < 10 - aSSNTail.length (); ++aIter) + { + aBuffer.append ("0"); + } + } + aBuffer.append (aSSNTail); + + ssn = aBuffer.toString (); + } + + if (company_name == null) + company_name = ssn; + if (euser_name == null) + euser_name = ssn; + if (user_id == null) + user_id = ssn; + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(8) + user_id; + } + else + policy_type = user_policy_type.substring(1,2); + +%> +<% + + String email = "dont email me"; + String cell_phone = "dont call me"; + String fax = "dont fax me"; + String zipcode = "127-311"; + String address = "dogok dong house"; + String phone = "02-526-8000"; + String czipcode = "127-311"; + String caddress = "dogok dong"; + String cphone = "02-526-8000"; + + int ra_result = 0; + + XecureConfig xconf = new XecureConfig (); + PublicRA sfra = new PublicRA (xconf); + XecureLib jni = new XecureLib (xconf); + + String ip = null; + int port = -1; + int protocol = -1; + + String targetRA = request.getParameter ("targetRA"); + + ip = xconf.getRaHost (); + port = xconf.getRaPort (); + protocol = xconf.getRaProtocol (); + + if (targetRA != null) + { + if (targetRA.equalsIgnoreCase ("1024")) /* 1024 PublicRA Information */ + { + ip = "192.168.0.43"; + port = 25610; + protocol = 1; + } + else if (targetRA.equalsIgnoreCase ("2048")) /* 2048 PublicRA Information */ + { + ip = "192.168.0.26"; + port = 15679; + protocol = 1; + } + } + + if (commandType == null || commandType.equalsIgnoreCase ("new")) + { + ra_result = jni.registerNewUser (ip.getBytes (), + port, + protocol, + operaterId.getBytes (), + user_type.getBytes (), + (company_name == null) ? null : company_name.getBytes (), + user_name.getBytes (), + (euser_name == null) ? null : euser_name.getBytes (), + user_id.getBytes (), + ssn.getBytes (), + policy_type.getBytes (), + email.getBytes (), + cell_phone.getBytes (), + fax.getBytes (), + zipcode.getBytes (), + address.getBytes (), + phone.getBytes (), + czipcode.getBytes (), + caddress.getBytes (), + cphone.getBytes () ); + } + else if (commandType.equalsIgnoreCase ("rereg")) + { + ra_result = jni.registerRenewUser (ip.getBytes (), + port, + protocol, + operaterId.getBytes (), + user_type.getBytes (), + (company_name == null) ? null : company_name.getBytes (), + user_name.getBytes (), + (euser_name == null) ? null : euser_name.getBytes (), + user_id.getBytes (), + ssn.getBytes (), + policy_type.getBytes (), + email.getBytes (), + cell_phone.getBytes (), + fax.getBytes (), + zipcode.getBytes (), + address.getBytes (), + phone.getBytes (), + czipcode.getBytes (), + caddress.getBytes (), + cphone.getBytes () ); + } + else if (commandType.equalsIgnoreCase ("update")) + { + ra_result = jni.registerUpdateUser (ip.getBytes (), + port, + protocol, + operaterId.getBytes (), + user_type.getBytes (), + (company_name == null) ? null : company_name.getBytes (), + user_name.getBytes (), + (euser_name == null) ? null : euser_name.getBytes (), + user_id.getBytes (), + ssn.getBytes (), + policy_type.getBytes (), + email.getBytes (), + cell_phone.getBytes (), + fax.getBytes (), + zipcode.getBytes (), + address.getBytes (), + phone.getBytes (), + czipcode.getBytes (), + caddress.getBytes (), + cphone.getBytes () ); + } + + +%> +({"ssn":"<%=ssn%>", +"name":"<%=user_name%>", +"code":"<%=ra_result%>", +<% + if ( ra_result == 0 ) { +%> +"regdate":"<%=new String(jni.reguser_RegDate, "cp949")%>", +"regserial":"<%=new String(jni.reguser_RegSerial, "cp949")%>", +"userid":"<%=new String(jni.reguser_UserId, "cp949")%>", +"refcode":"<%=(jni.reguser_RefCode == null) ? "" : new String(jni.reguser_RefCode, "cp949")%>", +"authcode":"<%=(jni.reguser_AuthCode == null) ? "" : new String(jni.reguser_AuthCode, "cp949")%>", +"policytype":"<%=new String(jni.reguser_PolicyType, "cp949")%>", +"roothash":"<%=new String(jni.reguser_RootHash, "cp949")%>" +<% } + else + { +%> +"reason":"<%=new String (jni.errMsg)%>", +"moreinformation":"RA IP:<%=ip + ", RA Port:" + port%>" +<% } +%> +}) diff --git a/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_register.jsp b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_register.jsp new file mode 100644 index 00000000..b7c1fc44 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_register.jsp @@ -0,0 +1,288 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +
+ + + + + +인증서 발급 + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + +
  +

인증서 발급 +

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   +

이 페이지는 Xecure 인증기관에 사용자를 등록하고 작업을 수행합니다. 반드시 운영시스템에서는 + 이 페이지를 웹상에서 제거하고 절대 운영시스템에서는 수행하지 마십시요. 사용자 확인을 + 위해서 아래의 정보를 입력해 주십시요.

+
+
+ + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
계좌번호
계좌비밀번호
패스워드카드 15번째 숫자
개인/법인/단체 구분 + 개인 + 법인 +
법인명 (필수)
개인명 / 법인단체 세부명(필수)
개인 (법인단체) ID (필수)
주민등록번호 (사업자 등록번호) (필수)
전자우편 ( 옵션 )
핸드폰 ( 옵션 )
Fax ( 옵션 )
자택 우편번호 ( 옵션 )
자택 주소 ( 옵션 )
자택 전화 ( 옵션 )
회사 우편번호 ( 옵션 )
회사 주소 ( 옵션 )
회사 전화 ( 옵션 )
인증서 용도
인증서 등급
Corp Code
org Code
orgid Code
직급(대법원)
외국인식별번호(대법원)
등기마스터번호(대법원)
임원번호(대법원)
ext3(긴법인명)
+
+

+

+
+
+ +
   +

 

+
   
   +

 

+
   
+
  
+
+
+ +  
+ + diff --git a/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_request.jsp b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_request.jsp new file mode 100644 index 00000000..fb0fa824 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_request.jsp @@ -0,0 +1,295 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + String account = request.getParameter("account"); + String ac_pwd = request.getParameter("ac_pwd"); + String pcard = request.getParameter("pcard"); + String operaterId = "internet"; + String user_type = request.getParameter("user_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + String user_id = request.getParameter("user_id"); + String ssn = request.getParameter("ssn"); + + String policy_type = "01"; + + String email = request.getParameter("email"); + String cell_phone = request.getParameter("cell_phone"); + String fax = request.getParameter("fax"); + String zipcode = request.getParameter("zipcode"); + String address = request.getParameter("address"); + String phone = request.getParameter("phone"); + String czipcode = request.getParameter("czipcode"); + String caddress = request.getParameter("caddress"); + String cphone = request.getParameter("cphone"); + String cert_type = request.getParameter("cert_type"); + String cert_class = request.getParameter("cert_class"); + String corp_code = request.getParameter("corp_code"); + + String org_code = request.getParameter("org_code"); + String orgid_code = request.getParameter("orgid_code"); + + String position = request.getParameter("position"); + String foreigner_id_num = request.getParameter("foreigner_id_num"); + String reg_master_num = request.getParameter("reg_master_num"); + String executive_num = request.getParameter("executive_num"); + + String ext3 = request.getParameter("ext3"); + + int ca_result; + + XecureConfig xecConfig = new XecureConfig (); + XecureCA ca_client = new XecureCA ( xecConfig ); + //XecureCA ca_client = new XecureCA ( xecConfig , "mercury.softforum.com", 2100); + + ca_result = ca_client.registerNewUser ( operaterId, user_type, company_name, + user_name, user_id, ssn, policy_type, + email,cell_phone, fax, zipcode, address, phone, + czipcode, caddress, cphone, + cert_type, cert_class, corp_code, + org_code, orgid_code, + position, foreigner_id_num, reg_master_num, executive_num, ext3); + +%> + + + +사용자 등록 확인 + + +
+ + + + + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + +
  +

사용자 + 등록 확인

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   
+
+

 

+ +<% + if ( ca_result == 0 ) { +%> + + + + + + + + + + + + + + + +
사용자<%=user_name%>
계좌번호<%=account%>
등록일<%=ca_client.getResponseFromRegUser("REGDATE")%>
등록번호<%=ca_client.getResponseFromRegUser("REGSERIAL")%>
사용자 ID<%=ca_client.getResponseFromRegUser("USERID")%>
주민등록번호<%=ca_client.getResponseFromRegUser("SSN")%>
사용자 이름<%=ca_client.getResponseFromRegUser("USERNAME")%>
참조코드<%=ca_client.getResponseFromRegUser("REFCODE")%>
인가코드<%=ca_client.getResponseFromRegUser("AUTHCODE")%>
인증서 용도<%=ca_client.getResponseFromRegUser("CERTTYPE")%>
인증서 등급<%=ca_client.getResponseFromRegUser("CERTCLASS")%>
CORP CORE<%=ca_client.getResponseFromRegUser("CORPCODE")%>
+
+<%=request.getParameter("user_name")%>'님의 사용자 정보가 XecureCA 인증기관에 등록 되었습니다.
+
이제 '확인' 버튼을 누르시면 XecureCA 공인인증기관으로 부터 인증서를 발급받을 수 있습니다.

+

+
+ + + +




+공개키 알고리즘
+ + +
+<% } + else { +%> +

사용자 등록에 실패했습니다.

+에러 코드 : <%=ca_client.getLastError()%>
+에러 메시지 : <%=ca_client.getLastErrorMsg()%>
+xecConfig.getXecureCaHost() : <%= xecConfig.getXecureCaHost()%>
+xecConfig.getXecureCaPort() : <%= xecConfig.getXecureCaPort()%>
+ +<% } +%> +
+
   +

 

+
   
   +

 

+
   
   
+
  
+
+
+ +  
+ + diff --git a/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_request_rereg.jsp b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_request_rereg.jsp new file mode 100644 index 00000000..b6c34c79 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/cert_request_rereg.jsp @@ -0,0 +1,280 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + String account = request.getParameter("account"); + String ac_pwd = request.getParameter("ac_pwd"); + String pcard = request.getParameter("pcard"); + String operaterId = "internet"; + String user_type = request.getParameter("user_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + String user_id = request.getParameter("user_id"); + String ssn = request.getParameter("ssn"); + + String policy_type = "01"; + + String email = request.getParameter("email"); + String cell_phone = request.getParameter("cell_phone"); + String fax = request.getParameter("fax"); + String zipcode = request.getParameter("zipcode"); + String address = request.getParameter("address"); + String phone = request.getParameter("phone"); + String czipcode = request.getParameter("czipcode"); + String caddress = request.getParameter("caddress"); + String cphone = request.getParameter("cphone"); + String cert_type = request.getParameter("cert_type"); + String cert_class = request.getParameter("cert_class"); + String corp_code = request.getParameter("corp_code"); + + String org_code = request.getParameter("org_code"); + String orgid_code = request.getParameter("orgid_code"); + + String position = request.getParameter("position"); + String foreigner_id_num = request.getParameter("foreigner_id_num"); + String reg_master_num = request.getParameter("reg_master_num"); + String executive_num = request.getParameter("executive_num"); + + String ext3 = request.getParameter("ext3"); + + int ca_result; + + XecureConfig xecConfig = new XecureConfig (); + XecureCA ca_client = new XecureCA ( xecConfig ); + //XecureCA ca_client = new XecureCA ( xecConfig , "mercury.softforum.com", 2100); + + ca_result = ca_client.registerReNewUser ( operaterId, user_type, company_name, + user_name, user_id, ssn, policy_type, + email,cell_phone, fax, zipcode, address, phone, + czipcode, caddress, cphone, + cert_type, cert_class, corp_code, + org_code, orgid_code, + position, foreigner_id_num, reg_master_num, executive_num, ext3, 0); + +%> + + + +사용자 등록 확인 + + +
+ + + + + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + +
  +

사용자 + 등록 확인

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   
+
+

 

+ +<% + if ( ca_result == 0 ) { +%> + + + + + + + + + + + + + + + +
사용자<%=user_name%>
계좌번호<%=account%>
등록일<%=ca_client.getResponseFromRegUser("REGDATE")%>
등록번호<%=ca_client.getResponseFromRegUser("REGSERIAL")%>
사용자 ID<%=ca_client.getResponseFromRegUser("USERID")%>
주민등록번호<%=ca_client.getResponseFromRegUser("SSN")%>
사용자 이름<%=ca_client.getResponseFromRegUser("USERNAME")%>
참조코드<%=ca_client.getResponseFromRegUser("REFCODE")%>
인가코드<%=ca_client.getResponseFromRegUser("AUTHCODE")%>
인증서 용도<%=ca_client.getResponseFromRegUser("CERTTYPE")%>
인증서 등급<%=ca_client.getResponseFromRegUser("CERTCLASS")%>
CORP CORE<%=ca_client.getResponseFromRegUser("CORPCODE")%>
+
+<%=request.getParameter("user_name")%>'님의 사용자 정보가 XecureCA 인증기관에 등록 되었습니다.
+
이제 '확인' 버튼을 누르시면 XecureCA 공인인증기관으로 부터 인증서를 발급받을 수 있습니다.

+

+
+ + + +




+공개키 알고리즘
+ + +
+<% } + else { +%> +

사용자 등록에 실패했습니다.

+에러 코드 : <%=ca_client.getLastError()%>
+에러 메시지 : <%=ca_client.getLastErrorMsg()%>
+xecConfig.getXecureCaHost() : <%= xecConfig.getXecureCaHost()%>
+xecConfig.getXecureCaPort() : <%= xecConfig.getXecureCaPort()%>
+ +<% } +%> +
+
   +

 

+
   
   +

 

+
   
   
+
  
+
+
+ +  
+ + diff --git a/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/user_regist.jsp b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/user_regist.jsp new file mode 100644 index 00000000..dd50a453 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/ibs/xecureca_cert/user_regist.jsp @@ -0,0 +1,328 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.Calendar" %> + +<% +response.setHeader("Cache-Control","no-store"); +response.setHeader("Pragma", "no-cache"); +response.setDateHeader("Expires", 0); +%> + +<% + String []nameList = {"자신", "남편", "부인", "딸램", "아들", "막내", "장남", "장녀", + "차녀", "차남", "엄마", "아빠", "형님", "언니", "누나", "오빠", "동생", + "할아버지", "할머니", "큰아버지", "큰어머니", "삼촌", "사촌", + "매부", "매재", "매형", "제수", "제부", "고모", "고모부", + "이모", "이모부", "아저씨", "조카"}; + + java.util.Random aRandom = null; + + aRandom = (java.util.Random)application.getAttribute ("xwup.ibs.random"); + if (aRandom == null) + { + aRandom = new java.util.Random (); + application.setAttribute ("xwup.ibs.random", aRandom); + } +%> +<% + String commandType = request.getParameter("commandType"); + String targetRA = request.getParameter ("targetRA"); + String operaterId = "internet"; + String user_policy_type = request.getParameter("user_policy_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + String cert_type = request.getParameter("cert_type"); + String cert_class = request.getParameter("cert_class"); + String corp_code = request.getParameter("corp_code"); + + String org_code = request.getParameter("org_code"); + String orgid_code = request.getParameter("orgid_code"); + + String position = request.getParameter("position"); + String foreigner_id_num = request.getParameter("foreigner_id_num"); + String reg_master_num = request.getParameter("reg_master_num"); + String executive_num = request.getParameter("executive_num"); + String publicOrPrivate = request.getParameter("user_public_or_private"); + + String ext3 = request.getParameter("ext3"); + + int ca_result = 0; + XecureConfig xconf = new XecureConfig (); + XecureCA ca_client = null; + String ip = null; + int port = -1; + int caType = -1; + int caRMPType = -1; +%> + +<% + ip = xconf.getXecureCaHost (); + port = xconf.getXecureCaPort (); + + if (targetRA != null) + { + if (targetRA.equalsIgnoreCase ("1024")) /* 1024 XecureCA Information */ + { + ip = "192.168.0.26"; + port = 29210; + caType = 2; + caRMPType = 2; + } + else if (targetRA.equalsIgnoreCase ("2048")) /* 2048 XecureCA Information */ + { + if (publicOrPrivate.equals("yessignmpki")) { + ip = "192.168.0.43"; + port = 5301; + caType = 2; + caRMPType = 1; + } else { + ip = "192.168.0.4"; + port = 21200; + caType = 2; + caRMPType = 2; + } + } + } + + ca_client = new XecureCA (xconf, ip, port, caType, caRMPType); + + + if (org_code == null) + org_code = ""; + if (orgid_code == null) + orgid_code = ""; + if (corp_code == null) + corp_code = "0000"; + if (cert_class == null) + cert_class = "0000"; + if (cert_type == null) + cert_type = "0000"; + + + if (commandType != null && commandType.equalsIgnoreCase ("update")) + { + boolean isError = false; + if (user_policy_type == null) + isError = true; + + if (user_name == null) + isError = true; + + if (isError) + { +%> +({"code":"-1" +"reason":"no policy or user_name or ssn" +"moreinformation":""}) +<% + return; + } + + } + + if (user_policy_type == null) + { + user_policy_type = "104"; + } + + if (user_name == null || user_name.length () == 0) + { + user_name = nameList [aRandom.nextInt (nameList.length)]; + if (targetRA.equalsIgnoreCase("2048")) + { + while (user_name.length() < 4) + { + user_name = nameList [aRandom.nextInt (nameList.length)]; + } + } + } + else + user_name = new String(user_name.getBytes("iso8859-1"), "utf-8"); + + String euser_name = request.getParameter("euser_name"); + String user_id = request.getParameter("user_id"); + String ssn = request.getParameter("ssn"); + + String policy_type ; + String user_type; + + user_type = user_policy_type.substring(0, 1); + + if( user_type.equals("1") ) + { + if (ssn == null || ssn.length () == 0) + { + StringBuffer aBuffer = new StringBuffer (); + Calendar aCalendar = Calendar.getInstance (); + String aSSNTail = null; + aSSNTail = String.valueOf (aRandom.nextInt (2999999)); + + aBuffer.append (String.valueOf (aCalendar.get(Calendar.YEAR)).substring (2)); + + if (aCalendar.get(Calendar.MONTH) < 10) + aBuffer.append ("0"); + aBuffer.append (String.valueOf (aCalendar.get(Calendar.MONTH))); + + if (aCalendar.get(Calendar.DAY_OF_MONTH) < 10) + aBuffer.append ("0"); + aBuffer.append (String.valueOf (aCalendar.get(Calendar.DAY_OF_MONTH))); + + + if (aSSNTail.length () < 7) + { + for (int aIter = 0; aIter < 7 - aSSNTail.length (); ++aIter) + { + aBuffer.append ("0"); + } + } + aBuffer.append (aSSNTail); + + ssn = aBuffer.toString (); + + } + if (user_id == null) + user_id = ssn; + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(5) + user_id; + } + else if ( user_type.equals("2") ) + { + if (ssn == null || ssn.length () == 0) + { + StringBuffer aBuffer = new StringBuffer (); + String aSSNTail = null; + aSSNTail = "2" + String.valueOf (aRandom.nextInt (999999999)); + + if (aSSNTail.length () < 10) + { + for (int aIter = 0; aIter < 10 - aSSNTail.length (); ++aIter) + { + aBuffer.append ("0"); + } + } + aBuffer.append (aSSNTail); + + ssn = aBuffer.toString (); + } + + if (company_name == null) + company_name = ssn; + if (euser_name == null) + euser_name = ssn; + if (user_id == null) + user_id = ssn; + + policy_type = user_policy_type.substring(1,3); + user_id = policy_type + ssn.charAt(8) + user_id; + } + else + policy_type = user_policy_type.substring(1,2); + + String email = "dont email me"; + String cell_phone = "dont call me"; + String fax = "dont fax me"; + String zipcode = "127-311"; + String address = "dogok dong house"; + String phone = "02-526-8000"; + String czipcode = "127-311"; + String caddress = "dogok dong"; + String cphone = "02-526-8000"; + + +%> +({"ssn":"<%=ssn%>", +"name":"<%=user_name%>", +<% + + if (commandType == null || commandType.equalsIgnoreCase ("new")) + { + ca_result = ca_client.registerNewUser (operaterId, + user_type, + company_name, + user_name, + user_id, + ssn, + policy_type, + email, + cell_phone, + fax, + zipcode, + address, + phone, + czipcode, + caddress, + cphone, + cert_type, + cert_class, + corp_code, + org_code, + orgid_code, + position, + foreigner_id_num, + reg_master_num, + executive_num, + ext3); + } + else if (commandType.equalsIgnoreCase ("rereg")) + { + ca_result = ca_client.registerReNewUser (operaterId, + user_type, + company_name, + user_name, + user_id, + ssn, + policy_type, + email, + cell_phone, + fax, + zipcode, + address, + phone, + czipcode, + caddress, + cphone, + cert_type, + cert_class, + corp_code, + org_code, + orgid_code, + position, + foreigner_id_num, + reg_master_num, + executive_num, + ext3, + 0); + } + else if (commandType.equalsIgnoreCase ("update")) + { +%> +"code":"none", +"reason":"XecureCA does not support registration for UPDATE", +"moreinformation":"CA IP:<%=ip + ", CA Port:" + port%>" +}) +<% + return; + + } + if ( ca_result == 0 ) { +%> +"code":"0", +"regdate":"<%=ca_client.getResponseFromRegUser("REGDATE")%>", +"regserial":"<%=ca_client.getResponseFromRegUser("REGSERIAL")%>", +"userid":"<%=ca_client.getResponseFromRegUser("USERID")%>", +"refcode":"<%=ca_client.getResponseFromRegUser("REFCODE")%>", +"authcode":"<%=ca_client.getResponseFromRegUser("AUTHCODE")%>" +<% } + else + { +%> +"code":"<%=ca_client.getLastError()%>", +"reason":"<%=ca_client.getLastErrorMsg()%>", +"moreinformation":"CA IP:<%=ip + ", CA Port:" + port %>" +<% } +%> +}) diff --git a/src/main/webapp/AnySign4PC/test/installAnySign.jsp b/src/main/webapp/AnySign4PC/test/installAnySign.jsp new file mode 100644 index 00000000..f41eaa9c --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/installAnySign.jsp @@ -0,0 +1,207 @@ + +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.security.*" %> +<%@ page import="java.util.Random" %> + + + + + + + + + + + +

AnySign4PC 설치 정보

+ + ++ + + + + + + + + + + + + + + + + + + + + + +
보안 프로그램 설치 다운로드
프로그램명내용설치현황설치관리
AnySignForPCNon-ActiveX 공인인증서 전자서명을 지원해주는 프로그램입니다.
확인중..
+

+

+

+
    +
  • 운영 시스템(OS) :
  • +
  • 웹브라우저 :
  • +
  • 필요 모듈버전 :
  • + +
+
+

+ + + + + diff --git a/src/main/webapp/AnySign4PC/test/sign_result.jsp b/src/main/webapp/AnySign4PC/test/sign_result.jsp new file mode 100644 index 00000000..322ac956 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + XecureConfig aXecureConfig = new XecureConfig (); + SignVerifier verifier = null; + + StringBuffer aResponse = new StringBuffer (); +%> + +<% + String sm = request.getParameter("SIGNED"); + String vm = request.getParameter("VID"); + + if (sm != null && sm.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new SignVerifier (aXecureConfig , sm, 0); + } + else + { + /* Base64 encoded Data */ + verifier = new SignVerifier (aXecureConfig , sm, 1); + System.out.println ("base64:" + sm); + } + + aResponse.append ("({"); + aResponse.append ("code:\"" + verifier.getLastError () + "\","); + aResponse.append ("reason:\"" + verifier.getLastErrorMsg () + "\","); + + if (verifier.getLastError() == 0) + { + aResponse.append ("plain:\"" + verifier.getVerifiedMsg_Text () + "\","); + aResponse.append ("certificatePEM:\"" + verifier.getSignerCertificate().getCertPem ().replaceAll ("\n", "") + "\","); + aResponse.append ("subjectRDN:\"" + verifier.getSignerCertificate().getSubject () + "\","); + } + else + { + } + + if (vm != null) + { + + VidVerifier vid = new VidVerifier (aXecureConfig); + + vid.virtualIDVerifyS(vm, verifier.getSignerCertificate().getCertPem()); + + aResponse.append ("vidCode:\"" + vid.getLastError () + "\","); + aResponse.append ("vidReason:\"" + vid.getLastErrorMsg () + "\","); + + if( vid.getLastError () == 0) { + aResponse.append ("vidIDNumber:\"" + vid.getIdn () + "\","); + aResponse.append ("vidRealName:\"" + vid.getRealName () + "\","); + } + } + + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); +%> + diff --git a/src/main/webapp/AnySign4PC/test/sign_result1.jsp b/src/main/webapp/AnySign4PC/test/sign_result1.jsp new file mode 100644 index 00000000..c12e293e --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result1.jsp @@ -0,0 +1,138 @@ + +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("UTF-8"); + response.setContentType("text/html; charset=UTF-8"); + String aCharset = "UTF-8"; + + XecureConfig aXecureConfig = new XecureConfig (); + SignVerifier verifier = null; + + String aResult = request.getParameter("aResult"); + int aErrCode = 0; + String aErrReason = ""; + String aPlain = ""; + String aPlainHex = ""; + String aCertificate = ""; + String aSubjectRDN = ""; + + String aUserID = ""; + String aRealID = ""; + String aSerial = ""; + + String operatoId = "internet"; + String corp_code = "0000"; + + String ip = "192.168.60.60"; + int port = 30000; + int caType = 2; + int caRMPType = 2; + XecureCA ca = new XecureCA (aXecureConfig, ip, port, caType, caRMPType); + + SplitSign aSplitSign = new SplitSign(aXecureConfig); + String aRequestPlain = request.getParameter("aPlain"); + byte[] aPlainByte = null; + String aSignedData = ""; + + String[] aOptions = request.getParameterValues("aOption"); + int aOption = 0; + for (int i = 0; aOptions !=null && i < aOptions.length; i++) + { + aOption += Integer.parseInt(aOptions[i]); + } + + /* 분리 서명 검증 시 */ + if ((aOption & 0x100) == 0 && (aOption & 0x200) == 0x200 && (aOption & 0x1000) == 0x1000) + { + aPlainByte = aRequestPlain.getBytes(aCharset); + aSignedData = aSplitSign.merge(aResult, aPlainByte); + if (aSplitSign.getLastError() != 0) + { + aErrCode = aSplitSign.getLastError(); + aErrReason = aSplitSign.getLastErrorMsg(); + out.println ("분리 서명 데이터 오류
"); + out.println ("Error Code: " + aErrCode + "
"); + out.println ("Error Reason: " + aErrReason + "
"); + return; + } + + aResult = aSignedData; + } + + if (aResult == null || aResult.equals("")) + { + aErrCode = -1; + aErrReason = "invalid parameter"; + } + else if (aResult.length() < 10) + { + aErrCode = -1; + aErrReason = "invalid parameter (short)"; + } + else + { + if (aResult.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new SignVerifier (aXecureConfig , aResult, aCharset, 0); + } + else + { + /* Base64 encoded Data */ + verifier = new SignVerifier (aXecureConfig , aResult, aCharset, 1); + } + + if (verifier.getLastError() != 0) + { + aErrCode = verifier.getLastError(); + aErrReason = verifier.getLastErrorMsg(); + } + else + { + aPlain = verifier.getVerifiedMsg_Text(); + aCertificate = verifier.getSignerCertificate().getCertPem().replaceAll ("\n", ""); + aSubjectRDN = verifier.getSignerCertificate().getSubject(); + aSerial = verifier.getSignerCertificate().getSerial(); + + + + if(aPlain != null) { + byte[] buf = verifier.getVerifiedMsg(); + String tmp = ""; + + for (int i = 0; i < buf.length; i++) + { + tmp = Integer.toHexString(0xFF & buf[i]); + if (tmp.length() == 1) tmp = "0" + tmp; + aPlainHex += tmp; + } + } + } + + } +%> + + + + + + + +

서명값 검증 결과

+
    +
  • 오류 코드: <%=aErrCode%> +
  • 오류 메세지: <%=aErrReason%> +
  • 서명 원문: <%=aPlain%> +
  • 서명 원문(Hex): <%=aPlainHex%> +
  • User ID: <%=aUserID%> +
  • Real ID: <%=aRealID%> +
  • 서명 인증서 주체: <%=aSubjectRDN%> +
  • 서명 인증서:
    +
+ + diff --git a/src/main/webapp/AnySign4PC/test/sign_result1_euckr.jsp b/src/main/webapp/AnySign4PC/test/sign_result1_euckr.jsp new file mode 100644 index 00000000..b02d2f72 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result1_euckr.jsp @@ -0,0 +1,142 @@ + +<%@ page language="java" contentType="text/html; charset=euc-kr" pageEncoding="euc-kr"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("euc-kr"); + response.setContentType("text/html; charset=euc-kr"); + String aCharset = "euc-kr"; + + XecureConfig aXecureConfig = new XecureConfig (); + SignVerifier verifier = null; + + String aResult = request.getParameter("aResult"); + int aErrCode = 0; + String aErrReason = ""; + String aPlain = ""; + String aPlainHex = ""; + String aCertificate = ""; + String aSubjectRDN = ""; + + String aUserID = ""; + String aRealID = ""; + String aSerial = ""; + + String operatoId = "internet"; + String corp_code = "0000"; + + String ip = "192.168.60.60"; + int port = 30000; + int caType = 2; + int caRMPType = 2; + XecureCA ca = new XecureCA (aXecureConfig, ip, port, caType, caRMPType); + + SplitSign aSplitSign = new SplitSign(aXecureConfig); + String aRequestPlain = request.getParameter("aPlain"); + byte[] aPlainByte = null; + String aSignedData = ""; + + String[] aOptions = request.getParameterValues("aOption"); + int aOption = 0; + for (int i = 0; aOptions !=null && i < aOptions.length; i++) + { + aOption += Integer.parseInt(aOptions[i]); + } + + /* и */ + if ((aOption & 0x100) == 0 && (aOption & 0x200) == 0x200 && (aOption & 0x1000) == 0x1000) + { + aPlainByte = aRequestPlain.getBytes(aCharset); + aSignedData = aSplitSign.merge(aResult, aPlainByte); + if (aSplitSign.getLastError() != 0) + { + aErrCode = aSplitSign.getLastError(); + aErrReason = aSplitSign.getLastErrorMsg(); + out.println ("и
"); + out.println ("Error Code: " + aErrCode + "
"); + out.println ("Error Reason: " + aErrReason + "
"); + return; + } + + aResult = aSignedData; + } + + if (aResult == null || aResult.equals("")) + { + aErrCode = -1; + aErrReason = "invalid parameter"; + } + else if (aResult.length() < 10) + { + aErrCode = -1; + aErrReason = "invalid parameter (short)"; + } + else + { + if (aResult.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new SignVerifier (aXecureConfig , aResult, aCharset, 0); + } + else + { + /* Base64 encoded Data */ + verifier = new SignVerifier (aXecureConfig , aResult, aCharset, 1); + } + + if (verifier != null && verifier.getLastError() != 0) + { + aErrCode = verifier.getLastError(); + aErrReason = verifier.getLastErrorMsg(); + } + else + { + aPlain = verifier.getVerifiedMsg_Text(); + aCertificate = verifier.getSignerCertificate().getCertPem().replaceAll ("\n", ""); + aSubjectRDN = verifier.getSignerCertificate().getSubject(); + aSerial = verifier.getSignerCertificate().getSerial(); + + int result = ca.viewCertificateWithRealUserId(operatoId,aSerial,corp_code); + if(result ==1){ + aUserID = (String)ca.getResponseFromCertView("USERID",1); + aRealID = (String)ca.getResponseFromCertView("REALID",1); + } + + if(aPlain != null) { + byte[] buf = verifier.getVerifiedMsg(); + String tmp = ""; + + for (int i = 0; i < buf.length; i++) + { + tmp = Integer.toHexString(0xFF & buf[i]); + if (tmp.length() == 1) tmp = "0" + tmp; + aPlainHex += tmp; + } + } + } + + } +%> + + + + + + + +

+
    +
  • ڵ: <%=aErrCode%> +
  • ޼: <%=aErrReason%> +
  • : <%=aPlain%> +
  • (Hex): <%=aPlainHex%> +
  • User ID: <%=aUserID%> +
  • Real ID: <%=aRealID%> +
  • ü: <%=aSubjectRDN%> +
  • :
    +
+ + diff --git a/src/main/webapp/AnySign4PC/test/sign_result2.jsp b/src/main/webapp/AnySign4PC/test/sign_result2.jsp new file mode 100644 index 00000000..92a0e06f --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result2.jsp @@ -0,0 +1,157 @@ + +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("UTF-8"); + response.setContentType("text/html; charset=UTF-8"); + String aCharset = "UTF-8"; + + XecureConfig aXecureConfig = new XecureConfig (); + MultiSignVerifier verifier = null; + + String aResult = request.getParameter("aResult2"); + int aErrCode = 0; + String aErrReason = ""; + String aPlain = ""; + String aPlainHex = ""; + String aCertificate = ""; + String aSubjectRDN = ""; + int aSignerNum = 0; + + String aUserID = ""; + String aRealID = ""; + String aSerial = ""; + + String operatoId = "internet"; + String corp_code = "0000"; + + String ip = "192.168.60.60"; + int port = 30000; + int caType = 2; + int caRMPType = 2; + XecureCA ca = new XecureCA (aXecureConfig, ip, port, caType, caRMPType); + + SplitSign aSplitSign = new SplitSign(aXecureConfig); + String aRequestPlain = request.getParameter("aPlain"); + byte[] aPlainByte = null; + String aSignedData = ""; + + String[] aOptions = request.getParameterValues("aOption"); + int aOption = 0; + for (int i = 0; aOptions !=null && i < aOptions.length; i++) + { + aOption += Integer.parseInt(aOptions[i]); + } + + /* 분리 서명 검증 시 */ + if ((aOption & 0x100) == 0 && (aOption & 0x200) == 0x200 && (aOption & 0x1000) == 0x1000) + { + aPlainByte = aRequestPlain.getBytes(aCharset); + aSignedData = aSplitSign.merge(aResult, aPlainByte); + if (aSplitSign.getLastError() != 0) + { + aErrCode = aSplitSign.getLastError(); + aErrReason = aSplitSign.getLastErrorMsg(); + out.println ("분리 서명 데이터 오류
"); + out.println ("Error Code: " + aErrCode + "
"); + out.println ("Error Reason: " + aErrReason + "
"); + return; + } + + aResult = aSignedData; + } + + if (aResult == null || aResult.equals("")) + { + aErrCode = -1; + aErrReason = "invalid parameter"; + } + else if (aResult.length() < 10) + { + aErrCode = -1; + aErrReason = "invalid parameter (short)"; + } + else + { + if (aResult.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aResult, aCharset); + } + else + { + /* Base64 encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aResult, aCharset); + } + + if (verifier != null && verifier.getLastError() != 0) + { + aErrCode = verifier.getLastError(); + aErrReason = verifier.getLastErrorMsg(); + } + else + { + // 서명 원문 + aPlain = verifier.getVerifiedMsg_Text(); + + // 서명 원문(Hex) + if(aPlain != null) { + byte[] buf = verifier.getVerifiedMsg(); + String tmp = ""; + for (int i = 0; i < buf.length; i++) + { + tmp = Integer.toHexString(0xFF & buf[i]); + if (tmp.length() == 1) tmp = "0" + tmp; + aPlainHex += tmp; + } + } + + // 서명 인증서 + aSignerNum = verifier.getNumberOfSigner(); + } + } +%> + + + + + + + +

서명값 검증 결과

+
    +
  • 오류 코드: <%=aErrCode%> +
  • 오류 메세지: <%=aErrReason%> +
  • 서명 원문: <%=aPlain%> +
  • 서명 원문(Hex): <%=aPlainHex%> +
  • 서명자 수: <%=aSignerNum%> +<% + for (int i = 0; i < aSignerNum; i++) + { + aCertificate = verifier.getSignerCertificate(i).getCertPem().replaceAll ("\n", ""); + aSubjectRDN = verifier.getSignerCertificate(i).getSubject(); + aSerial = verifier.getSignerCertificate(i).getSerial(); + + int result = ca.viewCertificateWithRealUserId(operatoId,aSerial,corp_code); + if(result ==1){ + aUserID = (String)ca.getResponseFromCertView("USERID",1); + aRealID = (String)ca.getResponseFromCertView("REALID",1); + } else { + aUserID = ""; + aRealID = ""; + } +%> +
  • User ID: <%=aUserID%> +
  • Real ID: <%=aRealID%> +
  • 서명 인증서 [<%=i+1%>]: <%=aSubjectRDN%> +
    +<% + } +%> +
+ + diff --git a/src/main/webapp/AnySign4PC/test/sign_result2_euckr.jsp b/src/main/webapp/AnySign4PC/test/sign_result2_euckr.jsp new file mode 100644 index 00000000..55860042 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result2_euckr.jsp @@ -0,0 +1,157 @@ + +<%@ page language="java" contentType="text/html; charset=euc-kr" pageEncoding="euc-kr"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("euc-kr"); + response.setContentType("text/html; charset=euc-kr"); + String aCharset = "euc-kr"; + + XecureConfig aXecureConfig = new XecureConfig (); + MultiSignVerifier verifier = null; + + String aResult = request.getParameter("aResult2"); + int aErrCode = 0; + String aErrReason = ""; + String aPlain = ""; + String aPlainHex = ""; + String aCertificate = ""; + String aSubjectRDN = ""; + int aSignerNum = 0; + + String aUserID = ""; + String aRealID = ""; + String serial = ""; + + String operatoId = "internet"; + String corp_code = "0000"; + + String ip = "192.168.60.60"; + int port = 30000; + int caType = 2; + int caRMPType = 2; + XecureCA ca = new XecureCA (aXecureConfig, ip, port, caType, caRMPType); + + SplitSign aSplitSign = new SplitSign(aXecureConfig); + String aRequestPlain = request.getParameter("aPlain"); + byte[] aPlainByte = null; + String aSignedData = ""; + + String[] aOptions = request.getParameterValues("aOption"); + int aOption = 0; + for (int i = 0; aOptions !=null && i < aOptions.length; i++) + { + aOption += Integer.parseInt(aOptions[i]); + } + + /* и */ + if ((aOption & 0x100) == 0 && (aOption & 0x200) == 0x200 && (aOption & 0x1000) == 0x1000) + { + aPlainByte = aRequestPlain.getBytes(aCharset); + aSignedData = aSplitSign.merge(aResult, aPlainByte); + if (aSplitSign.getLastError() != 0) + { + aErrCode = aSplitSign.getLastError(); + aErrReason = aSplitSign.getLastErrorMsg(); + out.println ("и
"); + out.println ("Error Code: " + aErrCode + "
"); + out.println ("Error Reason: " + aErrReason + "
"); + return; + } + + aResult = aSignedData; + } + + if (aResult == null || aResult.equals("")) + { + aErrCode = -1; + aErrReason = "invalid parameter"; + } + else if (aResult.length() < 10) + { + aErrCode = -1; + aErrReason = "invalid parameter (short)"; + } + else + { + if (aResult.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aResult, aCharset); + } + else + { + /* Base64 encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aResult, aCharset); + } + + if (verifier != null && verifier.getLastError() != 0) + { + aErrCode = verifier.getLastError(); + aErrReason = verifier.getLastErrorMsg(); + } + else + { + // + aPlain = verifier.getVerifiedMsg_Text(); + + // (Hex) + if(aPlain != null) { + byte[] buf = verifier.getVerifiedMsg(); + String tmp = ""; + for (int i = 0; i < buf.length; i++) + { + tmp = Integer.toHexString(0xFF & buf[i]); + if (tmp.length() == 1) tmp = "0" + tmp; + aPlainHex += tmp; + } + } + + // + aSignerNum = verifier.getNumberOfSigner(); + } + } +%> + + + + + + + +

+
    +
  • ڵ: <%=aErrCode%> +
  • ޼: <%=aErrReason%> +
  • : <%=aPlain%> +
  • (Hex): <%=aPlainHex%> +
  • : <%=aSignerNum%> +<% + for (int i = 0; i < aSignerNum; i++) + { + aCertificate = verifier.getSignerCertificate(i).getCertPem().replaceAll ("\n", ""); + aSubjectRDN = verifier.getSignerCertificate(i).getSubject(); + aSerial = verifier.getSignerCertificate(i).getSerial(); + + int result = ca.viewCertificateWithRealUserId(operatoId,aSerial,corp_code); + if(result ==1){ + aUserID = (String)ca.getResponseFromCertView("USERID",1); + aRealID = (String)ca.getResponseFromCertView("REALID",1); + } else { + aUserID = ""; + aRealID = ""; + } +%> +
  • User ID: <%=aUserID%> +
  • Real ID: <%=aRealID%> +
  • [<%=i+1%>]: <%=aSubjectRDN%> +
    +<% + } +%> +
+ + diff --git a/src/main/webapp/AnySign4PC/test/sign_result3.jsp b/src/main/webapp/AnySign4PC/test/sign_result3.jsp new file mode 100644 index 00000000..4bc490d2 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result3.jsp @@ -0,0 +1,208 @@ + +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("UTF-8"); + response.setContentType("text/html; charset=utf-8"); + String aCharset = "UTF-8"; + + XecureConfig aXecureConfig = new XecureConfig (); + MultiSignVerifier verifier = null; + + String aSignedMsg1 = request.getParameter("aResult"); + String aSignedMsg2 = request.getParameter("aResult2"); + String aSignedMsg = request.getParameter("aSignedMsg"); + int aErrCode = 0; + String aErrReason = ""; + String aPlain = ""; + String aPlainHex = ""; + String aCertificate = ""; + String aSubjectRDN = ""; + int aSignerNum = 0; + + if (aSignedMsg1 != null && aSignedMsg1.length() > 0) + { + aSignedMsg = aSignedMsg1; + } + else if (aSignedMsg2 != null && aSignedMsg2.length() > 0) + { + aSignedMsg = aSignedMsg2; + } + + SplitSign aSplitSign = new SplitSign(aXecureConfig); + String aRequestPlain = request.getParameter("aPlain"); + byte[] aPlainByte = null; + String aSignedData = ""; + + String[] aOptions = request.getParameterValues("aOption"); + int aOption = 0; + for (int i = 0; aOptions !=null && i < aOptions.length; i++) + { + aOption += Integer.parseInt(aOptions[i]); + } + + /* 분리 서명 검증 시 */ + if ((aOption & 0x100) == 0 && (aOption & 0x200) == 0x200 && (aOption & 0x1000) == 0x1000) + { + aPlainByte = aRequestPlain.getBytes(aCharset); + aSignedData = aSplitSign.merge(aSignedMsg, aPlainByte); + if (aSplitSign.getLastError() != 0) + { + aErrCode = aSplitSign.getLastError(); + aErrReason = aSplitSign.getLastErrorMsg(); + out.println ("분리 서명 데이터 오류
"); + out.println ("Error Code: " + aErrCode + "
"); + out.println ("Error Reason: " + aErrReason + "
"); + return; + } + + aSignedMsg = aSignedData; + } + + if (aSignedMsg == null || aSignedMsg.equals("")) + { + aErrCode = -1; + aErrReason = "invalid parameter"; + } + else if (aSignedMsg.length() < 10) + { + aErrCode = -1; + aErrReason = "invalid parameter (short)"; + } + else + { + if (aSignedMsg.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aSignedMsg, aCharset); + } + else + { + /* Base64 encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aSignedMsg, aCharset); + } + + if (verifier != null && verifier.getLastError() != 0) + { + aErrCode = verifier.getLastError(); + aErrReason = verifier.getLastErrorMsg(); + } + else + { + // 서명 원문 + aPlain = verifier.getVerifiedMsg_Text(); + + // 서명 원문(Hex) + if(aPlain != null) { + byte[] buf = verifier.getVerifiedMsg(); + String tmp = ""; + for (int i = 0; i < buf.length; i++) + { + tmp = Integer.toHexString(0xFF & buf[i]); + if (tmp.length() == 1) tmp = "0" + tmp; + aPlainHex += tmp; + } + } + + // 서명 인증서 + aSignerNum = verifier.getNumberOfSigner(); + } + + } + + /* 식별번호 검증 */ + VidVerifier vid = null; + + String aVidMsg = request.getParameter("aVidMsg"); + String aServerIdn = request.getParameter("aServerIdn"); + int aIsVid = 0; + int aVidErrCode = 0; + String aVidErrReason = ""; + int aVidCertNum = 0; + String aVidCertSubjectRDN = ""; + String aIdn = ""; + String aRealName = ""; + + if (aVidMsg != null && aVidMsg.length() > 0 && aSignerNum > 0) + { + aIsVid = 1; + vid = new VidVerifier(aXecureConfig); + + for (int i = 0; i < aSignerNum; i++) + { + if (aServerIdn != null && aServerIdn.length() > 0) + { + // 서버측에서 식별번호 입력 시 사용 + vid.virtualIDVerifyS(aVidMsg, verifier.getSignerCertificate(i).getCertPem(), aServerIdn); + aIdn = "(서버에서 입력)"; + } + else + { + vid.virtualIDVerifyS(aVidMsg, verifier.getSignerCertificate(i).getCertPem()); + } + + if (vid != null && vid.getLastError() == 0) + { + aVidCertNum = i; + aVidCertSubjectRDN = verifier.getSignerCertificate(i).getSubject(); + aIdn += vid.getIdn(); + aRealName = vid.getRealName(); + break; + } + } + + if (vid != null && vid.getLastError() != 0) + { + aVidErrCode = vid.getLastError(); + aVidErrReason = vid.getLastErrorMsg(); + } + } +%> + + + + + + + +

서명값 검증 결과

+
    +
  • 서명값:
    +
  • 오류 코드: <%=aErrCode%> +
  • 오류 메세지: <%=aErrReason%> +
  • 서명 원문: <%=aPlain%> +
  • 서명 원문(Hex): <%=aPlainHex%> +
  • 서명자 수: <%=aSignerNum%> +<% + for (int i = 0; i < aSignerNum; i++) + { + aCertificate = verifier.getSignerCertificate(i).getCertPem().replaceAll ("\n", ""); + aSubjectRDN = verifier.getSignerCertificate(i).getSubject(); +%> +
  • 서명 인증서 [<%=i+1%>]: <%=aSubjectRDN%> +
    +<% + } +%> +
+<% + if (aIsVid == 1) { +%> +

식별번호 검증 결과

+
    +
  • 암호화된 VID:
    +
  • 오류 코드: <%=aVidErrCode%> +
  • 오류 메세지: <%=aVidErrReason%> +
  • 인증서 [<%=aVidCertNum+1%>]: <%=aVidCertSubjectRDN%> +
  • 주민등록번호(사업자 등록번호): <%=aIdn%> +
  • 사용자 실명: <%=aRealName%> +
+<% + } +%> + + \ No newline at end of file diff --git a/src/main/webapp/AnySign4PC/test/sign_result3_euckr.jsp b/src/main/webapp/AnySign4PC/test/sign_result3_euckr.jsp new file mode 100644 index 00000000..27ae075a --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result3_euckr.jsp @@ -0,0 +1,208 @@ + +<%@ page language="java" contentType="text/html; charset=euc-kr" pageEncoding="euc-kr"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("euc-kr"); + response.setContentType("text/html; charset=euc-kr"); + String aCharset = "euc-kr"; + + XecureConfig aXecureConfig = new XecureConfig (); + MultiSignVerifier verifier = null; + + String aSignedMsg1 = request.getParameter("aResult"); + String aSignedMsg2 = request.getParameter("aResult2"); + String aSignedMsg = request.getParameter("aSignedMsg"); + int aErrCode = 0; + String aErrReason = ""; + String aPlain = ""; + String aPlainHex = ""; + String aCertificate = ""; + String aSubjectRDN = ""; + int aSignerNum = 0; + + if (aSignedMsg1 != null && aSignedMsg1.length() > 0) + { + aSignedMsg = aSignedMsg1; + } + else if (aSignedMsg2 != null && aSignedMsg2.length() > 0) + { + aSignedMsg = aSignedMsg2; + } + + SplitSign aSplitSign = new SplitSign(aXecureConfig); + String aRequestPlain = request.getParameter("aPlain"); + byte[] aPlainByte = null; + String aSignedData = ""; + + String[] aOptions = request.getParameterValues("aOption"); + int aOption = 0; + for (int i = 0; aOptions !=null && i < aOptions.length; i++) + { + aOption += Integer.parseInt(aOptions[i]); + } + + /* и */ + if ((aOption & 0x100) == 0 && (aOption & 0x200) == 0x200 && (aOption & 0x1000) == 0x1000) + { + aPlainByte = aRequestPlain.getBytes(aCharset); + aSignedData = aSplitSign.merge(aSignedMsg, aPlainByte); + if (aSplitSign.getLastError() != 0) + { + aErrCode = aSplitSign.getLastError(); + aErrReason = aSplitSign.getLastErrorMsg(); + out.println ("и
"); + out.println ("Error Code: " + aErrCode + "
"); + out.println ("Error Reason: " + aErrReason + "
"); + return; + } + + aSignedMsg = aSignedData; + } + + if (aSignedMsg == null || aSignedMsg.equals("")) + { + aErrCode = -1; + aErrReason = "invalid parameter"; + } + else if (aSignedMsg.length() < 10) + { + aErrCode = -1; + aErrReason = "invalid parameter (short)"; + } + else + { + if (aSignedMsg.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aSignedMsg, aCharset); + } + else + { + /* Base64 encoded Data */ + verifier = new MultiSignVerifier (aXecureConfig , aSignedMsg, aCharset); + } + + if (verifier != null && verifier.getLastError() != 0) + { + aErrCode = verifier.getLastError(); + aErrReason = verifier.getLastErrorMsg(); + } + else + { + // + aPlain = verifier.getVerifiedMsg_Text(); + + // (Hex) + if(aPlain != null) { + byte[] buf = verifier.getVerifiedMsg(); + String tmp = ""; + for (int i = 0; i < buf.length; i++) + { + tmp = Integer.toHexString(0xFF & buf[i]); + if (tmp.length() == 1) tmp = "0" + tmp; + aPlainHex += tmp; + } + } + + // + aSignerNum = verifier.getNumberOfSigner(); + } + + } + + /* ĺȣ */ + VidVerifier vid = null; + + String aVidMsg = request.getParameter("aVidMsg"); + String aServerIdn = request.getParameter("aServerIdn"); + int aIsVid = 0; + int aVidErrCode = 0; + String aVidErrReason = ""; + int aVidCertNum = 0; + String aVidCertSubjectRDN = ""; + String aIdn = ""; + String aRealName = ""; + + if (aVidMsg != null && aVidMsg.length() > 0 && aSignerNum > 0) + { + aIsVid = 1; + vid = new VidVerifier(aXecureConfig); + + for (int i = 0; i < aSignerNum; i++) + { + if (aServerIdn != null && aServerIdn.length() > 0) + { + // ĺȣ Է + vid.virtualIDVerifyS(aVidMsg, verifier.getSignerCertificate(i).getCertPem(), aServerIdn); + aIdn = "( Է)"; + } + else + { + vid.virtualIDVerifyS(aVidMsg, verifier.getSignerCertificate(i).getCertPem()); + } + + if (vid != null && vid.getLastError() == 0) + { + aVidCertNum = i; + aVidCertSubjectRDN = verifier.getSignerCertificate(i).getSubject(); + aIdn += vid.getIdn(); + aRealName = vid.getRealName(); + break; + } + } + + if (vid != null && vid.getLastError() != 0) + { + aVidErrCode = vid.getLastError(); + aVidErrReason = vid.getLastErrorMsg(); + } + } +%> + + + + + + + +

+
    +
  • :
    +
  • ڵ: <%=aErrCode%> +
  • ޼: <%=aErrReason%> +
  • : <%=aPlain%> +
  • (Hex): <%=aPlainHex%> +
  • : <%=aSignerNum%> +<% + for (int i = 0; i < aSignerNum; i++) + { + aCertificate = verifier.getSignerCertificate(i).getCertPem().replaceAll ("\n", ""); + aSubjectRDN = verifier.getSignerCertificate(i).getSubject(); +%> +
  • [<%=i+1%>]: <%=aSubjectRDN%> +
    +<% + } +%> +
+<% + if (aIsVid == 1) { +%> +

ĺȣ

+
    +
  • ȣȭ VID:
    +
  • ڵ: <%=aVidErrCode%> +
  • ޼: <%=aVidErrReason%> +
  • [<%=aVidCertNum+1%>]: <%=aVidCertSubjectRDN%> +
  • ֹεϹȣ( Ϲȣ): <%=aIdn%> +
  • Ǹ: <%=aRealName%> +
+<% + } +%> + + \ No newline at end of file diff --git a/src/main/webapp/AnySign4PC/test/sign_result4.jsp b/src/main/webapp/AnySign4PC/test/sign_result4.jsp new file mode 100644 index 00000000..73d10b5a --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result4.jsp @@ -0,0 +1,58 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("UTF-8"); + response.setContentType("text/html; charset=utf-8"); + String aCharset = "UTF-8"; + + XecureConfig aXecureConfig = new XecureConfig (); + MultiSignVerifier verifier = null; + + StringBuffer aResponse = new StringBuffer (); +%> + +<% + String sm = request.getParameter("SIGNED"); + String vm = request.getParameter("VID"); + + verifier = new MultiSignVerifier (aXecureConfig , sm, aCharset); + + aResponse.append ("({"); + aResponse.append ("code:\"" + verifier.getLastError () + "\","); + aResponse.append ("reason:\"" + verifier.getLastErrorMsg () + "\","); + + if (verifier.getLastError() == 0) + { + aResponse.append ("plain:\"" + verifier.getVerifiedMsg_Text () + "\","); + aResponse.append ("certificatePEM:\"" + verifier.getSignerCertificate(0).getCertPem ().replaceAll ("\n", "") + "\","); + aResponse.append ("subjectRDN:\"" + verifier.getSignerCertificate(0).getSubject () + "\","); + } + else + { + } + + if (vm != null) + { + + VidVerifier vid = new VidVerifier (aXecureConfig); + + vid.virtualIDVerifyS(vm, verifier.getSignerCertificate(0).getCertPem()); + + aResponse.append ("vidCode:\"" + vid.getLastError () + "\","); + aResponse.append ("vidReason:\"" + vid.getLastErrorMsg () + "\","); + + if( vid.getLastError () == 0) { + aResponse.append ("vidIDNumber:\"" + vid.getIdn () + "\","); + aResponse.append ("vidRealName:\"" + vid.getRealName () + "\","); + } + } + + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); +%> diff --git a/src/main/webapp/AnySign4PC/test/sign_result4_euckr.jsp b/src/main/webapp/AnySign4PC/test/sign_result4_euckr.jsp new file mode 100644 index 00000000..f971feea --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result4_euckr.jsp @@ -0,0 +1,58 @@ +<%@ page contentType="text/html; charset=euc-kr" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + //out.println(java.nio.charset.Charset.defaultCharset().name()); + request.setCharacterEncoding("euc-kr"); + response.setContentType("text/html; charset=euc-kr"); + String aCharset = "euc-kr"; + + XecureConfig aXecureConfig = new XecureConfig (); + MultiSignVerifier verifier = null; + + StringBuffer aResponse = new StringBuffer (); +%> + +<% + String sm = request.getParameter("SIGNED"); + String vm = request.getParameter("VID"); + + verifier = new MultiSignVerifier (aXecureConfig , sm, aCharset); + + aResponse.append ("({"); + aResponse.append ("code:\"" + verifier.getLastError () + "\","); + aResponse.append ("reason:\"" + verifier.getLastErrorMsg () + "\","); + + if (verifier.getLastError() == 0) + { + aResponse.append ("plain:\"" + verifier.getVerifiedMsg_Text () + "\","); + aResponse.append ("certificatePEM:\"" + verifier.getSignerCertificate(0).getCertPem ().replaceAll ("\n", "") + "\","); + aResponse.append ("subjectRDN:\"" + verifier.getSignerCertificate(0).getSubject () + "\","); + } + else + { + } + + if (vm != null) + { + + VidVerifier vid = new VidVerifier (aXecureConfig); + + vid.virtualIDVerifyS(vm, verifier.getSignerCertificate(0).getCertPem()); + + aResponse.append ("vidCode:\"" + vid.getLastError () + "\","); + aResponse.append ("vidReason:\"" + vid.getLastErrorMsg () + "\","); + + if( vid.getLastError () == 0) { + aResponse.append ("vidIDNumber:\"" + vid.getIdn () + "\","); + aResponse.append ("vidRealName:\"" + vid.getRealName () + "\","); + } + } + + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); +%> diff --git a/src/main/webapp/AnySign4PC/test/sign_result_euckr.jsp b/src/main/webapp/AnySign4PC/test/sign_result_euckr.jsp new file mode 100644 index 00000000..af33a7d8 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_result_euckr.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=euc-kr" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> + +<% + XecureConfig aXecureConfig = new XecureConfig (); + SignVerifier verifier = null; + + StringBuffer aResponse = new StringBuffer (); +%> + +<% + String sm = request.getParameter("SIGNED"); + String vm = request.getParameter("VID"); + + if (sm != null && sm.substring(0, 4).equalsIgnoreCase("3082")) + { + /* Hex encoded Data */ + verifier = new SignVerifier (aXecureConfig , sm, 0); + } + else + { + /* Base64 encoded Data */ + verifier = new SignVerifier (aXecureConfig , sm, 1); + System.out.println ("base64:" + sm); + } + + aResponse.append ("({"); + aResponse.append ("code:\"" + verifier.getLastError () + "\","); + aResponse.append ("reason:\"" + verifier.getLastErrorMsg () + "\","); + + if (verifier.getLastError() == 0) + { + aResponse.append ("plain:\"" + verifier.getVerifiedMsg_Text () + "\","); + aResponse.append ("certificatePEM:\"" + verifier.getSignerCertificate().getCertPem ().replaceAll ("\n", "") + "\","); + aResponse.append ("subjectRDN:\"" + verifier.getSignerCertificate().getSubject () + "\","); + } + else + { + } + + if (vm != null) + { + + VidVerifier vid = new VidVerifier (aXecureConfig); + + vid.virtualIDVerifyS(vm, verifier.getSignerCertificate().getCertPem()); + + aResponse.append ("vidCode:\"" + vid.getLastError () + "\","); + aResponse.append ("vidReason:\"" + vid.getLastErrorMsg () + "\","); + + if( vid.getLastError () == 0) { + aResponse.append ("vidIDNumber:\"" + vid.getIdn () + "\","); + aResponse.append ("vidRealName:\"" + vid.getRealName () + "\","); + } + } + + aResponse.append ("base:\"\""); + aResponse.append ("})"); + out.println (aResponse.toString ()); +%> + diff --git a/src/main/webapp/AnySign4PC/test/sign_vid_result.jsp b/src/main/webapp/AnySign4PC/test/sign_vid_result.jsp new file mode 100644 index 00000000..bcbe9d46 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_vid_result.jsp @@ -0,0 +1,297 @@ + +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<% + request.setCharacterEncoding("utf-8"); + XecureConfig aXecureConfig = new XecureConfig (System.getProperty("user.home") + "/XecureConf/xecure_servlet.conf"); + SignVerifier verifier = new SignVerifier (aXecureConfig, request.getParameter("aSignedMsg"), "utf-8"); +%> + + + + +서명 검증 결과 + + + + + +
+ + + + + + + + +
+

 

+

 

+ + + + + + + + +
+ + + + + + + + + + + +
 
  
+
+ + + + + + + + + + + + +
  + + + + + +
+
+
+ + +
+
+
+ + + + + + + + + + + + + +
  +

WebBrowser로부터 입력받은 결과입니다.

+
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  
   +

 

+
+ + + + + + + + + + + + + + + + + + + +<% + if ( nVerifierResult == 0 ) { +%> + + + + + + + + + + + + + + +<% + } else { + +%> + + + + + +<% + } +%> + + + +
Decrypted Request 'aPlain' : +
+<%=request.getParameter("aPlain") %>
+
+
Decrypted Request 'aSignedMsg' : +
+<%
+	
+	String sm = request.getParameter("aSignedMsg"); 
+	int i;
+	for ( i = 0; i < sm.length(); i+=80 ) {
+		if ( i + 80 < sm.length() ) 
+			out.println ( sm.substring( i, i+80 ) );
+		else
+			out.println ( sm.substring( i, sm.length() ));
+	}
+%>
+
+
'aVidMsg' : +
+<%
+	
+	String vm = request.getParameter("aVidMsg");
+	//out.println(vm);
+	
+	for ( i = 0; i < vm.length(); i+=80 ) {
+		if ( i + 80 < vm.length() ) 
+			out.println ( vm.substring( i, i+80 ) );
+		else
+			out.println ( vm.substring( i, vm.length() ));
+	}
+	
+%>
+
+
서명 검증 결과 +<% + int nVerifierResult = verifier.getLastError(); + if ( nVerifierResult != 0 ) { + out.println("서명문에 문제가 있습니다.
"); + out.println("오류 번호 : " + verifier.getLastError() + "
"); + } + else { + out.println("서명 확인 성공
"); + } +%> +
서명 메시지 원본 +
+<%=verifier.getVerifiedMsg_Text()%>
+
+
서명자 인증서 +
+<%=verifier.getSignerCertificate().getCertPem()%>
+
+
서명자 인증서 DN +
+1 <%=verifier.getSignerCertificate().getSubject()%>
+2 <%=verifier.getSignerCertificate().getSubject("cn")%>
+3 <%=verifier.getSignerCertificate().getIssuer("cn")%>
+4 <%=verifier.getSignerCertificate().getIssuer("o")%>
+5 <%=verifier.getSignerCertificate().getIssuer("ou")%>
+
+
오류메세지 +
+<%=verifier.getLastErrorMsg()%>
+
+
식별번호검증결과 +
+<%
+	VidVerifier vid = new VidVerifier (aXecureConfig);
+	
+	vid.virtualIDVerifyS(vm, verifier.getSignerCertificate().getCertPem());
+	//vid.virtualIDVerifyS(vm, "0");
+	
+	int	nResult = vid.getLastError();
+	if( nResult != 0) {
+		out.println("식별번호 검증에 문제가 있습니다.
"); + out.println("오류번호 : " + vid.getLastError() + "
"); + out.println("오류메세지: " + vid.getLastErrorMsg() + "
"); + + } + else { + out.println("식별번호 검증 성공
"); + out.println("주민등록번호(사업자 등록번호) : " + vid.getIdn() + "
"); + out.println("사용자 실명 : " + vid.getRealName() + "
"); + } + +%> +
+
+ + +
   +

 

+
   
   
   
+
  
+
+
+ +  
+ + diff --git a/src/main/webapp/AnySign4PC/test/sign_with_vid.jsp b/src/main/webapp/AnySign4PC/test/sign_with_vid.jsp new file mode 100644 index 00000000..70a2a03c --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/sign_with_vid.jsp @@ -0,0 +1,357 @@ + +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page buffer="16kb"%> +<%@ page import="xecure.servlet.*"%> +<%@ page import="xecure.crypto.*"%> +<%@ page import="java.io.*"%> + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
  + + + + + +
+

SignDataWithVID

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aPlain
aOption + (공통 옵션)
+ + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 8 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 16 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창을 띄우지 않음)
+
aIdn
aDescription
aLimitPassword
Run + + +
Output + +
VID Output + +
전송 +
+
+ +

SignDataWithVID_Serial

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputaXgateAddress
aCAList
aSerial
aLocation
aIdn
aPlain
aOption + (공통 옵션)
+ + 0 : 기본 서명
+ + 1 : 서명확인창을 보여준다.
+ + 8 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 16 : IDN값을 입력받지 않는다 ""로 대체 (VID입력창 뜨지 않음)
+
aDescription
aLimitPassword
Run + + +
Output + +
Vid Output + +
전송 +
+
+ +
+ +
+
+
+ + diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo/cert/signCert.der b/src/main/webapp/AnySign4PC/test/signfileinfo/cert/signCert.der new file mode 100644 index 00000000..ce7e67fa Binary files /dev/null and b/src/main/webapp/AnySign4PC/test/signfileinfo/cert/signCert.der differ diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo/cert/signPri.key b/src/main/webapp/AnySign4PC/test/signfileinfo/cert/signPri.key new file mode 100644 index 00000000..93e48411 Binary files /dev/null and b/src/main/webapp/AnySign4PC/test/signfileinfo/cert/signPri.key differ diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo/test.txt b/src/main/webapp/AnySign4PC/test/signfileinfo/test.txt new file mode 100644 index 00000000..f15f9fe4 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/signfileinfo/test.txt @@ -0,0 +1,4 @@ +테스트 파일 : test.txt +테스트 파일 : test.txt +테스트 파일 : test.txt +테스트 파일 : test.txt diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo/test1.txt b/src/main/webapp/AnySign4PC/test/signfileinfo/test1.txt new file mode 100644 index 00000000..be240c40 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/signfileinfo/test1.txt @@ -0,0 +1,4 @@ +테스트 파일 : test1.txt +테스트 파일 : test1.txt +테스트 파일 : test1.txt +테스트 파일 : test1.txt diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo/test2.txt b/src/main/webapp/AnySign4PC/test/signfileinfo/test2.txt new file mode 100644 index 00000000..d1fe9486 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/signfileinfo/test2.txt @@ -0,0 +1,4 @@ +테스트 파일 : test2.txt +테스트 파일 : test2.txt +테스트 파일 : test2.txt +테스트 파일 : test2.txt diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo/test3.txt b/src/main/webapp/AnySign4PC/test/signfileinfo/test3.txt new file mode 100644 index 00000000..2a38514c --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/signfileinfo/test3.txt @@ -0,0 +1,4 @@ +테스트 파일 : test3.txt +테스트 파일 : test3.txt +테스트 파일 : test3.txt +테스트 파일 : test3.txt diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo_client.jsp b/src/main/webapp/AnySign4PC/test/signfileinfo_client.jsp new file mode 100644 index 00000000..3950cdb0 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/signfileinfo_client.jsp @@ -0,0 +1,1361 @@ + +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.*" %> +<%@ page import="java.text.SimpleDateFormat" %> +<%@ page import="java.security.MessageDigest" %> +<%@ page import="java.security.Provider" %> +<%@ page import="java.security.NoSuchAlgorithmException" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<% + int cnt = 0; + String tmpStr = ""; + + // 서명 대상 파일 경로 + String strFilePath = "/signfileinfo/test.txt"; + String strFilePath_1 = "/signfileinfo/test1.txt"; + String strFilePath_2 = "/signfileinfo/test2.txt"; + String strFilePath_3 = "/signfileinfo/test3.txt"; + + // 해쉬 알고리즘명 + String strAlgNameSha1 = "SHA1"; + String strAlgNameSha256 = "SHA256"; + + // 클라이언트 전달 변수 + String strFileInfo = ""; + String strFileHash = ""; + String strMultiFileInfo = ""; + String strMultiFileHash = ""; + + //----------------------------------------------------------------------------- + // file 0 + //----------------------------------------------------------------------------- + + // 서명 대상 파일명 추출 + cnt = 0; + tmpStr = strFilePath; + while(true){ + cnt = tmpStr.indexOf("/"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + while(true){ + cnt = tmpStr.indexOf("\\"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + String strFileName = tmpStr; + + String strFileDate = ""; + String strDigestSha1 = ""; + String strDigestSha256 = ""; + + // 파일 확인 + File f = new File(strFilePath); + if(!f.isFile()) { + out.println("File0 Not Found"); + return; + } + + //----------------------------------------------------------------------------- + // 1. 파일 -> 바이트 변환 + RandomAccessFile afile = new RandomAccessFile(strFilePath, "r"); + byte[] bytes = new byte[(int)afile.length()]; + afile.read(bytes); + afile.close(); + + //----------------------------------------------------------------------------- + // 2. 파일 마지막 수정 날짜 확인 + File file = new File(strFilePath); + Date date = new Date(file.lastModified()); + + SimpleDateFormat sdf = new SimpleDateFormat("yyMMddhhmmss"); + strFileDate = sdf.format(date); + + //----------------------------------------------------------------------------- + // 3. 파일 해쉬값 생성 + // 1) SHA-1 + XWMessageDigest xwmdSha1 = XWMessageDigest.getInstance("SHA-1"); + if(xwmdSha1 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha1 = xwmdSha1.digest(bytes); + strDigestSha1 = Cipher.toHexString(bDigestSha1); + + // 2) SHA-256 + XWMessageDigest xwmdSha2 = XWMessageDigest.getInstance("SHA-256"); + if(xwmdSha2 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha2 = xwmdSha2.digest(bytes); + strDigestSha256 = Cipher.toHexString(bDigestSha2); + + //----------------------------------------------------------------------------- + // file 1 + //----------------------------------------------------------------------------- + + // 서명 대상 파일명 추출 + cnt = 0; + tmpStr = strFilePath_1; + while(true){ + cnt = tmpStr.indexOf("/"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + while(true){ + cnt = tmpStr.indexOf("\\"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + String strFileName_1 = tmpStr; + + String strFileDate_1 = ""; + String strDigestSha1_1 = ""; + String strDigestSha256_1 = ""; + + // 파일 확인 + File f_1 = new File(strFilePath_1); + if(!f_1.isFile()) { + out.println("File1 Not Found"); + return; + } + + //----------------------------------------------------------------------------- + // 1. 파일 -> 바이트 변환 + RandomAccessFile afile_1 = new RandomAccessFile(strFilePath_1, "r"); + byte[] bytes_1 = new byte[(int)afile_1.length()]; + afile_1.read(bytes_1); + afile_1.close(); + + //----------------------------------------------------------------------------- + // 2. 파일 마지막 수정 날짜 확인 + File file_1 = new File(strFilePath_1); + Date date_1 = new Date(file_1.lastModified()); + + SimpleDateFormat sdf_1 = new SimpleDateFormat("yyMMddhhmmss"); + strFileDate_1 = sdf_1.format(date_1); + + //----------------------------------------------------------------------------- + // 3. 파일 해쉬값 생성 + // 1) SHA-1 + XWMessageDigest xwmdSha1_1 = XWMessageDigest.getInstance("SHA-1"); + if(xwmdSha1_1 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha1_1 = xwmdSha1_1.digest(bytes_1); + strDigestSha1_1 = Cipher.toHexString(bDigestSha1_1); + + // 2) SHA-256 + XWMessageDigest xwmdSha2_1 = XWMessageDigest.getInstance("SHA-256"); + if(xwmdSha2_1 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha2_1 = xwmdSha2_1.digest(bytes_1); + strDigestSha256_1 = Cipher.toHexString(bDigestSha2_1); + + //----------------------------------------------------------------------------- + // file 2 + //----------------------------------------------------------------------------- + + // 서명 대상 파일명 추출 + cnt = 0; + tmpStr = strFilePath_2; + while(true){ + cnt = tmpStr.indexOf("/"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + while(true){ + cnt = tmpStr.indexOf("\\"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + String strFileName_2 = tmpStr; + + String strFileDate_2 = ""; + String strDigestSha1_2 = ""; + String strDigestSha256_2 = ""; + + // 파일 확인 + File f_2 = new File(strFilePath_2); + if(!f_2.isFile()) { + out.println("File2 Not Found"); + return; + } + + //----------------------------------------------------------------------------- + // 1. 파일 -> 바이트 변환 + RandomAccessFile afile_2 = new RandomAccessFile(strFilePath_2, "r"); + byte[] bytes_2 = new byte[(int)afile_2.length()]; + afile_2.read(bytes_2); + afile_2.close(); + + //----------------------------------------------------------------------------- + // 2. 파일 마지막 수정 날짜 확인 + File file_2 = new File(strFilePath_2); + Date date_2 = new Date(file_2.lastModified()); + + SimpleDateFormat sdf_2 = new SimpleDateFormat("yyMMddhhmmss"); + strFileDate_2 = sdf_2.format(date_2); + + //----------------------------------------------------------------------------- + // 3. 파일 해쉬값 생성 + // 1) SHA-1 + XWMessageDigest xwmdSha1_2 = XWMessageDigest.getInstance("SHA-1"); + if(xwmdSha1_2 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha1_2 = xwmdSha1_2.digest(bytes_2); + strDigestSha1_2 = Cipher.toHexString(bDigestSha1_2); + + // 2) SHA-256 + XWMessageDigest xwmdSha2_2 = XWMessageDigest.getInstance("SHA-256"); + if(xwmdSha2_2 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha2_2 = xwmdSha2_2.digest(bytes_2); + strDigestSha256_2 = Cipher.toHexString(bDigestSha2_2); + + //----------------------------------------------------------------------------- + // file 3 + //----------------------------------------------------------------------------- + + // 서명 대상 파일명 추출 + cnt = 0; + tmpStr = strFilePath_3; + while(true){ + cnt = tmpStr.indexOf("/"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + while(true){ + cnt = tmpStr.indexOf("\\"); + if(cnt == -1) break; + tmpStr = tmpStr.substring(cnt+1); + } + String strFileName_3 = tmpStr; + + String strFileDate_3 = ""; + String strDigestSha1_3 = ""; + String strDigestSha256_3 = ""; + + // 파일 확인 + File f_3 = new File(strFilePath_3); + if(!f_3.isFile()) { + out.println("File3 Not Found"); + return; + } + + //----------------------------------------------------------------------------- + // 1. 파일 -> 바이트 변환 + RandomAccessFile afile_3 = new RandomAccessFile(strFilePath_3, "r"); + byte[] bytes_3 = new byte[(int)afile_3.length()]; + afile_3.read(bytes_3); + afile_3.close(); + + //----------------------------------------------------------------------------- + // 2. 파일 마지막 수정 날짜 확인 + File file_3 = new File(strFilePath_3); + Date date_3 = new Date(file_3.lastModified()); + + SimpleDateFormat sdf_3 = new SimpleDateFormat("yyMMddhhmmss"); + strFileDate_3 = sdf_3.format(date_3); + + //----------------------------------------------------------------------------- + // 3. 파일 해쉬값 생성 + // 1) SHA-1 + XWMessageDigest xwmdSha1_3 = XWMessageDigest.getInstance("SHA-1"); + if(xwmdSha1_3 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha1_3 = xwmdSha1_3.digest(bytes_3); + strDigestSha1_3 = Cipher.toHexString(bDigestSha1_3); + + // 2) SHA-256 + XWMessageDigest xwmdSha2_3 = XWMessageDigest.getInstance("SHA-256"); + if(xwmdSha2_3 == null) + { + out.println("> not support algorithm."); + return; + } + byte[] bDigestSha2_3 = xwmdSha2_3.digest(bytes_3); + strDigestSha256_3 = Cipher.toHexString(bDigestSha2_3); + + //----------------------------------------------------------------------------- + // 클라이언트에 파일 정보 전달 + //----------------------------------------------------------------------------- + strFileInfo = strFileName + "|" + strFileDate; + strFileHash = strAlgNameSha1 + "|" + strDigestSha1 + "$" + strAlgNameSha256 + "|" + strDigestSha256; + strMultiFileInfo = strFileName_1 + "|" + strFileDate_1 + "&" + + strFileName_2 + "|" + strFileDate_2 + "&" + + strFileName_3 + "|" + strFileDate_3 + "&"; + strMultiFileHash = strAlgNameSha1 + "|" + strDigestSha1_1 + "$" + strAlgNameSha256 + "|" + strDigestSha256_1 + "&" + + strAlgNameSha1 + "|" + strDigestSha1_2 + "$" + strAlgNameSha256 + "|" + strDigestSha256_2 + "&" + + strAlgNameSha1 + "|" + strDigestSha1_3 + "$" + strAlgNameSha256 + "|" + strDigestSha256_3 + "&"; +%> + + + + + + + + + + + + + + + + + + + + + + + +<% + out.println("

XecureWeb for Multi - SignFileInfo Test (Client)

"); + out.println("
"); + out.println("

1. Server 파일 해쉬값 생성

"); + + out.println("Server Input File Name: " + strFileName + "
"); + out.println("Last Modified Date:" + strFileDate + "
"); + out.println("XWMessageDigest(sha-1):" + strDigestSha1 + "
"); + out.println("XWMessageDigest(sha-256):" + strDigestSha256 + "
"); + + out.println("
"); + out.println("Server Input File Name: " + strFileName_1 + "
"); + out.println("Last Modified Date:" + strFileDate_1 + "
"); + out.println("XWMessageDigest(sha-1):" + strDigestSha1_1 + "
"); + out.println("XWMessageDigest(sha-256):" + strDigestSha256_1 + "
"); + + out.println("
"); + out.println("Server Input File Name: " + strFileName_2 + "
"); + out.println("Last Modified Date:" + strFileDate_2 + "
"); + out.println("XWMessageDigest(sha-1):" + strDigestSha1_2 + "
"); + out.println("XWMessageDigest(sha-256):" + strDigestSha256_2 + "
"); + + out.println("
"); + out.println("Server Input File Name: " + strFileName_3 + "
"); + out.println("Last Modified Date:" + strFileDate_3 + "
"); + out.println("XWMessageDigest(sha-1):" + strDigestSha1_3 + "
"); + out.println("XWMessageDigest(sha-256):" + strDigestSha256_3 + "
"); + + out.println("
"); +%> +
+ + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+ + + + + +
+ +

2. Client 서명값 생성

+
+ + +

SignFileInfo

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
Send + +
+
+
+ + + + +

SignFileInfoWithSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aSerial
aLocation
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
Send + +
+
+
+ + + + +

SignFileInfoWithVID

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aIdn
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000008 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 0x00000010 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창 뜨지 않음)
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
VID Output + +
Send + +
+
+
+ + + + +

SignFileInfoWithVID_Serial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aSerial
aLocation
aIdn
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000008 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 0x00000010 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창 뜨지 않음)
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
VID Output + +
Send + +
+
+
+ + + +

MultiSignFileInfo

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aTotal
aDelimiter
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
+
+
+ + + +

MultiSignFileInfoWithSerial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aSerial
aLocation
aTotal
aDelimiter
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
+
+
+ + + +

MultiSignFileInfoWithVID

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aIdn
aTotal
aDelimiter
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000008 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 0x00000010 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창 뜨지 않음)
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
VID Output + +
+
+
+ + + +

MultiSignFileInfoWithVID_Serial

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputXgateAddress
aCAList
aSerial
aLocation
aTotal
aDelimiter
aIdn
aFileInfo
aFileHash
aOption + + 0x00000000 : 기본 서명
+ + 0x00000001 : 서명확인창을 보여준다.
+ + 0x00000008 : WEB(aIdn)으로 부터 직접 VID를 입력받는다 (VID입력창 뜨지 않음)
+ + 0x00000010 : IDN값을 입력받지 않는다 ""로 IDN대체 (VID입력창 뜨지 않음)
+ + 0x00000100 : 출력 값을 Base64로
+
aDescription
aLimitPassword
Run + +
Output + +
VID Output + +
+
+
+ + +
+ +
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/AnySign4PC/test/signfileinfo_server.jsp b/src/main/webapp/AnySign4PC/test/signfileinfo_server.jsp new file mode 100644 index 00000000..dbf95478 --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/signfileinfo_server.jsp @@ -0,0 +1,135 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="xecure.crypto.jni.*" %> +<%@ page import="java.io.*" %> +<% + int err = 0; + String[] pemCerts = {}; + + // 서명 대상 파일 경로 + String strOrgFile = "/signfileinfo/test.txt"; + + // 1차 서명 파일을 저장할 경로 + String strSignFile = "/signfileinfo/test_1.sig"; + + // 2차 서명 파일을 저장할 경로 + String strSignFile2 = "/signfileinfo/test_2.sig"; + + // 2차 서명 인증서 정보 + File certpath = new File("/signfileinfo/cert/signCert.der"); + File keypath = new File("/signfileinfo/cert/signPri.key"); + String passwd = "qwer1234"; + + String signedData = request.getParameter("aSignedMsg"); + String vidMsg = request.getParameter("aVidMsg"); + + out.println("

XecureWeb for Multi - SignFileInfo Test (Server)

"); + + //----------------------------------------------------------------------------- + out.println("

1. 클라이언트 서명값

"); + if(signedData == null || signedData.length() == 0) { + out.println("invalid request"); + return; + } + out.println("Client Signed Data: " + signedData + "
"); + //----------------------------------------------------------------------------- + out.println("

2. 기존 서명 파일 삭제

"); + out.println("Delete File 1: " + strSignFile + "
"); + out.println("Delete File 2: " + strSignFile2 + "
"); + + File f1 = new File(strSignFile); + File f2 = new File(strSignFile2); + f1.delete(); + f2.delete(); + //----------------------------------------------------------------------------- + out.println("

3. 서명값 + 원본 파일 병합

"); + out.println("Original File Path: " + strOrgFile + "
"); + out.println("Merge File Path: " + strSignFile + "
"); + + XecureConfig xconfig = new XecureConfig(); + + SplitFileSign sfs = new SplitFileSign(xconfig); + byte[] bytes = new java.math.BigInteger(signedData, 16).toByteArray(); + err = sfs.merge(strSignFile, strOrgFile, bytes, pemCerts); + if (err != 0) + { + out.println("> SplitFileSign.merge error[" + sfs.getLastError() + "]"); + return; + } + out.println("> SplitFileSign.merge success
"); + //----------------------------------------------------------------------------- + out.println("

4. 병합된 서명 파일 검증

"); + out.println("Merge File Path: " + strSignFile + "
"); + + FileSignVerifier fsv = new FileSignVerifier(xconfig, strSignFile); + if (fsv.getLastError() != 0) + { + out.println("> FileSignVerifier error[" + fsv.getLastError() + "][" + fsv.getLastErrorMsg() + "]"); + return; + } + out.println("> FileSignVerifier success
"); + //----------------------------------------------------------------------------- + out.println("

5. 식별번호 검증

"); + if(vidMsg == null || vidMsg.length() == 0) { + out.println("> no input VID Data"); + } + else + { + out.println("Client VID Data: " + vidMsg + "
"); + + VidVerifier vv = new VidVerifier(xconfig); + //vv.virtualIDVerifyS(vidMsg, fsv.getSignerCertificate().getCertPem(), "1111112222222"); // 서버측에서 식별번호 입력 시 사용 + vv.virtualIDVerifyS(vidMsg, fsv.getSignerCertificate().getCertPem()); + if (vv.getLastError() != 0) + { + out.println("> VidVerifier error[" + vv.getLastError() + "][" + vv.getLastErrorMsg() + "]"); + return; + } + out.println("> VidVerifier success
"); + } + //----------------------------------------------------------------------------- + out.println("

6. 서버에서 파일 서명 (2차 서명)

"); + out.println("2nd Sign File path:" + strSignFile2 + "
"); + out.println("Cert File path:" + certpath + "
"); + out.println("Key File path:" + keypath + "
"); + out.println("Password:" + passwd + "
"); + + if (!certpath.exists() || !keypath.exists()) + { + out.println("> not exists Cert"); + return; + } + + RandomAccessFile fcert = new RandomAccessFile(certpath, "r"); + byte[] bpem = new byte[(int)fcert.length()]; + fcert.read(bpem); + fcert.close(); + + RandomAccessFile fkey = new RandomAccessFile(keypath, "r"); + byte[] bkey = new byte[(int)fkey.length()]; + fkey.read(bkey); + fkey.close(); + + byte[] bpasswd = passwd.getBytes(); + + FileSigner fs = new FileSigner(xconfig); + err = fs.signFileAddWithKey(bpem, bkey, bpasswd, strSignFile, strSignFile2); + if (err != 0) + { + out.println("> FileSigner.signFileAddWithKey error[" + fs.getLastError() + "]"); + return; + } + out.println("> FileSigner.signFileAddWithKey success"); + //----------------------------------------------------------------------------- + out.println("

7. 2차 서명 파일 검증

"); + out.println("2nd Sign File path:" + strSignFile2 + "
"); + + FileMultiSignVerifier fmsv = new FileMultiSignVerifier(xconfig, strSignFile2); + if (fmsv.getLastError() != 0) + { + out.println("> FileMultiSignVerifier error[" + fmsv.getLastError() + "]"); + return; + } + out.println("> FileMultiSignVerifier success"); +%> diff --git a/src/main/webapp/AnySign4PC/test/test.html b/src/main/webapp/AnySign4PC/test/test.html new file mode 100644 index 00000000..3db220eb --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/test.html @@ -0,0 +1,14 @@ + + + + New Document + + + + + + + + hello world + + diff --git a/src/main/webapp/AnySign4PC/test/user_regist_anypin.jsp b/src/main/webapp/AnySign4PC/test/user_regist_anypin.jsp new file mode 100644 index 00000000..36afe24f --- /dev/null +++ b/src/main/webapp/AnySign4PC/test/user_regist_anypin.jsp @@ -0,0 +1,373 @@ +<%@ page contentType="text/html; charset=utf-8" %> +<%@ page buffer="16kb" %> +<%@ page import="xecure.servlet.*" %> +<%@ page import="xecure.crypto.*" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.Calendar" %> + +<% +response.setHeader("Cache-Control","no-store"); +response.setHeader("Pragma", "no-cache"); +response.setDateHeader("Expires", 0); +%> + +<% + String []nameList = {"자신", "남편", "부인", "딸램", "아들", "막내", "장남", "장녀", + "차녀", "차남", "엄마", "아빠", "형님", "언니", "누나", "오빠", "동생", + "할아버지", "할머니", "큰아버지", "큰어머니", "삼촌", "사촌", + "매부", "매재", "매형", "제수", "제부", "고모", "고모부", + "이모", "이모부", "아저씨", "조카"}; + + java.util.Random aRandom = null; + + aRandom = (java.util.Random)application.getAttribute ("xwup.ibs.random"); + if (aRandom == null) + { + aRandom = new java.util.Random (); + application.setAttribute ("xwup.ibs.random", aRandom); + } +%> +<% + String commandType = request.getParameter("commandType"); + String targetRA = request.getParameter ("targetRA"); + String operaterId = "internet"; + String user_policy_type = request.getParameter("user_policy_type") ; + String company_name = request.getParameter("company_name"); + String user_name = request.getParameter("user_name"); + String cert_type = request.getParameter("cert_type"); + String cert_class = request.getParameter("cert_class"); + String corp_code = request.getParameter("corp_code"); + + String org_code = request.getParameter("org_code"); + String orgid_code = request.getParameter("orgid_code"); + + String position = request.getParameter("position"); + String foreigner_id_num = request.getParameter("foreigner_id_num"); + String reg_master_num = request.getParameter("reg_master_num"); + String executive_num = request.getParameter("executive_num"); + String publicOrPrivate = request.getParameter("user_public_or_private"); + + //String ext3 = request.getParameter("ext3"); + + int i; + int ca_result = 0; + XecureConfig xconf = new XecureConfig (); + XecureCA ca_client = null; + String ip = null; + int port = -1; + int caType = -1; + int caRMPType = -1; +%> + +<% + ip = xconf.getXecureCaHost (); + port = xconf.getXecureCaPort (); + + if (targetRA != null) + { + if (targetRA.equalsIgnoreCase ("1024")) /* 1024 XecureCA Information */ + { + ip = "192.168.0.26"; + port = 29210; + caType = 2; + caRMPType = 2; + } + else if (targetRA.equalsIgnoreCase ("2048")) /* 2048 XecureCA Information */ + { + if (publicOrPrivate.equals("yessignmpki")) { + ip = "192.168.0.43"; + port = 5301; + caType = 2; + caRMPType = 1; + } else { + //ip = "192.168.0.4"; + ip = "192.168.60.60"; + //port = 21200; + port = 30000; + caType = 2; + caRMPType = 2; + } + } + } + + ca_client = new XecureCA (xconf, ip, port, caType, caRMPType); + + + if (org_code == null) + org_code = ""; + if (orgid_code == null) + orgid_code = ""; + if (corp_code == null) + corp_code = "0000"; + if (cert_class == null) + cert_class = "0000"; + if (cert_type == null) + cert_type = "0000"; + + + if (commandType != null && commandType.equalsIgnoreCase ("update")) + { + boolean isError = false; + if (user_policy_type == null) + isError = true; + + if (user_name == null) + isError = true; + + if (isError) + { +%> +({"code":"-1" +"reason":"no policy or user_name or ssn" +"moreinformation":""}) +<% + return; + } + + } + + if (user_policy_type == null) + { + user_policy_type = "104"; + } + + if (user_name == null || user_name.length () == 0) + { + user_name = nameList [aRandom.nextInt (nameList.length)]; + if (targetRA.equalsIgnoreCase("2048")) + { + while (user_name.length() < 4) + { + user_name = nameList [aRandom.nextInt (nameList.length)]; + } + } + } + else + user_name = new String(user_name.getBytes("iso8859-1"), "utf-8"); + + String euser_name = request.getParameter("euser_name"); + String user_id = request.getParameter("user_id"); + String real_id = request.getParameter("real_id"); + String ssn = request.getParameter("ssn"); + + String policy_type ; + String user_type; + String check_real_id; + String service_code, service_key; + String cert_status; + + user_type = user_policy_type.substring(0, 1); + + if( user_type.equals("1") ) + { + if (ssn == null || ssn.length () == 0) + { + StringBuffer aBuffer = new StringBuffer (); + Calendar aCalendar = Calendar.getInstance (); + String aSSNTail = null; + aSSNTail = String.valueOf (aRandom.nextInt (2999999)); + + aBuffer.append (String.valueOf (aCalendar.get(Calendar.YEAR)).substring (2)); + + if (aCalendar.get(Calendar.MONTH) < 10) + aBuffer.append ("0"); + aBuffer.append (String.valueOf (aCalendar.get(Calendar.MONTH))); + + if (aCalendar.get(Calendar.DAY_OF_MONTH) < 10) + aBuffer.append ("0"); + aBuffer.append (String.valueOf (aCalendar.get(Calendar.DAY_OF_MONTH))); + + + if (aSSNTail.length () < 7) + { + for (int aIter = 0; aIter < 7 - aSSNTail.length (); ++aIter) + { + aBuffer.append ("0"); + } + } + aBuffer.append (aSSNTail); + + ssn = aBuffer.toString (); + + } + if (user_id == null) + user_id = ssn; + + policy_type = user_policy_type.substring(1,3); + //user_id = policy_type + ssn.charAt(5) + user_id; + + if (real_id == null) + real_id = user_id; + } + else if ( user_type.equals("2") ) + { + if (ssn == null || ssn.length () == 0) + { + StringBuffer aBuffer = new StringBuffer (); + String aSSNTail = null; + aSSNTail = "2" + String.valueOf (aRandom.nextInt (999999999)); + + if (aSSNTail.length () < 10) + { + for (int aIter = 0; aIter < 10 - aSSNTail.length (); ++aIter) + { + aBuffer.append ("0"); + } + } + aBuffer.append (aSSNTail); + + ssn = aBuffer.toString (); + } + + if (company_name == null) + company_name = ssn; + if (euser_name == null) + euser_name = ssn; + if (user_id == null) + user_id = ssn; + + policy_type = user_policy_type.substring(1,3); + //user_id = policy_type + ssn.charAt(8) + user_id; + + if (real_id == null) + real_id = user_id; + } + else + policy_type = user_policy_type.substring(1,2); + + String email = "dont email me"; + String cell_phone = "dont call me"; + String fax = "dont fax me"; + String zipcode = "127-311"; + String address = "dogok dong house"; + String phone = "02-526-8000"; + String czipcode = "127-311"; + String caddress = "dogok dong"; + String cphone = "02-526-8000"; + + +%> +({"ssn":"<%=ssn%>", +"name":"<%=user_name%>", +<% + + service_code = "2"; + service_key = user_id; + + ca_result = ca_client.viewCertificate(operaterId, service_code, service_key, corp_code, 0, 1 ); + + check_real_id = (String)ca_client.getResponseFromCertView("USERID",1); + cert_status = (String)ca_client.getResponseFromCertView("STATUS",1); + + if(cert_status.equalsIgnoreCase("10")) // 인증서 등록상태 정상인 경우는 재발급 등록 요청 + { + commandType = "rereg"; + } + else if(cert_status.equalsIgnoreCase("30") || cert_status.equalsIgnoreCase("40")) // 인증서 등록상태 폐지, 효력정지인 경우는 신규 등록 요청 + { + commandType = "new"; + } + else // 인증서 미등록인 경우는 신규 등록 요청 + { + commandType = "new"; + } + +%> +"check_real_id":"<%=check_real_id%>", +"cert_status":"<%=cert_status%>", +"commandType":"<%=commandType%>", +<% + + if (commandType == null || commandType.equalsIgnoreCase ("new")) + { + ca_result = ca_client.registerNewUser (operaterId, + user_type, + company_name, + user_name, + user_id, + ssn, + policy_type, + email, + cell_phone, + fax, + zipcode, + address, + phone, + czipcode, + caddress, + cphone, + cert_type, + cert_class, + corp_code, + org_code, + orgid_code, + position, + foreigner_id_num, + reg_master_num, + executive_num, + real_id); + } + else if (commandType.equalsIgnoreCase ("rereg")) + { + ca_result = ca_client.registerReNewUser (operaterId, + user_type, + company_name, + user_name, + user_id, + ssn, + policy_type, + email, + cell_phone, + fax, + zipcode, + address, + phone, + czipcode, + caddress, + cphone, + cert_type, + cert_class, + corp_code, + org_code, + orgid_code, + position, + foreigner_id_num, + reg_master_num, + executive_num, + real_id, + 0); + } + else if (commandType.equalsIgnoreCase ("update")) + { +%> +"code":"none", +"reason":"XecureCA does not support registration for UPDATE", +"moreinformation":"CA IP:<%=ip + ", CA Port:" + port%>" +}) +<% + return; + + } + if ( ca_result == 0 ) { + user_id = ca_client.getResponseFromRegUser("USERID"); + real_id = ca_client.getRealUserId(user_id,corp_code); +%> +"code":"0", +"ip":"<%=ip%>", +"port":"<%=port%>", +"regdate":"<%=ca_client.getResponseFromRegUser("REGDATE")%>", +"regserial":"<%=ca_client.getResponseFromRegUser("REGSERIAL")%>", +"userid":"<%=user_id%>", +"realid":"<%=real_id%>", +"refcode":"<%=ca_client.getResponseFromRegUser("REFCODE")%>", +"authcode":"<%=ca_client.getResponseFromRegUser("AUTHCODE")%>" +<% } + else + { +%> +"code":"<%=ca_client.getLastError()%>", +"reason":"<%=ca_client.getLastErrorMsg()%>", +"moreinformation":"CA IP:<%=ip + ", CA Port:" + port %>" +<% } +%> +}) diff --git a/src/main/webapp/WEB-INF/decorators.xml b/src/main/webapp/WEB-INF/decorators.xml index 5cb75977..b51eaa99 100644 --- a/src/main/webapp/WEB-INF/decorators.xml +++ b/src/main/webapp/WEB-INF/decorators.xml @@ -159,6 +159,9 @@ /web/user/mypage/case/01/168/devCiMakePop.do /web/user/siren/case/04/154/check.do */web/user/mediation/case/caseSignPop/popup.do* + /web/user/mediation/case/pdf/pdfDownload.do + /web/user/mediation/case/pdf/viewer.do + diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseSignPop.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseSignPop.jsp index 86c9d437..fb7231ee 100644 --- a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseSignPop.jsp +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseSignPop.jsp @@ -40,10 +40,9 @@ + + - + @@ -119,7 +129,8 @@
- +<%-- --%> +
diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer.jsp index 27bdd49b..31908581 100644 --- a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer.jsp +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer.jsp @@ -2,375 +2,124 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> - - - - - - - PDF 문서 VIEW - - + + + PDF Viewer - - - - + - - - - + + + + + + +
+ + 페이지 1 / --- + +
+
-
- - - - -
-
- - - -
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer_back.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer_back.jsp new file mode 100644 index 00000000..2d19d800 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/caseViewer_back.jsp @@ -0,0 +1,417 @@ +<%@ page contentType="text/html;charset=utf-8" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + PDF 문서 VIEW + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + +
+
+
+
+
+ + +
+ +
+ +
+ + + + +
+
+
+
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ +
+ +
+ + + +
+
+
+
+
+
+
+
+
+
+ + + + + + + + +
+
+
+ + +
+ + + +
+
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/checkMediationStep03.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/checkMediationStep03.jsp index 2991c20d..0c0f5602 100644 --- a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/checkMediationStep03.jsp +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/checkMediationStep03.jsp @@ -249,7 +249,7 @@ $('#commentType').val(type); var f = document.scheduleFrm; - var popOption = "width=900, height=800, resizable=no, scrollbars=no, status=no;"; + var popOption = "width=1200, height=800, resizable=no, scrollbars=yes, status=no;"; var pop = window.open('', "caseSignPop", popOption); f.target = "caseSignPop"; f.action = "/web/user/mediation/case/caseSignPop/popup.do"; @@ -350,7 +350,10 @@ @@ -375,7 +378,10 @@ @@ -391,7 +397,10 @@ @@ -413,7 +422,10 @@ @@ -425,8 +437,11 @@
-<%--
--%> - gif  ${file.fileName} (${file.regDt}, ${file.fileOwner}) + @@ -442,7 +457,10 @@ @@ -465,7 +483,7 @@ @@ -477,7 +495,7 @@ @@ -489,7 +507,7 @@ @@ -499,7 +517,7 @@ @@ -509,7 +527,7 @@ diff --git a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/nice/niceList.jsp b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/nice/niceList.jsp index 888b99d0..233da0c8 100644 --- a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/nice/niceList.jsp +++ b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/nice/niceList.jsp @@ -80,7 +80,7 @@ $("#type").val("NICESEARCH"); var param = jQuery('#frm').serialize(); url = "/gtm/case/common/ajax/NICE.do"; - XHR(url, param, function(r){ + XHR2(url, param, function(r){ //alert(r.apiKey); //alert(r.niceSearch.Search.OperationResponse.SA0701.Items.totalcount); //alert(r.niceSearch.Search.OperationResponse.SA0701.Items.Item[1].korentrnm); diff --git a/src/main/webapp/WEB-INF/views/_common/_js/pdf/web/viewer.js b/src/main/webapp/WEB-INF/views/_common/_js/pdf/web/viewer.js index 79a9facd..eff9f44e 100644 --- a/src/main/webapp/WEB-INF/views/_common/_js/pdf/web/viewer.js +++ b/src/main/webapp/WEB-INF/views/_common/_js/pdf/web/viewer.js @@ -4372,7 +4372,8 @@ var defaultOptions = { kind: OptionKind.WORKER }, workerSrc: { - value: '../build/pdf.worker.js', +// value: '../build/pdf.worker.js', + value: '/js/pdf/build/pdf.worker.js', kind: OptionKind.WORKER } }; diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index d78050dd..46354cea 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -126,6 +126,7 @@ *.woff2 *.ico *.jpg + *.properties