Page 1 of 1

firmar pdf con firma electronica .p12 en disco duro

PostPosted: Thu Jan 27, 2022 6:19 pm
by wilsongamboa
Estimados buenas tardes
A ver si alguien me ayuda con esto necesito firmar un pdf electrónicamente teniendo los siguientes elementos
- El pdf en si ( creado con harbour )
- el archivo certificado.p12 que esta en el disco duro

gracias por su ayuda
saludos
Wilson

Re: firmar pdf con firma electronica .p12 en disco duro

PostPosted: Thu Jan 27, 2022 6:46 pm
by cnavarro

Re: firmar pdf con firma electronica .p12 en disco duro

PostPosted: Thu Jan 27, 2022 6:59 pm
by Baxajaun
Hola Wilson !

Podrías intentarlo con https://forums.fivetechsupport.com/viewtopic.php?f=6&t=40838&hilit=hbssl&sid=40f5cce525d1a3eae69ea990a39b185f

Con las funciones de Diego Fazio.

Saludos,

Re: firmar pdf con firma electronica .p12 en disco duro

PostPosted: Sat Jan 29, 2022 5:25 pm
by wilsongamboa
Felix, Jefe muchas gracias por las respuestas
estoy enfermon y no estoy trabajando mucho por eso la demora
con los acceso de Felix logre armar un programa pero me esta ando error que no puede abrir el archivo certificado y creo que el problema es que yo tengo un archivo certificado.p12 y creo que se necesita de otra extension obviamente debe ser otro formato ( soy novato en el tema ) .pfx creo es la extension que necesito como transformarlo ?
muchas gracias
Wilson
Recursos usados
- harbour para bcc7 provisto por don Antonio de Linares con ssl incluido
- un ejemplo de Diego en el enlace de Felix
OJO no tengo errores de compilacion solo no me abre el archivo de clave
saludos
Wilson

Re: firmar pdf con firma electronica .p12 en disco duro

PostPosted: Tue Feb 01, 2022 8:45 am
by leandro
Basándome en este POST, me surge una idea?

Es posible hacer esta firma, con archivo .p12, desde mod_harbour?

Re: firmar pdf con firma electronica .p12 en disco duro

PostPosted: Wed Feb 02, 2022 4:26 pm
by wilsongamboa
Actualizacion
cambiando la funcion ahora me de otro error
estoy probando con
Code: Select all  Expand view
function main()

    local cDrive        := hb_curdrive()
    local cBase         := cDrive + ':' + curdir() + '\'
    local cPdf          := cBase + '
laimprenta.pdf'
    local cP12          := cBase + '
certificado.p12'
    local clave         := '
1234'
    local cPdf_Firmado  := strtran( lower(cPdf), '
.pdf', '_firmado.pdf')
    local nRet
    local aErrores := { '
Firma OK','al abrir el archivo .CRT','al abrir el archivo .KEY','al Crear el Objeto Private.Key',;
                        '
...la Key no corresponde al Certificado','al abrir el archivo a Firmar','al crear el objeto CMS',;
                        '
al asignar Data al objeto CMS','al cerrar la data del objeto CMS','al crear el Archivo de Salida',;
                        '
en la generación final del archivo CMS' }

    nRet =  HB_CMS_SIGNFILE_PFX( cPdf, cP12, clave, cPdf_Firmado)
    if nRet <> 1
        ? aErrores[ nRet ]
    end

return nil



me da el error
OPENSSL_Uplink(5219B320,08): no OPENSSL_Applink


estoy usando ese ejemplo alguien sabe que me falta ?
saludos

Re: firmar pdf con firma electronica .p12 en disco duro

PostPosted: Wed Feb 02, 2022 7:59 pm
by Baxajaun
Hola Wilson !!!

Quizás necesitemos wrappers para Harbour de algunas funciones C.

https://github.com/openssl/openssl/tree/master/demos

Saludos,