//CA方法调用 var iVersionDLL = 5; //安全控件版本 var fsCA = null; //控件 var keySwitch = true; var isWR = false; //是否为网融控件 /** * 登录初始化,返回使用的证书类型编码 */ function initFsCA(){ fsCA = new ActiveXObject("GdgsNTSA.NTSA"); return fsCA.InitCA('0101,0000'); } /** * 设置pin */ function setFsCAPin(sPin){ if(isWR && keySwitch){ return fsCA.Login(1, sPin); }else{ return fsCA.setPin(sPin); } } /** * 取签名公钥 */ function getClientPublicKey(){ if(isWR && keySwitch){ return fsCA.GetCert(2); }else{ return fsCA.ReadSignCert(); } } /** * 取加密公钥 */ function getServerPublicKey(){ if(isWR && keySwitch){ return fsCA.GetCert(1); }else{ return fsCA.ReadEncCert(); } } /** * 清除 */ function cleanCA(){ if(fsCA !== null && !isWR){ fsCA.CleanUp(); } } /** * 装载控件 * keyType key类型代码 */ function initActiveXObject(keyType){ if (fsCA === null){ fsCA = new ActiveXObject("GdgsNTSA.NTSA"); return fsCA.InitCA(keyType); }else{ return "0000"; } } /** * 字符串签名 * keyType key类型代码 * sourceData 原文 * clientSignCert 签名证书 */ function getSignData(keyType,sourceData,clientSignCert){ if(keySwitch){ try{ fsCA = new ActiveXObject("PSIAtv.PSIAPP"); fsCA.AtvInit(); isWR = true; return fsCA.SignData(sourceData, 32772, 0); }catch(e){ // } } if (initActiveXObject(keyType) === ""){ return ""; }else{ return fsCA.Sign(sourceData); } } /** * 文件签名 * keyType key类型代码 * filePath 文件路径 * clientSignCert 签名证书 */ function getFileSignData(keyType, filePath, clientSignCert){ if(keySwitch){ try{ fsCA = new ActiveXObject("PSIAtv.PSIAPP"); fsCA.AtvInit(); isWR = true; return fsCA.SignData(fsCA.ReadFromFile(filePath), 32772, 0); }catch(e){ // } } if (initActiveXObject(keyType) === ""){ return ""; }else{ return fsCA.SignFile(filePath); } } /** * 字符串加密 * keyType key类型代码 * sourceData 原文 * serverEncryptCert 签名证书 */ function getEncryptData(keyType, sourceData, serverEncryptCert){ if(keySwitch){ try{ fsCA = new ActiveXObject("PSIAtv.PSIAPP"); fsCA.AtvInit(); isWR = true; return fsCA.SealEnvelope(serverEncryptCert, 26115, sourceData); }catch(e){ // } } if (initActiveXObject(keyType) === ""){ return ""; }else{ return fsCA.Encrypt(sourceData,serverEncryptCert); } } /** * 取版本 */ function getVersion(){ return fsCA.getVersion(); } /** * 上传错误信息 */ function logError(msg) { var xmlHttp; var url="/wssw/jsp/info/caLoginError.jsp?msg="+msg; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlHttp.onreadystatechange = {}; xmlHttp.open("GET", url, true); xmlHttp.send(null); }