wiki:notasVarias

Version 13 (modified by aaraujo, 9 years ago) (diff)

Agregado recurso para eliminar un archivo dataFile de un contendor.

Notas varias de desarrollo

Configuration.java

La configuración de digidoc4j se carga desde un archivo en formato yaml

El archivo de configuración se encuentra en: ./resources/digidoc4j.yaml

HowTo

PDF y biblioteca iText

Un documento PDF pude contener los siguientes tipos estándar de firmas:

  • una o más firmas de aprobación (approval).
  • Como máximo una firma certificada. Esta firma puede definir diferentes permisos.

Para definir el tipo de firma se debe establecer el nivel de certificación en la clase PdfSignatureAppearance.

PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
...
appearance.setCertificationLevel(certificationLevel);

El parámetro certificationLevel puede tomar uno de los siguientes valores:

  • NOT_CERTIFIED para crear una firma ordinaria tipo approval.
  • CERTIFIED_NO_CHANGES_ALLOWED para crear una firma de certificación también conocida como firma de autor. Después de aplicar la firma no se permitirán cambios sobre el documento.
  • CERTIFIED_FORM_FILLING crea una firma de certificación para el autor del documento pero otras personas pueden todavía llenar campos formulario o agregar firmas approval sin invalidar la firma.
  • CERTIFIED_FORM_FILLING_AND_ANNOTATIONS crea una firma de certificación para el autor del documento pero otras personas pueden todavía llenar campos formularios o agregar firmas approval así como anotaciones sin invalidar la firma.

Creación de TSL

Electronic Signatures and Infrastructures (ESI) Trusted Lists

ETSI TS 119 612 V1.2.1 (2014-04)

Error de Firefox al cargar un archivo PDF en un formulario

https://stackoverflow.com/questions/13272523/incorrect-content-type-for-pdf-file-with-firefox

http://kb.mozillazine.org/MimeTypes.rdf

http://www.fvue.nl/wiki/Wrong_mime-type_when_uploading_pdf

Editar el archivo /home/usuario/.mozilla/firefox/xxx.default/mimeTypes.rdf en la sección del mimetype PDF para que quede como se muestra a continuación:

<RDF:Description RDF:about="urn:mimetype:application/pdf"
                   NC:fileExtensions="pdf"
                   NC:description="documento PDF"
                   NC:value="application/pdf"
                   NC:editable="true">
    <NC:handlerProp RDF:resource="urn:mimetype:handler:application/pdf"/>
  </RDF:Description>

Firma de BDOC con SHA-256

Se debe agregar al archivo /usr/java/jdk1.7.0_21/jre/lib/security/java.security una entrada para BouncyCastle? (ver security.provider.2):

security.provider.1=sun.security.provider.Sun
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.3=sun.security.rsa.SunRsaSign
security.provider.4=sun.security.ec.SunEC
security.provider.5=com.sun.net.ssl.internal.ssl.Provider
security.provider.6=com.sun.crypto.provider.SunJCE
security.provider.7=sun.security.jgss.SunProvider
security.provider.8=com.sun.security.sasl.Provider
security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.10=sun.security.smartcardio.SunPCSC

Recursos

/bdocs: ejecuta el proceso de presign de contenedor BDOC.

/bdocs/resenas: ejecuta el proceso de postsign de contenedor BDOC.

/bdocs/cargas: crea un contenedor BDOC con los archivos subidos del formulario, lo serializa y retorna el identificados unico del contenedor.

/bdocs/cargas/{containerId} : recibe los archivos enviador a través del formulario, deserializa el contenedor identificado con containerId, agrega los archivos al contenedor, serializa de nuevo el contenedor y retorna el identificador del contendor.

/bdocs/archivos/{containerId} : retorna el numero de dataFiles que se encuentran en un contenedor.

/bdocs/archivos/{containerId}/{dataFileId} : Descarga el archivo dataFileId que se encuentra dentro del contenedor containerId BDOC.

/bdocs/archivos/papelera/{containerId}/{dataFileId} : elimina el archivo dataFileId que se encuentra dentro del contenedor containerId BDOC.

/bdocs/archivos/lista/{containerId} : retorna información de los dataFile que se encuentran dentro del contenedor containerId BDOC. Esta información incluye el nombre del archivo, el tamaño y el tipo mime.

/bdocs/firmas/{containerId} : retorna el numero de firmas que tiene el contenedor.

/bdocs/firmas/pre : calcula el hash de un contenedor existente y lo retorna al cliente; el contenedor se serializa en el servidor para luego completar la firma.

/bdocs/firmas/post : inserta el hash cifrado en el cliente al contenedor para completar el proceso de firma del contenedor. Se almacena el contenedor firmado y se retorna al cliente el identificador del archivo para su posterior descarga.

Attachments (5)