<script language="javascript"> // 获取证书 ,初始化选择证书列表 var certs; function refreshCertList() { try { certs = CertStore.listAllCerts(); //清空下拉列表 this.SignForm.CertList.length = 0; //遍历证书集合 for ( var i = 0; i < certs.size(); i++){ //获取一张证书 var cert = certs.get(i); //获取证书cn值 var cn = getCNFromSubject(cert); //获取证书序列号 this.SignForm.CertList.options.add(new Option( cn,cert.serialNumber())); } } catch (e) { if (e instanceof TCACErr) { //TCA异常封装 alert(e.toStr()); } else { //其它异常放行.. alert("Here is Error !!!"); } } } //最终加密文件 function clientSign(){ //判断待加密文件是否存在 if(this.SignForm.SrcFileName.value==""){ this.SignForm.SrcFileName.focus(); alert("请选择加密文件"); } //设置签名加密文件路径 var destFileName = SignForm.SrcFileName.value+'.sig'; var enFileName = destFileName+'.enc'; //获取个人用签名证书 var cert =getSelectedCert(); //获取签名值 var signresult1 = cert.signFile2File(SignForm.SrcFileName.value,destFileName, "SHA1"); //根据序列号,获取数字信封使用证书 var certencs =certs.bySerialnumber("1D4DB312246B94B2E79C87B5239AD7D469100B5E"); var certenc=certencs.get(0); //获取数字信封结果 var encresult1 = certenc.encryptFile2File(destFileName,enFileName); //对数字信封进行签名 var signFileName2=enFileName+".sig"; var signresult2=cert.signFile2File(enFileName,signFileName2, "SHA1"); if(signresult2){ alert("上传成功!"); } } //根据序列号获取当前选择的证书 //返回Certificate对象 function getSelectedCert() { try { var selectedCertSN = this.SignForm.CertList.value; var cs = certs.bySerialnumber(selectedCertSN); return cs.get(0); } catch (e) { if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("没有找到证书"); } } } // 从Certificate对象中获取CN值 // cert : Certificate对象 function getCNFromSubject(cert) { try { var t = cert.subject().match(/(S(?!N)|L|O(?!U)|OU|SN|CN|E)=([^=]+)(?=, |$)/g); for (var i = 0; i < t.length; i++) { if (t[i].indexOf("CN=") === 0) return t[i].substr(3, t[i].length); } return null; } catch (e) { if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("Here is Error !!!"); } } } </script>
<script type="text/javascript"> $(document).ready(function () { //加载控制值 $('.date-pick').datePicker({clickInput:true}); //加载license值 var config = { "license": "MIIFTwYJKoZIhvcNAQcCoIIFQDCCBTwCAQExDjAMBggqgRzPVQGDEQUAMIGVBgkqhkiG9w0BBwGggYcEgYR7Iklzc3VlciI6Ii4qTz0uKuWkqeivmuWuieS/oeivleeUqC4qIiwidmVyc2lvbiI6IjEuMC4wLjAiLCJzb2Z0VmVyc2lvbiI6IjMuMS4wLjAiLCJub3RhZnRlciI6IjIwMTYtMDEtMTQiLCJub3RiZWZvcmUiOiIyMDE1LTAxLTEyIn2gggNEMIIDQDCCAuWgAwIBAgIUXyWc2syCu37zBbMAe4uOyb35tfIwDAYIKoEcz1UBg3UFADBVMSYwJAYDVQQDDB3lpKnor5rlronkv6HmtYvor5VTTTLnlKjmiLdDQTEOMAwGA1UECwwFVE9QQ0ExDjAMBgNVBAoMBVRPUENBMQswCQYDVQQGEwJDTjAeFw0xNDA5MjYwNzQ2MDhaFw0xNTA5MjYwNzQ2MDhaMDExGDAWBgNVBAMMD1NpZ25FU0EyMDE0MDkyNzEVMBMGA1UECgwM5aSp6K+a5a6J5L+hMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAElhZ4UuYjL2ZO535qLQsF4ujGGCc7odxAZuxCGXh+94nOhXHQLLO3/G9ZjnLuXeoDB3n0Bsj4iboW2X/AA5KFiaOCAbMwggGvMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgbAMIGKBggrBgEFBQcBAQR+MHwwegYIKwYBBQUHMAKGbmh0dHA6Ly9Zb3VyX1NlcnZlcl9OYW1lOlBvcnQvVG9wQ0EvdXNlckVucm9sbC9jYUNlcnQ/Y2VydFNlcmlhbE51bWJlcj01QTQ3RUNGMTA1ODA0QTVDNkE1QjIyOTI5Qjc1REYwREZCQzBENzk2MFcGA1UdLgRQME4wTKBKoEiGRlBvcnQvVG9wQ0EvcHVibGljL2l0cnVzY3JsP0NBPTVBNDdFQ0YxMDU4MDRBNUM2QTVCMjI5MjlCNzVERjBERkJDMEQ3OTYwbwYDVR0fBGgwZjBkoGKgYIZeaHR0cDovL1lvdXJfU2VydmVyX05hbWU6UG9ydC9Ub3BDQS9wdWJsaWMvaXRydXNjcmw/Q0E9NUE0N0VDRjEwNTgwNEE1QzZBNUIyMjkyOUI3NURGMERGQkMwRDc5NjAfBgNVHSMEGDAWgBQ9icZHy3GFsNk71kiwidnn/u/a2TAdBgNVHQ4EFgQUSzvtf4eChoegEpKxLuYAJdi1EQAwDAYIKoEcz1UBg3UFAANHADBEAiC9tNcXzI0fmOxsbqvtcvksS6kl3yXzH1qTPyuE7ldhggIg6D6HGfkXjg3n7Bqob7UNuzqb3GIgPzdWQeeam10yhHsxggFFMIIBQQIBATBtMFUxJjAkBgNVBAMMHeWkqeivmuWuieS/oea1i+ivlVNNMueUqOaIt0NBMQ4wDAYDVQQLDAVUT1BDQTEOMAwGA1UECgwFVE9QQ0ExCzAJBgNVBAYTAkNOAhRfJZzazIK7fvMFswB7i47Jvfm18jAMBggqgRzPVQGDEQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTUwMTEzMTIxMDUwWjAvBgkqhkiG9w0BCQQxIgQgTsHg6rBYG+pioDkYWoKf6xGtsTCRNLMIQXksoRhMkO4wDAYIKoEcz1UBgi0FAARGMEQCIHZPgdw5RZq9XwGdzdc3lKrKrb+xSStLmUWNylP+c7lbAiC7+wkPFWBlMJlTB4gehrgY+kJH19vq7n2ohVqCNHE2MQ==","certDateFmtMode":true,"certDateFmtMode":true}; //测试用 //异常捕捉 try{ TCA.config(config); refreshCertList(); return ; }catch(e){ if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("Here is Error !!!"); } } }); </script> <script language="javascript"> // 获取证书 ,初始化选择证书列表 var certs; function refreshCertList() { try { certs = CertStore.listAllCerts(); //清空下拉列表 this.SignForm.CertList.length = 0; //遍历证书集合 for ( var i = 0; i < certs.size(); i++){ //获取一张证书 var cert = certs.get(i); //获取证书cn值 var cn = getCNFromSubject(cert); //获取证书序列号 this.SignForm.CertList.options.add(new Option( cn,cert.serialNumber())); } } catch (e) { if (e instanceof TCACErr) { //TCA异常封装 alert(e.toStr()); } else { //其它异常放行.. alert("Here is Error !!!"); } } } //签名方法 function plaintextSign(){ var toSign = this.SignForm.plainText.value; var cert=getSelectedCert(); var ic_value =this.SignForm.InnerContent.checked; var pt8_value =this.SignForm.PlainTextUTF8.checked; var mcs_value =this.SignForm.MinCertStore.checked; var p7=null; alert(getCNFromSubject(cert)); if(ic_value == false){ p7 = cert.signMessage(toSign,false); }else{ p7 = cert.signMessage(toSign); } this.SignForm.signature.value=p7; } //加密方法 function plaintextEncrypt(){ //获取数字信封公钥 try{ var cert = certs.bySerialnumber("1D4DB312246B94B2E79C87B5239AD7D469100B5E"); var toEnc=this.SignForm.plainText.value; var p7 = cert.get(0).encryptMessage(toEnc); this.SignForm.encryptData.value=p7; }catch(e){ if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("Here is Error !!!"); } } } //数字信封签名方法 function enSign(){ if(this.SignForm.encryptData.value==""){ alert("请输入加密信息!"); SignForm.encryptData.focus(); return; } var toSign = this.SignForm.encryptData.value; var cert=getSelectedCert(); var ic_value =this.SignForm.InnerContent.checked; var pt8_value =this.SignForm.PlainTextUTF8.checked; var mcs_value =this.SignForm.MinCertStore.checked; try{ var p7=null; alert(getCNFromSubject(cert)); if(ic_value == false){ p7 = cert.signMessage(toSign,false); }else{ p7 = cert.signMessage(toSign); } this.SignForm.enSignatrue.value=p7; }catch(e){ if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("Here is Error !!!"); } } } //根据序列号获取当前选择的证书 //返回Certificate对象 function getSelectedCert() { try { var selectedCertSN = this.SignForm.CertList.value; var cs = certs.bySerialnumber(selectedCertSN); return cs.get(0); } catch (e) { if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("没有找到证书"); } } } // 从Certificate对象中获取CN值 // cert : Certificate对象 function getCNFromSubject(cert) { try { var t = cert.subject().match(/(S(?!N)|L|O(?!U)|OU|SN|CN|E)=([^=]+)(?=, |$)/g); for (var i = 0; i < t.length; i++) { if (t[i].indexOf("CN=") === 0) return t[i].substr(3, t[i].length); } return null; } catch (e) { if (e instanceof TCACErr) { alert(e.toStr()); } else { alert("Here is Error !!!"); } } } </script>