﻿// JScript 文件
var global_periodicalTimer;
function certLogin(){
var isSubmit=true;
try{
		var ret=-1;
		var Pin = document.getElementById("ctl00_cph_context_IdPin").value;
		if(Pin == ""){ alert("请输入数字证书密码。");isSubmit=false;return false;}
		var SignData = new Array;
		var CertData = new Array;
		var KeyID = new Array;
		var KeyType;
		KeyType = isSGKey(UseCom);//获取Key类型
		if(!KeyType){isSubmit=false;return false;}
		
		var ret=GDCASetDevice(UseCom, KeyType);
		if(ret!=0){alert("设置设备类型出错："+ret);isSubmit=false;return false;}
		
		ret=GDCAInitialize(UseCom);
		if(ret!=0){alert("初始化控件出错："+ret);isSubmit=false;return false;}
		try{
			var down_url="http://www.gdca.com.cn/channel/001002002";
			var the_version = UpdateCom.GDCA_checkVersion();
			if(the_version!= 0){
			alert("您使用的是旧版本的客户端软件，必须使用数字证书客户端V3.9.0及其以上版本登录系统！\n点击[确定]将进入下载页面。");
			window.open("Index.aspx","_self");//重新加载
				isSubmit=false;return false;
			}
		}catch(e){
			window.open(down_url,"_self");
			isSubmit=false;return false;
		} 	
		
		//登陆到Key设备中
		ret = GDCALogin(UseCom,2,Pin);
		if(ret != 0){
			if(ret <= 6){
				//var warnTip=document.getElementById("warnTip");
				if(ret<=0){alert("您的Key已经被锁定！");}else{alert("证书密码错误,你还有"+ret+"次机会");}
				isSubmit=false;return false;
			}
		}
	
		//读取用户Key中的用户证书
		//读取签名证书
		ret = GDCAReadCert(UseCom,KeyType,SignCert,CertData);
		if(ret != 0){alert("证书读取错误："+ret);isSubmit=false;return false;}
	
		ret = GDCASignData(UseCom,2,CertData[0],Pin,document.getElementById("IdRandom").value,"GDCA_ALGO_SHA1",SignData);
		if(ret != 0){
			alert("签名错误："+ret);
			isSubmit=false;return false;
		}
		
		//获取key的时间，其格式为：起始日期+空格+截止日期长度为29,时间格式：yyyyMMddhhmmss
		var time=UseCom.GDCA_GetCertificateInfo(CertData,6);
		if(time.length>0) time=time.substring(15,28);
		var overTime=new Date(time.substring(0,4),time.substring(4,6),time.substring(6,8),time.substring(8,10),time.substring(10,12));
		var nowTime=new Date();
		if(overTime<nowTime)//过期
		{
		   alert("你的Key已经过期，无法登录！");
		   isSubmit=false;return false;
		}
		
		//业务证书序号或者机构证书序号
		var sn=UseCom.GDCA_GetCertificateInfo(CertData,3);
		//读取keyid信息(证书ID)
		var temp_keyid=UseCom.GDCA_ReadLabel("LAB_DISAID",3);
		//获取组织机构代码
		var temp_companysn=UseCom.GDCA_GetInfoByOID(CertData,2,'0.6.3.1040.39',0);
		//读取公司信息
		var temp_companyName=UseCom.GDCA_GetCertificateInfo(CertData,7);
		var temp_sign=SignData[0];
		var temp_cert=CertData[0];
		if((temp_sign==null || temp_sign=="") || (temp_cert == null || temp_cert=="") || (temp_keyid==null || temp_keyid=="")){
			alert("证书读取错误！");
			isSubmit=false;return false;
		}
		document.getElementById("ctl00_cph_context_companyName").value = temp_companyName;//公司名称
     	document.getElementById("ctl00_cph_context_companySn").value = temp_companysn;//组织机构代码
     	document.getElementById("ctl00_cph_context_bussineseSn").value = sn;//业务证书序号或者机构证书序号
		if(temp_keyid!=null && temp_keyid!=""){
			temp_keyid=UseCom.GDCA_Base64Decode(temp_keyid);
			document.getElementById("ctl00_cph_context_keyId").value = temp_keyid;
		}
		isSubmit=true;return true;
	}catch(e){
		alert("读取证书错误，请确认您是否安装了数字证书客户端.");
		isSubmit=false;return false;
	}finally{
		if(UseCom!="" && UseCom!=null){GDCAFinalize(UseCom);}
		if(UpdateCom!="" && UpdateCom!=null){GDCAFinalize(UpdateCom);}
		//global_periodicalTimer=clearTip.periodical(5000);
	}
	//return false;
	return isSubmit;
}


