/* MagicLine4 JavaScript version 4.2 by kj * (c) 2007-2010 DreamSecurity * * DreamSecurity license.; * For details, see the web site: http://www.dreamsecurity.com/ * *--------------------------------------------------------------------------*/ /* Non-Plugin 설정 */ var MagicLine = {}; var MagicLineUi = {}; var installCheck = {}; installCheck.count = 0; MagicLine.Port = [ "42233", "45533"]; MagicLine.CsPort = "42233"; //CS Portins MagicLine.exPort = [ "42233", "45533"]; MagicLine.CsUrl = "https://127.0.0.1:"; //CS IP MagicLine.session = ""; MagicLine.popupCallback = ""; // 설치페이지 콜백 MagicLine.isInstall = "download"; //설치페이지 사용여부 true/false/download (바로다운로드) MagicLine.InstallCheckCount = 5; // 설치확인 횟수 1회 ( 0.5 초) MagicLine.Version = "1"; MagicLine.clientVersion = ""; MagicLine.isCookie = "true"; //쿠키설정 MagicLine.DownloadCount = 0; //다운로드버튼 횟수 제한 MagicLine.DownloadWinFileName = "magicline4npiz.exe"; // 클라이언트 다운로드 파일명 MagicLine.DownloadMacFileName = "MagicLineNPIZ.pkg"; MagicLine.crossServerURL = location.protocol +'//'+ location.host+"/MagicLine4NPIZ/magicline4np/jsp/"; MagicLine.UrlSchemeServerURL = location.protocol +'//'+ location.host+"/MagicLine4NPIZ/magicline4np/jsp/"; MagicLine.DownloadURL = location.protocol +'//'+ location.host+"/MagicLine4NPIZ/magicline4np/install_bin/"; MagicLine.InstallPageURL = location.protocol +'//'+ location.host+"/MagicLine4NPIZ/magicline4np/install_page/magicline4np_install.jsp"; MagicLine.DownloadUrl = location.protocol +'//'+ location.host+"/MagicLine4NPIZ/magicline4np/install_bin/"; MagicLine.popupCheck = 0; MagicLine.MLpopup=""; MagicLine.closeCallback = ""; MagicLine.successCallback = ""; MagicLine.failedCallback = ""; //errorcode : 2:서버인증서 획득실패, 3:kdf 실패, 4: base64Decode 실패, -1777: 서버 상호검증 실패, -3000 쿠키 허가 MagicLine.scriptType = "";//magiclineclient : client , MagicLineNP : "" MagicLine.AjaxLocal = false; //Ajax 함수 재설정 옵션 MagicLineUi.setSessionTimeout = "60"; //sessionTimeout 값 설정 변수. 분단위로 표기 //20160321 매직라인27버전부터 적용 MagicLineUi.documentWrite = "false"; //true document.write 사용, false createElement 사용 MagicLineUi.dialogWidth = 480; MagicLineUi.dialogButton = 80; MagicLineUi.upgradeClient = false; //자바스크립트로 클라이언트 업그레이드 (false : 사용안함, true : 사용) MagicLineUi.upgradeVersion = "";//"1.0.0.15"; //업그레이드 할 버전 (ex : 1.0.0.15); /* 매직라인 환경변수 정의*/ var mlEnv = { Product: 'ALL', // MB, MBX, ALL RootPath: '/MagicLine4NPIZ/magicline4np/', // Webcontext path RootContext: location.protocol +'//'+ location.host, MagicLineInstallType: 0, //0:ActiveX 바로설치, 1:Download Page debug:false }; MagicLineUi.installCheckMessage = "MagicLine 설치를 확인 중 입니다."; MagicLineUi.popupCheckMessage = "팝업이 차단된 경우 정상적으로 동작하지 않습니다.\n 팝업을 허용해 주세요"; MagicLineUi.setupCertFailed = "프로그램이 정상적으로 설치되어 있지 않습니다.\n 브라우저 재구동후 다시 설치하여 주세요"; MagicLineUi.downloadCheckMessage ="다운로드가 되지 않는 경우 '다운로드' 버튼을 눌러주세요"; MagicLineUi.setupConfirmMessage = "MagicLine 이 설치되어 있지 않은 경우에는 '설치' 버튼을 눌러주세요"; MagicLineUi.setupConfirmMessageMAC = "MagicLine 설치 확인에 실패하였습니다.
보안프로그램이 설치되어 있지 않은 경우에는 '설치' 버튼을
눌러주세요
이미 설치를 완료한 경우 직접 프로그램을 실행시켜 주세요"; MagicLineUi.upgradeConfirmMessage = "설치된 MagicLine이 최신버전이 아닙니다.
최신버전을 다운로드하여 설치하세요"; MagicLineUi.downloadPopMessge = "OS에 맞는 MagicLine을 설치하세요"; MagicLineUi.setupMessage = "설치"; MagicLineUi.startMessage = "실행"; MagicLineUi.cancelMessage = "취소"; MagicLineUi.restartDownLoadMessage = "다운로드"; /* 매직라인 설치페이지 관련 변수 */ var returnIndexPage = '/dmobis/uat/uia/LoginUsr.do'; // return page, 설치 후 돌아가는 페이지 index 페이지 /* 매직라인 기능설정 정의 */ var mlProp = { /************************************************************************************************************************************************************************************************ 매직라인 클라이언트 자바 & 엑티브엑스 공통 속성 ************************************************************************************************************************************************************************************************/ //매직라인설치폴더 (C:/ProgramFiles/{경로}) WorkDir: 'DreamSecurity/MagicLine4NP', //서버용인증서 (BASE64 인코딩값) ServerCert: 'MIIEgjCCA+ugAwIBAgICB6AwDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCS1IxFjAUBgNVBAoTDURyZWFtU2VjdXJpdHkxDjAMBgNVBAsTBVdpcmVkMQ0wCwYDVQQDEwRST09UMB4XDTA0MDUxNzA2MDMwMloXDTA1MDUxNzA2MDMwMlowTjELMAkGA1UEBhMCS1IxFjAUBgNVBAoTDURyZWFtU2VjdXJpdHkxDjAMBgNVBAsTBVdpcmVkMRcwFQYDVQQDDA5BTllfMDAwMDAwMTM3NDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA8oiK9s24U15Zc27yPSXvruwlgsngL9+dGiALMSG0ug3U9yUdJ+NqgBfMTvu2LE2EgoVObbwEWfdMCE8xmjlWVJzQRQATtvlGHiKXvAIwSjZq/gBIKLdKYmHQxBJk9NNE1nhHE6u0dlvVulNpDqO8hPj0P0OplWxHFZtEBpkSsDECAwEAAaOCAncwggJzMGwGA1UdIwRlMGOAFIwdeyOqAicpnNHLlhqKYmCRRZpBoUikRjBEMQswCQYDVQQGEwJLUjEWMBQGA1UEChMNRHJlYW1TZWN1cml0eTEOMAwGA1UECxMFV2lyZWQxDTALBgNVBAMTBFJPT1SCAQMwHQYDVR0OBBYEFL+l1vv7eUOivC/pmfP4xbZtjJW3MA4GA1UdDwEB/wQEAwIAMDB7BgNVHSAEdDByMHAGCiqDGoyaRAUCPAEwYjBgBggrBgEFBQcCAjBUMBQaDURyZWFtU2VjdXJpdHkwAwIBARo8VGhpcyBDZXJ0aWZpY2F0ZSBpcyBnZW5lcmF0ZWQgYnkgRHJlYW1zZWN1cml0eSBmb3IgQ0Fvc19YNTA5MCEGA1UdEQQaMBigFgYJKoMajJpECgEBoAkwBwwDQU5ZMAAwgecGA1UdHwSB3zCB3DBRoE+gTYZLbGRhcDovL2Nhb3MuZHJlYW1zZWN1cml0eS5jb206Mzg5L2NuPWNybDExZHAyLG91PVdpcmVkLG89RHJlYW1TZWN1cml0eSxjPUtSMIGGoIGDoIGAhn5odHRwOi8vY2Fvcy5kcmVhbXNlY3VyaXR5LmNvbS9jcmw/aWg9b0N4RlRlMWFtZGdoV3NrbnlGdmt2ZG4yRG9nJTNkJmRwPWNuJTNkY3JsMTFkcDIlMmNvdSUzZFdpcmVkJTJjbyUzZERyZWFtU2VjdXJpdHklMmNjJTNkS1IwSgYIKwYBBQUHAQEEPjA8MDoGCCsGAQUFBzABhi5odHRwOi8vY2Fvcy5kcmVhbXNlY3VyaXR5LmNvbToxNDIwMy9PQ1NQU2VydmVyMA0GCSqGSIb3DQEBBQUAA4GBACYZfFj6/Ixe3VViMpURAyYX7zBnoUDbCputCTuETzWMEuAc7/ciMGrnGVXitbRmpFlRINWnvDbrwHGF88xCRM1MTzEbLaBcDIMMCvIerUSW2/ocwd/vY6RRN38RAvVuYyNogbphVPaHJv85ivmdT47F7WcvyTz2XCAOJY5QJnJ5', //대칭키 알고리즘 AlgoMode: 0x30, // 0x10 : DES CBC // 0x30 : SEED CBC // 0x40 : ARIA CBC // 0x80 : RC4 CBC // 0xE0 : NEAT CBC // 0xF0 : NES CBC // 로드할 인증서 용도 GNCertType: 0x00, // 0x00 : 모두 // 0x01 : GPKI // 0x02 : NPKI // 0x04 : MPKI // 0x08 : Private // 특정정책 인증서 옵션 ValidCertInfo: '', // 모든인증서 : '' // 특정인증서 : 1 2 410 200005 1 1 4|1 2 410 200004 5 2 1 2| // 로드할 인증서 타입 ReadCertType: 0x00, // 0x00 : 모두 // 0x01 : 서명용 // 0x02 : 암호키분배용 // 키보드 보안 API KeyStrokeType: 0x00, // 0x00 : 사용안함 // 0x01 : Softcamp // 0x02 : INCA v4 // 0x03 : Ahnlab // 0x04 : Softforum // 0x05 : Space International // 0x06 : INCA v6 // 0x07 : Kings K-defence // 0x12 : INCA non-plugin //매직라인 로고이미지 URL LogoURL:mlEnv.RootContext + mlEnv.RootPath + 'banner_img/smartcert.bmp.bmp',//mlEnv.RootContext + mlEnv.RootPath + 'banner_img/test.bmp', //mlEnv.RootContext + mlEnv.RootPath + 'banner_img/ex_banner3.bmp', /************************************************************************************************************************************************************************************************ 매직라인 클라이언트 자바 속성 ************************************************************************************************************************************************************************************************/ MagicLineCertPolicyValue: 'ALL', // ALL : 모든 인증서 정책 OID, 기타 세부 OID 는 각 인증 도메인별 규격 /************************************************************************************************************************************************************************************************ 매직라인 클라이언트 엑티브엑스 속성 ************************************************************************************************************************************************************************************************/ SiteID: 'MagicLine', // SiteID :세션정보를 획득하는 키값 // 매직라인 로고이미지 검증 옵션 VerifyImage: 0, // 0 : 검증 안함 // 1 : 검증함 // 패스워드입력 자동포커스 옵션 PasswordFocus: 1, // 0 : 사용안함 // 1 : 사용함 // 패스워드 입력가능 횟수 PasswordLockCount: 0, // 0 : 사용 않음 // 1 ~ : 인증서 비밀번호 입력 실패 가능 횟수: // 사설인증서 설정 //PrivateCertO: 'EXPKI', // 사설인증서 사용시 'O'값에 따른 읽기 설정 //SoftAndPartners // 사설인증서 사용시 DN의 'O'값(MagicPKI) PrivateCertPath: encodeURIComponent('AppData\\LocalLow\\EXPKI|'), // 사용자 계정 아래 경로 추가 // 인증서 OID에 따른 Name 설정 PrivateCertIssuerOID: '1.2.3.4.5', PrivateCertIssuerOIDName: '도로공사', ReplaceIsserName: '하이포탈', // 전자서명 원문 CMSOption: 4, // 0x00 : 옵션 없음 // 0x01 : PKCS#7의 메시지 사용 // 0x02 : ContentInfo 사용 // 0x04 : 원본메시지 포함하지 않음 // 보안토큰 구동프로그램 페이지 주소 설정 TokenInstallURL: 'http://rootca.kisa.or.kr/kor/hsm/hsm.jsp', // 스마트 공인인증설정 USIMServerIP: 'center.smartcert.kr', // 중계서버 IP USIMServerPort: 443, // 중계서버 Port USIMSiteDomain: 'www.yebigun1.mil.kr',//'www.dreamsecurity.com', // 적용할 사이트도메인 정보 USIMCertList: 1, // 현재 사용하지 않음. USIMRAONSiteCode: 609100003, // 라온에 요청하여 받아야 하는 코드 IssuerDN: '', // 인증서 필터링기능 // IssuerDN : "CN=CrossCert Certificate Authority,OU=AccreditedCA,O=CrossCert,C=KR|CN=yessignCA Class 1,OU=AccreditedCA,O=yessign,C=kr|CN=TradeSignCA,OU=AccreditedCA,O=TradeSign,C=KR", // 서명 옵션 CertOption:1, // 0 : 로그인한 세션인증서(선택창 띄움) // 1 : 선택창에서 선택 // 2 : 세션의 인증서 // 3 : 입력한 인증서 개인키(선택창 띄움) // 4 : 입력한 인증서 개인키 // 휴대폰인증서 PhoneCertOpt:2, // 0:none, 1:all, 2:Ubikey, 3: MobileKey // 서비스 추가 사용 변수 2: UbiKey, 4 : MobileKey, 8 : PCRO, 16 스마트공인인증(유심) ( 선택한 변수 + 연산하여 사용 ) MobileKeyURL: 'http://www.mkey.kr/popup/mkey.htm', UbikeyVersion: '1.4.1.9', UbikeyPopupURL: window.location.protocol + '//' + window.location.host + '/infovine/download.html', UbikeyWParam: 'YEBIGUN1|NULL', //UbikeyWParam:'NTS_HTS', //NTS_HTS UbikeylParam: 'DREAMSECURITY|KINGS_INFOVINE|', //UbikeylParam:'DREAMSECURITY|SOFTFORUM', MediaTokenOpt: 5, //저장토큰 옵션 (0:none, 1:NPKI, 2:GPKI, 4:MaGer) ToolTip: 0x01, // 0x00 : 사용안함, 0x01: 사용 ExpiredCert: 0x00, // 만료된 인증서 로드 여부 //0x00 : 만료된 인증서 로드, //0x01 : 만료된 인증서 로드하지 않음, //0x02 : 만료된 인증서 클릭시 툴팁 메시지 패스워드창과 확인버튼 disable LanguageOpt: 0, // 0 : defulat, 1: ENG , 2: KOR , -1 : system Language 언어팩 사용 여부 CertTabOpt: 0, // 0 : 일반 탭, 1:관리 탭, 2: all CertManageOpt: 0x0F, //관리탭 사용 여부- 관리탭 사용 ( 0x00: 사용 안함, 0x01: User, 0x02: CA, 0x04: root, 0x08: private ) EnableMedia: 123, //하드디스크 1 //이동식 디스크 2 //스마트카드 8 //보안토큰 16 //휴대폰 32 ( 선택한 변수 + 연산하여 사용 ) //스마트공인인증 64 bVitulPad: false, //가상키보드 사용여부 true: 사용 , false : 사용안함 VitualKeyPadURL: '', //가상키보드 URL ex)http://nshc.net:8080/OpenWebNFilter/cs_nfilter.jsp?publickey= RootCertHashURL: 'https://rootca.kisa.or.kr/kor/popup/potency.jsp', //~! 2012.10.30. charSet: 'KSC5601', // character set. 'KSC5601', 'UTF-16LE' bUseMagicGuard: 0, //0:기존 일반 로그인창, 1:매직가드용 SessionID: "", MagicLineCertSubjectDNValue: '', getCharsetCode:function() { if (mlProp.charSet == "UTF-16LE") { return 1; } else if (mlProp.charSet == "KCS5601") { return 0; } else { return 0; } }, // 이니텍 패치 INIPASS DS_PKI_CERT_PATH: {"GPKI":[], "NPKI":['INIPASS'], "MPKI":[], "PPKI":[]}, DS_PKI_POLICY_OID: { "1.2.410.200004.5.5.1.1":"범용(개인)", "1.2.410.200004.5.5.1.2":"범용(기업)", "1.2.410.200004.5.5.1.3.1":"제휴기관용(개인)", "1.2.410.200004.5.5.1.4.1":"제휴기관용(기업)", "1.2.410.200004.5.5.1.4.2":"전자세금용(기업)" } }; //==================================================================== //MagicLine4NP WebUI ( WebUI를 사용하지 않는 경우 해당 기능을 별도로 구현해야 한다.) //==================================================================== //인스톨 확인 Dialog MagicLineUi.installCheckdialog = function(){ try{ ML$("#progress").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();} }); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.installCheckDialog ] : "+ e.message); } }; //인스톨 확인 dialog 닫기 MagicLineUi.installCheckdialogClose = function(){ try{ ML$("#progress").dialog("close"); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.installCheckdialogClose ] : "+ e.message); } }; MagicLineUi.ML_linux_downloadPop = function(){ try{ ML$("#ML_linux_downloadPop").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();} }); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.installCheckDialog ] : "+ e.message); } }; //인스톨 확인 dialog 닫기 MagicLineUi.ML_linux_downloadPopClose = function(){ try{ ML$("#ML_linux_downloadPop").dialog("close"); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.installCheckdialogClose ] : "+ e.message); } }; //클릭방지 Mask처리 MagicLineUi.openMask = function(){ try{ ML$("#mask").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();ML$(".MLui-dialog").hide();} }); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.openMask ] : "+ e.message); } }; //클릭방지 Mask처리 닫기 MagicLineUi.closeMask = function(){ try{ ML$("#mask").dialog("close"); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.closeMask ] : "+ e.message); } }; //직접다운로드 dialog MagicLineUi.downloadChecker = function(){ try{ ML$("#downloadChecker").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();} }); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.downloadChecker ] : "+ e.message); } }; //직접다운로드 dialog close MagicLineUi.downloadCheckerClose = function( closeCallbackFlag ){ try{ ML$("#downloadChecker").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 if( closeCallbackFlag === true ){ MagicLine.popupCallback(false); } }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.downloadCheckerClose ] : "+ e.message); } }; MagicLineUi.upgradeConfirm = function(callback){ try{ ML$("#layerPopUpgrade").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();} }); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 MagicLine.popupCallback = ""; MagicLine.popupCallback = callback; }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.upgradeConfirm ] : "+ e.message); } }; //설치가이드 Dialog 닫기 ( 설치 안 할 경우 ) MagicLineUi.upgradeConfirmClose = function(IdName){ try{ ML$("#layerPopUpgrade").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 MagicLine.popupCallback(false); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.upgradeConfirmClose ] : "+ e.message); } }; MagicLineUi.goUpgrade = function(){ try{ ML$("#layerPopUpgrade").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 MagicLine.popupCallback(true); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.goUpgrade ] : "+ e.message); } }; //설치가이드 Dialog MagicLineUi.installPageConfirm = function(callback){ try{ ML$("#layerPop").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();} }); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 MagicLine.popupCallback = ""; MagicLine.popupCallback = callback; }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.installPageConfirm ] : "+ e.message); } }; //설치가이드 Dialog 닫기 ( 설치 안 할 경우 ) MagicLineUi.closeLayer = function( callbackFlag ){ try{ ML$("#layerPop").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 if( callbackFlag ){ MagicLine.popupCallback(false); } }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.closeLayer ] : "+ e.message); } }; //설치가이드 Dialog 닫기 ( 설치 ) MagicLineUi.goInstall = function(IdName){ //ML$("#downloadChecker").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 try{ MagicLine.popupCallback(true); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.goInstall ] : "+ e.message); } }; //설치가이드 MAC용 Dialog MagicLineUi.installPageConfirmMac = function(callback){ try{ ML$("#layerPopMac").dialog({ width:MagicLineUi.dialogWidth, Position:"center", dialogClass:"MLDialogClass", closeOnEscape:false, modal: true, open: function(event, ui){ ML$(".MLui-dialog-titlebar-close").hide();ML$(".MLui-dialog-title").hide();ML$(".MLui-dialog-titlebar").hide();} }); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 MagicLine.popupCallback = ""; MagicLine.popupCallback = callback; }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.installPageConfirmMac ] : "+ e.message); } }; //설치가이드 Dialog 닫기 ( 설치 안 할 경우 ) MagicLineUi.closeLayerMAC = function( callbackFlag ){ try{ ML$("#layerPopMac").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 if( callbackFlag ){ MagicLine.popupCallback(false); } }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.closeLayerMAC ] : "+ e.message); } }; //설치가이드 Dialog 닫기 ( 설치 ) MagicLineUi.goInstallMAC = function(IdName){ try{ ML$("#layerPopMac").dialog("close"); //콜백 함수를 제거할 경우 MagicLineUi.InstallCheck 함수에서 에러발생 MagicLine.popupCallback(true); }catch( e ){ MagicLine4NpLog.log( " dialogError [ MagicLineUi.goInstallMAC ] : "+ e.message); } }; //==================================================================== //MagicLine4NP 설치 관련 기능 //==================================================================== //설치페이지 이동 MagicLineUi.goInstallPage = function(){ MagicLine.setCookie( "MagicLine4NPreturnUrl", window.location.href, 0 ); window.location.href = MagicLine.InstallPageURL; }; MagicLineUi.initErrorMoveIndexPage = function(){ alert(decodeURI(MagicLineUi.clientConnectFailedMessage)); MagicLineUi.goIndexPage(); }; MagicLineUi.restartInstallCheck = function(){ var os = MagicLine.getOS(); var MagicLine4NpBrowser = MagicLine.getBrowser(); installCheck.count = 0; try{ MagicLineUi.closeLayer(); MagicLineUi.installCheckdialog(); MagicLineUi.InstallCheck(); }catch(e){} MagicLine.sendURLScheme(); } MagicLineUi.goIndexPage = function(){ MagicLine.MLpopupClose(MagicLine.MLpopup); if( typeof MagicLine.closeCallback !== 'function'){ document.location.href = returnIndexPage; }else{ MagicLine.closeCallback(); } } MagicLineUi.successInstallCheck = function(){ try{ var os = MagicLine.getOS(); if( os.indexOf("win") >= 0){ MagicLineUi.closeLayer(); }else{ MagicLineUi.closeLayerMAC(); } }catch( e ){ } try{MagicLineUi.installCheckdialogClose();}catch(e){}; MagicLine.MLpopupClose(MagicLine.MLpopup); if( typeof MagicLine.successCallback !== 'function'){ }else{ MagicLine.successCallback(); } } MagicLineUi.failedInstallCheck = function( dialogType, errorCode ){ //팝업창 닫기 try{ MagicLine.MLpopupClose(MagicLine.MLpopup); }catch( e ){ MagicLine4NpLog.log( " [MagicLineUi.failedInstallCheck] [ MagicLineUi.MLpopupClose ] : "+ e.message); } //dialog 닫기 try{ if( dialogType === "installCheck"){ //MagicLineUi.installCheckdialogClose(); }else if( dialogType === "setupCheck" ){ MagicLineUi.downloadCheckerClose(); } }catch( e ){ MagicLine4NpLog.log( " [MagicLineUi.failedInstallCheck] [ dialog close ] : "+ e.message); } if( typeof MagicLine.failedCallback !== 'function'){ if( errorCode === -3000 ){ alert( "쿠키를 사용하지 않는 경우 정상적으로 동작하지 않습니다.\n쿠키를 허용해주세요"); }else if( errorCode === -5000 ){ alert( "통신중 오류가 발생하였습니다.(E"+errorCode+")"); }else if( errorCode >= 12000 && errorCode <= 13000 ){ alert( "통신중 오류가 발생하였습니다.(E"+errorCode+")"); }else if( errorCode == 150 ){ //비밀번호 틀림 횟수 초과 return; }else if( errorCode == -1000 ){ //alert( "클라이언트와 통신할수 없습니다.\n error : "+ errorCode ); //MagicLineUi.goIndexPage(); installCheck.count = MagicLine.InstallCheckCount - 1;// 조용상 D 추가 try{MagicLineUi.closeMask();}catch(e){} MagicLineUi.InstallCheck(); }else{ MagicLine4NpLog.log("MagicLine4Np_MessageError","MagicLine.runMagicLine : [ MagicLine "+decodeURI("%EA%B2%80%EC%A6%9D%EC%8B%A4%ED%8C%A8")+" ] "+"\n ErrorCode : "+errorCode, errorCode ); alert( decodeURI(MagicLineUi.setupCertFailed) +"(E"+errorCode+")" ) ; MagicLine.TerminateCS(); document.location.href = returnIndexPage; } }else{ MagicLine.failedCallback( errorCode ); } } //설치파일 다운로드후 설치확인이 될때까지 풀링한다. MagicLineUi.setupCheck = function(){ try{ if( (MagicLine.CsPort == MagicLine.exPort[0]) && (MagicLine.CsPort != MagicLine.exPort[1]) ){ MagicLine.CsPort = MagicLine.exPort[1]; } else { MagicLine.CsPort = MagicLine.exPort[0]; } var resultObj = MagicLine.InstallCheck(); var result = resultObj.ResultCode; var returnUrl = MagicLine.getCookie("MagicLine4NPreturnUrl"); if( returnUrl === ""){ returnUrl = returnIndexPage; } if( result === 0){ setTimeout(function(){ var crossResultData = MagicLine.CrossCertification( MagicLine.getCrossSessionID(), MagicLine.crossServerURL, mlProp.ServerCert); if( crossResultData.ResultCode === 0 ){ if( crossResultData.ResultMessage == "upgrade" ){ MagicLine.TerminateCS(); MagicLineUi.goIndexPage(); if( MagicLine.isInstall == "download" ){ MagicLineUi.failedInstallCheck( "setupCheck", crossResultData.ResultCode ); } else { //setTimeout(MagicLineUi.goInstallPage,500); MagicLineUi.WinPopup("upgrade"); } }else if( crossResultData.ResultMessage == "ok" ){ try{MagicLineUi.downloadCheckerClose();}catch(e){} MagicLineUi.successInstallCheck(); } }else if( crossResultData.ResultCode >= -1777 && crossResultData.ResultCode <= -1700 ){ MagicLineUi.failedInstallCheck( "setupCheck", crossResultData.ResultCode ); }else{ MagicLine.TerminateCS(); MagicLineUi.failedInstallCheck( "setupCheck", crossResultData.ResultCode ); } },300); } else { setTimeout("MagicLineUi.setupCheck('"+returnUrl+"')",300); } }catch( e ){ setTimeout("MagicLineUi.setupCheck('"+returnUrl+"')",300); } }; MagicLineUi.downLoadFile = function() { try{ if( MagicLine.DownloadCount < 2 ){ MagicLine.DownloadCount++; var os = MagicLine.getOS(); if( os.indexOf("MAC")> -1 ){ document.location.href = MagicLine.DownloadURL + MagicLine.DownloadMacFileName; }else if( os.indexOf("UBUNTU64")> -1 ){ document.location.href = MagicLine.DownloadURL + MagicLine.DownloadUbuntuFileName64; }else if( os.indexOf("UBUNTU32")> -1 ){ document.location.href = MagicLine.DownloadURL + MagicLine.DownloadUbuntuFileName32; }else if( os.indexOf("FEDORA64")> -1 ){ document.location.href = MagicLine.DownloadURL + MagicLine.DownloadFedoraFileName64; }else if( os.indexOf("FEDORA32")> -1 ){ document.location.href = MagicLine.DownloadURL + MagicLine.DownloadFedoraFileName32; }else { document.location.href = MagicLine.DownloadURL + MagicLine.DownloadWinFileName; } }else{ return; } }catch(e){ document.location.href = MagicLine.DownloadURL + MagicLine.DownloadWinFileName; } }; MagicLineUi.MacPopup = function( modeString ){ var MacFunc = function( isInstall ){ if( MagicLine.DownloadCount < 2 ){ if( isInstall ){ if( MagicLine.isInstall == "download" ){ if( MagicLine.DownloadCount < 1 ){ //MagicLineUi.closeLayer(false); MagicLineUi.downloadChecker(); MagicLineUi.setupCheck(); MagicLineUi.downLoadFile(); }else{ MagicLineUi.downLoadFile(); } } else { MagicLineUi.goInstallPage(); } } else { MagicLineUi.goIndexPage(); } }else{ if( ! isInstall ){ MagicLineUi.goIndexPage(); } } } if( modeString === "install" ){ MagicLineUi.installPageConfirmMac(MacFunc); }else if( modeString ==="upgrade" ){ MagicLineUi.upgradeConfirm(MacFunc); } } MagicLineUi.WinPopup = function( modeString ){ var WinFunc = function( isInstall ){ if( MagicLine.DownloadCount < 2 ){ if( isInstall ){ if( MagicLine.isInstall == "download" ){ if( MagicLine.DownloadCount < 1 ){ if( modeString === "install" ){ MagicLineUi.closeLayer(false); } MagicLineUi.downloadChecker(); MagicLineUi.setupCheck(); MagicLineUi.downLoadFile(); }else{ MagicLineUi.downLoadFile(); } } else { MagicLineUi.goInstallPage(); } } else { MagicLineUi.goIndexPage(); } }else{ if( ! isInstall ){ MagicLineUi.goIndexPage(); } } } if( modeString === "install" ){ MagicLineUi.installPageConfirm(WinFunc); }else if( modeString ==="upgrade" ){ MagicLineUi.upgradeConfirm(WinFunc); } } // chrome 브라우저 linux 버전 체크 문제로 인해 추가 MagicLineUi.LinuxPopup = function( modeString ){ var LinuxFunc = function( isInstall ){ if( MagicLine.DownloadCount < 2 ){ if( isInstall ){ if( MagicLine.isInstall == "download" || MagicLine.isInstall == "true"){ if( MagicLine.DownloadCount < 1 ){ if( modeString === "install" ){ MagicLineUi.closeLayer(false); } MagicLineUi.downloadChecker(); MagicLineUi.setupCheck(); MagicLineUi.ML_linux_downloadPop(); }else{ MagicLineUi.ML_linux_downloadPop(); } } else { MagicLineUi.goInstallPage(); } } else { MagicLineUi.goIndexPage(); } }else{ if( ! isInstall ){ MagicLineUi.goIndexPage(); } } } if( modeString === "install" ){ MagicLineUi.installPageConfirm(LinuxFunc); }else if( modeString ==="upgrade" ){ MagicLineUi.upgradeConfirm(LinuxFunc); } } MagicLineUi.InstallCheck = function( ) { try{ var os = MagicLine.getOS(); var resultObj = MagicLine.InstallCheck(); MagicLine.clientVersion = resultObj.ResultMessage; var result = resultObj.ResultCode; //쿠키 옵션처리 if( ! navigator.cookieEnabled){ MagicLineUi.failedInstallCheck( "installCheck", -3000 ); return; } if( result === 0){ var MagicLine4NPCrossStatus = MagicLine.ServerSessionCheck(); MagicLine4NPCrossStatus = MagicLine.trim(MagicLine4NPCrossStatus ); if( MagicLine4NPCrossStatus === "false" ){ //상호검증 var crossResultData = MagicLine.CrossCertification( MagicLine.getCrossSessionID(), MagicLine.crossServerURL, mlProp.ServerCert ); if( crossResultData.ResultCode === 0 ){ if( crossResultData.ResultMessage == "upgrade" ){ MagicLine.TerminateCS(); if( MagicLine.isInstall == "download" ){ MagicLineUi.installCheckdialogClose(); if( os.indexOf("MAC")> -1 ){ MagicLineUi.MacPopup("upgrade"); }else if( os.indexOf("LINUX")> -1 ){ MagicLineUi.LinuxPopup("upgrade"); }else{ MagicLineUi.WinPopup("upgrade"); } } else { //setTimeout(MagicLineUi.goInstallPage,500); MagicLineUi.WinPopup("upgrade"); } }else if( crossResultData.ResultMessage == "ok" ){ try{MagicLineUi.installCheckdialogClose();}catch(e){} MagicLineUi.successInstallCheck(); } //에러처리 }else if( crossResultData.ResultCode <= -1777 || crossResultData.ResultCode >= -1700 ){ MagicLineUi.failedInstallCheck( "installCheck", crossResultData.ResultCode ); }else{ MagicLine.TerminateCS(); MagicLineUi.failedInstallCheck( "installCheck", crossResultData.ResultCode ); } }else if( MagicLine4NPCrossStatus == 500 ){ MagicLineUi.failedInstallCheck( "서버에러 \n 500", 500); }else{ MagicLineUi.successInstallCheck(); } }else if( result == -1666){ installCheck.count = installCheck.count + 1; if( (MagicLine.CsPort == MagicLine.exPort[0]) && (MagicLine.CsPort != MagicLine.exPort[1]) ){ MagicLine.CsPort = MagicLine.exPort[1]; } else { MagicLine.CsPort = MagicLine.exPort[0]; } if( installCheck.count >= MagicLine.InstallCheckCount ){ MagicLineUi.installCheckdialogClose(); if( os.indexOf("MAC")> -1 ){ MagicLineUi.MacPopup("install"); }else if( os.indexOf("LINUX")> -1 ){ MagicLineUi.LinuxPopup("install"); }else{ MagicLineUi.WinPopup("install"); } } else { setTimeout(MagicLineUi.InstallCheck,500); } } else if( result == 1 ) { MagicLineUi.failedInstallCheck( "", -5000); return; } else { setTimeout(MagicLineUi.InstallCheck,500); } }catch( e ){ MagicLineUi.failedInstallCheck( e.message, 4444 ); } }; /************************************************************************************************************************************************************************************************ document.writeln!! ************************************************************************************************************************************************************************************************/ var MagicLine_install = true; var tagStart = ""; var tagEnd = ""; var magicline4FormString = ""; magicline4FormString += '
'; magicline4FormString += ' '; magicline4FormString += ' '; magicline4FormString += '
'; // MagicLine InstallCheck Popup Message magicline4FormString += '



'; magicline4FormString += decodeURI(MagicLineUi.setupConfirmMessage); magicline4FormString += '


'; magicline4FormString += ''+decodeURI(MagicLineUi.setupMessage)+''; //magicline4FormString += ''+decodeURI(MagicLineUi.startMessage)+''; magicline4FormString += ''+decodeURI(MagicLineUi.cancelMessage)+'
'; magicline4FormString += '



'; magicline4FormString += decodeURI(MagicLineUi.setupConfirmMessageMAC); magicline4FormString += '


'; magicline4FormString += ''+decodeURI(MagicLineUi.setupMessage)+''; magicline4FormString += ''+decodeURI(MagicLineUi.cancelMessage)+'
'; magicline4FormString += '



'; magicline4FormString += decodeURI(MagicLineUi.downloadPopMessge); magicline4FormString += '


'; magicline4FormString += 'UBUNTU 32BIT'; magicline4FormString += 'UBUNTU 64BIT'; magicline4FormString += 'FEDORA 32BIT'; magicline4FormString += 'FEDORA 64BIT'; //magicline4FormString += ''+decodeURI(MagicLineUi.startMessage)+''; magicline4FormString += ''+decodeURI(MagicLineUi.cancelMessage)+'
'; magicline4FormString += ''; magicline4FormString += '
'; magicline4FormString += '



'+decodeURI(MagicLineUi.installCheckMessage)+'
'; magicline4FormString += '



'; magicline4FormString += '
'; magicline4FormString += ''+decodeURI(MagicLineUi.downloadCheckMessage)+''; magicline4FormString += ''; magicline4FormString += ''+decodeURI(MagicLineUi.restartDownLoadMessage)+''; magicline4FormString += ''+decodeURI(MagicLineUi.cancelMessage)+'
'; magicline4FormString += '



'; magicline4FormString += decodeURI(MagicLineUi.upgradeConfirmMessage); magicline4FormString += '


'; magicline4FormString += ''+decodeURI(MagicLineUi.restartDownLoadMessage)+''; magicline4FormString += ''+decodeURI(MagicLineUi.cancelMessage)+'
'; /* MagicLine default Version */ if( MagicLineUi.documentWrite === "true" ){ document.writeln(magicline4FormString); }else{ ML$( document ).ready(function(){ var MagicLineElementCheck = document.getElementById("MagicLine4NPDiv"); if( MagicLineElementCheck === null || MagicLineElementCheck === "" ){ var newDiv = document.createElement("div"); newDiv.id = "MagicLine4NPDiv"; newDiv.style.display = "none"; newDiv.innerHTML += magicline4FormString; document.body.appendChild(newDiv); } }); } /************************************************************************************************************************************************************************************************ 매직라인 기능 함수( 사이트 커스텀이 생길경우 아래 함수에 커스텀한다 ) ************************************************************************************************************************************************************************************************/ function Init(){ return MagicLineUi.Init(); } function runMagicLine(installProcess, sessionId, keyboard, domain){ MagicLineUi.runMagicLine(installProcess, sessionId, keyboard, domain); } function IsValidCertVID(strIDN){ return MagicLineUi.IsValidCertVID(strIDN); } ////////////--- addCallback----//////////// /*********************************************************************/ /** PKCS 7 */ /*********************************************************************/ function ShowCertManage(){ MagicLineUi.ShowCertManage(); } /*********************************************************************/ // login // /*********************************************************************/ function Login(form){ MagicLineUi.Login(form); } //********************************************************************// // Logout // //--------------------------------------------------------------------// // 로그아웃(세션정보 삭제) // //********************************************************************// function Logout(){ MagicLineUi.Logout(); } // cs 용 인증서 사용자인터페이스를 사용한 SignAndEnv /*********************************************************************/ // EnvelopedSignData // /*********************************************************************/ function EnvelopedSignData(form){ MagicLineUi.EnvelopedSignData(form); } /*********************************************************************/ // EnvelopData // /*********************************************************************/ function EnvelopedData(form){ MagicLineUi.EnvelopedData(form); } /*********************************************************************/ // SignedDataForm(form) // /*********************************************************************/ function SignedDataForm(form){ MagicLineUi.SignedDataForm(form); } /*********************************************************************/ // SignedData( data, callback) // /*********************************************************************/ //////////////--------addCallback----//////////// function SignedData( data, callback){ MagicLineUi.SignedData( data, callback); } /////////----addCallback----//////////// function SignedData2( data, callback ){ MagicLineUi.SignedData2( data, callback); } function SignedDataNS(data, encodetype, callback){ MagicLineUi.SignedDataNS(data, encodetype, callback); } /*********************************************************************/ // EncryptedSignData // /*********************************************************************/ function EncryptedSignData(form){ MagicLineUi.EncryptedSignData(form); } /********************************************************************/ // onKeyExchange /********************************************************************/ function onKeyExchange(){ return MagicLineUi.onKeyExchange(); } /********************************************************************/ // Encrypt /********************************************************************/ function Encrypt(form){ MagicLineUi.Encrypt(form); } /*********************************************************************/ // Decrypt // /*********************************************************************/ function Decrypt(encData){ return MagicLineUi.Decrypt(encData); } function SignItemByOption(data){ MagicLineUi.SignItemByOption(data); } /********************************************************************/ // SignedDataSessionoOpt(form) /********************************************************************/ function SignedDataSessionoOpt(form) { return MagicLineUi.SignedDataSessionoOpt(form); } //==================================================================== //MagicLine4Np Run Start !! //==================================================================== MagicLineUi.runMagicLine = function(){ try{ var os = MagicLine.getOS(); var resultObj = MagicLine.InstallCheck(); var result = resultObj.ResultCode; if( result !== 0){ if(os.indexOf("UBUNTU64") >= 0 || os.indexOf("LINUX64") >= 0 || os.indexOf("FEDORA64") >= 0 ){ MagicLine.StartCS(MagicLine.CsPort); } //MagicLine.StartCS(MagicLine.CsPort); } if( MagicLine.isInstall == "true" || MagicLine.isInstall == "download" ){ setTimeout(MagicLineUi.installCheckdialog,200); setTimeout(MagicLineUi.InstallCheck,500); } }catch( ex ) { alert(ex.message); } }; MagicLineUi.setCertWindowFilter = function(szFilter, szValue) { if( szFilter == 'cert_dn') { mlProp.MagicLineCertSubjectDNValue = szValue; } else if( szFilter == 'oid') { var MagicLineNpBrowser = MagicLine.getBrowser(); if( MagicLineNpBrowser.indexOf('MSIE') > -1 ){ mlProp.ValidCertInfo = szValue; } else { mlProp.MagicLineCertPolicyValue = szValue; } } }; /************************************************************************************************************************************************************************************************ 매직라인 기능 함수 ************************************************************************************************************************************************************************************************/ MagicLineUi.Init = function() { var nResult; nResult = MagicLine.Init(mlProp.WorkDir, mlProp.ServerCert, mlProp.AlgoMode, mlProp.GNCertType, mlProp.ValidCertInfo, mlProp.ReadCertType, mlProp.KeyStrokeType, mlProp.LogoURL); if( nResult === -1000){ return nResult; } MagicLine.SetInitOption(mlProp.ToolTip, mlProp.ExpiredCert); MagicLine.SetPhoneCertOpt(mlProp.PhoneCertOpt); MagicLine.SetMobileKeyURL(mlProp.MobileKeyURL); MagicLine.UbiKeyInit(mlProp.UbikeyVersion,mlProp.UbikeyPopupURL,mlProp.UbikeyWParam,mlProp.UbikeylParam); MagicLine.SetLanguageOption(mlProp.LanguageOpt); MagicLine.SetCertManageOption(mlProp.CertTabOpt,mlProp.CertManageOpt); MagicLine.SetEnableMediaType(mlProp.EnableMedia); MagicLine.SetVirtualKeyPad(mlProp.bVitulPad,mlProp.VitualKeyPadURL); MagicLine.setCharset(mlProp.getCharsetCode()); MagicLine.SetProperty("VerifyImage",mlProp.VerifyImage); MagicLine.SetProperty("Focus",mlProp.PasswordFocus); //MagicLine.SetProperty("PasswordLockCount",mlProp.PasswordLockCount); MagicLine.SetTokenOption(mlProp.MediaTokenOpt); MagicLine.SetProperty("USIMServerIP", mlProp.USIMServerIP); MagicLine.SetProperty("USIMServerPort", mlProp.USIMServerPort); MagicLine.SetProperty("USIMSiteDomainURL", mlProp.USIMSiteDomain); MagicLine.SetProperty("USIMRAONSiteCode", mlProp.USIMRAONSiteCode); MagicLine.SetProperty("USIMInstallURL", mlProp.USIMInstallURL); //MagicLine.SetProperty("USIMCertList", mlProp.USIMCertList); MagicLine.SetProperty("TokenInstallURL", mlProp.TokenInstallURL); // MagicLine.SetProperty("PrivateCertO", mlProp.PrivateCertO); MagicLine.SetProperty2("PrivateCertCNName", mlProp.PrivateCertIssuerOID, mlProp.PrivateCertIssuerOIDName); MagicLine.SetProperty("SetExtraPrivatePath", mlProp.PrivateCertPath); // 이니텍 패치 INIPASS MagicLine.SetProperty("DS_PKI_CERT_PATH", encodeURIComponent(JSON.stringify(mlProp.DS_PKI_CERT_PATH))); MagicLine.SetProperty("DS_PKI_POLICY_OID", encodeURIComponent(JSON.stringify(mlProp.DS_PKI_POLICY_OID))); // MagicLine.SetProperty("CERT_DELETE_RETRY_COUNT", 5); //패스워드 지정횟수 실패 시 인증서 삭제 기능 //MagicLine.SetProperty("ReplaceIsserName", mlProp.ReplaceIsserName); //gwkim++ 휴대폰로드옵션 MagicLine.SetProperty("IssuerDN", mlProp.IssuerDN); MagicLine.SetProperty("PhoneUserCertList", mlProp.PhoneUserCertList); // 인증서선택창 리스트컨트롤 높이 MagicLine.SetProperty("ListCtrlHeight",0); try{ var os = MagicLine.getOS(); var MagicLineNpBrowser = MagicLine.getBrowser(); if( os.indexOf( "windows 10") > -1 && MagicLineNpBrowser.indexOf("Edge") > -1 ){ MagicLine.SetProperty("DialogType", 1); }else{ MagicLine.SetProperty("DialogType", 0); } }catch(ex){ MagicLine.SetProperty("DialogType", 0); } if( nResult == 1 ) //nResult = MagicLine.SetVerifyRootCert(mlProp.RootCertHashURL); if( nResult == -1040 ){ MagicLineUi.failedInstallCheck( "initFailed", -1040 ); return nResult; } if( nResult == 1 ){ return nResult; }else if( nResult == 141){ alert(decodeURI("%EC%B5%9C%EC%83%81%EC%9C%84 %EC%9D%B8%EC%A6%9D%EC%84%9C %ED%95%B4%EC%89%AC%EA%B0%92 %ED%99%95%EC%9D%B8%EC%9D%84 %EC%B7%A8%EC%86%8C%ED%95%98%EC%98%80%EC%8A%B5%EB%8B%88%EB%8B%A4.")); return nResult; } else { strReturnData = MagicLine.GetReturnData(); alert(strReturnData); return nResult; } }; MagicLineUi.IsValidCertVID = function(strIDN) { nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ return 0; } if( nResult != 1 ){ alert('init failed error code:'+nResult); return 0; } nResult = MagicLine.isValidCertVID(strIDN); if( nResult === 0){ alert("VID certificate failed."); } else { alert("VID certificate complete."); } return nResult; }; ////////////--- addCallback----//////////// /*********************************************************************/ /** PKCS 7 */ /*********************************************************************/ MagicLineUi.ShowCertManage = function() { var strSendData; var nResult; var CertTabOpt = 2; nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ return; } if( nResult != 1 ){ alert('init failed error code:'+nResult); return; } MagicLine.SetCertManageOption(CertTabOpt,mlProp.CertManageOpt); nResult = MagicLine.ShowCertManage(); return nResult; }; // C/S 용 인증서 사용자 인터페이스 /*********************************************************************/ // login // /*********************************************************************/ MagicLineUi.Login = function(form){ gForm = form; var strData; var nResult; var strReturnData; var strSendData; strData = MagicLine4Submit(form); MagicLineUi.WriteConsoleLog("JS : Login() call"); MagicLineUi.openMask(); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ MagicLineUi.closeMask(); return; } var sessionID = ""; if( form.challenge.value !== null){ sessionID = form.challenge.value; } if( MagicLine.setSessionID(sessionID) != 1){ MagicLineUi.closeMask(); return; } MagicLine.SetProperty("PhoneSignOrgView", 0); //gwkim++ MagicLine.Login( mlProp.SiteID, strData, function(obj){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; MagicLineUi.WriteConsoleLog("JS : Login() complete"); if( nResult == 1 ){ document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; /*Debug mode*/ if( mlEnv.debug ) { form.sessionIDT.value = sessionID; form.pText.value = strData; form.eText.value = tagStart + strReturnData + tagEnd; if( !confirm("encrypt data send to?")) { return; } var cert_info = ""; cert_info += "selected cert info"; cert_info += "\n============================================="; cert_info += "\n- serial no:"; cert_info += MagicLine.GetCertInfo("serial_no"); cert_info += "\n- issuer dn:"; cert_info += MagicLine.GetCertInfo("issuer_dn"); cert_info += "\n- ssubject dn:"; cert_info += MagicLine.GetCertInfo("subject_dn"); cert_info += "\n- policy oid:"; cert_info += MagicLine.GetCertInfo("policy_oid"); cert_info += "\n- date not before:"; cert_info += MagicLine.GetCertInfo("date_not_before"); cert_info += "\n- date not after:"; cert_info += MagicLine.GetCertInfo("date_not_after"); cert_info += "\n- enc_cert:"; cert_info += MagicLine.GetCertInfo("enc_cert"); alert(cert_info); alert("encrypted data = "+ document.magicLine4Form.encryptedData.value); } document.magicLine4Form.submit(); } else { if( nResult == 106 || nResult == 100){ MagicLineUi.closeMask(); return 100; } if( mlEnv.debug ){ }else if( nResult == 150){ //~! added by gomsugy. 2013.10.31 // -v1.0.8.7 // -인증서 비밀번호 입력 오류 횟수 초과 //[[ if( mlEnv.debug ){ alert("인증서 비밀번호 입력 횟수 초과됨:" + MagicLine.GetCertInfo("subject_dn")); } MagicLineUi.failedInstallCheck("인증서 비밀번호 입력 오류 횟수 초과", 150); } else { //]] alert(MagicLine.GetReturnData()); MagicLineUi.closeMask(); return nResult; } } MagicLineUi.closeMask(); return nResult; }); }; //********************************************************************// // Logout // //--------------------------------------------------------------------// // 로그아웃(세션정보 삭제) // //********************************************************************// MagicLineUi.Logout = function(){ var strData; var nResult; var strReturnData; var strSendData; nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ return; } nResult = MagicLine.Logout( mlProp.SiteID); if( nResult == 1 ){ // 메인 페이지로 돌아가기 alert(decodeURI("%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%95%9C %EC%84%B8%EC%85%98%EC%9D%B4 %EC%A2%85%EB%A3%8C%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4.")); location.href = returnIndexPage; } }; // cs 용 인증서 사용자인터페이스를 사용한 SignAndEnv /*********************************************************************/ // EnvelopedSignData // /*********************************************************************/ MagicLineUi.EnvelopedSignData = function(form) { var strData; var nResult; var strReturnData; var strSendData; strData= MagicLine4Submit(form); MagicLineUi.openMask(); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ MagicLineUi.closeMask(); return; } var sessionID = ""; if( form.challenge.value !== null){ sessionID = form.challenge.value; } if( MagicLine.setSessionID(sessionID) != 1){ MagicLineUi.closeMask(); return; } MagicLine.EnvelopedSignData( mlProp.SiteID, strData, function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult == 1){ // Issue 실패 document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; strReturnData = MagicLine.GetReturnData(); document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; /*Debug mode*/ if( mlEnv.debug ){ form.sessionIDT.value = sessionID; form.pText.value = strData; form.eText.value = tagStart + strReturnData + tagEnd; if( !confirm("encrypt data send to?")){ return; } alert("encrypted data = "+ document.magicLine4Form.encryptedData.value); } document.magicLine4Form.submit(); } else { if( nResult != 106 && strReturnData !== null){ alert(strReturnData); } MagicLineUi.closeMask(); } }); }; /*********************************************************************/ // EnvelopDataAjax // /*********************************************************************/ MagicLineUi.EnvelopedAjax = function( strData, callback ){ nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } var sessionID = ""; if( MagicLine.setSessionID(sessionID) != 1){ MagicLineUi.closeMask(); return; } MagicLine.EnvelopData( mlProp.SiteID, strData, callback ); } /*********************************************************************/ // EnvelopData // /*********************************************************************/ MagicLineUi.EnvelopedData = function(form){ var strData; var nResult; var strReturnData; var strSendData; MagicLineUi.openMask(); strData = MagicLine4Submit( form ); MagicLineUi.WriteConsoleLog("JS : EnvelopedData() call"); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ MagicLineUi.closeMask(); return; } var sessionID = ""; if( form.challenge.value !== null){ sessionID = form.challenge.value; } if( MagicLine.setSessionID(sessionID) != 1){ MagicLineUi.closeMask(); return; } MagicLine.EnvelopData( mlProp.SiteID, strData, function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; MagicLineUi.WriteConsoleLog("JS : EnvelopedData() complete"); if( nResult == 1){ document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; if( mlEnv.debug ){ if( form.pText && form.eText){ form.sessionIDT.value = sessionID; form.pText.value = strData; form.eText.value = tagStart + strReturnData + tagEnd; if( !confirm("encrypt data send to?")){ MagicLineUi.closeMask(); return; } } } if( mlEnv.debug ){ alert("encrypted data = "+ document.magicLine4Form.encryptedData.value); } document.magicLine4Form.submit(); } else { if( mlEnv.debug ){ if( nResult !== 106 && strReturnData !== null){ alert(strReturnData); } } MagicLineUi.closeMask(); } }); }; /*********************************************************************/ // SignedDataForm(form) // /*********************************************************************/ MagicLineUi.SignedDataForm = function(form) { var strData; var nResult; var strReturnData; MagicLineUi.openMask(); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ MagicLineUi.closeMask(); return; } //전자서명시에만 폰에서 원문보이기 옵션 설정 MagicLine.SetProperty("PhoneSignOrgView", 1); //mlProp.CertOption = 1; strData = MagicLine4Submit( form ); MagicLine.SignedData( mlProp.SiteID, mlProp.CertOption, strData, function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult == 1){ // Issue 실패 document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; strReturnData = MagicLine.GetReturnData(); document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; /*Debug mode*/ if( mlEnv.debug ){ form.pText.value = strData; form.eText.value = tagStart + strReturnData + tagEnd; if( !confirm("encrypt data send to?")){ MagicLineUi.closeMask(); return; } alert("encrypted data = "+ document.magicLine4Form.encryptedData.value); } document.magicLine4Form.submit(); } else { if( nResult !== 106 && strReturnData !== null){ if( mlEnv.debug ){ alert(strReturnData); } } MagicLineUi.closeMask(); } }); }; //////////////--------addCallback----//////////// /*********************************************************************/ // SignedData( data, callback) // /*********************************************************************/ MagicLineUi.SignedData = function( data, callback) { var nResult; var strReturnData; MagicLineUi.openMask(); MagicLineUi.WriteConsoleLog("JS : SignedData() call"); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ MagicLineUi.closeMask(); return; } //전자서명시에만 폰에서 원문보이기 옵션 설정 MagicLine.SetProperty("PhoneSignOrgView", 1); data = encodeURI( data ); //mlProp.CertOption = 0x01; nResult = MagicLine.SignedData( mlProp.SiteID, mlProp.CertOption, data,function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; MagicLineUi.WriteConsoleLog("JS : SignedData() complete"); if( nResult == 1 ){ // Issue 실패 MagicLineUi.closeMask(); callback( obj ); return; } else { if( nResult !== 106 && strReturnData !== null){ if( mlEnv.debug ){ alert(strReturnData); } } MagicLineUi.closeMask(); callback(obj); return; } }); }; /////////----addCallback----//////////// MagicLineUi.SignedData2 = function( data, callback ) { var nResult; var strReturnData; MagicLineUi.openMask(); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ){ MagicLineUi.closeMask(); return; } //전자서명시에만 폰에서 원문보이기 옵션 설정 MagicLine.SetProperty("PhoneSignOrgView", 1); data = encodeURI(data); mlProp.CertOption = 0x01; nResult = MagicLine.SignedData2( mlProp. SiteID, data, "sessionID", function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult === 1){ // Issue 실패 MagicLineUi.closeMask(); callback( obj ); return; } else { if( nResult !== 106 && strReturnData !== null){ if( mlEnv.debug ){ alert(strReturnData); } } MagicLineUi.closeMask(); callback( obj ); return; } }); }; MagicLineUi.SignedDataNS = function(data, encodetype, callback) { var nResult; var strReturnData; nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ){ return; } //전자서명시에만 폰에서 원문보이기 옵션 설정 MagicLine.SetProperty("PhoneSignOrgView", 1); mlProp.CertOption = 0x01; if( encodetype === true){ MagicLine.NS_SignedData( mlProp.SiteID, data, 1, function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult === 1){ callback( strReturnData, nResult ); return; } else { if( nResult !== 106 && strReturnData !== null){ if( mlEnv.debug ){ alert(strReturnData); } } callback( strReturnData, nResult ); return; } }); } else { MagicLine.NS_SignedData( mlProp.SiteID, data, 0,function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult === 1){ callback( strReturnData, nResult ); return; } else { if( nResult !== 106 && strReturnData !== null){ if( mlEnv.debug ){ alert(strReturnData); } } callback( strReturnData, nResult ); return; } }); } }; //////////////////////////////////////////////////////////////// /////////////////// 자동 전자서명 기능 함수 /////////////////// //////////////////////////////////////////////////////////////// MagicLineUi.EnvelopedSignData_VID = function( form, orgdata ) { var strData; var nResult; var strReturnData; var strSignedData; strData = orgdata; //원본 값 nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ){ return; } MagicLine.Login( mlProp.SiteID, strData, function( obj ) { strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult == 1){ // 서명성공 document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; strReturnData = MagicLine.GetReturnData(); document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; MagicLineUi.SignedData_CertAndKeyOption( strData, function( obj ) { strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult == 0 ) { strSignedData = MagicLine.GetReturnData(); document.magicLine4Form.signedData.value = strSignedData; document.magicLine4Form.submit(); //업무코드에 맞게 변경 } else { alert("전자서명 생성에 실패했습니다(Login)" + strReturnData ); return; } }); } else { if(nResult != 106 && strReturnData != null) alert(strReturnData); } }); } MagicLineUi.SignedData_CertAndKeyOption = function( strData, callback ){ MagicLine.SignedData_CertAndKeyOption(mlProp.SiteID, 2, strData, function( obj ) { callback( obj ); }); }; //////////////////////////////////////////////////////////////// /////////////////// 자동 전자서명 기능 함수 /////////////////// //////////////////////////////////////////////////////////////// MagicLineUi.SignedDataSessionoOpt = function(form, orgdata) { var strData; var nResult; var strReturnData; strData = orgdata; //원본 값 nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ){ return; } if( MagicLine.setSessionID(sessionID) != 1) { return; } MagicLine.SignedData_CertAndKeyOption( mlProp.SiteID, 2, strData, function( obj ) { strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if ( nResult == 119 ) { alert( "인증서창 없이...=" + nResult ); EnvelopedSignData_VID( form, orgdata ); return; } if( nResult == 0 ) { document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; strReturnData = MagicLine.GetReturnData(); document.magicLine4Form.signedData.value = strReturnData; document.magicLine4Form.submit(); } else { if(nResult != 106 && strReturnData != null) alert(strReturnData); } }); } MagicLineUi.DecryptAjaxData = function( encData ){ var nResult = Init(); if( nResult === -1000){ MagicLineUi.initErrorMoveIndexPage(); return; } var encString = tagStart + encData + tagEnd; if( nResult === 117 ) return; nResult = MagicLine.Decrypt( mlProp.SiteID, encString); var strReturnData = MagicLine.GetReturnData(); if( nResult === 1 ) { return strReturnData; } else { alert("Decrypt Fail"); alert(strReturnData); return ""; } } /*********************************************************************/ // EncryptedSignData // /*********************************************************************/ MagicLineUi.EncryptedSignData = function(form) { var strData; var nResult; var strReturnData; MagicLineUi.openMask(); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult == 117 ){ MagicLineUi.closeMask(); return; } strData = MagicLine4Submit(form); MagicLine.EncryptedSignData( mlProp.SiteID, mlProp.CertOption, strData,function( obj ){ strReturnData = obj.ResultMessage; nResult = obj.ResultCode; if( nResult == 1 ) /**** 성공 ****/ { document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; strReturnData = MagicLine.GetReturnData(); document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; /*Debug mode*/ if( mlEnv.debug ){ form.pText.value = strData; form.eText.value = tagStart + strReturnData + tagEnd; if( !confirm("encrypt data send to?")){ return; } alert("encrypted data = "+ document.magicLine4Form.encryptedData.value); } document.magicLine4Form.submit(); }else if( nResult === 111 ){ }else { if( nResult != 106){ alert(strReturnData); } MagicLineUi.closeMask(); } }); }; MagicLineUi.DecryptAjaxData = function( encData ){ var nResult = Init(); if( nResult === -1000){ MagicLineUi.initErrorMoveIndexPage(); return; } var encString = tagStart + encData + tagEnd; if( nResult === 117 ) return; nResult = MagicLine.Decrypt( mlProp.SiteID, encString); var strReturnData = MagicLine.GetReturnData(); if( nResult === 1 ) { return strReturnData; } else { alert("Decrypt Fail"); alert(strReturnData); return ""; } } /********************************************************************/ // onKeyExchange // /********************************************************************/ MagicLineUi.onKeyExchange = function() { var nResult; nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ){ return; } if( mlProp.SiteID === "4insure" ){ return; } if( MagicLine.setSessionID("") !== 1 ){ return; } var keyExCode = MagicLine4NpAjax.request( mlEnv.RootContext+mlEnv.RootPath+"getCode.jsp", true, "" ); keyExCode = MagicLine.trim( keyExCode ); var resultObj = MagicLine.SetSessionKeyExchange( mlProp.SiteID, keyExCode, "" ); var result = MagicLine4NpAjax.request( mlEnv.RootContext+mlEnv.RootPath+"MagicLineEnvelop.jsp?"+resultObj.ResultMessage, true, "" ); result = MagicLine.trim(result); if ( result == 1 ){ result = 0; }else{ result = 1; } return result; }; /********************************************************************/ // CreateEncryptAjaxData // /********************************************************************/ MagicLineUi.CreateEncryptAjaxData = function( data ){ nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ) { return; } return MagicLine.Encrypt( mlProp.SiteID, data); } /********************************************************************/ // Encrypt // /********************************************************************/ MagicLineUi.Encrypt = function(form) { var strData; var nResult; var strReturnData; strData= MagicLine4Submit( form ); MagicLineUi.WriteConsoleLog("JS : Encrypt() call"); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ) { return; } //nResult = onKeyExchange(); if ( mlProp.SiteID == "4inusre"){ nResult = MagicLine.Encrypt2( mlProp.SiteID, strData); } else { nResult = MagicLine.Encrypt( mlProp.SiteID, strData); } MagicLineUi.WriteConsoleLog("JS : Encrypt() complete"); strReturnData = MagicLine.GetReturnData(); if( nResult === 1 ){ document.magicLine4Form.encryptedData.value = tagStart + strReturnData + tagEnd; document.magicLine4Form.method = form.method; document.magicLine4Form.action = form.action; //alert(document.magicLine4Form.encryptedData.value); if( mlEnv.debug ){ if( form.pText && form.eText){ form.pText.value = strData; form.eText.value = tagStart + strReturnData + tagEnd; if( !confirm("encrypt data send to?")){ return; } } } if( mlEnv.debug ){ alert("encrypted data = "+ document.magicLine4Form.encryptedData.value); } document.magicLine4Form.submit(); } else { alert(strReturnData); } }; /*********************************************************************/ // Decrypt // /*********************************************************************/ MagicLineUi.Decrypt = function(encData) { var strData; var nResult; var strReturnData = ""; var MagicLineNpBrowser = MagicLine.getBrowser(); nResult = Init(); if( nResult === -1000){ MagicLineUi.failedInstallCheck( "initFailed", -1000 ); return; } if( nResult === 117 ) return; if ( mlProp.SiteID == "4insure") nResult = MagicLine.Decrypt2( mlProp.SiteID, encData); else nResult = MagicLine.Decrypt( mlProp.SiteID, encData); if (mlProp.charSet == "UTF-16LE" && ( (mlEnv.Product === "ALL" && ( MagicLineNpBrowser.indexOf("MSIE") > -1 )) || (mlEnv.Product === "MBX")) ) { strReturnData = MagicLine.GetReturnUnicodeData(); } else { strReturnData = MagicLine.GetReturnData(); } if( nResult === 1 ) { return strReturnData; } else { alert("Decrypt Fail"); alert(strReturnData); return ""; } }; MagicLine.GetCertRandom = function( cert ){ var message = MagicLine.makeJsonMessage( "GetCertRandom", cert ); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine.GetCertRandom : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } } //------------------------ExTrus전용 함수---------------------------// var MagicLine_ExTrus = {}; MagicLine_ExTrus.init = function(sid, signedData, etc , option){ var message = MagicLine.makeJsonMessage("CAPI_Init", sid, signedData, etc, 1 ); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj.ResultCode; }catch( e ){ MagicLine4NpLog.log("MagicLine_ExTrus.init : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_ExTrus.GetGUID = function( option ){ var message = MagicLine.makeJsonMessage( "CAPI_GetGUID", option ); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj.ResultMessage; }catch( e ){ MagicLine4NpLog.log("MagicLine_ExTrus.init : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_ExTrus.SealForE2E = function( cert, data, option){ var message = MagicLine.makeJsonMessage("CAPI_SealForE2E", cert , data , option); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj.ResultMessage; }catch( e ){ MagicLine4NpLog.log("MagicLine_ExTrus.init : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_ExTrus.EncryptForE2E = function( data ){ var message = MagicLine.makeJsonMessage( "CAPI_EncryptForE2E", data ); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj.ResultMessage; }catch( e ){ MagicLine4NpLog.log("MagicLine_ExTrus.init : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; //------------------------ExTrus전용 함수---------------------------// //------------------------PKI전용 함수 -----------------------------// var MagicLine_PKI = {}; MagicLine_PKI.init = function(){ var message = MagicLine.makeJsonMessage("PKI_Init"); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); MagicLine_PKI.SetCertLoadConfig("USIMServerIP", mlProp.USIMServerIP); MagicLine_PKI.SetCertLoadConfig("USIMServerPort", mlProp.USIMServerPort); MagicLine_PKI.SetCertLoadConfig("USIMSiteDomainURL", mlProp.USIMSiteDomain); MagicLine_PKI.SetCertLoadConfig("USIMRAONSiteCode", mlProp.USIMRAONSiteCode); MagicLine_PKI.SetCertLoadConfig("USIMInstallURL", mlProp.USIMInstallURL); MagicLine_PKI.SetCertLoadConfig("USIMTokenInstallURL", mlProp.USIMTokenInstallURL); MagicLine_PKI.SetCertLoadConfig("PhoneCertOpt", mlProp.PhoneCertOpt); MagicLine_PKI.SetCertLoadConfig("CertType", mlProp.ReadCertType); MagicLine_PKI.SetCertLoadConfig("SmartCertMenuTop", 1); MagicLine_PKI.SetCertLoadConfig("MenuImageView", 1); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.init : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } } MagicLine_PKI.getCertInfo = function( key ){ var message = MagicLine.makeJsonMessage("PKI_GetCertInfo", key); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.SetCertLoadConfig : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } } MagicLine_PKI.verifyVID = function( key ){ var message = MagicLine.makeJsonMessage("PKI_VerifyVID", key); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.SetCertLoadConfig : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } } MagicLine_PKI.SetCertLoadConfig = function( key, value ){ var message = MagicLine.makeJsonMessage("PKI_SetCertLoadConf", key, value); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.SetCertLoadConfig : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } } MagicLine_PKI.envelopedData = function( cert, data){ var message = MagicLine.makeJsonMessage("PKI_EnvelopedData", cert, data); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.envelopedData : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_PKI.signedDataAndEnvelopedData = function( cert, key, password, recCert, sdata, callback ){ var message = MagicLine.makeJsonMessage("PKI_SignedDataAndEnvelopedData", cert, key, password, recCert, sdata);// 공개키, 개인키, 비번, 서명데이터(공개키가 없으면 서명창 ) , recert 수신자 인증서 MagicLine.asyncCall( message, callback ); }; MagicLine_PKI.signedData = function( cert, key, password, sdata, callback ){ var message = MagicLine.makeJsonMessage("PKI_SignedData", cert, key, password, sdata ); MagicLine.asyncCall( message, callback ); }; MagicLine_PKI.encrypt = function( key, data ){ var message = MagicLine.makeJsonMessage("PKI_Encrypt", key, data); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.encrypt : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_PKI.decrypt = function( key, data ){ var message = MagicLine.makeJsonMessage("PKI_Decrypt", key, data); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.decrypt : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_PKI.encryptKeyIv = function( key, iv, data ){ var message = MagicLine.makeJsonMessage("PKI_EncryptKeyIv", key, iv, data); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.encrypt : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_PKI.decryptKeyIv = function( key, iv, data ){ var message = MagicLine.makeJsonMessage("PKI_DecryptKeyIv", key, iv, data); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.decrypt : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; MagicLine_PKI.getEncryptKey = function(){ var message = MagicLine.makeJsonMessage("PKI_GetEncryptKey"); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine_PKI.getEncryptKey : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } }; //------------------------PKI전용 함수 -----------------------------// //------------------------Inicis 전용 함수 -----------------------------// var MagicLine_Inicis = {}; MagicLine_Inicis.signedDataAndEnvelopedData = function( cert, key, password, recCert, sdata, callback ){ var message = MagicLine.makeJsonMessage("CInicis_SignedDataAndEnvelopedData", cert, key, password, recCert, sdata);// 공개키, 개인키, 비번, 서명데이터(공개키가 없으면 서명창 ) , recert 수신자 인증서 MagicLine.asyncCall( message, callback ); }; MagicLine_Inicis.MakePluginData = function( nOption, Key, Iv, data, servercert) { // 파라미터 // nOption : 0 : 전자서명, 1 : 전자서명 + 암호화 // Algo : 알고리즘 // Key : 스트링 길이가 16 이하 입력 값 그대로 KEY 사용, 16 초과면 base64 디코딩 값이 KEY 가됨. // Iv : 스트링 길이가 16 이하 입력 값 그대로 IV 사용, 16 초과면 base64 디코딩 값이 IV 가됨. // data : 전자서명 또는 전자서명 + 암호화 할 데이터 // timestr : 현재는 “http://pg.banktown.com/initech/plugin/tools/Time.php” 값으로 고정 // servercert : 서버 인증서 var message = MagicLine.makeJsonMessage("CInicis_MakePluginData", nOption, "SEED-CBC", Key, Iv, data, "http://pg.banktown.com/initech/plugin/tools/Time.php", servercert); try{ var data = MagicLine4NpAjax.request( "https://mlnp.dreamsecurity.com:52233/", false, message, function(data, code){ alert(data); }); }catch( e ){ return -1000; } } //------------------------Inicis 전용 함수 -----------------------------// MagicLineUi.leadingZeros = function(n, digits) { var zero = ''; n = n.toString(); if (n.length < digits) { for (i = 0; i < digits - n.length; i++) zero += '0'; } return zero + n; }; MagicLineUi.WriteConsoleLog = function(text) { var x = new Date(); var logtext = ""; logtext += "["; logtext += MagicLineUi.leadingZeros(x.getHours(), 2) + ":"; logtext += MagicLineUi.leadingZeros(x.getMinutes(), 2) + ":"; logtext += MagicLineUi.leadingZeros(x.getSeconds(), 2) + "."; logtext += MagicLineUi.leadingZeros(x.getMilliseconds(), 3) + "] "; logtext += text; }; MagicLine.getOS = function() { try{ var OsVersion = navigator.userAgent; OsVersion = OsVersion.toUpperCase(); if( OsVersion.indexOf("NT 5.1") != -1 ) return "windows XP"; else if( OsVersion.indexOf("NT 6.0") != -1 ) return "windows vista"; else if( OsVersion.indexOf("NT 6.1") != -1 ) return "windows 7"; else if( OsVersion.indexOf("NT 6.2") != -1 ) return "windows 8"; else if( OsVersion.indexOf("NT 6.3") != -1 ) return "windows 8.1"; else if( OsVersion.indexOf("NT 10.0") != -1 ) return "windows 10"; else if( OsVersion.indexOf("IPAD") != -1 ) return "IOS"; else if( OsVersion.indexOf("ANDROID") != -1 ) return "Android"; else if( OsVersion.indexOf("BLACKBERRY") != -1 ) return "BlackBerry"; else if( OsVersion.indexOf("MAC") != -1 ) return "MAC"; else if( OsVersion.indexOf("SYMBIAN") != -1 ) return "Symbian"; else if( OsVersion.indexOf("UBUNTU") != -1 ){ if( OsVersion.indexOf("86_64") != -1 ){ return "UBUNTU64"; }else{ return "UBUNTU32"; } }else if( OsVersion.indexOf("FEDORA") != -1 ){ if( OsVersion.indexOf("86_64") != -1 ){ return "FEDORA64"; }else{ return "FEDORA32"; } } else if( OsVersion.indexOf("LINUX") != -1 ){ if( OsVersion.indexOf("86_64") != -1 ){ return "LINUX64"; }else{ return "LINUX32"; } } else return "Unknown"; }catch( ex ) { return "Unknown"; } }; // URL Scheme 으로 CS실행후 상호검증 진행 MagicLine.StartCS = function( port ) { if (MagicLineUi.documentWrite === true){ MagicLine.sendURLScheme( port ); }else{ ML$( document ).ready(function(){ MagicLine.sendURLScheme( port ); }); } }; // 브라우저별 분기후 팝업이나 iframe을 이용해 URL Scheme으로 CS 실행 MagicLine.sendURLScheme = function( port ){ var os = MagicLine.getOS(); var MagicLine4NpBrowser = MagicLine.getBrowser(); if( port !== null ){ MagicLine.CsPort = port; } MagicLine.crossSessionID = MagicLine.getCrossSessionID(); var urlschemeString = "dXJsc2NoZW1ldXJsc2NoZW1ldXJsc2NoZW1l"; urlschemeString = MagicLine.Base64.encode(urlschemeString); var MLpopup = ""; if( MagicLine4NpBrowser.indexOf( "MSIE" ) > -1 ){ MagicLine.openPopup(); }else if( MagicLine4NpBrowser.indexOf( "Firefox" ) > -1 || MagicLine4NpBrowser.indexOf( "Opera" ) > -1 ||MagicLine4NpBrowser.indexOf( "Safari" ) > -1 || MagicLine4NpBrowser.indexOf( "Chrome" ) > -1 ){ window.document.getElementById("MagicLine4NpIframe").src="MagicLine4NPIZ://"+urlschemeString; }else if( ( MagicLine4NpBrowser.indexOf( "Trident" ) > -1 ) || MagicLine4NpBrowser.indexOf( "MSIE 7" ) > -1 ){ MagicLine.openPopup(); }else if( MagicLine4NpBrowser.indexOf( "Edge" ) > -1 && os.indexOf("windows 10") > -1 ){ window.document.getElementById("MagicLine4NpIframe").src="MagicLine4NPIZ://"+urlschemeString; } else { MagicLine.openPopup(); } }; MagicLine.openPopup = function(){ try{ MagicLine.MLpopup = window.open( MagicLine.UrlSchemeServerURL + "call.html", "MagicLine4NP", "width=315,height=115,left=5000,top=5000,resizable=no,toolbar=no,location=no,status=no" ); if( MagicLine.MLpopup === null ){ alert( decodeURI(MagicLineUi.popupCheckMessage) ); } //setTimeout(MagicLine.MLpopupClose(MLpopup),10000); }catch(e){ } }; MagicLine.MLpopupClose = function(){ var MagicLineNpBrowser = MagicLine.getBrowser(); //20160316 ie9 에러로 주석처리 //try{ // setTimeout(top.window.focus, 10); //}catch(e){ //} try{ if( typeof MagicLine.MLpopup === "object" && MagicLine.MLpopup !== null ){ MagicLine.MLpopup.close(); }else if( MagicLine.MLpopup !== null ) { if( MagicLine.MLpopup !== "" ){ if( ( MagicLineNpBrowser.indexOf( "MSIE" ) > -1 ) || MagicLineNpBrowser.indexOf( "Trident" ) > -1){ MagicLine.MLpopup.close(); } setTimeout(MagicLine.MLpopupClose1,1000); } } }catch(e){ if( MagicLine.MLpopup !== null ) { MagicLine.MLpopup = window.open("about:blank", "MagicLine4NP","width=315,height=115,left=50000,top=5000,resizable=no,toolbar=no,location=no,status=no"); if( MagicLine.MLpopup !== null ) { if( MagicLine.MLpopup !== "" ){ if( ( MagicLineNpBrowser.indexOf( "MSIE" ) > -1 ) || MagicLineNpBrowser.indexOf( "Trident" ) > -1){ MagicLine.MLpopup.close(); } setTimeout(MagicLine.MLpopupClose1,1000); } } } } } MagicLine.MLpopupClose1 = function(){ try{ if( typeof MagicLine.MLpopup === "object" && MagicLine.MLpopup !== null ){ MagicLine.MLpopup.close(); }else if( MagicLine.MLpopup !== null ) { if( MagicLine.MLpopup !== "" ){ if( ( MagicLineNpBrowser.indexOf( "MSIE" ) > -1 ) || MagicLineNpBrowser.indexOf( "Trident" ) > -1){ MagicLine.MLpopup.close(); } setTimeout(MagicLine.MLpopupClose1,1000); } } }catch(e){ } }; /*********************************************************************/ // MagicLine4Submit(form) // /*********************************************************************/ function MagicLine4Submit( form ) { var queryString = ""; var qs_index = ""; var action = ""; var noenc_qs = ""; if ( form.action.indexOf('?') != -1 ) { //action=> ?asdf=asdf&asdf=aa?12=34 부분의 마지막 ?뒤의 Query는 암호화를 한다. action = form.action; document.magicLine4Form.action = action.substring( 0, form.action.lastIndexOf('?') ); queryString = action.substring( action.lastIndexOf('?') + 1, action.length) + '&'; } else { document.magicLine4Form.action = form.action; } queryString += makeQueryString(form); return queryString; } function makeQueryString(form) { var name = new Array(form.elements.length); var value = new Array(form.elements.length); var flag = false; var j = 0; var plain_text =""; len = form.elements.length; for (i = 0; i < len; i++){ if( (form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit") ){ if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox"){ if (form.elements[i].checked === true){ name[j] = form.elements[i].name; value[j] = form.elements[i].value; j++; } } else { name[j] = form.elements[i].name; if (form.elements[i].type == "select-one"){ var ind = form.elements[i].selectedIndex; value[j] = form.elements[i].options[ind].value; } else { value[j] = form.elements[i].value; } j++; } } } for(i=0; i= 20 ){ plain_text += name[i] ; plain_text += "="; plain_text += value[i]; } else { if( name[i] === "etc" || name[i] === "text1" || name[i] === "text2" || name[i] === "text3" || name[i] === "signData" || name[i] === "signEncData" || name[i] === "ssn" ){ plain_text += name[i] ; plain_text += "="; plain_text += MagicLine.Base64.encode(value[i]);; } else { plain_text += name[i] ; plain_text += "="; plain_text += value[i]; } } } return plain_text; } // submit 전송할 데이터 대체 // &,= 기호 변환 function replaceEscapeString( qureyString ) { var i; var ch; var rstring = ''; var qstring = ''; qstring = String(qureyString); for (i = 0; i < qstring.length; i++) { ch = qstring.charAt(i); if (ch == '&') { rstring += '%26'; } else { if (ch == '=') { rstring += '%3D'; } else { rstring += ch; } } } return rstring; } MagicLine.getBrowser = function() { var MagicLineNpBrowser=""; try { var ua= navigator.userAgent, tem; var ualow = ua.toLowerCase(); if( ualow.indexOf("edge")>-1){ MagicLineNpBrowser = "Edge"+ualow.substr(ualow.indexOf("edge")+4,3); MagicLineNpBrowser = MagicLineNpBrowser.replace("/"," "); return MagicLineNpBrowser; }else{ M= ua.match(/(OPR|edge|opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; if( /trident/i.test(M[1])){ tem= /\brv[ :]+(\d+)/g.exec(ua) || []; MagicLineNpBrowser = 'IE '+(tem[1] || ''); } if( M[1]=== 'Chrome'){ tem= ua.match(/\bOPR\/(\d+)/); if( tem!== null){ MagicLineNpBrowser = 'Opera '+tem[1]; return MagicLineNpBrowser; } } M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?']; if( (tem= ua.match(/version\/(\d+)/i))!== null) M.splice(1, 1, tem[1]); MagicLineNpBrowser = M.join(' '); return MagicLineNpBrowser; } } catch( ex ) { MagicLine4NpLog.log("[ getBrowser ][ error ][ "+ex.message+" ]"); return ""; } }; MagicLine.setCookie = function(cname, cvalue, exdays) { var d = new Date(); d.setTime ( d.getTime() + ( exdays * 24 * 60 * 60 * 1000) ); var expires = "expires="+d.toUTCString(); if( exdays === 0 ){ document.cookie = cname + "=" + cvalue + "; path=/; "; } else { document.cookie = cname + "=" + cvalue + "; " + expires+"; path=/;"; } } MagicLine.getCookie = function(cname) { if( MagicLine.isCookie === "true"){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i= 12000 && code <= 13000){ MagicLineUi.failedInstallCheck( "", code ); return; }else{ callback({ "ResultCode" : code, "ResultMessage" : data }); } } }catch ( e ){ MagicLine4NpLog.log( JSON.parse(message).MessageID+" : [ "+e.name+" ][ "+e.code+" ] "); callback( { "ResultCode" : e.code, "ResultMessage" : e.name } ); } }); }catch( e ){ MagicLine4NpLog.log( JSON.parse(message).MessageID + ": [ " + e.message + " ][" + e.code +" ]" ); callback({ "ResultCode" : e.code, "ResultMessage" : e.message }); } } if( MagicLine.scriptType == "client"){ ShowCertWindow="",ShowCertManage="",Login="",Logout="",EnvelopedSignData="",EnvelopedData="",MagicLineUi.EnvelopedData="",SignedDataForm="",SignedData="",SignedData2="",SignedDataNS="",EncryptedSignData="",EnvelopedDataOrg="",DevelopedDataOrg="",onKeyExchange="",Encrypt="",EncryptFormData="",EncryptLink="",Decrypt="",SignItemByOption="",SignedDataSessionoOpt=""; } MagicLine.GetCertRandom = function( cert ){ var message = MagicLine.makeJsonMessage( "GetCertRandom", cert ); try{ var data = MagicLine4NpAjax.request( MagicLine.CsUrl+MagicLine.CsPort+"/", true, message ); var obj = JSON.parse(data); return obj; }catch( e ){ MagicLine4NpLog.log("MagicLine.GetCertRandom : [ " + e.message + " ][" + e.code +" ]" ); return e.code; } } ////////////////////////////////////////////////////// minify ////////////////////////////////// /* 2017-05-15 */function createStandardXHR(){try{return new window.XMLHttpRequest}catch(a){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}function MagicLine4NpError(a,b,c){this.name=a||"MagicLine4NpError",this.message=b||"default Message",this.code=c||"none"}var MagicLine4NpAjax={};MagicLine4NpAjax.isTest=!1,MagicLine4NpAjax.ajaxObj={},MagicLine4NpAjax.xhr=void 0!==window.ActiveXObject?function(){return MagicLine.AjaxLocal&&createStandardXHR()||createActiveXHR()}:createStandardXHR,MagicLine4NpAjax.xhr=function(){if(0==MagicLine4NpAjax.isTest){var a=createStandardXHR(),b=createActiveXHR(),c=MagicLine4NpAjax.xhrTest(a,"window.XMLHttpRequest()"),d=MagicLine4NpAjax.xhrTest(b,"window.ActiveXObject( 'Microsoft.XMLHTTP' )");return!0===c.boolean?(MagicLine4NpAjax.ajaxObj="createStandardXHR",MagicLine4NpAjax.isTest=!0):!0===d.boolean&&(MagicLine4NpAjax.ajaxObj="createActiveXHR",MagicLine4NpAjax.isTest=!0),"createStandardXHR"===MagicLine4NpAjax.ajaxObj?createStandardXHR():createActiveXHR()}return"createStandardXHR"===MagicLine4NpAjax.ajaxObj?createStandardXHR():createActiveXHR()},MagicLine4NpAjax.xhrTest=function(a,b){try{MagicLineUi.setSessionTimeout;a.open("POST",MagicLine.CsUrl+MagicLine.CsPort+"/",!1),a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.send("");var c={};return c.message=a.responseText,c.boolean=!0,c}catch(a){var d={browser:MagicLine.getBrowser(),OS:MagicLine.getOS(),AjaxObj:b,errMsg:a.message};MagicLine4NpLog.logType="console",MagicLine4NpLog.log(JSON.stringify(d)),MagicLine4NpLog.logType="";var c={};return c.message=a,c.boolean=!1,c}},MagicLine4NpAjax.request=function(a,b,c,d){try{var e=MagicLine4NpAjax.xhr(),f=!b;if(e.open("POST",a,f),e.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),e.send(c),!1===b)e.onreadystatechange=function(){4==e.readyState&&(200==e.status?d(e.responseText,0):d(e.statusText,e.status))};else if(!0===b){if(4==e.readyState){if(200==e.status)return e.responseText;throw new MagicLine4NpError("MagicLine4AjaxError","AJAX Failed : [ xmlHttpRequest.statusText ][ "+e.statusText+" ][xmlHttpRequest.readyState][ "+e.readyState+" ]",-10)}throw new MagicLine4NpError("MagicLine4AjaxError","AJAX Failed : [ xmlHttpRequest.statusText ][ "+e.statusText+" ][xmlHttpRequest.readyState][ "+e.readyState+" ]",-20)}}catch(a){throw new MagicLine4NpError("MagicLine4AjaxError","AJAX Failed : [ xmlHttpRequest.statusText ][ "+e.statusText+" ][xmlHttpRequest.readyState][ "+e.readyState+" ]",e.status)}},MagicLine4NpError.prototype=new Error,MagicLine4NpError.prototype.constructor=MagicLine4NpError,MagicLine4NpLog=new Object,MagicLine4NpLog.logType="",MagicLine4NpLog.log=function(a){void 0==window.console&&(console={log:function(){}}),"console"==MagicLine4NpLog.logType?console.log(a):"alert"==MagicLine4NpLog.logType&&alert(a)},MagicLine.getCrossSessionID=function(){try{var a=MagicLine4NpAjax.request(MagicLine.crossServerURL+"certificate_session.jsp",!0,"");return null===a||""===a?"":a}catch(a){return MagicLine4NpLog.log("MagicLine.getCrossSessionID : [ "+a.message+" ]["+a.code+" ]"),""}},MagicLine.ServerSessionCheck=function(){try{var a=MagicLine4NpAjax.request(MagicLine.crossServerURL+"certificate_check.jsp",!0,"");return null===a||""===a?"err":a}catch(a){return MagicLine4NpLog.log("MagicLine.ServerSessionCheck : [ "+a.message+" ]["+a.code+" ]"),""}},MagicLine.sendCrossData=function(a){try{var b=MagicLine4NpAjax.request(MagicLine.crossServerURL+"certificate_process.jsp",!0,a);return null===b||""===b?"":b}catch(a){return MagicLine4NpLog.log("MagicLine.sendCrossData : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.InstallCheck=function(){var a=MagicLineUi.setSessionTimeout,b=MagicLine.makeJsonMessage("InstallCheck",MagicLine.getCookie("MagicLineSession"),MagicLine.getBrowser(),a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b),d=JSON.parse(c);return 0===d.ResultCode&&MagicLine.setCookie("MagicLine4NPSetupStatus","1",1),d}catch(a){return MagicLine4NpLog.log("MagicLine.InstallCheck : [ "+a.message+" ]["+a.code+" ]"),{ResultCode:-1666,ResultMessage:a.name}}},MagicLine.CrossCertification=function(a,b,c){var d=MagicLine.createJsonMessage("CrossCertification",{CrossSessionID:a,CrossServerURL:b,CrossServerCert:c});try{var e=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,d),f=JSON.parse(e);if(0===f.ResultCode){var g=MagicLine.sendCrossData("data="+encodeURIComponent(f.ResultMessage));return g=MagicLine.trim(g),"upgrade"==g?(f.ResultMessage="upgrade",f):"ok"==g?(f.ResultMessage="ok",f):g.indexOf("err")>-1?(MagicLine4NpLog.log("MagicLine.CrossCertification :[ errorCode ][ "+g.split("err:")[1]+"]"),f.ResultMessage=g,f.ResultCode=-1771,f):g>=400&&g<500?(f.ResultMessage=g,f.ResultCode=-1740,f):g>=500&&g<600?(f.ResultMessage=g,f.ResultCode=-1750,f):0==g?(f.ResultMessage=g,f.ResultCode=-1700,f):g>600?(f.ResultMessage=g,f):(f.ResultMessage=g,f.ResultCode=-1700,f)}return f}catch(a){return MagicLine4NpLog.log("MagicLine.CrossCertification : [ "+a.message+" ]["+a.code+" ]"),f.ResultMessage=g,f.ResultCode=-1773,f}},MagicLine.TerminateCS=function(){var a=MagicLine.makeJsonMessage("TerminateCS");try{var b=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,a);return JSON.parse(b).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.TerminateCS : [ "+a.message+" ]["+a.code+" ]"),-3999}},MagicLine.Init=function(a,b,c,d,e,f,g,h){var i=MagicLine.makeJsonMessage("Init",a,b,c,d,e,f,g,h);try{var j=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,i);return JSON.parse(j).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.Init : [ "+a.message+" ]["+a.code+" ]"),-1e3}},MagicLine.SetPropertyJS=function(a){var b=MagicLine.makeJsonMessage("SetPropertyJS",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetPropertyJS : [ "+a.message+" ]["+a.code+" ]"),-1e3}},MagicLine.InitAdd=function(a,b,c,d,e,f,g,h){var i=MagicLine.makeJsonMessage("InitAdd",a,b,c,d,e,f,g,h);try{var j=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,i);return JSON.parse(j).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.InitAddError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.InitSessionURL=function(a){var b=MagicLine.makeJsonMessage("InitSessionURL",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.InitSessionURLError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetInitOption=function(a,b){var c=MagicLine.makeJsonMessage("SetInitOption",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetInitOptionError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetPhoneCertOpt=function(a){var b=MagicLine.makeJsonMessage("SetPhoneCertOpt",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetPhoneCertOptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetMobileKeyURL=function(a){var b=MagicLine.makeJsonMessage("SetMobileKeyURL",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetMobileKeyURLError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.UbiKeyInit=function(a,b,c,d){var e=MagicLine.makeJsonMessage("UbiKeyInit",a,b,c,d);try{var f=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,e);return JSON.parse(f).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.UbiKeyInitError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetLanguageOption=function(a){var b=MagicLine.makeJsonMessage("SetLanguageOption",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetLanguageOptionError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetCertManageOption=function(a,b){var c=MagicLine.makeJsonMessage("SetCertManageOption",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetCertManageOptionError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetEnableMediaType=function(a){var b=MagicLine.makeJsonMessage("SetEnableMediaType",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetEnableMediaTypeError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetVirtualKeyPad=function(a,b){var c=MagicLine.makeJsonMessage("SetVirtualKeyPad",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetVirtualKeyPadError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.setCharset=function(a){var b=MagicLine.makeJsonMessage("setCharset",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetCharsetError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetProperty=function(a,b){var c=MagicLine.makeJsonMessage("SetProperty",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetPropertyError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetProperty2=function(a,b,c){var d=MagicLine.makeJsonMessage("SetProperty2",a,b,c);try{var e=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,d);return JSON.parse(e).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetProperty2Error : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetTokenOption=function(a){var b=MagicLine.makeJsonMessage("SetTokenOption",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetTokenOptionError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetGlobalSessionID=function(a){var b=MagicLine.makeJsonMessage("SetGlobalSessionID",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetGlobalSessionIDError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.setSessionID=function(a){var b=MagicLine.makeJsonMessage("setSessionID",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetSessionIDError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetCertCN=function(a){var b=MagicLine.makeJsonMessage("SetCertCN",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetCertCNError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.CheckCreateSession=function(a){var b=MagicLine.makeJsonMessage("CheckCreateSession",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.CheckCreateSessionError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.GetActiveXVersion=function(a){var b=MagicLine.makeJsonMessage("GetActiveXVersion",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.GetActiveXVersionError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Login_FindCert=function(a,b,c,d,e){var f=MagicLine.makeJsonMessage("Login_FindCert",a,b,c,d,e);try{var g=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,f);return JSON.parse(g).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.Login_FindCertError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Logout=function(a){var b=MagicLine.makeJsonMessage("Logout",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.LogoutError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Encrypt=function(a,b){var c=MagicLine.makeJsonMessage("Encrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.EncryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Decrypt=function(a,b){var c=MagicLine.makeJsonMessage("Decrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.DecryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetSessionKeyExchange=function(a,b,c){var d=MagicLine.makeJsonMessage("SetSessionKeyExchange",a,b,c);try{var e=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,d);return JSON.parse(e)}catch(a){return MagicLine4NpLog.log("MagicLine.SetSessionKeyExchangeError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetSessionKeyExchangeIBK=function(a,b,c){var d=MagicLine.makeJsonMessage("SetSessionKeyExchangeIBK",a,b,c);try{var e=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,d);return JSON.parse(e).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SetSessionKeyExchangeIBKError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.isValidCertVID=function(a){var b=MagicLine.createJsonMessage("isValidCertVID",{binyIDN:a});try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.isValidCertVIDError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Encrypt2=function(a,b){var c=MagicLine.makeJsonMessage("Encrypt2",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.Encrypt2Error : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Decrypt2=function(a,b){var c=MagicLine.makeJsonMessage("Decrypt2",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.Decrypt2Error : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SymmEncrypt=function(a,b){var c=MagicLine.makeJsonMessage("SymmEncrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.SymmEncryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.GetCertDN=function(a){var b=MagicLine.makeJsonMessage("GetCertDN",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.GetCertDNError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.GetCertInfo=function(a,b){var c=MagicLine.makeJsonMessage("GetCertInfo",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultMessage}catch(a){return MagicLine4NpLog.log("MagicLine.GetCertInfoError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.NS_EnvelopData=function(a,b){var c=MagicLine.makeJsonMessage("NS_EnvelopData",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.NS_EnvelopDataError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.NS_Encrypt=function(a,b){var c=MagicLine.makeJsonMessage("NS_Encrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.NS_EncryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.NS_Decrypt=function(a,b){var c=MagicLine.makeJsonMessage("NS_Decrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.NS_DecryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.NS_GetCertSerialNum=function(){var a=MagicLine.makeJsonMessage("NS_GetCertSerialNum");try{var b=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,a);return JSON.parse(b).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.NS_GetCertSerialNumError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.CMS_EncryptData=function(a,b){var c=MagicLine.makeJsonMessage("CMS_EncryptData",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.CMS_EncryptDataError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.CRYPT_Encrypt=function(a,b){var c=MagicLine.makeJsonMessage("CRYPT_Encrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.CRYPT_EncryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.CRYPT_Decrypt=function(a,b){var c=MagicLine.makeJsonMessage("CRYPT_Decrypt",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.CRYPT_DecryptError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.EnvelopDatabyEncCert=function(a,b){var c=MagicLine.makeJsonMessage("EnvelopDatabyEncCert",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.EnvelopDatabyEncCertError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.EnvelopDataFilebyEncCert=function(a,b,c){var d=MagicLine.makeJsonMessage("EnvelopDataFilebyEncCert",a,b,c);try{var e=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,d);return JSON.parse(e).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.EnvelopDataFilebyEncCertError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.SetVerifyRootCert=function(a){var b=MagicLine.makeJsonMessage("SetVerifyRootCert",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.EnvelopDataFilebyEncCertError : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.GetReturnData=function(){var a=MagicLine.makeJsonMessage("GetReturnData");try{var b=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,a);return JSON.parse(b).ResultMessage}catch(a){return MagicLine4NpLog.log("MagicLine.EnvelopDataFilebyEncCertError : [ "+a.message+" ]["+a.code+" ]"),a.code}};var MagicLine_FCrypto={};MagicLine_FCrypto.Init=function(a){var b=MagicLine.makeJsonMessage("FCrypto_Init",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c)}catch(a){return MagicLine4NpLog.log("MagicLine_FCrypto.Init : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine_FCrypto.GetSelectFilePath=function(a){var b=MagicLine.makeJsonMessage("FCrypto_GetSelectFilePath");MagicLine.asyncCall(b,a)},MagicLine_FCrypto.DSFC_EncryptFile=function(a,b,c,d){var e=MagicLine.makeJsonMessage("FCrypto_DSFC_EncryptFile",a,b,c,d);try{var f=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,e);return JSON.parse(f).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine_FCrypto.DSFC_EncryptFile : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine_FCrypto.DSFC_DecryptFile=function(a,b,c,d){var e=MagicLine.makeJsonMessage("FCrypto_DSFC_DecryptFile",a,b,c,d);try{var f=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,e);return JSON.parse(f).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine_FCrypto.DSFC_DecryptFile : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine_FCrypto.DSFC_CheckPassword=function(a,b){var c=MagicLine.makeJsonMessage("FCrypto_DSFC_CheckPassword",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine_FCrypto.DSFC_CheckPassword : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine_FCrypto.DSFC_DeleteFile=function(a){var b=MagicLine.makeJsonMessage("FCrypto_DSFC_DeleteFile",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine_FCrypto.DSFC_DeleteFile : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine_FCrypto.GetReturnData=function(){var a=MagicLine.makeJsonMessage("FCrypto_GetReturnData");try{var b=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,a);return JSON.parse(b).ResultMessage}catch(a){return MagicLine4NpLog.log("MagicLine_FCrypto.GetReturnData : [ "+a.message+" ]["+a.code+" ]"),a.code}},MagicLine.Login=function(a,b,c){var d=MagicLine.makeJsonMessage("Login",a,b);MagicLine.asyncCall(d,c)},MagicLine.SignedData=function(a,b,c,d){var e=MagicLine.makeJsonMessage("SignedData",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.EnvelopedSignData=function(a,b,c){var d=MagicLine.makeJsonMessage("EnvelopedSignData",a,b);MagicLine.asyncCall(d,c)},MagicLine.EnvelopData=function(a,b,c){var d=MagicLine.makeJsonMessage("EnvelopData",a,b);MagicLine.asyncCall(d,c)},MagicLine.EncryptedSignData=function(a,b,c,d){var e=MagicLine.makeJsonMessage("EncryptedSignData",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.SignedDataWithVIDCheck=function(a,b,c,d,e){var f=MagicLine.makeJsonMessage("SignedDataWithVIDCheck",a,b,c,d);MagicLine.asyncCall(f,e)},MagicLine.NS_SignedDataWithVIDCheck=function(a,b,c,d,e){var f=MagicLine.makeJsonMessage("NS_SignedDataWithVIDCheck",a,b,c,d);MagicLine.asyncCall(f,e)},MagicLine.SetCertAndPriekey=function(a,b,c){var d=MagicLine.makeJsonMessage("SetCertAndPriekey",a,b);MagicLine.asyncCall(d,c)},MagicLine.SignedData_CertAndKeyOption=function(a,b,c,d){var e=MagicLine.makeJsonMessage("SignedData_CertAndKeyOption",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.SignedData_PKCS7=function(a,b,c,d){var e=MagicLine.makeJsonMessage("SignedData_PKCS7",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.SignedData2=function(a,b,c,d){var e=MagicLine.makeJsonMessage("SignedData2",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.LoginMG=function(a,b,c){var d=MagicLine.makeJsonMessage("LoginMG",a,b);MagicLine.asyncCall(d,c)},MagicLine.ShowCertManage=function(){var a=MagicLine.makeJsonMessage("ShowCertManage");MagicLine.asyncCall(a,callback)},MagicLine.GetSelectCertInfo=function(){var a=MagicLine.makeJsonMessage("GetSelectCertInfo");MagicLine.asyncCall(a,callback)},MagicLine.NS_SignedData=function(a,b,c,d){var e=MagicLine.makeJsonMessage("NS_SignedData",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.LoginWithEncCert=function(a,b,c){var d=MagicLine.makeJsonMessage("LoginWithEncCert",a,b);MagicLine.asyncCall(d,c)},MagicLine.DevelopDatabyEncCert=function(a,b,c){var d=MagicLine.makeJsonMessage("DevelopDatabyEncCert",a,b);MagicLine.asyncCall(d,c)},MagicLine.DevelopDataFilebyEncCert=function(a,b,c,d){var e=MagicLine.makeJsonMessage("DevelopDataFilebyEncCert",a,b,c);MagicLine.asyncCall(e,d)},MagicLine.makeJsonMessage=function(a){var b="",c=arguments.length-1;if(!(c<0)){for(b+="{",b+='"Version":"'+MagicLine.Version+'",',b+='"ServiceID":"'+mlProp.SiteID+'",',b+='"SessionTimeout":"'+MagicLineUi.setSessionTimeout+'",',""===MagicLine.getCookie("MagicLineSession")?b+='"SessionID":"'+MagicLine.getCookie("NONEID")+'",':b+='"SessionID":"'+MagicLine.getCookie("MagicLineSession")+'",',b+=0===c?'"MessageID":"'+a+'"':'"MessageID":"'+a+'",',i=0;i>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),i=i+this._keyStr.charAt(e)+this._keyStr.charAt(f)+this._keyStr.charAt(g)+this._keyStr.charAt(h);return i},decode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");j>4,c=(15&f)<<4|g>>2,d=(3&g)<<6|h,i+=String.fromCharCode(b),64!=g&&(i+=String.fromCharCode(c)),64!=h&&(i+=String.fromCharCode(d));return i=MagicLine.Base64._utf8_decode(i)},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c127&&d<2048?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=0,e=0;c191&&d<224?(e=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&e),c+=2):(e=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&e)<<6|63&c3),c+=3);return b}};var XS_MagicLine=new Object;XS_MagicLine.Init=function(){var a=MagicLine.makeJsonMessage("KCSP_Init");try{var b=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,a);return JSON.parse(b).ResultCode}catch(a){return MagicLine4NpLog.log("MagicLine.Init : [ "+a.message+" ]["+a.code+" ]"),21e3}},XS_MagicLine.GetRandom=function(a){var b=MagicLine.makeJsonMessage("KCSP_GetRandom",a);try{var c=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,b);return JSON.parse(c)}catch(a){return MagicLine4NpLog.log("MagicLine.Init : [ "+a.message+" ]["+a.code+" ]"),{ResultCode:22001,ResultMessage:a.message}}},XS_MagicLine.MakeEnvelopData=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_MakeEnvelopData",a,b);try{var d=MagicLine4NpAjax.request(MagicLine.CsUrl+MagicLine.CsPort+"/",!0,c);return JSON.parse(d)}catch(a){return MagicLine4NpLog.log("MagicLine.Init : [ "+a.message+" ]["+a.code+" ]"),{ResultCode:22002,ResultMessage:a.message}}},XS_MagicLine.GetUserDN=function(a){var b=MagicLine.makeJsonMessage("KCSP_GetUserDN");MagicLine.asyncCall(b,a)},XS_MagicLine.MakeXMLDSIG=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_MakeXMLDSIG",a);MagicLine.asyncCall(c,b)},XS_MagicLine.VerifyXMLDSIG=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_VerifyXMLDSIG",a);MagicLine.asyncCall(c,b)},XS_MagicLine.VerifyXMLSignCert=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_VerifyXMLSignCert",a);MagicLine.asyncCall(c,b)},XS_MagicLine.MakeXMLEncryption=function(a,b,c){var d=MagicLine.makeJsonMessage("KCSP_MakeXMLEncryption",a,b);MagicLine.asyncCall(d,c)},XS_MagicLine.MakeXMLDecryption=function(a,b,c,d,e){var f=MagicLine.makeJsonMessage("KCSP_MakeXMLDecryption",a,b,c,d);MagicLine.asyncCall(f,e)},XS_MagicLine.MakeSOAPDSIG=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_MakeSOAPDSIG",a);MagicLine.asyncCall(c,b)},XS_MagicLine.VerifySOAPDSIG=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_VerifySOAPDSIG",a);MagicLine.asyncCall(c,b)},XS_MagicLine.VerifySOAPSignCert=function(a,b){var c=MagicLine.makeJsonMessage("KCSP_VerifySOAPSignCert",a);MagicLine.asyncCall(c,b)};