PapiroADNLnx
  • C++ 93.7%
  • Python 3.2%
  • CMake 2.6%
  • C 0.5%
Find a file
2026-09-14 14:29:36 -05:00
.vscode Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
CMakeFiles Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
docs Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
resources Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
src Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
tools Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
.gitignore Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
AGENTS.md Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
CMakeLists.txt Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
ManualdeUsuario-FirmaONPE.pdf Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
ManualdeUsuario-FirmaONPE[F].pdf Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
pfx-signed.pdf.sig0 Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
prototipo-lnx.png Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00
README.md Initial commit - PapiroADN Linux 2026-09-14 14:29:36 -05:00

PapiroADNLnx

Primera versión visual de PapiroADN Lnx, construida con C++17, Qt 6 Widgets, Qt Designer y CMake.

Compilar

cmake -S . -B build
cmake --build build

Ejecutar la interfaz

./build/PapiroADNLnx

papirosync.lnx es el equivalente Linux de Tramitedoc: recibe tramitedoc:, conecta con el WebSocket del SGD y atiende sus operaciones. PapiroADNLnx es un ejecutable separado, equivalente a FirmaONPE: no es el visor predeterminado de Tramitedoc ni se inicia para atender cada documento.

Probar conexión SGD

La primera etapa de integración acepta la URI tramitedoc: que entrega el SGD mediante una variable de entorno:

./build/papirosync.lnx 'tramitedoc:?accion=TraDoc?ws=ws://servidor:puerto?urlBase=https://servidor/sgd?rutaPri=/documentos'

También puede recibirse como argumento de línea de comandos:

./build/papirosync.lnx 'tramitedoc:?accion=TraDoc?ws=ws://servidor:puerto?urlBase=https://servidor/sgd?rutaPri=/documentos'

Para que el navegador invoque automáticamente papirosync.lnx cuando el SGD navegue a tramitedoc:, instala el registro de protocolo:

cmake --install build --prefix "$HOME/.local"
xdg-mime default papirosync-lnx.desktop x-scheme-handler/tramitedoc

Después, el SGD debe generar una navegación tramitedoc: con accion=TraDoc, ws, urlBase y rutaPri. Para verificación de instalación puede usar accion=VerifConf con ws. La URI se reenvía a la instancia existente de papirosync.lnx.

papirosync.lnx muestra en la terminal la URI recibida, el endpoint /APPCLIENT, las acciones entrantes y las respuestas enviadas. Si PapiroADNLnx está abierto, recibe únicamente el estado de conexión mediante un socket local.

El sincronizador procesa CONEXION, VER_DOCUMENTO, ABRIR_DOCUMENTO_PC, GENERAR_DOCUMENTO, VERIFICAR_EXISTE_DOC, VERIFICAR_DIRECTORIO, EJECUTAR_FIRMA y CARGAR_DOCUMENTO. Las operaciones HTTP son asíncronas. La previsualización abre el archivo con el visor PDF predeterminado de Linux, igual que explorer.exe en la referencia Windows.

La firma con certificados PFX/P12 ya está disponible desde los menús de Firma y V° B°. En Configurar se guardan una sola vez únicamente las rutas del certificado y del logo. La contraseña se solicita al firmar y no se persiste. Los datos institucionales y del documento se toman de los parámetros de FirmaONPE/SGD. Se genera un PDF incremental con CMS/PKCS#7 detached usando OpenSSL. EJECUTAR_FIRMA usa el perfil guardado y diferencia firma de V° B° mediante los tipos 1 y 2. Las firmas DNIe/PKCS#11 quedan para las siguientes fases.

Probar con servidor local

El simulador local abre un WebSocket en ws://127.0.0.1:8765/APPCLIENT y un servidor HTTP en http://127.0.0.1:8766/:

python3 tools/mock_sgd.py

En otra terminal, desde la raíz del proyecto:

./build/papirosync.lnx 'tramitedoc:?accion=TraDoc?ws=ws://127.0.0.1:8765?urlBase=http://127.0.0.1:8766?rutaPri=/tmp/papiroadn-test'

El simulador envía CONEXION y luego VER_DOCUMENTO usando ManualdeUsuario-FirmaONPE.pdf. La respuesta de papirosync.lnx se muestra en la primera terminal y el documento debe abrirse con el visor PDF predeterminado.

Arquitectura

  • papirosync.lnx: equivalente Linux de Tramitedoc; proceso residente que recibe tramitedoc: y conecta con el SGD.
  • PapiroADNLnx: equivalente Linux de FirmaONPE; aplicación independiente de firma y visualización.
  • Socket local papiroadn-lnx-ui: canal entre el sincronizador y la interfaz.