source: prototipo_portal_2018/WebContent/index.html @ 36a8003

Last change on this file since 36a8003 was 36a8003, checked in by Pedro Buitrago <pbuitrago@…>, 9 years ago

Se modifico la verificación e la firma, la cabecera del json se coloco en una tabla aparte y se agrego una variable con la traducción de los campos de la firma

  • Property mode set to 100644
File size: 23.0 KB
Line 
1<!DOCTYPE html>
2<!-- release v4.1.8, copyright 2014 - 2015 Kartik Visweswaran -->
3<html lang="en">
4    <head> <!--Inicio del head  -->
5        <meta charset="UTF-8"/>
6        <title>Portal de verificación y firma electrónica</title>
7        <link href="bootstrap.min.css" rel="stylesheet">
8        <link href="css/fileinput.css" media="all" rel="stylesheet" type="text/css" />
9        <script src="jquery.min.js"></script>
10        <script src="js/fileinput.js" type="text/javascript"></script>
11        <script src="bootstrap.min.js" type="text/javascript"></script>
12        <script src="jquery.form.js"></script> 
13       
14        <script src="gitversion.js"></script>
15                <script src="hwcrypto-legacy.js"></script>
16                <script src="hwcrypto.js"></script>
17                <script src="jquery.js"></script>
18                <script src="hex2base.js"></script>
19       
20        </head> <!--fin del head  -->
21       
22        <!-- Header -->
23        <header>
24                <div id="barner">
25                        <center>
26                        <img class="img-responsive" alt="Cinque Terre" src="cabecera.png">
27                       
28                </div>
29       
30                <nav class="navbar navbar-inverse">
31                <div class="container-fluid">
32                        <div class="navbar-header">
33                                <a class="navbar-brand" href="https://www.cenditel.gob.ve/">CENDITEL</a>
34                        </div>
35                        <div>
36                                <ul class="nav navbar-nav navbar-right">
37                                        <li class="active"><a href="#">Home</a></li>
38                                        <li><a href="https://tibisay.cenditel.gob.ve/murachi">Wiki</a></li>
39                                        <li><a href="#">Contacto</a></li>
40                                </ul>
41                        </div>
42                </div>
43        </nav>
44        </header>
45<!-- End Header -->
46       
47        <div class="container">
48                <div class="jumbotron">
49                       
50
51                        <h1><img src="version-beta2.png">Portal de firma electrónica y verificación</h1>
52                        <p>Sistema para firmar electrónicamente documentos y verificar los documentos firmados</p> 
53                </div>
54        </div>
55
56
57
58
59<!--Inicio Funciones que utiliza el sistema -->
60       
61        <!-- tomado de https://open-eid.github.io/hwcrypto.js/sign.html -->
62        <script>
63
64        function log_text(s) {
65                var d = document.createElement("div");
66                d.innerHTML = s;
67                document.getElementById('log').appendChild(d);
68        }
69
70        function debug() {
71                window.hwcrypto.debug().then(function(response) {log_text("Debug: " + response);});
72        }
73       
74        function sign() {
75               
76                alert("sign()");
77                // Clear log
78                document.getElementById('log').innerHTML = '';
79                // Timestamp
80                log_text("sign() clicked on " + new Date().toUTCString());
81               
82                // Select hash
83                //var hashtype = $("input[name=hash]:checked").val();
84                var hashtype = "SHA-256";
85               
86                // Set backend if asked
87                //var backend =  $("input[name=backend]:checked").val()
88                var backend = "autodetect";
89               
90                // get language
91                var lang = "en";
92                if (!window.hwcrypto.use(backend)) {
93                        log_text("Selecting backend failed.");
94                }
95
96                        var hash = $("#hashvalue").val();
97                        log_text("Signing " + hashtype + ": " + hash);
98                // debug
99                window.hwcrypto.debug().then(function(response) {
100                        log_text("Debug: " + response);
101                        }, function(err) {
102                                log_text("debug() failed: " + err);
103                                return;
104                        });
105                // Sign
106                window.hwcrypto.getCertificate({lang: lang}).then(function(response) {
107                        var cert = response;
108                        log_text("Using certificate:\n" + hexToPem(response.hex));
109                       
110                       
111                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(response) {
112                                log_text("Generated signature:\n" + response.hex.match(/.{1,64}/g).join("\n"));
113                                }, function(err) {
114                                log_text("sign() failed: " + err);
115                                });
116                        }, function(err) {
117                                log_text("getCertificate() failed: " + err);
118                        }
119                       
120                        );
121                }
122        </script>
123       
124        <script>
125        function logGetCertificate() {
126               
127                alert("logGetCertificate()");
128                // Clear log
129        document.getElementById('log').innerHTML = '';
130                // Timestamp
131                log_text("sign() clicked on " + new Date().toUTCString());
132               
133                // Select hash
134                //var hashtype = $("input[name=hash]:checked").val();
135                var hashtype = "SHA-256";
136               
137                // Set backend if asked
138                //var backend =  $("input[name=backend]:checked").val()
139                var backend = "autodetect";
140               
141                // get language
142                var lang = "en";
143                if (!window.hwcrypto.use(backend)) {
144                log_text("Selecting backend failed.");
145                }
146
147                        var hash = $("#hashvalue").val();
148                        log_text("Signing " + hashtype + ": " + hash);
149                // debug
150                window.hwcrypto.debug().then(function(response) {
151                        log_text("Debug: " + response);
152                }, function(err) {
153                                log_text("debug() failed: " + err);
154                                return;
155                });
156                // Sign
157        window.hwcrypto.getCertificate({lang: lang}).then(function(response) {
158                        var cert = response;
159                        log_text("Using certificate:\n" + hexToPem(response.hex));
160        });
161    }
162       
163       
164        function getCertificate() {
165               
166                alert("getCertificate()");
167                // Clear log
168        document.getElementById('log').innerHTML = '';
169                // Timestamp
170                log_text("sign() clicked on " + new Date().toUTCString());
171               
172                // Set backend if asked
173                //var backend =  $("input[name=backend]:checked").val()
174                var backend = "autodetect";
175               
176                // get language
177                var lang = "en";
178                if (!window.hwcrypto.use(backend)) {
179                log_text("Selecting backend failed.");
180                }
181        window.hwcrypto.getCertificate({lang: lang}).then(function(response) {
182                        var cert = response;
183                        log_text("Using certificate:\n" + hexToPem(response.hex));
184                        return cert;
185        });
186    }
187        </script>
188
189        <!-- Función que se conecta al servicio web de verificación de la firma electrónica
190                captura el evento submit y toma el formulario para firmar -->
191       
192        <script>
193    $(function(){
194        $("#firmar").on("submit", function(e){
195            e.preventDefault();
196            var f = $(this);
197           
198            //alert("se presiono firmar")
199           
200            //var formData = new FormData(document.getElementById("verificar"));
201            var formData = new FormData();
202           
203            //formData.append("dato", "valor");
204            formData.append("upload", $("#file-sign")[0].files[0]);
205            //formData.append(f.attr("name"), $(this)[0].files[0]);
206           
207            $.ajax({
208                //url: "https://192.168.12.125:8443/Murachi/murachi/archivos",
209                //url: "https://172.16.137.11:8443/Murachi/murachi/archivos",               
210                //url: "https://172.16.137.11:8443/JAXRS-Murachi/murachi/archivos",
211                url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos",
212                type: "post",
213                dataType: "json",
214                data: formData,
215                cache: false,
216                contentType: false,
217                                processData: false,
218                                success: function(response) {
219                                                //alert(JSON.stringify(response));
220                                                var html = manejoJsonPDF(JSON.stringify(response));
221                                                //alert(html);
222                                                //alert("ver respuesta")
223                                                document.getElementById("respuesta").innerHTML = html;
224                                               
225                                                // identificador del archivo en el servidor
226                                                var fileId = response.fileId.toString();
227                                                //alert("fileId: "+ fileId);
228                                                                                                                                               
229                                                // seleccionar certificado del firmante
230                                                //alert("va a seleccionar certificado");
231                                                var cert;
232                                                window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
233                                                        var cert = response;
234                                                        //log_text("Using certificate:\n" + hexToPem(response.hex));
235                                                                                                       
236                                                        //alert("cert: "+ cert.hex);
237                                                       
238                                                        var parameters = JSON.stringify({
239                                                                "fileId":fileId,
240                                                                "certificate":cert.hex,
241                                                                "reason":"prueba firma web",
242                                                                "location":"Oficina",
243                                                                "contact":"582746574336"
244                                                                });
245                                                       
246                                                        // ahora llamar al ajax de obtener la resena del pdf
247                                                        $.ajax({
248                                                                type: 'POST',
249                                                                contentType: 'application/json',                               
250                                                                //url:"https://192.168.12.125:8443/Murachi/murachi/archivos/pdfs",
251                                                                //url:"https://172.16.137.11:8443/Murachi/murachi/archivos/pdfs",
252                                                                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
253                                                                dataType: "json",
254                                                                data: parameters,               
255                                                                success: function(data, textStatus, jqXHR){
256                                                                        var json_x = data;
257                                                                        var hash = json_x['hash']; 
258                                                                        //alert("hash recibido del servidor "+hash);
259                                                                       
260                                                                        var hashtype = "SHA-256";
261                                                                        var lang = "eng";
262                                                                       
263                                                                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
264                                                                               
265                                                                                //var signature = response.hex.match(/.{1,64}/g).join("\n");
266                                                                        //log_text("Generated signature:\n" + response.hex.match(/.{1,64}/g).join("\n"));
267                                                                        //log_text("Generated signature:\n" + signature.hex);
268                                                                       
269                                                                        //alert("valor de la firma: " + signature.hex);
270                                                                       
271                                                                        $.ajax({
272                                                                                        type: 'POST',
273                                                                                        contentType: 'application/json',
274                                                                                        //url:"https://192.168.12.125:8443/Murachi/murachi/archivos/pdfs/resenas",
275                                                                                        //url:"https://172.16.137.11:8443/Murachi/murachi/archivos/pdfs/resenas",
276                                                                                        url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
277                                                                                        dataType: 'json',
278                                                                                        data: JSON.stringify({"signature":signature.hex}),
279                                                                                        success: function(data, textStatus, jqXHR){
280                                                                                                /*
281                                                                                                var json_x = data;
282                                                                                                var msg = json_x['message'];                                                                                           
283                                                                                                alert('Archivo firmado en el servidor: ' + msg);
284                                                                                                */
285                                                                                                alert('Archivo firmado correctamente: ' + data['signedFileId']);
286                                                                                               
287                                                                                                alert("ver respuesta");
288                                                                                                //var linkToDownload = "<a href=\"https://192.168.12.125:8443/Murachi/murachi/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
289                                                                                                //var linkToDownload = "<a href=\"https://172.16.137.11:8443/Murachi/murachi/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
290                                                                                                var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
291                                                                                                //alert(linkToDownload);
292                                                                                                document.getElementById("respuesta").innerHTML = linkToDownload; 
293                                                                                               
294                                                                                               
295                                                                                                //descargar el archivo
296                                                                                                /*
297                                                                                                //var urlToDownload =   "https://192.168.12.125:8443/Murachi/murachi/archivos/descargas/" + data['signedFileId'];
298                                                                                                $.ajax({
299                                                                                                        type: 'GET',
300                                                                                                        contentType: false,
301                                                                                                        url: "https://192.168.12.125:8443/Murachi/murachi/archivos/descargas/" + data['signedFileId'],
302                                                                                                        dataType: false,
303                                                                                                        data: false,
304                                                                                                        success: function(data, textStatus, jqXHR){
305                                                                                                                alert("descargo el archivo");
306                                                                                                        },
307                                                                                                        error: function(jqXHR, textStatus, errorThrown){
308                                                                                                                alert('error en descarga de archivo: ' + textStatus);
309                                                                                                                $("#respuesta").html("error en descarga de archivo: " + textStatus);
310                                                                                                        }
311                                                                                                });
312                                                                                                */
313                                                                                                // fin de descarga de archivo
314                                                                                                                                                                                               
315                                                                                               
316                                                                                        },
317                                                                                        error: function(jqXHR, textStatus, errorThrown){
318                                                                                                alert('error en pdfs/resenas: ' + textStatus);
319                                                                                                $("#respuesta").html("error en pdfs/resenas: " + textStatus);
320                                                                                        }
321                                                                                });
322                                                                                                                       
323                                                                        }, function(err) {
324                                                                                log_text("sign() failed: " + err);
325                                                                                alert("sign() failed: " + err);
326                                                                                $("#respuesta").html("sign() failed: " + err);
327                                                                });
328                                                                       
329                                                                },                                                             
330                                                                error: function(jqXHR, textStatus, errorThrown){
331                                                                        //alert('error: ' + textStatus);
332                                                                        //var responseText = jQuery.parseJSON(jqXHR.responseText);
333                                                                        alert('ajax error function: ' + jqXHR.responseText);
334                                                                        $("#respuesta").html("error function: " + jqXHR.responseText);
335                                                                }
336                                                               
337                                               
338                                                        });
339                                                       
340                                                       
341                                                       
342                                                }, function(err) {
343                                                        log_text("getCertificate() failed: " + err);
344                                                        alert("getCertificate() failed: " + err);
345                                                        $("#respuesta").html("getCertificate() failed: " + err);
346                                                });
347                                               
348                                               
349                                               
350                    },
351                        error: function(response) {
352                                //Que se ejecuta cuando finalice la petición de con error
353                                                $("#respuesta").html('Error...!!!');
354                                alert("ocurrio un error")
355                                        }
356            });
357        });
358    });
359    </script>
360
361
362
363        <!-- Función que se conecta se servicio web de verificación de la firma electrónica
364                captura el evento submit y toma el formulario para enviar el servicio web -->
365       
366        <script>
367    $(function(){
368        $("#verificar").on("submit", function(e){
369            e.preventDefault();
370            var f = $(this);
371           
372            //var formData = new FormData(document.getElementById("verificar"));
373            var formData = new FormData();
374           
375            //formData.append("dato", "valor");
376            formData.append("upload", $("#file-check-sign")[0].files[0]);
377            //formData.append(f.attr("name"), $(this)[0].files[0]);
378           
379            $.ajax({
380                //url: "https://192.168.12.125:8443/Murachi/murachi/archivos/firmados",
381                //url: "https://172.16.137.11:8443/Murachi/murachi/archivos/firmados",               
382                //url: "https://172.16.137.11:8443/JAXRS-Murachi/murachi/archivos",
383                url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/firmados",
384                type: "post",
385                dataType: "json",
386                data: formData,
387                cache: false,
388                contentType: false,
389                                processData: false,
390                                success: function(response) {
391                                                //alert(JSON.stringify(response));
392                                                var html = manejoJsonPDF(JSON.stringify(response));
393                                                //alert(html);
394                                                alert("ver respuesta")
395                                                document.getElementById("respuestaVerificacion").innerHTML = html;
396                    },
397                        error: function(response) {
398                                //Que se ejecuta cuando finalice la petición de con error
399                                                $("#respuestaVerificacion").html('Error...!!!');
400                                        }
401            });
402        });
403    });
404    </script>
405       
406       
407        <!--Función que cactura el evento del button reset del formulario verificar
408                y limpia el div respuesta (tabla de la verificación de la firmna)-->
409       
410        <script>
411                $(document).ready(function() {
412                $("#resetVerificacion").click(function() {       // apply to reset button's click event
413                        $("#respuestaVerificacion").html(''); 
414                });
415        });
416        </script>
417       
418         <!--Función que cactura el evento del button reset del formulario firmar
419            y limpia el div respuesta (tabla de la firma)-->
420       <script>
421                $(document).ready(function() {
422                $("#reset").click(function() {       // apply to reset button's click event
423                        $("#respuesta").html(''); 
424                });
425        });
426        </script>
427
428       
429        <!--Funcion para el manejo de un archivo json
430                Recibe el json (verificación de una firma pdf),
431                lo introduce en una tabla
432                y devuelve una un cadena de texto -->
433               
434               
435        <script>
436                function manejoJsonPDF(json) {
437                       
438                        var fielJsonEs = {fileId: "Identificador único del archivo en el servidor", fileExist:"El archivo se cargó exitosamente en el servidor", mimeType:"Tipo MIME del archivo verificado", error:"Extension not supported. En caso de que el archivo sea diferente de PDF y BDOC", numberOfSignatures:"Número de firmas existentes en el archivo", signatures:"Lista de firmas", signatureType:"Tipo de firma de archivo PDF", signedOn:"Fecha en que se realiza la firma", integrityCheck:"Chequea la integridad de la firma", timeStamp:"Estampilla de tiempo", reason:"Razón de la firma", location:"Ubicación donde se realiza la firma", alternativeNameOfTheSigner:"Nombre alternativo del firmante", signerCertificateValidFrom:"Fecha de inicio de validez del certificado", signerCertificateStillValid:"El certificado todavía está válido", signerCertificateHasExpired:"El certificado expiró", signatureCoversWholeDocument:"La firma abarca todo el documento PDF", filterSubtype:"Tipo de subfiltro: /adbe.pkcs7.sha1, /adbe.pkcs7.detached", signerCertificateSubject:"Sujeto firmante", signerCertificateValidAtTimeOfSigning:"El certificado es válido en el momento de la firma", encryptionAlgorithm:"Algoritmo de cifrado", timeStampService:"Servicio de estampillado de tiempo", digestAlgorithm:"Algoritmo hash (reseña)", certificatesVerifiedAgainstTheKeyStore:"Certificado verificado contra el repositorio de certificados confiables", documentRevision:"Número de revisión del documento PDF", nameOfTheSigner:"Nombre del firmante", totalDocumentRevisions:"Número total de revisiones del documento PDF", contactInfo:"Información de contacto del firmante", timeStampVerified:"Estampilla de tiempo verificada", signerCertificateIssuer:"Emisor del certificado firmante", signerCertificateValidTo:"Fecha de fin de validez del certificado", signerCertificateSerial:"BDOC: Serial del certificado del firmante", signatureProfile:"BDOC: Perfil de la firma", signatureMethod:"BDOC: Algoritmo de firma utilizado", signatureId:"BDOC: identificador de la firma", signatureSigningTime:"BDOC: Hora y fecha en que se realiza la firma", signerCertificateIsValid:"BDOC: El certificado firmante es válido", signatureValidationException:"BDOC: Exepciones de la validación de la firma", isValid:"BDOC: Firma electrónica válida", signerCertificateSubjectName:"BDOC: Nombre del sujeto firmante", containerValidation:"BDOC: Especifica si el contenedor posee una estructura válida", numberOfDataFiles:"BDOC: Cantidad de archivos incluidos en el contenedor BDOC", dataFiles:"BDOC: Lista de archivos incluidos en el contenedor", name:"BDOC: Nombre del archivo incluido en el contenedor", dataFileSize:"BDOC: Tamaño del archivo incluido en el contenedor", filename:"BDOC: Nombre del archivo incluido en el contenedor", mediaType:"BDOC: Tipo MIME del archivo incluido en el contenedor"};
439                        var objVarVerifique = JSON.parse(json);
440                        var signatures = ''; //variable que maneja las firmas
441                        var fields = ''; //variable que maneja los campos de la firma
442                        var title = '<h2>Información</h2> \n <p>Información de la firma electronica \n';
443                        var head = '<div class=\'container\'> \n <div class=\'table-responsive\'> \n <table id=\'example\' class=\'table table-bordered\' data-height=\'299\' > \n <thead> \n <tr>\n <th>#</th>\n <th>Campo</th>\n <th>Descripción</th> \n </tr>\n </thead>\n <tbody>\n';
444                        var footer = '</tbody> \n </table> \n </div> \n </div>';
445                        var html = title + head;
446                        var numsign = 0; 
447                               
448                        $.each(objVarVerifique, function(idx, obj) {
449                                if(idx == "fileExist"){
450                                        html += '<tr>\n<td>1</td>\n<td>' + ' El archivo se cargo exitosamente del servidor ' + '</td>\n<td>' + obj +' </td>\n</tr>\n';
451                                        }
452                                       
453                                if(idx == "numberOfSignatures"){
454                                        numsign = obj;
455                                        html += '<tr>\n<td>2</td>\n<td>' + ' Número de firmas existentes en el archivo ' + '</td>\n<td>' + obj +' </td>\n</tr>\n';
456                                        html += footer + head; 
457                                        }
458                                       
459                                if(idx == "signatures") { 
460                                signatures = obj; //se almacena la(s) cabecera(s) de las firmas
461                                }
462                                });
463                                               
464                                var contsing = 1; // variable que indica la firma donde esta posicionado
465                                               
466                                <!-- recorre las firmas signatures -->
467               
468                                $.each(signatures, function(idx, obj) { 
469                                        var contfiels = 1; // variable que indica el campo de la firma
470                                        fields = obj; // variable que almacena los campos de la firma
471                                        $.each(fields, function(id, objx) { <!-- Recorreo los campos de la firma -->
472                                                html += '<tr>\n<td>'+contfiels+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objx +' </td>\n</tr>\n';
473                                                contfiels++;
474                                        });
475                                        contsing++;
476                                        if(contsing>numsign) html += footer;
477                                        else html += footer + head                             
478                                });
479                                html += footer;
480                                return(html);
481            }
482        </script>
483
484
485
486   
487<!--Final Funciones que utiliza el sistema -->
488
489        <body>
490                <noscript><h1>Por favor habilite JavaScript!</h1></noscript>
491               
492                <div class="container">
493                        <div id="operation">
494                                <ul id="tabs-operation" class="nav nav-tabs" data-tabs="tabs">
495                                        <li class="active"><a href="#firmar" data-toggle="tab">Firmar</a></li>
496                                        <li><a href="#verificar" data-toggle="tab">Verificar</a></li>
497                                </ul>
498                                <div id="operation-tab-content" class="tab-content">
499                                       
500                                        <!-------------------Sección para firmar (formulario)------------------------->
501                                       
502                                        <div class="tab-pane active" id="firmar">
503                                                <h1>Firmar Electrónicamente</h1>
504                                                <div class="container kv-main">
505                                                        <!-- <form enctype="multipart/form-data" action="https://192.168.12.125:8443/Murachi/murachi/archivos" method="post" id="firmar"> -->
506                                                        <!-- <form enctype="multipart/form-data" action="https://172.16.137.11:8443/Murachi/murachi/archivos" method="post" id="firmar">  -->
507                                                        <form enctype="multipart/form-data" action="https://murachi.cenditel.gob.ve/Murachi/0.1/archivos" method="post" id="firmar">
508                                                                <h2>Formato para la Firma</h2>
509                                                                <p>Seleccione el tipo de formato que va a utilizar para firmar electrónicamente</p>                     
510                                                                <div class="radio">
511                                                                        <label><input type="radio" name="optradio">PDF</label>
512                                                                </div>
513                                                                <div class="radio">
514                                                                        <label><input type="radio" name="optradio">BDOC</label>
515                                                                </div>
516                                                                <br>
517                                                        <input id="file-sign" class="file" type="file" multiple data-min-file-count="1" name="upload">
518                                                                <br>
519                                                                <button type="submit" class="btn btn-primary">Enviar</button>
520                                                                <button type="reset" id="reset"  class="btn btn-default">Limpiar</button>
521                                                                <br>
522                                                                <br>
523                                                                <div id="respuesta"> </div>
524
525                                                        </form>
526                                                        <br>
527                                                </div>
528                                        </div>
529                                       
530                                        <!--------------------Sección para verificar (formulario)---------------------------->
531                                       
532                                        <div class="tab-pane" id="verificar">
533                                                <h1>Verificar la firma electrónica</h1>
534                                                <div class="container kv-main">
535                                                        <!-- <form enctype="multipart/form-data" action="https://192.168.12.125:8443/Murachi/murachi/archivos/firmados" method="post" id="verificar"> -->
536                                                        <!-- <form enctype="multipart/form-data" action="https://172.16.137.11:8443/Murachi/murachi/archivos/firmados" method="post" id="verificar"> -->
537                                                        <form enctype="multipart/form-data" action="https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/firmados" method="post" id="verificar">
538                                                                <input id="file-check-sign" class="file" type="file" multiple data-min-file-count="1" name="upload">
539                                                                <br>
540                                                                <button type="submit" class="btn btn-primary">Enviar</button>
541                                                                <button type="reset" id="resetVerificacion" class="btn btn-default">Limpiar</button>
542                                                                <br>
543                                                                <br>
544                                                                <div id="respuestaVerificacion"> </div>
545
546                                                        </form>
547                                                </div>
548                                        </div>
549                                </div>
550                        </div>
551                        <script type="text/javascript">
552                                jQuery(document).ready(function ($) {
553                                        $('#tabs').tab();
554                                });
555                        </script>
556                </div> 
557                <!-- container -->
558               
559                <!--
560                <p><button id="click1" onclick='sign();'>Click here to invoke <b>sign()</b></button></p>
561               
562                <p><button id="click2" onclick='logGetCertificate();'>get Certificate</button></p>
563                -->
564               
565                <p>
566                <div id="log" style="white-space: pre; font-family: monospace;"></div>
567               
568        </body>
569</html>
Note: See TracBrowser for help on using the repository browser.