Changes between Version 15 and Version 16 of actividades_2018_pruebas


Ignore:
Timestamp:
May 31, 2018, 8:36:44 AM (6 years ago)
Author:
pbuitrago
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • actividades_2018_pruebas

    v15 v16  
    1313* ''' Subir documento pdf: ''' En este paso se carga al sistema Murachí el archivo usando el recurso “:/Murachi/0.1/archivos/” y se obtiene como respuesta el identificador único del archivo pdf (:identificador_unico_de_archivo_pdf).
    1414
    15 * '''Preparar firma del archivo:''' En este caso se envía el certificado firmante al sistema Murachí junto con otros parámetros necesarios para la firma electrónica. En esta ocasión se utiliza biblioteca de JavaScript Forge y crytpto. Con esta librería podemos gestionar los archivos .p12 o .pfx 
    16 
    17 * '''Completar la firma del archivo:''' En este paso se va a enviar al sistema Murachí el hash cifrado utilizando el recurso :Murachi/0.1/archivos/pdfs/resenas, para completar la firma electrónica. Aquí se utiliza de nuevo la librería JavaScript Forge y Crytpto para acceder al archivo y firmar el hash que se obtuvo en la sección anterior, usando el recurso :firmar_hash(sign). Obtenemos del sistema Murachí el identificador único del archivo firmado.
     15* '''Preparar firma del archivo:''' En este caso se envía el certificado firmante al sistema Murachí junto con otros parámetros necesarios para la firma electrónica. En esta ocasión se utiliza biblioteca de JavaScript Forge y crytpto. Con esta librería podemos gestionar los archivos ''.p12'' o ''.pfx'' 
     16
     17* '''Completar la firma del archivo:''' En este paso se va a enviar al sistema Murachí el hash cifrado utilizando el recurso '':Murachi/0.1/archivos/pdfs/resenas'', para completar la firma electrónica. Aquí se utiliza de nuevo la librería ''JavaScript Forge y Crytpto'' para acceder al archivo y firmar el ''hash'' que se obtuvo en la sección anterior, usando el recurso :firmar_hash(sign). Obtenemos del sistema Murachí el identificador único del archivo firmado.
    1818Como el servicio de firma electrónica se realiza en varios pasos vamos a dividir el ejercicio en secciones.
    1919
     
    2222== Sección 1: Subir documento pdf ==
    2323
    24 En la primera sección se envía al sistema Murachí el archivo pdf que se va a firmar. Entonces para esta sección se requiere de un formulario que permita tomar del sistema de archivo documentos pdf y luego enviarlo con el método ''$.ajax usando el recurso /Murachi/0.1/archivos/''
     24En la primera sección se envía al sistema Murachí el archivo ''pdf'' que se va a firmar. Entonces para esta sección se requiere de un formulario que permita tomar del sistema de archivo documentos pdf y luego enviarlo con el método ''$.ajax'' usando el recurso ''/Murachi/0.1/archivos/''
    2525
    2626'''Característica del formulario HTML'''
     
    6969Los elementos <div> del formulario con id = "sección1", “sección2” y “sección3” se utiliza para mostrar los resultados correspondientes a los 3 procesos descritos para la firma electrónica (consumo del servicio a Murachí).
    7070
    71 Como se va a utilizar certificado con soporte a software se requiere tener en la pagina una sección que me permita cargar a la pagina el archivo .p12 o .pxf
     71Como se va a utilizar certificado con soporte a software se requiere tener en la pagina una sección que me permita cargar a la pagina el archivo ''.p12'' o ''.pxf''
    7272
    7373[[br]]
     
    181181Con esta función obtenemos la clave privada almacenada en la variable ''privateKey'' y el certificado almacenado en la variable ''certBytesHex''.
    182182
    183 La clave privada es un conjunto de bytes que debemos convertir a string, para esto se tiene la siguiente función
     183La clave privada es un conjunto de bytes que debemos convertir a ''string'', para esto se tiene la siguiente función
    184184
    185185[[BR]]
     
    212212
    213213'''Opciones de configuración de la petición $.ajax:'''
    214 '''ulr:''' Establece la URL en donde se realiza la petición, para esta sección es ''"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos"''.
    215 '''type:''' Establece el tipo de petición, para esta actividad vamos a utilizar ''"POST"''.
    216 '''dataType:''' Establece el formato de la respuesta que es permitido, si el servidor devuelve información con un formato diferente al especificado el código fallará. Para este proceso se establece “json”.
    217 '''data:''' Establece la información que se enviará al servidor. Para este proceso se envía el archivo almacenado en una variable de tipo ''FormaData''.
    218 '''contentType:''' Establece el tipo de codificación que se va a utilizar, para esta actividad es ''"application/json"''.
    219 '''processData:''' Establece si la información que se envía al servidor debe ser procesada a una cadena de caracteres. Para evitar esto se debe utilizar el valor ''“false”''. En esta sección sólo se quiere enviar el archivo sin ser procesado.
    220 '''xhrFields:''' {withCredentials: true} esta característica puede usarse para establecer la propiedad de '''withCredentials'''. Si se establece ''TRUE'' permite que se pase los ''cookies'' al servidor y permitir solicitudes de dominios cruzados.
    221 '''headers:''' {"Authorization":"Basic YWRtaW46YWRtaW4="} autenticación básica HTTP
     214 * '''ulr:''' Establece la URL en donde se realiza la petición, para esta sección es ''"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos"''.
     215 * '''type:''' Establece el tipo de petición, para esta actividad vamos a utilizar ''"POST"''.
     216 * '''dataType:''' Establece el formato de la respuesta que es permitido, si el servidor devuelve información con un formato diferente al especificado el código fallará. Para este proceso se establece “json”.
     217 * '''data:''' Establece la información que se enviará al servidor. Para este proceso se envía el archivo almacenado en una variable de tipo ''FormaData''.
     218 * '''contentType:''' Establece el tipo de codificación que se va a utilizar, para esta actividad es ''"application/json"''.
     219 * '''processData:''' Establece si la información que se envía al servidor debe ser procesada a una cadena de caracteres. Para evitar esto se debe utilizar el valor ''“false”''. En esta sección sólo se quiere enviar el archivo sin ser procesado.
     220 * '''xhrFields:''' {withCredentials: true} esta característica puede usarse para establecer la propiedad de '''withCredentials'''. Si se establece ''TRUE'' permite que se pase los ''cookies'' al servidor y permitir solicitudes de dominios cruzados.
     221 * '''headers:''' {"Authorization":"Basic YWRtaW46YWRtaW4="} autenticación básica HTTP
    222222
    223223[[BR]]
     
    398398En esta sección se va a calcular el valor del hash del documento que se envió en la sección 1, en tal sentido antes del cálculo del hash se debe enviar al servidor Murachí toda la información que se agregará al documento tales como el certificado del firmante como información adicional necesaria para la firma electrónica:
    399399
    400 '''fileId:''' corresponde al identificador del archivo que se encuentra en el servidor y se desea firmar (identificador único del archivo pdf).
    401 '''certificate:''' corresponde al certificado del firmante en formato hexadecimal.
    402 '''reason:''' corresponde a la razón de la firma (cadena descriptiva del por qué de la firma).
    403 '''location:''' corresponde a la ubicación donde se realiza la firma.
    404 '''contact:''' corresponde a información de contacto del firmante.
    405 '''signatureVisible:''' true para mostrar un indicador visible de firma en la primera página del documento pdf y false para no mostrar un indicador visible de firma en la primera página del documento pdf.
     400 * '''fileId:''' corresponde al identificador del archivo que se encuentra en el servidor y se desea firmar (identificador único del archivo pdf).
     401 * '''certificate:''' corresponde al certificado del firmante en formato hexadecimal.
     402 * '''reason:''' corresponde a la razón de la firma (cadena descriptiva del por qué de la firma).
     403 * '''location:''' corresponde a la ubicación donde se realiza la firma.
     404 * '''contact:''' corresponde a información de contacto del firmante.
     405 * '''signatureVisible:''' true para mostrar un indicador visible de firma en la primera página del documento pdf y false para no mostrar un indicador visible de firma en la primera página del documento pdf.
    406406
    407407El certificado lo obtuvimos en la sección anterior, en la función ''getCertificate()''. Luego enviarlo al sistema Murachí con el metodo ''$.ajax'' usando el recurso '':Murachi/0.1/archivos/pdfs''