106 | | console.log("*.... cargo el archivo .p12 ....*"); |
107 | | var contents = e.target.result; |
108 | | pkcs12Der = arrayBufferToString(contents) |
109 | | pkcs12B64 = forge.util.encode64(pkcs12Der); |
110 | | var pkcs12Asn1 = forge.asn1.fromDer(pkcs12Der); |
111 | | //var password = $('#pfxp').val(); |
112 | | var password = "123456"; |
113 | | |
114 | | pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, false, password); |
| 110 | console.log("*.... cargo el archivo .p12 ....*");[[BR]] |
| 111 | |
| 112 | var contents = e.target.result;[[BR]] |
| 113 | |
| 114 | pkcs12Der = arrayBufferToString(contents);[[BR]] |
| 115 | |
| 116 | pkcs12B64 = forge.util.encode64(pkcs12Der);[[BR]] |
| 117 | |
| 118 | var pkcs12Asn1 = forge.asn1.fromDer(pkcs12Der);[[BR]] |
| 119 | |
| 120 | var password = $('#pfxp').val();[[BR]] |
| 121 | |
| 122 | pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, false, password);[[BR]] |
| 123 | |
141 | | certP12bag = safeBag.cert; |
142 | | certpem = "" + forge.pki.certificateToPem(certP12bag).toString(); |
143 | | certBytesHex = forge.util.bytesToHex(certpem); |
144 | | } |
145 | | } |
146 | | } |
147 | | } |
| 160 | certP12bag = safeBag.cert;[[BR]] |
| 161 | |
| 162 | certpem = "" + forge.pki.certificateToPem(certP12bag).toString();[[BR]] |
| 163 | |
| 164 | certBytesHex = forge.util.bytesToHex(certpem);[[BR]] |
| 165 | |
| 166 | }[[BR]] |
| 167 | |
| 168 | } [[BR]] |
| 169 | |
| 170 | }[[BR]] |
| 171 | |
| 172 | }[[BR]] |
| 173 | |
| 174 | }[[BR]] |
| 175 | |
| 176 | reader.readAsArrayBuffer(file);[[BR]] |
| 177 | |
| 178 | }[[BR]] |
| 179 | |
| 180 | || |
| 181 | ---- |
| 182 | [[BR]] |
| 183 | Con esta función obtenemos la clave privada almacenada en la variable privateKey y el certificado almacenado en la variable certBytesHex. |
| 184 | |
| 185 | La clave privada es un conjunto de bytes que debemos convertir a string, para esto se tiene la siguiente función |
| 186 | [[BR]] |
| 187 | |
| 188 | ---- |
| 189 | || function arrayBufferToString( buffer ) [[BR]] |
| 190 | |
| 191 | { |
| 192 | var binary = '';[[BR]] |
| 193 | |
| 194 | var bytes = new Uint8Array( buffer );[[BR]] |
| 195 | |
| 196 | var len = bytes.byteLength;[[BR]] |
| 197 | |
| 198 | for (var i = 0; i < len; i++) [[BR]] |
| 199 | |
| 200 | { |
| 201 | binary += String.fromCharCode( bytes[ i ] );[[BR]] |
| 202 | |
193 | | || function SignFilePDF() { |
194 | | //cargar el archivo .p12 |
195 | | getCertificate(); |
196 | | var fileInput = document.getElementById("file-sign"); |
197 | | var list = fileInput.files; |
198 | | var form = $('firmar')[0]; |
199 | | var data = new FormData(); |
200 | | data.append('upload', $("#file-sign")[0].files[0]); |
201 | | $.ajax({ |
202 | | url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos", |
203 | | type: "post", |
204 | | dataType: "json", |
205 | | data: data, |
206 | | cache: false, |
207 | | contentType: false, |
208 | | processData: false, |
209 | | xhrFields: {withCredentials: true}, |
210 | | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, |
211 | | success: function(response) { |
212 | | var responseString = JSON.stringify(response); |
213 | | document.getElementById("seccion1").innerHTML = responseString; |
214 | | } |
| 229 | || function SignFilePDF() {[[BR]] |
| 230 | |
| 231 | //cargar el archivo .p12[[BR]] |
| 232 | |
| 233 | getCertificate();[[BR]] |
| 234 | |
| 235 | var fileInput = document.getElementById("file-sign");[[BR]] |
| 236 | |
| 237 | var list = fileInput.files;[[BR]] |
| 238 | |
| 239 | var form = $('firmar')[0];[[BR]] |
| 240 | |
| 241 | var data = new FormData();[[BR]] |
| 242 | |
| 243 | data.append('upload', $("#file-sign")[0].files[0]);[[BR]] |
| 244 | |
| 245 | $.ajax({ [[BR]] |
| 246 | |
| 247 | url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos",[[BR]] |
| 248 | |
| 249 | type: "post",[[BR]] |
| 250 | |
| 251 | dataType: "json",[[BR]] |
| 252 | |
| 253 | data: data,[[BR]] |
| 254 | |
| 255 | cache: false,[[BR]] |
| 256 | |
| 257 | contentType: false,[[BR]] |
| 258 | |
| 259 | processData: false,[[BR]] |
| 260 | |
| 261 | xhrFields: {withCredentials: true},[[BR]] |
| 262 | |
| 263 | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},[[BR]] |
| 264 | |
| 265 | success: function(response) {[[BR]] |
| 266 | |
| 267 | var responseString = JSON.stringify(response); [[BR]] |
| 268 | |
| 269 | document.getElementById("seccion1").innerHTML = responseString;[[BR]] |
| 270 | |
| 271 | }[[BR]] |
| 272 | |
254 | | // Get PFX |
255 | | var fileInput = document.getElementById('pfx'); |
256 | | var file = fileInput.files[0]; |
257 | | // Read it |
258 | | var reader = new FileReader(); |
259 | | reader.onload = function(e) { |
260 | | var contents = e.target.result; |
261 | | pkcs12Der = arrayBufferToString(contents) |
262 | | pkcs12B64 = forge.util.encode64(pkcs12Der); |
263 | | var pkcs12Asn1 = forge.asn1.fromDer(pkcs12Der); |
| 317 | // Get PFX[[BR]] |
| 318 | var fileInput = document.getElementById('pfx');[[BR]] |
| 319 | var file = fileInput.files[0];[[BR]] |
| 320 | // Read it[[BR]] |
| 321 | var reader = new FileReader();[[BR]] |
| 322 | reader.onload = function(e) {[[BR]] |
| 323 | var contents = e.target.result;[[BR]] |
| 324 | pkcs12Der = arrayBufferToString(contents);[[BR]] |
| 325 | pkcs12B64 = forge.util.encode64(pkcs12Der);[[BR]] |
| 326 | var pkcs12Asn1 = forge.asn1.fromDer(pkcs12Der);[[BR]] |
266 | | pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, false, password); |
267 | | // load keys |
268 | | for(var sci = 0; sci < pkcs12.safeContents.length; ++sci) |
269 | | { |
270 | | var safeContents = pkcs12.safeContents[sci]; |
271 | | for(var sbi = 0; sbi < safeContents.safeBags.length; ++sbi) |
272 | | { |
273 | | var safeBag = safeContents.safeBags[sbi]; |
274 | | if(safeBag.type === forge.pki.oids.keyBag) |
275 | | { |
276 | | //Found plain private key |
277 | | privateKey = safeBag.key; |
278 | | } |
279 | | else |
280 | | if(safeBag.type === forge.pki.oids.pkcs8ShroudedKeyBag) |
281 | | { |
282 | | // found encrypted private key |
283 | | privateKey = safeBag.key; |
284 | | } |
285 | | else |
286 | | if(safeBag.type === forge.pki.oids.certBag) |
287 | | { |
288 | | // this bag has a certificate... |
289 | | certCount = certCount +1; |
290 | | console.log("GET_CERTIFICATE___"+ certCount + "...certBag Ok"); |
291 | | |
292 | | if(certP12bag == null) |
293 | | { |
294 | | certP12bag = safeBag.cert; |
295 | | certpem = "" + forge.pki.certificateToPem(certP12bag).toString(); |
296 | | certBytesHex = forge.util.bytesToHex(certpem); |
297 | | } |
298 | | } |
299 | | } |
300 | | } |
301 | | } |
302 | | reader.readAsArrayBuffer(file); |
303 | | } |
304 | | |
305 | | //funcion que ejecuta el proceso de firma electrónica usando el servicio Murachí |
306 | | function SignFilePDF() { |
307 | | //cargar el archivo .p12 |
308 | | getCertificate(); |
309 | | var fileInput = document.getElementById("file-sign"); |
310 | | var list = fileInput.files; |
311 | | var form = $('firmar')[0]; |
312 | | var data = new FormData(); |
313 | | data.append('upload', $("#file-sign")[0].files[0]); |
314 | | $.ajax({ |
315 | | url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos", |
316 | | type: "post", |
317 | | dataType: "json", |
318 | | data: data, |
319 | | cache: false, |
320 | | contentType: false, |
321 | | processData: false, |
322 | | xhrFields: {withCredentials: true}, |
323 | | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, |
324 | | success: function(response) { |
325 | | var responseString = JSON.stringify(response); |
326 | | document.getElementById("seccion1").innerHTML = responseString; |
327 | | } |
328 | | )} |
| 329 | pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, false, password);[[BR]] |
| 330 | // load keys[[BR]] |
| 331 | for(var sci = 0; sci < pkcs12.safeContents.length; ++sci) [[BR]] |
| 332 | {[[BR]] |
| 333 | var safeContents = pkcs12.safeContents[sci];[[BR]] |
| 334 | for(var sbi = 0; sbi < safeContents.safeBags.length; ++sbi) [[BR]] |
| 335 | {[[BR]] |
| 336 | var safeBag = safeContents.safeBags[sbi];[[BR]] |
| 337 | if(safeBag.type === forge.pki.oids.keyBag) [[BR]] |
| 338 | {[[BR]] |
| 339 | //Found plain private key[[BR]] |
| 340 | privateKey = safeBag.key;[[BR]] |
| 341 | } [[BR]] |
| 342 | else [[BR]] |
| 343 | if(safeBag.type === forge.pki.oids.pkcs8ShroudedKeyBag) [[BR]] |
| 344 | {[[BR]] |
| 345 | // found encrypted private key[[BR]] |
| 346 | privateKey = safeBag.key;[[BR]] |
| 347 | } [[BR]] |
| 348 | else [[BR]] |
| 349 | if(safeBag.type === forge.pki.oids.certBag) [[BR]] |
| 350 | {[[BR]] |
| 351 | // this bag has a certificate...[[BR]] |
| 352 | certCount = certCount +1; [[BR]] |
| 353 | console.log("GET_CERTIFICATE___"+ certCount + "...certBag Ok"); [[BR]] |
| 354 | |
| 355 | if(certP12bag == null) [[BR]] |
| 356 | { [[BR]] |
| 357 | certP12bag = safeBag.cert; [[BR]] |
| 358 | certpem = "" + forge.pki.certificateToPem(certP12bag).toString(); [[BR]] |
| 359 | certBytesHex = forge.util.bytesToHex(certpem); [[BR]] |
| 360 | } [[BR]] |
| 361 | } [[BR]] |
| 362 | } [[BR]] |
| 363 | } [[BR]] |
| 364 | } [[BR]] |
| 365 | reader.readAsArrayBuffer(file); [[BR]] |
| 366 | } [[BR]] |
| 367 | |
| 368 | //funcion que ejecuta el proceso de firma electrónica usando el servicio Murachí [[BR]] |
| 369 | function SignFilePDF() { [[BR]] |
| 370 | //cargar el archivo .p12 [[BR]] |
| 371 | getCertificate(); [[BR]] |
| 372 | var fileInput = document.getElementById("file-sign"); [[BR]] |
| 373 | var list = fileInput.files; [[BR]] |
| 374 | var form = $('firmar')[0]; [[BR]] |
| 375 | var data = new FormData(); [[BR]] |
| 376 | data.append('upload', $("#file-sign")[0].files[0]); [[BR]] |
| 377 | $.ajax({ [[BR]] |
| 378 | url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos", [[BR]] |
| 379 | type: "post", [[BR]] |
| 380 | dataType: "json", [[BR]] |
| 381 | data: data, [[BR]] |
| 382 | cache: false, [[BR]] |
| 383 | contentType: false, [[BR]] |
| 384 | processData: false,[[BR]] |
| 385 | xhrFields: {withCredentials: true},[[BR]] |
| 386 | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},[[BR]] |
| 387 | success: function(response) { [[BR]] |
| 388 | var responseString = JSON.stringify(response); [[BR]] |
| 389 | document.getElementById("seccion1").innerHTML = responseString;[[BR]] |
| 390 | }[[BR]] |
| 391 | )}[[BR]] |
355 | | document.getElementById("seccion1").innerHTML = responseString; |
356 | | var fileId = response.fileId.toString(); |
357 | | alert("antes de leer el certificado"); |
358 | | if(certBytesHex != null) { |
359 | | console.log("tengo certificado"); |
360 | | var cert = certBytesHex; |
361 | | console.log("certGet:"+ cert); |
362 | | var parameters = JSON.stringify({ |
363 | | "fileId":fileId, |
364 | | "certificate":cert, |
365 | | "reason":"Certificado", |
366 | | "location":"CENDITEL", |
367 | | "contact":"582746574336", |
368 | | "signatureVisible":"true" |
369 | | }); |
370 | | console.log("cert...3"); |
371 | | $.ajax({ |
372 | | type: 'POST', |
373 | | contentType: 'application/json', |
374 | | url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs", |
375 | | dataType: "json", |
376 | | data: parameters, |
377 | | xhrFields: {withCredentials: true}, |
378 | | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, |
379 | | success: function(data, textStatus, jqXHR) { |
380 | | var responseString = JSON.stringify(data); |
381 | | document.getElementById("seccion2").innerHTML = responseString; |
382 | | } |
383 | | )} |
| 418 | document.getElementById("seccion1").innerHTML = responseString; [[BR]] |
| 419 | var fileId = response.fileId.toString();[[BR]] |
| 420 | alert("antes de leer el certificado");[[BR]] |
| 421 | if(certBytesHex != null) {[[BR]] |
| 422 | console.log("tengo certificado");[[BR]] |
| 423 | var cert = certBytesHex;[[BR]] |
| 424 | console.log("certGet:"+ cert);[[BR]] |
| 425 | var parameters = JSON.stringify({[[BR]] |
| 426 | "fileId":fileId,[[BR]] |
| 427 | "certificate":cert,[[BR]] |
| 428 | "reason":"Certificado",[[BR]] |
| 429 | "location":"CENDITEL",[[BR]] |
| 430 | "contact":"582746574336",[[BR]] |
| 431 | "signatureVisible":"true"[[BR]] |
| 432 | });[[BR]] |
| 433 | console.log("cert...3");[[BR]] |
| 434 | $.ajax({[[BR]] |
| 435 | type: 'POST',[[BR]] |
| 436 | contentType: 'application/json', [[BR]] |
| 437 | url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",[[BR]] |
| 438 | dataType: "json",[[BR]] |
| 439 | data: parameters,[[BR]] |
| 440 | xhrFields: {withCredentials: true}, [[BR]] |
| 441 | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},[[BR]] |
| 442 | success: function(data, textStatus, jqXHR) {[[BR]] |
| 443 | var responseString = JSON.stringify(data);[[BR]] |
| 444 | document.getElementById("seccion2").innerHTML = responseString;[[BR]] |
| 445 | }[[BR]] |
| 446 | )}[[BR]] |
409 | | var binary = ''; |
410 | | var bytes = new Uint8Array( buffer ); |
411 | | var len = bytes.byteLength; |
412 | | for (var i = 0; i < len; i++) |
413 | | { |
414 | | binary += String.fromCharCode( bytes[ i ] ); |
415 | | } |
416 | | return binary; |
417 | | } |
418 | | |
419 | | //function que obtengo la clave privada y el certificado del archivo .p12 |
420 | | function getCertificate(e) |
421 | | { |
422 | | // Get PFX |
423 | | var fileInput = document.getElementById('pfx'); |
424 | | var file = fileInput.files[0]; |
425 | | // Read it |
426 | | var reader = new FileReader(); |
427 | | reader.onload = function(e) { |
428 | | console.log("*.... cargo el archivo .p12 ....*"); |
429 | | var contents = e.target.result; |
430 | | pkcs12Der = arrayBufferToString(contents) |
431 | | pkcs12B64 = forge.util.encode64(pkcs12Der); |
432 | | var pkcs12Asn1 = forge.asn1.fromDer(pkcs12Der); |
433 | | var password = $('#pfxp').val(); |
434 | | pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, false, password); |
435 | | // load keys |
436 | | for(var sci = 0; sci < pkcs12.safeContents.length; ++sci) |
437 | | { |
438 | | var safeContents = pkcs12.safeContents[sci]; |
439 | | for(var sbi = 0; sbi < safeContents.safeBags.length; ++sbi) |
440 | | { |
441 | | var safeBag = safeContents.safeBags[sbi]; |
442 | | if(safeBag.type === forge.pki.oids.keyBag) |
443 | | { |
444 | | //Found plain private key |
445 | | privateKey = safeBag.key; |
446 | | } |
447 | | else |
448 | | if(safeBag.type === forge.pki.oids.pkcs8ShroudedKeyBag) |
449 | | { |
450 | | // found encrypted private key |
451 | | privateKey = safeBag.key; |
452 | | } |
453 | | else |
454 | | if(safeBag.type === forge.pki.oids.certBag) |
455 | | { |
456 | | // this bag has a certificate... |
457 | | certCount = certCount +1; |
458 | | console.log("GET_CERTIFICATE___"+ certCount + "...certBag Ok"); |
459 | | |
460 | | if(certP12bag == null) |
461 | | { |
462 | | certP12bag = safeBag.cert; |
463 | | certpem = "" + forge.pki.certificateToPem(certP12bag).toString(); |
464 | | certBytesHex = forge.util.bytesToHex(certpem); |
465 | | } |
466 | | } |
467 | | } |
468 | | } |
469 | | } |
470 | | reader.readAsArrayBuffer(file); |
471 | | } |
472 | | |
| 472 | var binary = '';[[BR]] |
| 473 | var bytes = new Uint8Array( buffer );[[BR]] |
| 474 | var len = bytes.byteLength;[[BR]] |
| 475 | for (var i = 0; i < len; i++) [[BR]] |
| 476 | {[[BR]] |
| 477 | binary += String.fromCharCode( bytes[ i ] );[[BR]] |
| 478 | }[[BR]] |
| 479 | return binary;[[BR]] |
| 480 | }[[BR]] |
| 481 | |
| 482 | //function que obtengo la clave privada y el certificado del archivo .p12[[BR]] |
| 483 | function getCertificate(e)[[BR]] |
| 484 | {[[BR]] |
| 485 | // Get PFX[[BR]] |
| 486 | var fileInput = document.getElementById('pfx');[[BR]] |
| 487 | var file = fileInput.files[0];[[BR]] |
| 488 | // Read it[[BR]] |
| 489 | var reader = new FileReader();[[BR]] |
| 490 | reader.onload = function(e) {[[BR]] |
| 491 | console.log("*.... cargo el archivo .p12 ....*");[[BR]] |
| 492 | var contents = e.target.result;[[BR]] |
| 493 | pkcs12Der = arrayBufferToString(contents);[[BR]] |
| 494 | pkcs12B64 = forge.util.encode64(pkcs12Der);[[BR]] |
| 495 | var pkcs12Asn1 = forge.asn1.fromDer(pkcs12Der);[[BR]] |
| 496 | var password = $('#pfxp').val();[[BR]] |
| 497 | pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, false, password);[[BR]] |
| 498 | // load keys[[BR]] |
| 499 | for(var sci = 0; sci < pkcs12.safeContents.length; ++sci) [[BR]] |
| 500 | {[[BR]] |
| 501 | var safeContents = pkcs12.safeContents[sci];[[BR]] |
| 502 | for(var sbi = 0; sbi < safeContents.safeBags.length; ++sbi) [[BR]] |
| 503 | {[[BR]] |
| 504 | var safeBag = safeContents.safeBags[sbi];[[BR]] |
| 505 | if(safeBag.type === forge.pki.oids.keyBag) [[BR]] |
| 506 | {[[BR]] |
| 507 | //Found plain private key[[BR]] |
| 508 | privateKey = safeBag.key;[[BR]] |
| 509 | } [[BR]] |
| 510 | else [[BR]] |
| 511 | if(safeBag.type === forge.pki.oids.pkcs8ShroudedKeyBag) [[BR]] |
| 512 | {[[BR]] |
| 513 | // found encrypted private key[[BR]] |
| 514 | privateKey = safeBag.key;[[BR]] |
| 515 | } [[BR]] |
| 516 | else [[BR]] |
| 517 | if(safeBag.type === forge.pki.oids.certBag) [[BR]] |
| 518 | {[[BR]] |
| 519 | // this bag has a certificate...[[BR]] |
| 520 | certCount = certCount +1; [[BR]] |
| 521 | console.log("GET_CERTIFICATE___"+ certCount + "...certBag Ok"); [[BR]] |
| 522 | |
| 523 | if(certP12bag == null) [[BR]] |
| 524 | {[[BR]] |
| 525 | certP12bag = safeBag.cert;[[BR]] |
| 526 | certpem = "" + forge.pki.certificateToPem(certP12bag).toString();[[BR]] |
| 527 | certBytesHex = forge.util.bytesToHex(certpem);[[BR]] |
| 528 | }[[BR]] |
| 529 | } [[BR]] |
| 530 | }[[BR]] |
| 531 | }[[BR]] |
| 532 | }[[BR]] |
| 533 | reader.readAsArrayBuffer(file);[[BR]] |
| 534 | }[[BR]] |
| 535 | [[BR]] |
474 | | function SignFilePDF() { |
475 | | //cargar el archivo .p12 |
476 | | getCertificate(); |
477 | | var fileInput = document.getElementById("file-sign"); |
478 | | var list = fileInput.files; |
479 | | var form = $('firmar')[0]; |
480 | | var data = new FormData(); |
481 | | data.append('upload', $("#file-sign")[0].files[0]); |
482 | | $.ajax({ |
483 | | url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos", |
484 | | type: "post", |
485 | | dataType: "json", |
486 | | data: data, |
487 | | cache: false, |
488 | | contentType: false, |
489 | | processData: false, |
490 | | xhrFields: {withCredentials: true}, |
491 | | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, |
492 | | success: function(response) { |
493 | | var responseString = JSON.stringify(response); |
494 | | document.getElementById("seccion1").innerHTML = responseString; |
495 | | var fileId = response.fileId.toString(); |
496 | | alert("antes de leer el certificado"); |
497 | | if(certBytesHex != null) { |
498 | | var cert = certBytesHex; |
499 | | var parameters = JSON.stringify({ |
500 | | "fileId":fileId, |
501 | | "certificate":cert, |
502 | | "reason":"Certificado", |
503 | | "location":"CENDITEL", |
504 | | "contact":"582746574336", |
505 | | "signatureVisible":"true" |
506 | | }); |
| 537 | function SignFilePDF() {[[BR]] |
| 538 | //cargar el archivo .p12[[BR]] |
| 539 | getCertificate();[[BR]] |
| 540 | var fileInput = document.getElementById("file-sign");[[BR]] |
| 541 | var list = fileInput.files;[[BR]] |
| 542 | var form = $('firmar')[0];[[BR]] |
| 543 | var data = new FormData();[[BR]] |
| 544 | data.append('upload', $("#file-sign")[0].files[0]);[[BR]] |
| 545 | $.ajax({ [[BR]] |
| 546 | url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos",[[BR]] |
| 547 | type: "post",[[BR]] |
| 548 | dataType: "json",[[BR]] |
| 549 | data: data,[[BR]] |
| 550 | cache: false,[[BR]] |
| 551 | contentType: false,[[BR]] |
| 552 | processData: false,[[BR]] |
| 553 | xhrFields: {withCredentials: true},[[BR]] |
| 554 | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},[[BR]] |
| 555 | success: function(response) {[[BR]] |
| 556 | var responseString = JSON.stringify(response); [[BR]] |
| 557 | document.getElementById("seccion1").innerHTML = responseString;[[BR]] |
| 558 | var fileId = response.fileId.toString();[[BR]] |
| 559 | alert("antes de leer el certificado");[[BR]] |
| 560 | if(certBytesHex != null) {[[BR]] |
| 561 | var cert = certBytesHex;[[BR]] |
| 562 | var parameters = JSON.stringify({[[BR]] |
| 563 | "fileId":fileId,[[BR]] |
| 564 | "certificate":cert,[[BR]] |
| 565 | "reason":"Certificado",[[BR]] |
| 566 | "location":"CENDITEL",[[BR]] |
| 567 | "contact":"582746574336",[[BR]] |
| 568 | "signatureVisible":"true"[[BR]] |
| 569 | });[[BR]] |
508 | | $.ajax({ |
509 | | type: 'POST', |
510 | | contentType: 'application/json', |
511 | | url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs", |
512 | | dataType: "json", |
513 | | data: parameters, |
514 | | xhrFields: {withCredentials: true}, |
515 | | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, |
516 | | success: function(data, textStatus, jqXHR) { |
517 | | var responseString = JSON.stringify(data); |
518 | | document.getElementById("seccion2").innerHTML = responseString; |
519 | | } |
520 | | )} |
521 | | } |
522 | | )} |
| 571 | $.ajax({[[BR]] |
| 572 | type: 'POST',[[BR]] |
| 573 | contentType: 'application/json', [[BR]] |
| 574 | url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",[[BR]] |
| 575 | dataType: "json",[[BR]] |
| 576 | data: parameters,[[BR]] |
| 577 | xhrFields: {withCredentials: true}, [[BR]] |
| 578 | headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},[[BR]] |
| 579 | success: function(data, textStatus, jqXHR) {[[BR]] |
| 580 | var responseString = JSON.stringify(data);[[BR]] |
| 581 | document.getElementById("seccion2").innerHTML = responseString;[[BR]] |
| 582 | }[[BR]] |
| 583 | )}[[BR]] |
| 584 | }[[BR]] |
| 585 | )}[[BR]] |