- C++ 93.7%
- Python 3.2%
- CMake 2.6%
- C 0.5%
| .vscode | ||
| CMakeFiles | ||
| docs | ||
| resources | ||
| src | ||
| tools | ||
| .gitignore | ||
| AGENTS.md | ||
| CMakeLists.txt | ||
| ManualdeUsuario-FirmaONPE.pdf | ||
| ManualdeUsuario-FirmaONPE[F].pdf | ||
| pfx-signed.pdf.sig0 | ||
| prototipo-lnx.png | ||
| README.md | ||
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 recibetramitedoc: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.