PageSourceSearch

https://elbergueda.cat/comu/js/certificats.js

js elbergueda.cat collected 2026-10-02 11:58:09 UTC 7,254 bytes, 238 lines download raw bytes

1var divSignatura;
2var divTSA;
3var MostraOnlyNom;
4
5function isChromeBrowser() {
6	//if ($.browser.webkit && !$.browser.opera && !$.browser.msie && !$.browser.mozilla ) {
7		var userAgent = navigator.userAgent.toLowerCase();
8		if (userAgent.indexOf("chrome")!==-1) { 
9			return true;
10		}
11	//}
12	
13	return false;
14}
15
16function getChromeVersion () {     
17    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
18
19    return raw ? parseInt(raw[2], 10) : false;
20}
21
22function VerificaCarrega(divid) {
23	// Mostra el requadre d'espera
24	$('.VerificaTxt',divid).hide();
25	$('.VerificaWait',divid).show();
26	$('.VerificaResposta',divid).html('');
27	$(divid).removeClass("signaErr");
28	$(divid).removeClass("signaOk");
29	$(divid).show("normal");
30}
31
32function VerificaMostraResposta(divid, text, ok) {
33	$('.VerificaWait',divid).hide();
34	$(divid).removeClass("signaErr");
35	$(divid).removeClass("signaOk");
36	
37	if (ok)
38		$(divid).addClass("signaOk"); // Mostra les dades i canvia el color de la finestra a verd
39	else
40		$(divid).addClass("signaErr"); // Mostra un missateg d'error i canvia el color de la finestra a vermell
41		
42	$('.VerificaResposta',divid).html(text);
43	$('.VerificaTxt',divid).show();
44}
45
46/* Parametres:	divSignatura_param -> Div que conté el retorn de la Signatura
47				divTSA_param -> Div que conté el retorn del TSA
48				MostraOnlyNom_param -> Si true en la resposta de la signatura només mostra el nom del signatari
49*/
50function Verifica(divSignatura_param, divTSA_param, MostraOnlyNom_param) {
51	divSignatura = divSignatura_param;
52	divTSA = divTSA_param;
53	MostraOnlyNom = MostraOnlyNom_param;
54	
55	// Validació de la Signatura Digital
56	var formSigna = window.document.forms["formSigna"];
57	if (formSigna) {
58		// Comprova que el registre tingui Signatura
59		if (formSigna.Signatura) {
60			if (formSigna.Signatura.value!="") {
61				VerificaCarrega($("#" + divSignatura).get(0));			
62				var optionsValidaSignatura = {
63					success:  ValidaSignatura_Retorn, 
64					dataType:  'xml',
65					type: 'POST'
66				};
67				$('#formSigna').ajaxSubmit(optionsValidaSignatura);
68			}
69		}
70	}
71	
72	// Validació del TSA
73	var formTSA = window.document.forms["formTSA"];
74	if (formTSA) {
75		// Comprova que el registre tingui Signatura
76		if (formTSA.Segell) {
77			if (formTSA.Segell.value!="") {
78				VerificaCarrega($("#" + divTSA).get(0));
79				var optionsValidaTSA = {
80					success:  ValidaTSA_Retorn, 
81					dataType:  'xml',
82					type: 'POST'
83				};
84				$('#formTSA').ajaxSubmit(optionsValidaTSA);
85			}
86		}
87	}
88	
89	return false;
90}
91
92// Recupera el resultat de la validació de la signatura
93function ValidaSignatura_Retorn(responseXML) {
94	// Per Chrome evita el dss\\:
95	var tagSign = isChromeBrowser()?"SignerIdentity":"dss\\:SignerIdentity";
96	
97	// Obté les dades de la persona que ha signat el document
98	var Signador = $(responseXML).find(tagSign).get(0);
99	if (Signador) {
100		var Signatura = $(Signador).text().replace(/,/g, "<br/>");
101		if (MostraOnlyNom) {
102			Signatura = Signatura.substring(Signatura.indexOf('CN=')+3	,Signatura.indexOf('<br/>'));
103		}
104		VerificaMostraResposta($("#" + divSignatura).get(0), Signatura, true);
105	} else 
106		VerificaMostraResposta($("#" + divSignatura).get(0), txt_msg_Err_Signatura, false);
107}
108
109// Obte la resposta de la validació
110function ValidaTSA_Retorn(responseXML) {
111	//alert(xml2Str(responseXML));
112	
113	// Obté les dades del temps del TSA
114	// Per Chrome evita el dss\\:
115	var tagTSA = isChromeBrowser()?"SigningTime":"dss\\:SigningTime";
116	
117	if(isChromeBrowser()){
118		var cversion =  getChromeVersion();
119		if(cversion!==false && cversion>=60){
120			tagTSA = "dss\\:SigningTime";
121		//	console.log(cversion);
122		}
123	}
124
125	// Obté les dades del temps del TSA
126	var TSA = $(tagTSA, responseXML).text();
127	if (TSA!="") {
128		var data = DateFromISOString(TSA); // Funció de la llibreria ostynscormtime.js
129		
130		//var data_txt = data.getUTCDate() + "/" + (data.getUTCMonth()+1) + "/" + data.getUTCFullYear() + " " + data.getUTCHours() + ':' + data.getUTCMinutes() + ' GMT' + (-(data.getTimezoneOffset()/60)>0?'+':'') + -(data.getTimezoneOffset()/60);
131		var data_txt = formatDate(data,"dd/MM/yyyy HH:mm:ss"); // formatDate de calendari.js
132		
133		VerificaMostraResposta($("#" + divTSA).get(0), data_txt, true);
134	} else
135		VerificaMostraResposta($("#" + divTSA).get(0), txt_msg_Err_TSA, false);
136}
137
138/**
139 * Obtenció de certificats
140 */
141// Si parametre embedded = true, reb el retorn dels alias de les claus del magatzem
142function onReturnCerts(value) {
143	$("#carregant-certificats").hide();
144	$("#alies-certificats").show();
145	$("#valida-certificat").show();
146	
147	
148	// Omplim el combobox amb els alies retornats per l'applet
149	var select = document.getElementById('alies-certificats');
150	if (value[0].length!=1) {
151		for (var i=0;i<value.length;i++) {
152			var elOptNew = document.createElement("option");
153			elOptNew.text = value[i];
154			elOptNew.value = value[i];
155			try {
156				select.add(elOptNew);
157			} catch(Ex) {
158				select.appendChild(elOptNew);
159			}
160		}
161	} else {
162		var elOptNew = document.createElement('option');
163		elOptNew.text = value;
164		elOptNew.value = value;
165		try {
166			select.add(elOptNew);
167		} catch(Ex) {
168			select.appendChild(elOptNew);
169		}
170	}
171}
172
173// Invoca la signatura de l'applet, passant com a parametre l'àlies seleccionat al combobox
174function sign() {
175	// recuperem lalies seleccionat
176	var alies = document.getElementById('alies-certificats').value;
177	
178	if (alies=="" || alies==null) {
179		return false;
180	}
181	
182	// Invoquem l'applet passant l'alies seleccionat
183	try {
184		document.appletcatcert.signFromJS(alies);
185	} catch (Exception) {
186		// chrome, safari i opera
187		document.appletcatcert[1].signFromJS(alies);
188	}
189}
190function onMultiSignOK(signature) {
191	//alert('Signatura generada per l\'event final:\n' + signature);
192}
193function onSignCancel() {
194	//alert('Procés cancel·lat per l\'usuari');
195}
196function onSignError(msg) {
197	var fomcert = document.forms['certificat'];
198	var err_msg = fomcert.txt_error_obtenint_certificats.value;
199	$("#carregant-certificats").html(err_msg + ' ' + msg);
200}
201// En cas que hi hagi algun error durant la carrega
202function onLoadError(msg) {
203	var fomcert = document.forms['certificat'];
204	var err_msg = fomcert.txt_error_carrega_applet.value;
205	$("#carregant-certificats").html(err_msg + ' ' + msg);
206}
207
208
209// Envia el certificat a verificar
210function onSignOK(signature) {
211	//alert('Signatura generada per l\'event final:\n' + signature);
212	
213	var xmlSignatura = $.parseXML(signature);
214		    
215	// Per Chrome evita el ds\\:
216	var tagCert = isChromeBrowser()?"X509Certificate":"ds\\:X509Certificate";
217	
218	// Obté les dades del temps del TSA
219	var certificat = $(tagCert, xmlSignatura).text();
220	if (certificat!="") {
221		var fomcert = document.forms['certificat'];
222		fomcert.elements['certBase64'].value = certificat;
223		fomcert.submit();
224	}
225	return false;
226}
227
228/**
229 * Crida per setejar de forma dinamica amb js els parametres de lapplet.
230**/
231function setAppletParam(name,value) {
232	try{
233		document.appletcatcert.set(name,value);
234	}catch(Exception){
235		// chrome, safari i opera
236		document.appletcatcert[1].set(name,value);
237	}
238}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.