// 단일 전자서명 function SignData(form, pemcert) { var plainText, signMsg; var nRet, certdn, storage; var tid, ssn, userInfo; var sessionID, ssn, userInfo; sessionID = form.cSessionID.value; ssn = form.cSSN.value; userInfo = form.cUserInfo.value; // 모든 Condition 설정. nRet = TSToolkit.SetConfig("test", CA_LDAP_INFO, CTL_INFO, POLICIES, INC_CERT_SIGN, INC_SIGN_TIME_SIGN, INC_CRL_SIGN, INC_CONTENT_SIGN, USING_CRL_CHECK, USING_ARL_CHECK); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 사용자가 자신의 인증서를 선택. nRet = TSToolkit.SelectCertificate(STORAGE_TYPE, 0, ""); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } nRet = TSToolkit.SetPeerCertificate(pemcert); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 사용자 정보. 인증서의 사업자번호와 계약서 사업자번호의 일치 체크에 필요 nRet = TSToolkit.LoginData(sessionID, ssn, userInfo); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } form.signdata.value = TSToolkit.OutData; // 서명할 문자열 데이타 설정. plainText = form.bill_Xml0_Docu.value; // 서명 데이터 nRet = TSToolkit.SignData(plainText); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } form.bill_Sign_Docu.value = TSToolkit.OutData; return true; } // 계약서 전자서명 // 다자간 전자서명 function AddSign(form, pemcert) { var nRet, certdn, storage; var ssn, userInfo; var sessionID, ssn, userInfo; sessionID = form.cSessionID.value; ssn = form.cSSN.value; userInfo = form.cUserInfo.value; // 서명할 파일및 서명후 저장할 파일경로 설정. var signedData; // 모든 Condition 설정. nRet = TSToolkit.SetConfig("test", CA_LDAP_INFO, CTL_INFO, POLICIES, INC_CERT_SIGN, INC_SIGN_TIME_SIGN, INC_CRL_SIGN, INC_CONTENT_SIGN, USING_CRL_CHECK, USING_ARL_CHECK); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 사용자가 자신의 인증서를 선택. nRet = TSToolkit.SelectCertificate(STORAGE_TYPE, 0, ""); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } nRet = TSToolkit.SetPeerCertificate(pemcert); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 사용자 정보. 인증서의 사업자번호와 세금계산서 공급자 사업자번호의 일치 체크에 필요 nRet = TSToolkit.LoginData(sessionID, ssn, userInfo); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } form.signdata.value = TSToolkit.OutData; // 서명할 문자열 데이타 설정. signedData = form.bill_Xml0_Docu.value; nRet = TSToolkit.AddSignInSignedData(signedData); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } form.bill_Sign_Docu.value = TSToolkit.OutData; return true; } // 세금계산서 대량발행 멀티서명 function MultiSignData(form) { var plainText, signMsg; var nRet, certdn, storage; var tid, ssn, userInfo; var sessionID, ssn, userInfo; sessionID = form.cSessionID.value; ssn = form.cSSN.value; userInfo = form.cUserInfo.value; // 모든 Condition 설정. nRet = TSToolkit.SetConfig("test", CA_LDAP_INFO, CTL_INFO, POLICIES, INC_CERT_SIGN, INC_SIGN_TIME_SIGN, INC_CRL_SIGN, INC_CONTENT_SIGN, USING_CRL_CHECK, USING_ARL_CHECK); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 사용자가 자신의 인증서를 선택. nRet = TSToolkit.SelectCertificate(STORAGE_TYPE, 0, ""); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } nRet = TSToolkit.SetPeerCertificate(pemKMCert); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 사용자 정보. 인증서의 사업자번호와 세금계산서 공급자 사업자번호의 일치 체크에 필요 nRet = TSToolkit.LoginData(sessionID, ssn, userInfo); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } form.signdata.value = TSToolkit.OutData; // 서명할 문자열 데이타 설정. // For문으로 선택된 세금계산서 수만큼 반복저장 var index ; var totlCnt = ""; totlCnt = form.totlCnt.value; goSaveProcessing(); // 상태 진행바 for(index = 0; index < totlCnt; index++) { // 세금계산서 원문XML plainText = form["bill_Xml0_Docu"+index].value; // 서명 데이터 nRet = TSToolkit.SignData(plainText); if (nRet > 0) { alert(nRet + " : " + TSToolkit.GetErrorMessage()); return false; } // 전자서명한 XML form["sign_Docu"+index].value = TSToolkit.OutData; } return true; }