/* 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 += '
';
// MagicLine InstallCheck Popup Message
magicline4FormString += '';
magicline4FormString += '';
magicline4FormString += '';
magicline4FormString += '';
magicline4FormString += '';
magicline4FormString += ''+decodeURI(MagicLineUi.installCheckMessage)+'';
magicline4FormString += '';
magicline4FormString += '
';
magicline4FormString += ''+decodeURI(MagicLineUi.downloadCheckMessage)+'';
magicline4FormString += '';
magicline4FormString += ''+decodeURI(MagicLineUi.restartDownLoadMessage)+'';
magicline4FormString += ''+decodeURI(MagicLineUi.cancelMessage)+'';
magicline4FormString += '';
/* 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)};