//////////////////////////////Update Zhang////////////////////////////////
// XecureWeb SSL Client Java Script ver4.1 2001.5.30
//
// ¾ÆÁ÷ : Netscape 6.0Àº Áö¿øµÇÁö ¾Ê½À´Ï´Ù....
// Edit List 2000,05,30
// process_error() --> XecureWebError() // by Zhang º¯°æ
// function IsNetscape60() // by Zhang Ãß°¡
// function XecureUnescape(Msg) // by Zhang Ãß°¡
// function XecureEscape(Msg) // by Zhang Ãß°¡
// function XecurePath(xpath) // by zhang Ãß°¡
/**
* @mainpage XecureWeb SSL Client JavaScript API¸Þ´º¾ó
*
* @section Program XecureWeb SSL Client JavaScript
* - ÇÁ·Î±×·¥ À̸§ : XecureWeb SSL Client JavaScript
* - ÇÁ·Î±×·¥ ³»¿ë : XecureWeb SSL ClientÀÇ APIÀÇ °ÈµÈ ±â´ÉÀ» »ç¿ëÀÚ ÆíÀÇ¿¡ ¸Âµµ·Ï Á¦°øÇÑ´Ù.
*
* @section CREATEINFO ÀÛ¼ºÁ¤º¸
* - ÀÛ¼ºÀÏ : 2008/04/28
*/
/**
* @file xecureweb.js
* xecureweb javascriptÀÇ ±¸Çöü
*
* @author PKI Part, Softforum R&D Team
* @date 2008/04/28
* @attention Copyright (c) 2008 Softforum - All rights reserved.
*/
/**
* @defgroup clientRequestCryptoAPI Ŭ¶óÀÌ¾ðÆ® Request ¾ÏÈ£ API
* Ŭ¶óÀÌ¾ðÆ® Request ¾ÏÈ£ API
*/
/**
* @defgroup serverResponseCryptoAPI ¼¹ö Response º¹È£ API
* ¼¹ö Response º¹È£ API
*/
/**
* @defgroup digitalSignAPI ÀüÀÚ¼¸í API
* ÀüÀÚ¼¸í API
* @code
* var sign_desc=¡±¡±; ( ¼¸í¿ø¹® È®ÀÎâÀÇ ±âº» ¼³¸í¹® )
* var show_plain=1; ( 0 : ¼¸í¿ø¹® È®ÀÎâ º¸ÀÌÁö ¾Ê±â , 1 : ¼¸í¿ø¹® È®ÀÎâ º¸À̱â )
* var accept_cert = ¡°yessign,SoftForum CA¡±; (¼¸í¿¡ »ç¿ëµÉ À¯È¿ÇÑ ÀÎÁõ±â°ü ¸ñ·Ï (CN) )
* // Yessign Test : yessignCA-TEST
* // Yessign Real : yessignCA
* // SignGate Test : SignGateFTCA
* // SignGate Real : signGate CA
* // SignKorea Test : SignKorea Test CA
* // SignKorea Real : SignKorea CA
* // ±âŸ ÀÎÁõ±â°üÀº¡¦¹ß±ÞÀÚ(ÀÎÁõ±â°ü)ÀÇCN
* var pwd_fail = 3; (ÀÎÁõ¼ ¾ÏÈ£ ¿À·ù¸¦ Çã¿ëȸ¼ö)
* var xgate_addr = window.location.hostname + ¡°:443:8080¡±;
* (¼¹öÃø ¼¼¼Ç°ü¸®ÀÚÀÇ IP¿Í Æ÷Æ®¹øÈ£ , 443 : Direct port , 8080 : Proxy port )
* @endcode
*/
/**
* @defgroup CMPAPI ÀÎÁõ¼ ¹ß±Þ/°»½Å/Æó±â °ü·Ã CMP API
* ÀÎÁõ¼ ¹ß±Þ/°»½Å/Æó±â °ü·Ã CMP API
* @code
* var ca_ip = ¡°203.233.91.232¡±; (YesSign °øÀÎ ÀÎÁõ±â°ü IP - Test)
* var ca_ip = ¡°203.233.91.71¡±; (YesSign °øÀÎ ÀÎÁõ±â°ü IP - Real)
* var ca_ip = "192.168.10.25;SoftforumCA"; (Xecure ÀÎÁõ±â°ü IP;CA Name)
* var ca_port = 4512; (YesSign °øÀÎ ÀÎÁõ±â°ü Port )
* var ca_type = 11; (YesSign ÀÎÁõ±â°ü Type ? Test)
* var ca_type = 1; (YesSign ÀÎÁõ±â°ü Type ? Real)
* var ca_type = 101; (Xecure ÀÎÁõ±â°ü Type ? RSA)
* var ca_type = 101+256; (Xecure ÀÎÁõ±â°ü Type ? RSA & CSP »ç¿ë½Ã Ű1½Ö¸¸ »ý¼º)
* var ca_type = 102; (Xecure ÀÎÁõ±â°ü Type ? GPKI)
* var pwd_fail = 3; (ÀÎÁõ¼ ¾ÏÈ£ ¿À·ù¸¦ Çã¿ëȸ¼ö)
* @endcode
*/
/**
* @defgroup SFCA_CMPAPI SFCA ÀÎÁõ¼ °ü·Ã API
* SFCA ÀÎÁõ¼ °ü·Ã API
* Linux System¿¡¼´Â Áö¿øÇÏÁö ¾Ê´Â´Ù.
*/
/**
* @defgroup etcAPI ±âŸ API
* ±âŸ API
*/
var gIsContinue=0;
var busy_info = "¾ÏÈ£È ÀÛ¾÷ÀÌ ÁøÇàÁßÀÔ´Ï´Ù. È®ÀÎÀ» ´©¸£½Ã°í Àá½Ã ±â´Ù·Á ÁֽʽÿÀ."
/**
* ¾Ïº¹È£½Ã ÆäÀÌÁö¿¡ ¸í½ÃµÈ ¹®ÀÚ¼ÂÀÇ »ç¿ë ¿©ºÎ
* XecureWeb Java ¹öÀü ¾Ïº¹È£½Ã ½Ã½ºÅÛ µðÆúÆ® ÀÎÄÚµù°ú ´Ù¸¥ ¹®ÀÚ¼ÂÀÇ
* ¸Þ¼¼Áö¸¦ ó¸®ÇÏ´Â °æ¿ì true ¼³Á¤
*
* @since 6.0 v210
*/
var usePageCharset=false;
// YESSIGN CA ADDRESS//////////////////////////////////////////////////////
// TEST : 203.233.91.234
// REAL : 203.233.91.71
//var yessign_ca_type = 1; // Yessign Real
/**
* ±Ý°á¿ø CAÀÇ Á¾·ù
* 1 : Yessign Real
* 11 : Yessign Test
*/
var yessign_ca_type = 11; // Yessign Test
/**
* ±Ý°á¿ø CAÀÇ ¼ºñ½º IP
*/
var yessign_ca_ip = "203.233.91.234";
/**
* ±Ý°á¿ø CAÀÇ ¼ºñ½º Port
*/
var yessign_ca_port = 4512;
// XECURE CA ADDRESS///////////////////////////////////////////////////////
// TEST : 192.168.10.30
var xecure_ca_type = 101; // XecureCA (RSA)
//var xecure_ca_type = 102; // XecureCA (GPKI)
var xecure_ca_ip = "192.168.10.25;SoftforumCA";
//var xecure_ca_ip = "192.168.10.25";
var xecure_ca_port = 8200;
var xecure_ca_type_1 = 101; // XecureCA (RSA)
//var xecure_ca_type = 102; // XecureCA (GPKI)
var xecure_ca_ip_1 = "192.168.10.30;mma ca";
var xecure_ca_port_1 = 2223;
/**
* ÀüÀÚ¼¸í, ÀÎÁõ¼ °»½Å, ÀÎÁõ¼ Æó±â½Ã¿¡ ÀÎÁõ¼ ¾ÏÈ£¿À·ù¸¦ Çã¿ëȸ¼ö
*/
var pwd_fail = 3;
/**
* ¼¸í¿¡ »ç¿ëµÉ À¯È¿ÇÑ ÀÎÁõ±â°ü ¸ñ·Ï (CN)
* Sign, RequestCertificate, RevokeCertificate ½Ã ³ªÅ¸³ª´Â ÀÎÁõ¼ ¸ñ·Ï
* XecureWeb ver 5.1 ¿¡¼´Â accept_cert ¿¡ À¯È¿ÇÑ ÀÎÁõ±â°ü ÀÎÁõ¼ÀÇ
* CN À» Á¤È®È÷ Àû¾îÁØ´Ù.
* ver 4.0 ¿¡¼ yessign À̶ó Àû¾ú´ø °ÍÀº yessignCA-TEST, yessignCA ·Î ¼¼ºÐÈ µÈ´Ù.
* YESSIGN TEST : yessignCA-TEST
* YESSIGN REAL : yessignCA
*/
var accept_cert = "CA131000002Test,Çѱ¹ÀüÀÚÀÎÁõ,MND CA,CrossCert Certificate Authority,CA131000002,Softforum CA 3.0,SoftforumCA,yessignCA,yessignCA-OCSP,signGATE CA,signGATE CA2,SignKorea CA,CrossCertCA,CrossCertCA-Test2,NCASign CA,TradeSignCA,yessignCA-TEST,lotto test CA,NCATESTSign,SignGateFTCA,SignKorea Test CA,TestTradeSignCA,Softforum Demo CA,mma ca,º´¹«Ã» ÀÎÁõ±â°ü,yessignCA Class 1,NCASignCA,signGATE CA4,SignKorea CA2,CrossCertCA2,TradeSignCA2,signGATE";
//////////////////////////////////////////////////////////////////////////////////
// ·Î±×ÀΠâ¿¡ º¸ÀÏ À̹ÌÁö¸¦ ´Ù¿î·Îµå ¹ÞÀ» URL
//var bannerUrl = "http://" + window.location.host + "/XecureObject/xecure.bmp";
/**
* ·Î±×ÀΠâ¿¡ º¸ÀÏ À̹ÌÁö¸¦ ´Ù¿î·Îµå ¹ÞÀ» URL
*/
var bannerUrl = "http://" + window.location.host + "/XecureObject/xecureweb_big.bmp";
/**
* ÀÎÁõ±â°ü ÀÎÁõ¼ ´Ù¿î·Îµå½Ã ÀÎÁõ±â°ü ÀÎÁõ¼
*/
var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
/**
* ÀÎÁõ±â°ü ÀÎÁõ¼ ´Ù¿î·Îµå½Ã ÀÎÁõ±â°ü ÀÎÁõ¼ CN
*/
var pCaCertName = "shinbo real ca";
/**
* ¼¸í¿ø¹® È®ÀÎâÀÇ ±âº» ¼³¸í¹®
*/
var sign_desc = "";
/**
* ÀüÀÚ¼¸í È®ÀÎâ¿¡ º¸ÀÏ ¸Þ¼¼Áö¿Í ÀüÀÚ¼¸í È®ÀÎâ º¸±â ¿É¼Ç
* 0 : ¼¸í ¿ø¹® Ãâ·Â ¾ÈÇÔ, 1: ¼¸í ¿ø¹® Ãâ·Â
*/
var show_plain = 0;
/**
* xgate ¼¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë
*/
var xgate_addr = window.location.hostname + ":443:8080";
///////////////////////////////////////////////////////////////////////////////////
// Netscape plugin version information
var packageURL = 'http://' + window.location.host + '/XecureObject/NPXecSSL_Install.jar';
var versionMaj = 5;
var versionMin = 1;
var versionRel = 0;
/**
* °ü¸®Ã¢, ¼¸íâ, Loginâ¿¡¼ ÀÎÁõ¼ List¸¦ ±¸ºÐÇÏ¿© ¹ß±ÞÀÚ¸¦ RenameÇÒ ¶§
* »ç¿ëÇϸç, ±¸ºÐÀº ÀÎÁõ¼ÀÇ Á¤Ã¥°ªÀ» ±âÁØÀ¸·Î RenameµÇ°í, Default´Â »ç¼³ÀÎÁõ¼ ÀÌ´Ù.
* ¹ß±ÞÀÚ´Â ÀÎÁõ¼ ¹ß±ÞÀÚÀÇ CN°ªÀ» ±âÁØÀ¸·Î RenameµÈ´Ù.
* ÀÚ¼¼ÇÑ °ÍÀº SE¿¡°Ô ¹®ÀÇ.
* @ingroup etcAPI
*/
function SetConvertTable() {
}
function UserAgent()
{
return navigator.userAgent.substring(0,9);
}
function IsNetscape() // by Zhang
{
if(navigator.appName == 'Netscape')
return true ;
else
return false ;
}
function IsNetscape60() // by Zhang
{
if(IsNetscape() && UserAgent() == 'Mozilla/5')
return true ;
else
return false ;
}
function IsNetscape60() // by Zhang
{
if(IsNetscape() && UserAgent() == 'Mozilla/5')
return true ;
else
return false ;
}
function XecureUnescape(Msg) // by Zhang
{
if(IsNetscape())
return unescape(Msg) ;
else
return Msg ;
}
/**
* ÁÖ¾îÁø ¹®ÀÚ¿À» Escape ó¸® ÇØÁØ´Ù.
*
* @param Msg ¿ø¹®
* @return EscapeµÈ ¹®ÀÚ¿
*/
function XecureEscape(Msg) // by Zhang
{
if(IsNetscape())
return escape(Msg) ;
else
return Msg ;
}
function XecurePath(xpath) // by zhang
{
if(IsNetscape())
return (xpath) ;
else
return ("/" + xpath) ;
}
function XecureAddQuery(qs)
{
if(qs == "")
return "" ;
else
return "&" + qs ;
}
function XecureWebError() // by zhang
{
var errCode = 0 ;
var errMsg = "" ;
if( IsNetscape60() ) // Netscape 6.0
{
errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
errMsg = document.XecureWeb.nsIXecurePluginInstance.LastErrMsg();
}
else
{
errCode = document.XecureWeb.LastErrCode();
errMsg = document.XecureWeb.LastErrMsg();
}
if(errCode == -144)
{
if(confirm("¿¡·¯ÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) + "\n\n ÀÎÁõ¼°ü¸®Ã¢À» ¿°Ú½À´Ï±î?"))
ShowCertManager() ;
}
// else if(errCode != 0)
alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) );
return false;
}
/**
* ISO Çü½ÄÀÇ urlÀ»ASCII ¹®ÀÚ¿·Î ÀüȯÇÑ´Ù.
*
* @ingroup etcAPI
* @param url escape ó¸®ÇÒ ¹®ÀÚ¿
* @return escape ó¸®µÈ ¹®ÀÚ¿
*/
function escape_url(url) {
var i;
var ch;
var out = '';
var url_string = '';
url_string = String(url);
for (i = 0; i < url_string.length; i++) {
ch = url_string.charAt(i);
if (ch == ' ') out += '%20';
else if (ch == '%') out += '%25';
else if (ch == '&') out += '%26';
else if (ch == '+') out += '%2B';
else if (ch == '=') out += '%3D';
else if (ch == '?') out += '%3F';
else out += ch;
}
return out;
}
function ran_gen()
{
var maxnumbers = "999999";
var r = Math.round(Math.random() * (maxnumbers-1))+1+"";
for(var i=0; i < 6-r.length; i++)
r = "0" + r;
return r;
}
/**
* º¸¾È ¼¼¼ÇÀ» ¿¬°áÇϰí ÁÖ¾îÁø urlÀÇquery string ºÎºÐÀ» ¾ÏÈ£È ÇÏÁö ¾Ê°í À̵¿ÇÑ´Ù. script ( javascript ȤÀº VBscript ) ³»ºÎ¿¡¼ À̵¿ÇÒ °æ¿ì »ç¿ë
*
* script¹® ¾È¿¡¼ window.open À̳ª, document.location.href µîÀ» ÀÌ¿ëÇÑ ÆäÀÌÁö
* À̵¿½Ã¿¡ query stringÀ» ¾ÏÈ£È ÇÏÁö ¾Ê°í À̵¿ÇÒ °æ¿ì
* window.open, document.location.href ´ë½ÅXecureNavigate_NoEnc ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
*
* Query stringÀÌ ¾ø´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID
* Query stringÀÌ ÀÖ´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID;¾ÏÈ£È µÇÁö ¾ÊÀº µ¥ÀÌÅÍ
*
* @ingroup clientRequestCryptoAPI
* @param url : À̵¿ÇÒ URL
* @param target À̵¿ÇÒ Å¸°Ù
* @return Success : true
* Fail : false
*/
function XecureNavigate_NoEnc( url, target )
{
var qs ;
var path = "/";
var sid;
var xecure_url;
// get path info & query string & hash from url
qs_begin_index = url.indexOf('?');
path = getPath(url)
// get query string action url
if ( qs_begin_index < 0 ) {
qs = "";
}
else {
qs = url.substring(qs_begin_index + 1, url.length );
}
if( gIsContinue == 0 ) {
gIsContinue = 1;
if( IsNetscape60() ) // Netscape 6.0
sid = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, "", "GET");
else
sid = document.XecureWeb.BlockEnc ( xgate_addr, path, "", "GET" );
gIsContinue = 0;
}
else {
alert(busy_info);
return false ;
}
if( sid == "") return XecureWebError();
xecure_url = path + "?q=" + sid + XecureAddQuery(qs);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
open ( xecure_url, target );
}
/**
* º¸¾È ¼¼¼ÇÀ» ¿¬°áÇϰí ÁÖ¾îÁø urlÀÇquery stringÀ» ¾ÏÈ£È ÇÑÈÄ ÀÔ·ÂµÈ frame À¸·Î À̵¿ÇÑ´Ù. script ( javascript ȤÀº VBscript ) ³»ºÎ¿¡¼ À̵¿ÇÒ °æ¿ì »ç¿ë
*
* script¹® ¾È¿¡¼ window.open À̳ª, document.location.href µîÀ» ÀÌ¿ëÇÑ ÆäÀÌÁö À̵¿½Ã¿¡´Â window.open, document.location.href ´ë½Å
* XecureNavigate ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
*
* Query stringÀÌ ¾ø´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID
* Query stringÀÌ ÀÖ´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID;¾ÏÈ£ÈµÈ µ¥ÀÌÅÍ
*
* example>
* <script language=javascript>
* window.open ( ¡°/hello.php¡±, ¡°body¡± ) ;
* </script>
* ==>
* <script language=javascript>
* XecureNavigate ( ¡°/hello.php¡±, ¡°body¡± ) ;
* </script>
*
* @ingroup clientRequestCryptoAPI
* @param url À̵¿ÇÒ URL
* @param target °á°ú ȸéÀÌ Ãâ·ÂµÉ frame¸í
* @param feature »õ·Î¿î â¿¡ ´ëÇÑ ¼ºÁú ( â Å©±â µîµî ) ? ¿É¼Ç
*
* @return Success : true
* Fail : false
*
*/
function XecureNavigate( url, target, feature )
{
var qs ;
var path = "/";
var cipher;
var xecure_url;
// get path info & query string & hash from url
qs_begin_index = url.indexOf('?');
path = getPath(url)
// get query string action url
if ( qs_begin_index < 0 ) {
qs = "";
}
else {
qs = url.substring(qs_begin_index + 1, url.length );
}
if( gIsContinue == 0 ) {
gIsContinue = 1;
if( IsNetscape60() ) // Netscape 6.0
cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
else
cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError();
xecure_url = path + "?q=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
if (feature=="" || feature==null) open ( xecure_url, target );
else open(xecure_url, target, feature );
}
/**
* ÀüÀÚºÀÅõ¸¦ Áö¿øÇÏ´Â XecureNagivate
*
* @ingroup clientRequestCryptoAPI
* @since XecureWeb 6.0 v220
* @see XecureNavigate
*/
function XecureNavigate_Env( url, target, feature )
{
var qs ;
var path = "/";
var cipher;
var xecure_url;
// get path info & query string & hash from url
qs_begin_index = url.indexOf('?');
path = getPath(url)
// get query string action url
if ( qs_begin_index < 0 ) {
qs = "";
}
else {
qs = url.substring(qs_begin_index + 1, url.length );
}
if( gIsContinue == 0 ) {
gIsContinue = 1;
//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError();
//xecure_url = path + "?q=" + escape_url(cipher);
xecure_url = path + "?eq=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
if (feature=="" || feature==null) {
open ( xecure_url, target );
}
else {
open(xecure_url, target, feature );
}
}
/**
* º¸¾È¼¼¼ÇÀ» ¿¬°áÇÏ°í ¹®À» ÀÌ¿ëÇÏ¿© ÁÖ¾îÁø linkÀÇquery stringÀ» ¾ÏÈ£È ÇÏ¿© Àü¼ÛÇÑ´Ù.
* ÀÌ ÇÔ¼ö°¡ È£ÃâµÇ¸é ÄÁÆ®·ÑÀº ClientSM ¿¡°Ô xgate¿ÍSSL handshakingÀ» ¿äûÇÏ¿© »õ·Î¿î º¸¾È ¼¼¼ÇÀ»
* ¿¬°áÇϰųª ¿¬°áµÈ º¸¾È¼¼¼ÇÀÌ ÀÖÀ¸¸é Resume¿¡ µé¾î°£´Ù. javascript onClick À̺¥Æ®¸¦ »ç¿ëÇÏ¿©
* XecureLink ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ÀÌ ÇÔ¼ö°¡ ½ÇÇàµÇ¾î ÁÖ¾îÁø url·Î À̵¿ÇÒ ¶§append µÇ´Â query stringÀº
* ´ÙÀ½ÀÇ Çü½ÄÀÌ´Ù.
*
* ¾ÏÈ£ÈµÈ µ¥ÀÌÅͰ¡ ¾ø´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID
* ¾ÏÈ£ÈµÈ µ¥ÀÌÅͰ¡ ÀÖ´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID;¾ÏÈ£ÈµÈ µ¥ÀÌÅÍ
*
* ex>
* ¾ÏÈ£
*
* @ingroup clientRequestCryptoAPI
* @param link link °´Ã¼
* @return Success : true
* Fail : false
k*/
function XecureLink( link )
{
var qs ;
// var path = "/";
var cipher;
// get path info & query string from action url
if ( link.protocol != "http:" ) {
// alert ( "http ÇÁ·ÎÅäÄݸ¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." );
return true;
}
qs = link.search;
if ( qs.length > 1 ) {
qs = link.search.substring(1);
}
hash = link.hash;
if( gIsContinue == 0 ) {
path = XecurePath(link.pathname) ;
gIsContinue = 1;
if( IsNetscape60() ) // Netscape 6.0
cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
else {
//cipher = document.XecureWeb.BlockEnc(xgate_addr, "/XecureDemo/jsp/ibs/transfer_input.jsp", XecureEscape(qs),"GET");
cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
}
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher.length == 0) return XecureWebError() ;
// link.search = "?q=" + escape_url(cipher);
xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
else open( xecure_url, link.target );
return false;
}
/**
* ÀüÀÚºÀÅõ¸¦ Áö¿øÇÏ´Â XecureLink
*
* @ingroup clientRequestCryptoAPI
* @since XecureWeb 6.0 v220
* @see XecureLink
*/
function XecureLink_Env( link )
{
var qs ;
// var path = "/";
var cipher;
// get path info & query string from action url
if ( link.protocol != "http:" ) {
// alert ( "http ÇÁ·ÎÅäÄݸ¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." );
return true;
}
qs = link.search;
if ( qs.length > 1 ) {
qs = link.search.substring(1);
}
hash = link.hash;
if( gIsContinue == 0 ) {
path = XecurePath(link.pathname) ;
gIsContinue = 1;
//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher.length == 0) return XecureWebError() ;
// link.search = "?q=" + escape_url(cipher);
//xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher);
xecure_url = "http://" + link.host + path + hash + "?eq=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
else open( xecure_url, link.target );
return false;
}
/**
* º¸¾È ¼¼¼ÇÀ» ¿¬°áÇϰí <form> ¹®¿¡ ÀÔ·ÂµÈ µ¥ÀÌÅ͸¦ ¾ÏÈ£È ÇÏ¿© Àü¼ÛÇÑ´Ù.
* ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ À§Çؼ´Â ¹Ýµå½Ã
* <form name=¡¯xecure¡¯><input type=hidden name=¡¯p¡¯></form> ÀÌ ÆäÀÌÁö ³»¿¡ À§Ä¡Çϵµ·Ï ÇÑ´Ù.
*
* ÀÌ ÇÔ¼ö°¡ È£ÃâµÇ¸é ÄÁÆ®·ÑÀº ClientSM ¿¡°Ô xgate¿ÍSSL handshakingÀ» ¿äûÇÏ¿© »õ·Î¿î º¸¾È ¼¼¼ÇÀ» ¿¬°áÇϰųª
* ¿¬°áµÈ º¸¾È¼¼¼ÇÀÌ ÀÖÀ¸¸é Resume¿¡ µé¾î°£´Ù. javascript onSubmit À̺¥Æ®¸¦ »ç¿ëÇÏ¿© XecureSubmit ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
*
* <ÁÖ¾îÁø form ¹®ÀÇ method°¡ ¡®GET¡¯ ÀÎ °æ¿ì>
* form ¹®ÀÇ ÀÔ·ÂÇʵåµéÀ» input1=x&input2=&¡¦ Çü½ÄÀ¸·Î ¸¸µé¾î¼ ÄÁÆ®·Ñ¿¡ º¸³»¸é ÄÁÆ®·ÑÀº º¸¾È¼¼¼ÇÀ» ¿¬°á/Resume ÇÑÈÄ
* ÀÔ·ÂµÈ µ¥ÀÌÅ͸¦ ¾ÏÈ£ÈÇÏ¿© ¸®ÅÏÇÑ´Ù. ¾ÏÈ£¹®À» ¹Þ¾Æ¼ attach ÇÑÈÄ target url·Î Àü¼ÛÇÑ´Ù.
* À̶§ ÁÖ¾îÁø formÀÇaction¿¡query stringÀÌ ÀÖ´Â °æ¿ì ÀÌquery stringÀº ¹«½ÃµÇ°í Àü¼ÛµÇÁö ¾Ê´Â´Ù.
*
* <ÁÖ¾îÁø form ¹®ÀÇ method°¡ ¡®POST¡¯ ÀÎ °æ¿ì>
* formÀÇaction¿¡ ÁÖ¾îÁø query stringÀ» ÄÁÆ®·Ñ¿¡ º¸³»¸é ÄÁÆ®·ÑÀº º¸¾È¼¼¼ÇÀ» ¿¬°á/ResumeÇÑ ÈÄ ÀÔ·ÂµÈ µ¥ÀÌÅ͸¦
* ¾ÏÈ£È ÇÏ¿© ¸®ÅÏÇÑ´Ù. ¾ÏÈ£¹®À» ¹Þ¾Æ¼ url?q=xxx ÇüÅ·ΠÀÌ¹Ì ¼±¾ðµÈ xecure frameÀÇaction À¸·Î ÁöÁ¤ÇÑ´Ù.
* form ¹®ÀÇ ÀÔ·ÂÇʵåµéÀ» input1=x&input2=&¡¦ Çü½ÄÀ¸·Î ¸¸µé¾î¼ ÄÁÆ®·Ñ¿¡ º¸³»¸é ÄÁÆ®·ÑÀº (1) °úÁ¤¿¡¼ ¿¬°á/ResumeµÈ
* ¼¼¼ÇÁ¤º¸¸¦ ÀÌ¿ëÇÏ¿© form ¹®ÀÇ ÀÔ·ÂÇʵåµéÀ» ¾ÏÈ£È ÇÏ¿© ¸®ÅÏÇÑ´Ù.
* Xecure frameÀÇpÇʵ忡 ¸®ÅÏµÈ ¾ÏÈ£¹®À» ÀúÀåÇÑÈÄ
* xecure.summit() À¸·Î (1)¿¡¼ ÁöÁ¤µÈ url·Î À̵¿ÇÑ´Ù.
*
* ¾ÏÈ£ÈµÈ µ¥ÀÌÅͰ¡ ¾ø´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID
* ¾ÏÈ£ÈµÈ µ¥ÀÌÅͰ¡ ÀÖ´Â °æ¿ì : url?q=¾ÏÈ£ÈµÈ SID;¾ÏÈ£ÈµÈ µ¥ÀÌÅÍ
*
* example>
* <form name=¡¯xecure¡¯><input type=hidden name=¡¯p¡¯></form>
*
* <form name=transfer action=¡±enc_demo_result.php¡± method=¡±post¡±
* onSubmit=¡±return XecureSubmit(this);¡±>
* ...
* </form>
*
* @ingroup clientRequestCryptoAPI
* @param form : form °´Ã¼
* @return Success : true
* Fail : false
*/
function XecureSubmit( form )
{
var qs ;
var path ;
var cipher;
qs_begin_index = form.action.indexOf('?');
// if action is relative url, get base url from window location
path = getPath(form.action)
// get path info & query string & hash from action url
if ( qs_begin_index < 0 ) {
qs = "";
}
else {
qs = form.action.substring(qs_begin_index + 1, form.action.length );
}
document.xecure.target = form.target;
if ( form.method == "get" || form.method=="GET" ) {
// collect input field values
//qs = XecureMakePlain( form );
if(qs.length!=0)
qs += "&"+XecureMakePlain( form );
else
qs = XecureMakePlain( form );
// encrypt QueryString
if( gIsContinue == 0 ) {
gIsContinue = 1;
if( IsNetscape60() ) // Netscape 6.0
cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
else{
cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
}
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError() ;
xecure_url = path + "?q=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
if ( form.target == "" || form.target == null ) open( xecure_url, "_self");
else open ( xecure_url, form.target );
}
else {
document.xecure.method = "post";
// encrypt QueryString of action field
if( gIsContinue == 0 ) {
gIsContinue = 1;
if( IsNetscape60() ) // Netscape 6.0
cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
else {
cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
}
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError() ;
document.xecure.action = path + "?q=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
document.xecure.action += "&charset=" + document.charset;
posting_data = XecureMakePlain( form );
if( gIsContinue == 0 ) {
gIsContinue = 1;
if( IsNetscape60() ) // Netscape 6.0
cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
else{
cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
}
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError() ;
document.xecure.p.value = cipher;
document.xecure.submit();
}
return false;
}
/**
* ÀüÀÚºÀÅõ¸¦ Áö¿øÇÏ´Â XecureSubmit
*
* @ingroup clientRequestCryptoAPI
* @since XecureWeb 6.0 v220
* @see XecureSubmit
*/
function XecureSubmit_Env( form )
{
var qs ;
var path ;
var cipher;
qs_begin_index = form.action.indexOf('?');
// if action is relative url, get base url from window location
path = getPath(form.action)
// get path info & query string & hash from action url
if ( qs_begin_index < 0 ) {
qs = "";
}
else {
qs = form.action.substring(qs_begin_index + 1, form.action.length );
}
document.xecure.target = form.target;
if ( form.method == "get" || form.method=="GET" ) {
// collect input field values
if(qs.length!=0)
qs += "&"+XecureMakePlain( form );
else
qs = XecureMakePlain( form );
// encrypt QueryString
if( gIsContinue == 0 ) {
gIsContinue = 1;
//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError() ;
//xecure_url = path + "?q=" + escape_url(cipher);
xecure_url = path + "?eq=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
xecure_url += "&charset=" + document.charset;
if ( form.target == "" || form.target == null ) open( xecure_url, "_self");
else open ( xecure_url, form.target );
}
else {
document.xecure.method = "post";
// encrypt QueryString of action field
if( gIsContinue == 0 ) {
gIsContinue = 1;
//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError() ;
//document.xecure.action = path + "?q=" + escape_url(cipher);
document.xecure.action = path + "?eq=" + escape_url(cipher);
// adding character set information
if(usePageCharset)
document.xecure.action += "&charset=" + document.charset;
posting_data = XecureMakePlain( form );
if( gIsContinue == 0 ) {
gIsContinue = 1;
//cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
cipher = EnvelopData(XecureEscape(posting_data), "", serverCert, 1);
gIsContinue = 0;
}
else {
alert(busy_info);
return false;
}
if( cipher == "" ) return XecureWebError() ;
//document.xecure.p.value = cipher;
document.xecure.ep.value = cipher;
document.xecure.submit();
}
return false;
}
function XecureMakePlain_Org(form)
{
var name = new Array(form.elements.length);
var value = new Array(form.elements.length);
var flag = false;
var j = 0;
var plain_text="";
var enable=false;//for softcamp
//for softcamp
if(document.secukey==null || typeof(document.secukey) == "undefined" || document.secukey.object==null) {
enable=false;
}
else {
enable=secukey.GetSecuKeyEnable();
}
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") { // Leejh 99.11.10 checkboxÃß°¡
if (form.elements[i].checked == true) {
name[j] = form.elements[i].name;
value[j] = form.elements[i].value;
j++;
}
}
//for softcamp
else if(enable && form.elements[i].type == "password"){
if(form.elements[i].type == "password"){
name[j] = form.elements[i].name;
value[j] = secukey.GetRealPass(form.elements[i].name,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;
if (form.elements[i].options[ind].value != '')
value[j] = form.elements[i].options[ind].value;
else
value[j] = form.elements[i].options[ind].text;
// form.elements[i].selectedIndex = 0;
}
else {
value[j] = form.elements[i].value;
}
j++;
}
}
}
for (i = 0; i < j; i++) {
str = value[i];
value[i] = escape_url(str);
}
for (i = 0; i < j; i++) {
if (flag)
plain_text += "&";
else
flag = true;
plain_text += name[i] ;
plain_text += "=";
plain_text += value[i];
}
return plain_text;
}
/**
* ÁÖ¾îÁø form ¹®ÀÇ ÀÔ·ÂÇʵåÁß typeÀÌbutton/reset/submitÀÎ °ÍÀ» Á¦¿ÜÇϰí
* aa=bb&cc=dd&ee=¡¦ Çü½ÄÀ¸·Î ÀçÀÛ¼ºÇÏ¿© ¸®ÅÏÇÑ´Ù.
*
* @param form form °´Ã¼
* @return Form ¹®ÀÇ ÀÔ·ÂÇʵå·Î »õ·ÎÀÌ ÀÛ¼ºÇÑ µ¥ÀÌÅÍ
*/
function XecureMakePlain(form) // modified by tiger on 2004/12/22
{
var name = new Array(form.elements.length);
var value = new Array(form.elements.length);
var flag = false;
var j = 0;
var plain_text="";
//for softcamp
if(document.secukey==null || typeof(document.secukey) == "undefined" || document.secukey.object==null) {
enable=false;
}
else {
enable=secukey.GetSecuKeyEnable();
}
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) {
if (form.elements[i].disabled == false) {
name[j] = form.elements[i].name;
value[j] = form.elements[i].value;
j++;
}
}
}
//for softcamp
else if(enable && form.elements[i].type == "password"){
if(form.elements[i].type == "password"){
name[j] = form.elements[i].name;
value[j] = secukey.GetRealPass(form.elements[i].name,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;
var op_len = form.elements[i].length;
if (op_len > 0) {
if(ind > 0) {
if (form.elements[i].options[ind].value != '')
value[j] = form.elements[i].options[ind].value;
else
//value[j] = form.elements[i].options[ind].text;
value[j] = "";
} else {
if(ind == 0)
{
if (form.elements[i].options[ind].value != '')
value[j] = form.elements[i].options[ind].value;
else
//value[j] = form.elements[i].options[ind].text;
value[j] = "";
}
}
// form.elements[i].selectedIndex = 0;
}
}
else if (form.elements[i].type == "select-multiple") {
var llen = form.elements[i].length;
var increased = 0;
for( k = 0; k < llen; k++) {
if (form.elements[i].options[k].selected) {
name[j] = form.elements[i].name;
if (form.elements[i].options[k].value != '')
value[j] = form.elements[i].options[k].value;
else
//value[j] = form.elements[i].options[k].text;
value[j] = "";
j++;
increased++;
}
}
if(increased > 0) {
j--;
}
else {
value[j] = "";
}
}
else {
value[j] = form.elements[i].value;
}
j++;
}
}
}
for (i = 0; i < j; i++) {
str = value[i];
value[i] = escape_url(str);
}
for (i = 0; i < j; i++) {
if (flag)
plain_text += "&";
else
flag = true;
plain_text += name[i] ;
plain_text += "=";
if (value[i] !="undefined"){
plain_text += value[i];
}else {
plain_text += "";
}
}
return plain_text;
}
/*************For Applet**********************/
function BlockEnc(auth_type,plain_text)
{
var cipher = "";
if( IsNetscape60() ) // Netscape 6.0
cipher = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr,auth_type,plain_text,"GET"));
else
cipher = XecureUnescape(document.XecureWeb.BlockEnc(xgate_addr,auth_type,plain_text,"GET"));
if( cipher == "" ) XecureWebError() ;
return cipher;
}
/**
* ¿¬°áµÈ ¼¼¼ÇÁ¤º¸¸¦ ã¾Æ¼ ÇØ´ç Ű·Î ¾ÏÈ£¹®À» º¹È£ÈÇÑ´Ù.
*
* @ingroup serverResponseCryptoAPI
* @param cipher º¹È£ÈÇÒ ¾ÏÈ£¹®
* @return Success : º¹È£ÈµÈ Æò¹®
* Fail : empty string (¡°¡±)
*/
function BlockDec(cipher)
{
var plain = "";
if( IsNetscape60() ) // Netscape 6.0
plain = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockDec( xgate_addr, cipher));
else {
plain = XecureUnescape(document.XecureWeb.BlockDec( xgate_addr, cipher));
}
if( plain == "" ) XecureWebError() ;
return plain;
}
/**
* ¿¬°áµÈ ¼¼¼ÇÁ¤º¸¸¦ ã¾Æ¼ ÇØ´ç Ű·Î ¾ÏÈ£ÈµÈ XML µ¥ÀÌÅ͸¦ º¹È£ÈÇÑ´Ù.
*
* @ingroup serverResponseCryptoAPI
* @param cipher : º¹È£ÈÇÒ XML dataÀÇ ¾ÏÈ£¹®
* @return Success : º¹È£ÈµÈ Æò¹®
* Fail : empty string (¡°¡±)
*/
function BlockXMLDec(cipher)
{
var path = "";
if( IsNetscape60() ) // Netscape 6.0
path = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockXMLDec( xgate_addr, cipher));
else
path = XecureUnescape(document.XecureWeb.BlockXMLDec( xgate_addr, cipher));
if( path == "" ) XecureWebError() ;
return path;
}
/**
* º¸¾È¼¼¼ÇÀ» ¿¬°áÇÏ°í ¹®À» ÀÌ¿ëÇÏ¿© ÁÖ¾îÁø linkÀÇquery stringÀ» ¾ÏÈ£È ÇÏ¿© Àü¼ÛÇÑ´Ù.
* ex>
* ·Î±×ÀÎ
*
* @param link link °´Ã¼
* @return Success : true
* Fail : false
*/
function XecureLogIn( link )
{
EndSession();
return XecureLink(link);
}
/**
* Xgate_addr¿¡ ÇØ´çÇÏ´Â º¸¾È¼¼¼ÇÀ» °Á¦·Î Á¾·áÇÑ´Ù.
*
* @ingroup etcAPI
* @return Success : 0
* Fail : ¿À·ùÄÚµå
*/
function EndSession()
{
if( IsNetscape60() ) // Netscape 6.0
document.XecureWeb.nsIXecurePluginInstance.EndSession( xgate_addr );
else
document.XecureWeb.EndSession(xgate_addr);
}
// XecureWeb ver 4.1 add
// option : 0 : no confirm window, all certificates
// option : 1 : confirm window, all certificates
// option : 2 : no confirm window, log-on certificate only
// option : 3 : confirm window, log-on certificate only
/**
* ÁÖ¾îÁø µ¥ÀÌÅÍ¿¡ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay À¯¹« ¹× ÀÎÁõ¼ ¼±Åà Á¦¾î¸¦ ÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
*
* @param option : 0 : ¼¸í¿ø¹® È®ÀÎâ No Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 2 : ¼¸í¿ø¹® È®ÀÎâ No Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* 3 : ¼¸í¿ø¹® È®ÀÎâ Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* @param plain : ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign_with_option( option, plain )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var signed_msg;
if( IsNetscape60() ) // Netscape 6.0
signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr,
escape(accept_cert),
escape(plain),
option,
escape(sign_desc),
pwd_fail);
else
signed_msg = document.XecureWeb.SignDataCMS(
xgate_addr,
XecureEscape(accept_cert),
XecureEscape(plain),
option,
XecureEscape(sign_desc),
pwd_fail);
if( signed_msg == "" ) XecureWebError();
return signed_msg;
}
/**
* ÁÖ¾îÁø ¼¸í µ¥ÀÌÅÍ¿¡ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay À¯¹« ¹× ÀÎÁõ¼ ¼±Åà Á¦¾î¸¦ ÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
*
* @ingroup digitalSignAPI
* @param option 0 : ¼¸í¿ø¹® È®ÀÎâ No Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 2 : ¼¸í¿ø¹® È®ÀÎâ No Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* 3 : ¼¸í¿ø¹® È®ÀÎâ Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
*
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼(n)]
* Fail : empty string (¡°¡±)
*/
function Sign_Add( option, plain )
{
var signed_msg;
signed_msg = document.XecureWeb.SignDataAdd ( xgate_addr, accept_cert, plain, option, sign_desc, pwd_fail );
if( signed_msg == "" ) XecureWebError() ;
return signed_msg;
}
/**
* ÁÖ¾îÁø µ¥ÀÌÅÍ¿¡ ÀüÀÚ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâÀÌ ¶ã °æ¿ì âÀÇ ¼³¸í¹®Àº sign_desc ÀÌ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
* @ingroup digitalSignAPI
* @param plain : ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign( plain )
{
var signed_msg;
if( IsNetscape60() ) // Netscape 6.0
{
signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(sign_desc) );
}
else
{
signed_msg = document.XecureWeb.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(sign_desc) );
}
if( signed_msg == "" ) XecureWebError() ;
return signed_msg;
}
/**
* ÁÖ¾îÁø µ¥ÀÌÅÍ¿¡ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâÀÇ ¼³¸í¹®À» Àü´ÞÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
* @ingroup digitalSignAPI
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @param desc ¼¸í¿ø¹® È®ÀÎâÀÇ ¼³¸í¹®
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign_with_desc( plain, desc )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var signed_msg;
if( IsNetscape60() ) // Netscape 6.0
signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(desc) );
else
signed_msg = document.XecureWeb.SignDataCSM( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(desc) );
if( signed_msg == "" ) XecureWebError() ;
return signed_msg;
}
// XecureWeb ver 4.1 add
// option : 0 : no confirm window, all certificates
// option : 1 : confirm window, all certificates
// option : 2 : no confirm window, log-on certificate only
// option : 3 : confirm window, log-on certificate only
// XecureWeb ver 5.0 add
/**
* ÁÖ¾îÁø ¼¸í µ¥ÀÌÅÍ¿¡ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay À¯¹« ¹× ÀÎÁõ¼ ¼±Åà Á¦¾î¸¦ ÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
* ½Äº°¹øÈ£°¡ ÁÖÀÔµÈ ÀÎÁõ¼´Â ¼¸íâ¿¡¼ »ç¿ëÀÚÀÇ IDNÀ» ÀÔ·Â Çϸç, send_vid_info() ¸¦ ÅëÇØ ½Äº° ¹øÈ£ °ËÁõÀ» À§ÇØ ¾ÏÈ£È µÈ °ªÀ» °¡Á®¿Ã ¼ö ÀÖ´Ù.
*
* @ingroup digitalSignAPI
* @param option 0 : ¼¸í¿ø¹® È®ÀÎâ No Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 2 : ¼¸í¿ø¹® È®ÀÎâ No Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* 3 : ¼¸í¿ø¹® È®ÀÎâ Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @param svrCert IDN, R °ªÀ» ¾ÏÈ£ÈÇϱâ À§ÇÑ ÀÎÁõ¼ ( pem type )
*
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign_with_vid_user( option, plain, svrCert )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var signed_msg;
option = option + 4;
if(IsNetscape())
{
alert("Not supported function");
}
else {
signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
}
if( signed_msg == "" ) XecureWebError();
return signed_msg;
}
/**
* ÁÖ¾îÁø ¼¸í µ¥ÀÌÅÍ¿¡ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay À¯¹« ¹× ÀÎÁõ¼ ¼±Åà Á¦¾î¸¦ ÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
* ÀüÀÚ¼¸í½Ã ½Äº°¹øÈ£ È®ÀÎÀ» À§ÇÏ¿© Web Application¿¡¼ »ç¿ëÀÚÀÇ IDNÀ» ÀÔ·Â Çϸç, send_vid_info() ¸¦ ÅëÇØ ½Äº° ¹øÈ£ °ËÁõÀ» À§ÇØ ¾ÏÈ£È µÈ °ªÀ» °¡Á®¿Ã ¼ö ÀÖ´Ù.
*
* @ingroup digitalSignAPI
* @param option : 0 : ¼¸í¿ø¹® È®ÀÎâ No Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display, ¸ðµç ÀÎÁõ¼ ¼¸í °¡´ÉÇϰÔ
* 2 : ¼¸í¿ø¹® È®ÀÎâ No Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* 3 : ¼¸í¿ø¹® È®ÀÎâ Display, Login½Ã ÀÎÁõ¼·Î¸¸ ¼¸í °¡´ÉÇϰÔ
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @param svrCert IDN, R °ªÀ» ¾ÏÈ£ÈÇϱâ À§ÇÑ ÀÎÁõ¼ ( pem type )
* @param idn ¼¸íÀÚÀÇ Áֹεî·Ï(»ç¾÷ÀÚµî·Ï)¹øÈ£
*
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign_with_vid_web( option, plain, svrCert, idn )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var ret;
var signed_msg;
option = option + 12;
if(IsNetscape())
{
alert("Not supported function");
}
else {
ret = Set_ID_Num(idn);
if(ret != 0) {
XecureWebError();
return signed_msg;
}
signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
}
if( signed_msg == "" ) XecureWebError();
return signed_msg;
}
// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 0 : HARD
// 1 : REMOVABLE
// 2 : ICCARD
// 3 : CSP
// 4 : VSC
// [option]
// 0 : ¼¸í¿ø¹® È®ÀÎâ ¾øÀ½
// 1 : ¼¸í¿ø¹® È®ÀÎâ ¶ç¿ò
/**
* ÁÖ¾îÁø ½Ã¸®¾ó ¹øÈ£¿Í ÀÏÄ¡ÇÏ´Â ÀÎÁõ¼·Î ÁÖ¾îÁø µ¥ÀÌÅ͸¦ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay ¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
* ½Äº°¹øÈ£°¡ ÁÖÀÔµÈ ÀÎÁõ¼´Â ¼¸íâ¿¡¼ »ç¿ëÀÚÀÇ IDNÀ» ÀÔ·ÂÇϸç, send_vid_info() ¸¦ ÅëÇØ ½Äº° ¹øÈ£ °ËÁõÀ» À§ÇØ ¾ÏÈ£ÈµÈ °ªÀ» °¡Á®¿Ã ¼ö ÀÖ´Ù.
*
* @ingroup digitalSignAPI
* @param certSerial : ¼¸í¿¡ »ç¿ëÇÒ ÀÎÁõ¼ÀÇ ½Ã¸®¾ó ¹øÈ£
* ¿©·¯ °³ÀÇ ½Ã¸®¾óÀ» »ç¿ëÇÒ °æ¿ì ¡°,¡±·Î ±¸º°ÇÑ´Ù.
* Ex) ¡°008ade93, 008ade94¡±
* @param certLocation ¼¸í¿¡ »ç¿ëÇÒ ÀÎÁõ¼ À§Ä¡
* 0 : Çϵåµð½ºÅ©, 1 : À̵¿½Äµð½ºÅ©, 2 : ICÄ«µå,3 :CSP 4: pkcs11,5:USBTOKEN_KIUP, 6 :iccard, 7 :NO_SMARTON, 8 : USBTOKEN_KIUP, 9 :YESSIGNM
* @param option 0 : ¼¸í¿ø¹® È®ÀÎâ No Display
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @param svrCert IDN, R °ªÀ» ¾ÏÈ£ÈÇϱâ À§ÇÑ ÀÎÁõ¼ ( pem type )
*
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign_with_vid_user_serial( certSerial, certLocation, option, plain, svrCert )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var signed_msg;
option = option + 4;
if(IsNetscape())
{
alert("Not supported function");
}
else {
signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
}
if( signed_msg == "" ) XecureWebError();
return signed_msg;
}
// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 0 : HARD
// 1 : REMOVABLE
// 2 : ICCARD
// 3 : CSP
// 4 : VSC
// [option]
// 0 : ¼¸í¿ø¹® È®ÀÎâ ¾øÀ½
// 1 : ¼¸í¿ø¹® È®ÀÎâ ¶ç¿ò
/**
* ÁÖ¾îÁø ½Ã¸®¾ó ¹øÈ£¿Í ÀÏÄ¡ÇÏ´Â ÀÎÁõ¼·Î ÁÖ¾îÁø µ¥ÀÌÅ͸¦ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay ¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
* ÀüÀÚ¼¸í½Ã ½Äº°¹øÈ£ È®ÀÎÀ» À§ÇÏ¿© Web Application¿¡¼ »ç¿ëÀÚÀÇ IDNÀ» ÀÔ·ÂÇϸç, send_vid_info() ¸¦ ÅëÇØ ½Äº° ¹øÈ£ °ËÁõÀ» À§ÇØ ¾ÏÈ£È µÈ °ªÀ» °¡Á®¿Ã ¼ö ÀÖ´Ù.
*
* @ingroup digitalSignAPI
* @param certSerial ¼¸í¿¡ »ç¿ëÇÒ ÀÎÁõ¼ÀÇ ½Ã¸®¾ó ¹øÈ£
* ¿©·¯ °³ÀÇ ½Ã¸®¾óÀ» »ç¿ëÇÒ °æ¿ì ¡°,¡±·Î ±¸º°ÇÑ´Ù.
* Ex) ¡°008ade93, 008ade94¡±
* @param certLocation ¼¸í¿¡ »ç¿ëÇÒ ÀÎÁõ¼ À§Ä¡
* 0 : Çϵåµð½ºÅ©, 1 : À̵¿½Äµð½ºÅ©, 2 : ICÄ«µå,3 :CSP 4: pkcs11,5:USBTOKEN_KIUP, 6 :iccard, 7 :NO_SMARTON, 8 : USBTOKEN_KIUP, 9 :YESSIGNM
* @param option 0 : ¼¸í¿ø¹® È®ÀÎâ No Display
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @param svrCert IDN, R °ªÀ» ¾ÏÈ£ÈÇϱâ À§ÇÑ ÀÎÁõ¼ ( pem type )
* @param idn ¼¸íÀÚÀÇ Áֹεî·Ï(»ç¾÷ÀÚµî·Ï)¹øÈ£
*
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*/
function Sign_with_vid_web_serial( certSerial, certLocation, option, plain, svrCert, idn )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var ret;
var signed_msg;
option = option + 12;
if(IsNetscape())
{
alert("Not supported function");
}
else {
ret = Set_ID_Num(idn);
if(ret != 0) {
XecureWebError();
return signed_msg;
}
signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
}
if( signed_msg == "" ) XecureWebError();
return signed_msg;
}
/**
* ÀüÀÚ ¼¸í½Ã ½Äº°¹øÈ£ È®ÀÎÀÇ ±â´ÉÀ» »ç¿ëÇÒ °æ¿ì, IDN °ªÀ» Web Application ÀÌ ³Ñ°ÜÁÙ °æ¿ì, ¼¸íÇϱâ ÀÌÀü¿¡ ÀÌ ÇÔ¼ö¸¦ ÅëÇÏ¿© idn À» ³Ñ°ÜÁØ´Ù.
* Sign_with_vid_web() ³»ºÎ¿¡ Àû¿ëµÇ¾î ÀÖÀ½.
*
* @ingroup digitalSignAPI
* @param idn ½Äº°¹øÈ£(Áֹεî·Ï/»ç¾÷ÀÚµî·Ï¹øÈ£)
* @return Success : 0
* Fail : -1
*/
function Set_ID_Num(idn)
{
var ret;
if( IsNetscape() )
{
alert("Not supported function");
}
else
{
ret = document.XecureWeb.SetIDNum(idn);
}
return ret;
}
/**
* Send_vid_info_user() ¶Ç´Â Send_vid_info_web() È£ÃâÀ» ÅëÇÏ¿© ½Äº°¹øÈ£°¡ ÁÖÀÔµÈ ÀÎÁõ¼ÀÇ °æ¿ì,
* ½Äº°¹øÈ£(VID)¸¦ È®ÀÎÇϱâ À§ÇÑ Á¤º¸¸¦ ¾ÏÈ£È ÇÏ¿© return ÇÑ´Ù.
* ¸¸¾à, ½Äº°¹øÈ£°¡ ÁÖÀÔµÇÁö ¾ÊÀº ÀÎÁõ¼ÀÇ °æ¿ì null À» return ÇÑ´Ù.
*
* @ingroup digitalSignAPI
* @return Success : ½Äº° ¹øÈ£ °ËÁõÀ» À§ÇØ ¾ÏÈ£ÈµÈ Á¤º¸
* Fail : empty string (¡°¡±)
*/
function send_vid_info()
{
var vid_info;
if( IsNetscape() )
{
alert("Not supported function");
}
else
{
vid_info = document.XecureWeb.GetVidInfo();
}
if(vid_info.length == 0)
return null;
else
return vid_info;
}
// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 0 : HARD
// 1 : REMOVABLE
// 2 : ICCARD
// 3 : CSP
// 4 : VSC
// [option]
// 0 : ¼¸í¿ø¹® È®ÀÎâ ¾øÀ½
// 1 : ¼¸í¿ø¹® È®ÀÎâ ¶ç¿ò
/**
* ÁÖ¾îÁø ½Ã¸®¾ó ¹øÈ£¿Í ÀÏÄ¡ÇÏ´Â ÀÎÁõ¼·Î ÁÖ¾îÁø µ¥ÀÌÅ͸¦ ÀüÀÚ ¼¸íÀ» ÇÑ´Ù.
* ¼¸í¿ø¹® È®ÀÎâ Diplay À¯¹«¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù.
* ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀüÀÚ¼¸í¸¸ ÀÌ·ç¾îÁú »Ó º¸¾È¼¼¼ÇÀÌ ¿¬°áµÇÁö´Â ¾Ê´Â´Ù.
*
* @ingroup digitalSignAPI
* @param certSerial : ¼¸í¿¡ »ç¿ëÇÒ ÀÎÁõ¼ÀÇ ½Ã¸®¾ó ¹øÈ£
* ¿©·¯ °³ÀÇ ½Ã¸®¾óÀ» »ç¿ëÇÒ °æ¿ì ¡°,¡±·Î ±¸º°ÇÑ´Ù.
* Ex) ¡°008ade93, 008ade94¡±
* @param certLocation ¼¸í¿¡ »ç¿ëÇÒ ÀÎÁõ¼ À§Ä¡
* 0 : Çϵåµð½ºÅ©, 1 : À̵¿½Äµð½ºÅ©, 2 : ICÄ«µå,3 :CSP 4: pkcs11,5:USBTOKEN_KIUP, 6 :iccard, 7 :NO_SMARTON, 8 : USBTOKEN_KIUP, 9 :YESSIGNM
* @param option 0 : ¼¸í¿ø¹® È®ÀÎâ No Display
* 1 : ¼¸í¿ø¹® È®ÀÎâ Display
* @param plain ¼¸íÇϰíÀÚ ÇÏ´Â ¼¸í ¿ø¹®
* @return Success : ¼¸íµÈ ¹®¼[ÀüÀÚ¼¸í¹®=¿ø¹®+¼¸í°ª+ÀÎÁõ¼]
* Fail : empty string (¡°¡±)
*
*/
function Sign_with_serial( certSerial, certLocation, plain, option )
{
// PutMobisignData(); //¸ðºñ½ÎÀΠȣÃâ
PutUBIKey(); //ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
var signed_msg;
if( IsNetscape() )
{
alert("Not supported function");
}
else
{
signed_msg = document.XecureWeb.SignDataCMSWithSerial( xgate_addr,
XecureEscape(accept_cert),
certSerial,
certLocation,
plain,
option,
XecureEscape(sign_desc),
pwd_fail );
}
if( signed_msg == "" ) XecureWebError();
return signed_msg;
}
//
// only over XecureWeb Client v5.4.x
//
// !!! This function need site/executable license !!!
//
// [option]
// 0 : only signature verification( NOT perform cert verification )
// 1 : signature verification + default cert verification
// 2 : + cert chain check
// 3 : + CRL check
// 4 : + LDAP
// [directoryServer]
// ex) dirsys.rootca.or.kr:389 or ""
//
/**
* ¼¸í¹®À» °ËÁõÇÏ°í ¼¸í ¿ø¹®À» ¸®ÅÏÇÑ´Ù. °ËÁõ ¿É¼Ç¿¡ µû¶ó ´Ù¾çÇÑ °ËÁõ ±â´ÉÀ»
* ¼öÇàÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ Verify_SignedData´Â ÇÔ¼ö »ç¿ëÀ» À§ÇÑ ¶óÀ̼¾½º°¡ ÇÊ¿äÇÏ´Ù.
*
* @ingroup digitalSignAPI
* @param signedData : °ËÁõÇÒ ¼¸í¿î
* @param option : ¼¸í °ËÁõ ¿É¼Ç
* 0 : ¼¸í¹®¸¸ °ËÁõ(ÀÎÁõ¼¿¡ ´ëÇÑ °ËÁõÀº »ý·«)
* 1 : 0¿¡ ´õÇÏ¿© ÀÎÁõ¼ °ËÁõ
* 2 : 1¿¡ ´õÇÏ¿© ÀÎÁõ¼ üÀαîÁö °ËÁõ
* 3 : 2¿¡ ´õÇÏ¿© ÀÎÁõ¼ CRL üũ
* 4 : 3¿¡ ´õÇÏ¿© LDAPÀ¸·Î ÀÎÁõ¼ °ËÁõ
* @param directoryServer : CRLÀ» °¡Á®¿Ã µð·ºÅ丮 ¼¹ö ÁÖ¼Ò
* Ex) dirsys.rootca.or.kr:389
* ¡°¡±À» ÀÔ·ÂÇϸé ÀÎÁõ¼¿¡ Æ÷ÇÔµÈ CRL ºÐ¹èÁ¡ ÀÌ¿ëÇÏ¿© CRL üũ
*
* @return Success : ¼¸í ¿ø¹®
* Fail : ¡°¡±
* ÇÏÁö¸¸ ¼¸í¹® °ËÁõÀÌ ÀÏ´Ü ¼º°øÇϸé ÀÎÁõ¼ °ËÁõ½Ã ¿¡·¯°¡ ¹ß»ýÇÏ´õ¶óµµ ¼¸í ¿ø¹®À» ¸®ÅÏÇÑ´Ù. µû¶ó¼ ÀüüÀûÀÎ °âÁõ ¿É¼Ç¿¡ µû¸¥ ¼¸í °ËÁõÀÌ ¿Ã¹Ù¸£°Ô µÇ¾ú´ÂÁö¸¦ È®ÀÎÇϱâ À§Çؼ´Â, ¸®Åϰª È®Àΰú ÇÔ²² LastErrCode µîÀ¸·Î ¿À·ù ¿©ºÎ¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
*/
function Verify_SignedData( signedData, option, directoryServer )
{
var verified_msg;
var errCode;
if( IsNetscape() )
{
alert("Not supported function");
return "";
}
else
{
verified_msg = document.XecureWeb.VerifySignedData( signedData, option, directoryServer );
}
// VerifySignedData´Â ÀÎÁõ¼ °ËÁõ½Ã ¿À·ù°¡ ¹ß»ýÇÏ´õ¶óµµ ¿ø¹® ÃßÃâÀÌ ¼º°øÇÏ¸é ¿ø¹®À» ¸®ÅÏÇϱ⠶§¹®¿¡
// ¹Ýµå½Ã LastErrCode¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
errCode = document.XecureWeb.LastErrCode();
if( errCode != 0 )
XecureWebError();
return verified_msg;
}
//
// only over XecureWeb Client v5.4.x
//
// applicable cert location : usbtoken_kb, usbtoken_kiup
//
function Set_PinNumber( pin )
{
var ret = -1;
if( IsNetscape() )
{
alert("Not supported function");
}
else
{
ret = document.XecureWeb.SetPinNum( pin );
}
return ret;
}
// type 10 : YessignCA
// type 11 : XecureCA
/**
* ÂüÁ¶ÄÚµå¿Í Àΰ¡Äڵ带 °¡Áö°í °øÀÎÀÎÁõ±â°ü¿¡ Á¢¼ÓÇÏ¿© ÀÎÁõ¼¸¦ ¹ß±Þ¹Þ´Â´Ù. ÀÎÁõ¼ ¹ß±Þ À§Ä¡´Â Çϵåµð½ºÅ©/ICÄ«µå ÀÌ´Ù.
*
* @ingroup CMPAPI
* @param type CA TYPE 10: YessignCA, 11: XecureCA
* @param ref_code ÂüÁ¶ÄÚµå
* @param auth_code Àΰ¡ÄÚµå
*
* @return Success : 0
* Fail : -1
*/
function RequestCertificate ( type, ref_code, auth_code )
{
var r;
var ca_type;
var ca_ip;
var ca_port;
if(type == 10) {
ca_type = yessign_ca_type;
ca_ip = yessign_ca_ip;
ca_port = yessign_ca_port;
}
else if(type == 11) {
ca_type = xecure_ca_type;
ca_ip = xecure_ca_ip;
ca_port = xecure_ca_port;
}
else if(type == 12) {
ca_type = xecure_ca_type_1;
ca_ip = xecure_ca_ip_1;
ca_port = xecure_ca_port_1;
}
else {
alert("Input type error!");
return 0;
}
if(IsNetscape())
{
if( IsNetscape60() ) // Netscape 6.0
r = document.XecureWeb.nsIXecurePluginInstance.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
else
r = document.XecureWeb.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
}
else
{
// r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code, ca_type);
//¾Æ·¡´Â ÈÞ´ëÆùÀÎÁõ¼¼ºñ½º Àû¿ë
r = document.XecureWeb.RequestCertificateEx2( ca_port, ca_ip, ref_code, auth_code, ca_type, 0, "", "", 1 );
}
if ( r != 0 ) XecureWebError();
return r;
}
// type 00 : YessignCA
// type 11 : XecureCA
/**
* ÀÌ ÇÔ¼ö¸¦ ½ÇÇà½ÃŰ¸é °»½ÅÇÒ ÀÎÁõ¼¸¦ ¼±ÅÃÇÑÈÄ ±× ÀÎÁõ¼¸¦ °»½ÅÇÏ¿© ¼±ÅÃµÈ À§Ä¡¿¡ ´Ù½Ã ÀúÀå½ÃŲ´Ù. ( Çϵåµð½ºÅ©/Ç÷ÎÇÇ µð½ºÅ©/ICÄ«µå)
*
* @ingroup CMPAPI
* @return Success : 0
* Fail : -1
*/
function RenewCertificate ( type )
{
var r;
var ca_type;
var ca_ip;
var ca_port;
if(type == 10) {
ca_type = yessign_ca_type;
ca_ip = yessign_ca_ip;
ca_port = yessign_ca_port;
}
else if(type == 11) {
ca_type = xecure_ca_type;
ca_ip = xecure_ca_ip;
ca_port = xecure_ca_port;
}
else if(type == 12) {
ca_type = xecure_ca_type_1;
ca_ip = xecure_ca_ip_1;
ca_port = xecure_ca_port_1;
}
else {
alert("Input type error!");
return 0;
}
if(IsNetscape())
{
if( IsNetscape60() ) // Netscape 6.0
r = document.XecureWeb.nsIXecurePluginInstance.RenewCertificate2( ca_port, ca_ip, ca_type, pwd_fail );
else
r = document.XecureWeb.RenewCertificate2( ca_port, ca_ip, ca_type, pwd_fail );
}
else{
r = document.XecureWeb.RenewCertificate ( ca_port, ca_ip, ca_type, pwd_fail );
}
if ( r != 0 ) XecureWebError();
return r;
}
// type 00 : YessignCA
// type 11 : XecureCA
/**
* ÀÌ ÇÔ¼ö¸¦ ½ÇÇà½ÃŰ¸é Æó±âÇÒ ÀÎÁõ¼¸¦ ¼±ÅÃÇÑÈÄ ±× ÀÎÁõ¼¸¦ Æó±âÇϰí ÀúÀåµÈ
* À§Ä¡¿¡¼ »èÁ¦½ÃŲ´Ù. ( Çϵåµð½ºÅ©/Ç÷ÎÇÇ µð½ºÅ©/ICÄ«µå)
*
* @ingroup CMPAPI
* @param type 00 : YessignCA, 11 : XecureCA
* @param jobcode
* ÀÎÁõ¼ Æó±â : 17
* ÀÎÁõ¼ È¿·ÂÁ¤Áö : 256
* @param reason (Æó±â/È¿·ÂÁ¤Áö »çÀ¯ )
* 1 : keyCompromise ( default )
* 2 : cACompromise
* 3 : affiliationChanged
* 4 : superseded
* 5 : cessationOfOperation
* 6 : certificateHold
*
* @return Success : 0
* Fail : -1
*/
function RevokeCertificate ( type, jobcode, reason )
{
var r;
var ca_type;
var ca_ip;
var ca_port;
if(type == 10) {
ca_type = yessign_ca_type;
ca_ip = yessign_ca_ip;
ca_port = yessign_ca_port;
}
else if(type == 11) {
ca_type = xecure_ca_type;
ca_ip = xecure_ca_ip;
ca_port = xecure_ca_port;
}
else if(type == 12) {
ca_type = xecure_ca_type_1;
ca_ip = xecure_ca_ip_1;
ca_port = xecure_ca_port_1;
}
else {
alert("Input type error!");
return 0;
}
if(IsNetscape())
{
if( IsNetscape60() ) // Netscape 6.0
r = document.XecureWeb.nsIXecurePluginInstance.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail );
else
r = document.XecureWeb.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail);
}
else {
r = document.XecureWeb.RevokeCertificate ( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail );
}
if ( r != 0 ) XecureWebError();
return r;
}
/**
* RSA 1024 bit °ø°³Å°/°³ÀÎŰ½ÖÀ» »ý¼ºÇÑÈÄ, °³ÀÎŰ Á¤º¸´Â Client ¿¡¼ ÀúÀåÇϰí
* °ø°³Å° Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. (»ç¼³ ÀÎÁõ¼ ¹ß±Þ/°»½Å½Ã ÀÌ¿ëµÇ¸ç, ÀÎÁõ¼ ¹ß±Þ½Ã¿¡
* ÀÔ·ÂµÈ ÇÊ¿äÇÑ Á¤º¸µé°ú ÀÌ ÇÔ¼ö¿¡¼ ¸®ÅÏµÈ °ø°³Å°¸¦ °¡Áö°í »ç¼³ÀÎÁõ±â°ü¿¡
* Á¢¼ÓÇÏ¿© ÀÎÁõ¼¸¦ ¹ß±Þ/°»½Å ÇÑ´Ù. )
*
* @ingroup SFCA_CMPAPI
* @return Success : »ý¼ºµÈ °ø°³Å° ¹®ÀÚ¿
* Fail : ¡°¡±
*
*/
function GenCertReq ( )
{
if( IsNetscape60() ) // Netscape 6.0
cert_req = document.XecureWeb.nsIXecurePluginInstance.GenerateCertReq( 1024 );
else
cert_req = document.XecureWeb.GenerateCertReq( 1024 );
if ( cert_req == "" ) XecureWebError() ;
return cert_req;
}
/**
* ¹ß±Þ/°»½ÅµÈ »ç¼³ ÀÎÁõ¼¸¦ ÀúÀå½ÃŲ´Ù. (ÀúÀå °¡´É¸Åü : Çϵåµð½ºÅ©/ICÄ«µå)
*
* @ingroup SFCA_CMPAPI
* @param cert_type ¹ß±ÞµÈ ÀÎÁõ¼ Á¾·ù
* 1 : ÀÎÁõ±â°ü ÀÎÁõ¼
* 2 : »ç¿ëÀÚ ÀÎÁõ¼
* 5 : ¾ÏÈ£ÈÇÏ¿© ÀúÀåÇÒ »ç¿ëÀÚ ÀÎÁõ¼
* ¼¸íâÀ̳ª ÀÎÁõ¼LoginâÀÇ À̹ÌÁö¸¦ ¼³Á¤ÇÑ´Ù. À̹ÌÁö BMP ÆÄÀÏÀ» Á¦ÀÛÇÑ´Ù. (¿©±â¼´Â login.bmp(ÇØ»óµµ:290x64) ·Î °¡Á¤)
* XecureWeb ver4 server moduleÀÌ ¼³Ä¡µÇ¾î ÀÖ´Â µð·ºÅ丮¸¦
* /user/xecureweb_ver4¶ó °¡Á¤Çϸé
* /user/xecureweb_ver4/object/ ¾Æ·¡¿¡ login.bmp¸¦ º¹»çÇÑ´Ù.
* /user/xecureweb_ver4/object/xecureweb.js ÆÄÀÏÀ» ¿°í bannerUrlÀ» ¼öÁ¤ÇÑ´Ù.
* ¿¹) var bannerUrl=
* ¡°http://¡± + window.location.hostname + ¡°/XecureObject/login.bmp¡±;
* BMPº¯°æ½Ã..´Ù¸¥À̸§À¸·Î ÀúÀåÇÏ¿©¾ß ´Ù½Ã DownLoad¹ÞÀ» ¼ö ÀÖ´Ù.
* @ingroup etcAPI
*/
function PutBannerUrl()
{
if( IsNetscape60() ) // Netscape 6.0
{
document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
}
else
{
document.XecureWeb.PutBigBannerUrl( xgate_addr, bannerUrl);
}
}
/**
* »ç¼³ ÀÎÁõ±â°üÀ» »ç¿ë½Ã »ç¼³ÀÎÁõ±â°ü ÀÎÁõ¼¸¦ »ç¿ëÀÚ¿¡°Ô ¹èÆ÷ÇÑ´Ù.
*
* @ingroup etcAPI
* @return Success : 0
* Fail : -1
*/
function PutCACert()
{
var r ;
if( IsNetscape60() ) // Netscape 6.0
r = document.XecureWeb.nsIXecurePluginInstance.PutCACert( XecureEscape(pCaCertName), pCaCertUrl);
else
r = document.XecureWeb.PutCACert( XecureEscape(pCaCertName), pCaCertUrl);
if( r != 0 ) XecureWebError() ;
}
function isNewPlugin(desc)
{
index = desc.indexOf('v.', 0);
if (index < 0)
return false;
desc += ' ';
versionString = desc.substring(index +2, desc.length);
arrayOfStrings = versionString.split('.');
thisMajor = parseInt(arrayOfStrings[0], 10);
thisMinor = parseInt(arrayOfStrings[1], 10);
thisBuild = parseInt(arrayOfStrings[2], 10);
if (thisMajor > versionMaj) return true;
if (thisMajor < versionMaj) return false;
if (thisMinor > versionMin) return true;
if (thisMinor < versionMin) return false;
if (thisBuild > versionRel) return true;
if (thisBuild < versionRel) return false;
return true;
}
function downloadNow () {
if ( navigator.javaEnabled() ) {
trigger = netscape.softupdate.Trigger;
if ( trigger.UpdateEnabled() ) {
if (navigator.platform == "Win32") {
trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);
}
else alert('ÀÌ Ç÷¯±× ÀÎÀº À©µµ¿ìÁî 95/98/NT ȯ°æ¿¡¼¸¸ ÀÛµ¿ÇÕ´Ï´Ù.')
}
else
alert('³Ý½ºÄÉÀÔÀÇ SmartUpdate ¼³Ä¡¸¦ °¡´ÉÇϵµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}
else
alert('Java ½ÇÇàÀ» °¡´ÉÇϵµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}
function isOldPlugin(desc,version) // by Zhang
{
index = desc.indexOf('v.', 0);
if (index < 0) return true;
desc += ' ';
versionString = desc.substring(index +2, desc.length);
arrayOfStrings = versionString.split('.');
thisMaj = parseInt(arrayOfStrings[0], 10);
thisMin = parseInt(arrayOfStrings[1], 10);
thisRel = parseInt(arrayOfStrings[2], 10);
arrayOfStrings = version.split('.');
// verMaj = parseInt(arrayOfStrings[0], 10);
// verMin = parseInt(arrayOfStrings[1], 10);
// verRel = parseInt(arrayOfStrings[2], 10);
s_verMaj = parseInt(arrayOfStrings[0], 10);
s_verMin = parseInt(arrayOfStrings[1], 10);
s_verRel = parseInt(arrayOfStrings[2], 10);
if (thisMaj > s_verMaj) return false;
if (thisMaj < s_verMaj) return true;
if (thisMin > s_verMin) return false;
if (thisMin < s_verMin) return true;
if (thisRel > s_verRel) return false;
if (thisRel < s_verRel) return true;
return false;
}
function DownloadPackage(packageURL) // by Zhang
{
if ( navigator.javaEnabled() ) {
trigger = netscape.softupdate.Trigger;
if ( trigger.UpdateEnabled() ) {
if (navigator.platform == "Win32") {
trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);
}
else
alert('ÀÌ Ç÷¯±× ÀÎÀº À©µµ¿ìÁî 95/98/NT ȯ°æ¿¡¼¸¸ ÀÛµ¿ÇÕ´Ï´Ù.');
}
else
alert('³Ý½ºÄÉÀÔÀÇ SmartUpdate ¼³Ä¡¸¦ °¡´ÉÇϵµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}
else
alert('Java ½ÇÇàÀ» °¡´ÉÇϵµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}
function XecureWebPlugin(version) // by Zhang
{
if (navigator.appName == 'Netscape' && UserAgent() == "Mozilla/4")
{
var XecureMime = navigator.mimeTypes["application/x-SoftForum-XecSSL40"];
if (XecureMime) { // Xecure PlugIn ÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´Â °æ¿ì
if ( isOldPlugin(XecureMime.enabledPlugin.description,version))
DownloadPackage(packageURL);
}
else { // Xecure PlugIn ÀÌ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
DownloadPackage(packageURL);
}
}
}
/**
* Netscape¸¦ À§ÇØ<EMBED> Tag¸¦, Internet Explorer¸¦ À§ÇØ <OBJECT> Tag¸¦ document.writeÇÑ´Ù.
*
* example>
* <html>
* <head>
* <form name='xecure' ><input type=hidden name='p'></form>
* <script language='javascript' src='/XecureObject/xecureweb.js'></script>
* <script language='javascript' src='/XecureObject/xecureweb_file.js'></script>
* <script>
* PrintObjectTag();
* PrintFileObjectTag();
* </script>
* </head>
* <body> </body></html>
* @ingroup etcAPI
*/
function PrintObjectTag()
{
if( IsNetscape60() )
alert("Netscape 6.0Àº Áö¿øÇÏÁö ¾Ê½À´Ï´Ù") ;
else
{
if(navigator.appName == 'Netscape')
{
document.write("
*
* @ingroup etcAPI
* @param Idn
°ËÁõÇÒ ÀÎÁõ¼ÀÇ ½Äº°¹øÈ£* @param TimeStamp ¼¹öÀÇ Å¸ÀÓ½ºÅÆ * @param ServerCertPem pemŸÀÔÀÇ ¼¹öÀÎÁõ¼ * * @return ¼º°øÇϸé VIDÁ¤º¸¸¦ envelopÇÑ °á°ú ¸®ÅÏ * ½ÇÆÐ½Ã ¡°¡± ¸®ÅÏ */ function VerifyVirtualID(Idn, TimeStamp, ServerCertPem) { var msg; var option = 0; option = 0; // ¸ðµç ÀÎÁõ¼ ¸®½ºÆ®¾÷, »ç¿ëÀÚ¿¡°Ô idn ÀÔ·Â ¿ä±¸ // option = 1; // ·Î±×ÀÎÇÑ ÀÎÁõ¼ »ç¿ë, »ç¿ëÀÚ¿¡°Ô idn ÀÔ·Â ¿ä±¸ // only over XecureWeb Client v5.3.0.1 // option = 2; // ¸ðµç ÀÎÁõ¼ ¸®½ºÆ®¾÷, idn¿¡ "NULL" ¼³Á¤ // option = 3; // ·Î±×ÀÎÇÑ ÀÎÁõ¼ »ç¿ë, idn¿¡ "NULL" ¼³Á¤ if( IsNetscape() ) { msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, escape(accept_cert), option, escape(Idn)); } else { msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, accept_cert, option, Idn); } return msg; } // nOption is 0 : (default value) File version, which is checked by 'Internet Explorer' // 1 : Product version // 2 : File Description /** * XecureWeb Control ¿¡ °ü·ÃµÈ ¹öÀü Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. * * @ingroup etcAPI * @param nOption
* Idn¿¡ ¡°¡±ÀÌ¸é »ç¿ëÀڷκÎÅÍ IDNÀ» ÀԷ¹޴´Ù.
* option bit : _4_ _3_ _2_ _1_
* | |
* | --- 0 : ¸ðµç ÀÎÁõ¼ ¸®½ºÆ®¾÷, 1 : ·Î±×ÀÎÇÑ ÀÎÁõ¼ »ç¿ë
* ------- 0 : »ç¿ëÀÚ¿¡°Ô idn ÀÔ·Â ¿ä±¸, 1 : idn¿¡ "NULL" setting, ¼¹ö¿¡¼ idn ¼³Á¤