O.T. OPENSSL-Problemas con letras con acento al leer archivo.cer

316 views
Skip to first unread message

Zarlu

unread,
Aug 8, 2021, 5:07:16 PM8/8/21
to Comunidad de Visual Foxpro en Español
Buenas tardes foxeros:

Para un certificado .cer obtengo el  emisor a un archivo txt así:
OpenSSL  x509 -inform DER -in elcerti.cer -issuer >emisor.txt
Pero me resulta el txt con caracteres basura para las palabras con acento
Administración lo obtiene como Administraci\C3\B3n
*\C3\A1 á
*\C3\A9 é
*\C3\AD í
*\C3\B3 ó
*\C3\BA ú 

Ya apliqué Strconv() de diferentes formas
Ya cambié el codepag del  DOS...
.......

Alguien sabrá como hacerle para obtenerlo sin la basura en los acentos?

Gracias
zarlu
Chetumal, Quintana Roo, México

Fernando Mora

unread,
Aug 10, 2021, 12:12:02 PM8/10/21
to Comunidad de Visual Foxpro en Español
Hola Zarlu, yo hago eso pero con cryptoapi de windows, no uso openssl, hay un post en este foro respecto a decodificar certificados CER. Revisa si te sirve.

Saludos.

Zarlu

unread,
Aug 10, 2021, 12:24:24 PM8/10/21
to Comunidad de Visual Foxpro en Español
Buenas tardes Fernando!

Si. Ya revisé y apliqué tu código.
No pude leer el .CER. Lo que hice fue convertir a PEM con openssl y entonces aplicar tu código.
De ahí con el txt generado extraigo los datos individuales requeridos.
Vi que también puedo hacerlo con los Procedures (Por ejemplo: GetIssuer()..), pero opté por el txt ya que al fin de cuentas son cadenas de texto a trabajar.

Al querer leer el .CER ma marca como vacío. Si se se pudiera leer directo sin openssl sería mejor.
Aunque del openssl no requerí instalar. Sólo el ejecutable.

Excelente tu trabajo.

Gracias
zarlu
Chetumal, Quintana Roo, México

Zarlu

unread,
Aug 12, 2021, 9:05:49 PM8/12/21
to Comunidad de Visual Foxpro en Español
Buenas noches foxeros!

Haciendo unas adaptaciones al código de Fernando Mora pude leer el archivo .CER del Certicado Digital del SAT México.
Ya no requerí usar openssl. Puro VFP.

Puntualizo que mis pruebas se basaron en unos escasos archivos CER y PEM que tuve a la mano. No pude probar con CRT
Al no encontrar la manera de determinar si una cadena es base64 me hice de una función rustica "String64()" que para el caso me funcionó bien.
Si alguien conoce alguna forma certera de validar si una cadena es base64 lo agradeceré.
De igual forma, sin menoscabo de su privacidad, pueden mandarme por correo archivos CER,CRT,PEM para continuar mis pruebas.

Funcion leercersat()
Les adjunto el código.

De nuevo gracias Fernando

zarlu
Chetumal, Quintana Roo, México
leercersat.prg
Reply all
Reply to author
Forward
0 new messages